From 6dcbcd28469d2b26c2d912abb5038b31d708aa0c Mon Sep 17 00:00:00 2001 From: Patrick McDonagh Date: Thu, 13 Oct 2016 17:18:52 -0500 Subject: [PATCH] Reorganizes for 2 docker containers --- .gitmodules | 3 - .remote-sync.json | 10 - TagServer.mwb | Bin 10233 -> 0 bytes daq/Dockerfile | 14 + sampleData.py => daq/sampleData.py | 8 +- daq/tag/.gitmodules | 3 + .../.gitkeep => daq/tag/__init__.py | 0 daq/tag/alarm.py | 126 + .../.gitkeep => daq/tag/micro800/__init__.py | 0 daq/tag/micro800/micro800.py | 119 + daq/tag/micro800/pycomm_micro/__init__.py | 1 + .../micro800/pycomm_micro/ab_comm/__init__.py | 2 + daq/tag/micro800/pycomm_micro/ab_comm/clx.py | 847 + daq/tag/micro800/pycomm_micro/ab_comm/slc.py | 446 + daq/tag/micro800/pycomm_micro/cip/__init__.py | 1 + daq/tag/micro800/pycomm_micro/cip/cip_base.py | 827 + .../micro800/pycomm_micro/cip/cip_const.py | 482 + daq/tag/micro800/pycomm_micro/common.py | 32 + daq/tag/tag.py | 107 + taglogger.py => daq/taglogger.py | 20 +- dbcreate_MySQL.sql | 101 - dbcreate_SQLite.sql | 42 - init/tagserver | 37 - mysql_cfg.pickle | 18 - pickle_mysql_config.py | 11 - tag | 1 - tagserver.py | 106 - tagserver_MySQL.py | 97 - tagserver_SQLite.py | 96 - Dockerfile => web_db/Dockerfile | 17 +- mysql-install.sh => web_db/mysql-install.sh | 0 startup.sh => web_db/startup.sh | 0 .../taglogger_db_structure.sql | 0 .../www/.tmp/public}/favicon.ico | Bin .../0ab0fea3-a7ea-405a-97a5-1bbc14abddcc.pdf | Bin 0 -> 212476 bytes .../0cc46cfe-02a3-41e4-aceb-895057bba1a6.pdf | Bin 0 -> 755204 bytes .../1fa167cd-f688-4ea0-a234-901059769e27.pdf | Bin 0 -> 755204 bytes .../2e847f21-925d-48dc-ae39-1df681992bcd.png | Bin .../467b4b28-442c-474f-8a18-41efae4bad43.pdf | Bin 0 -> 755204 bytes .../85b96b93-8cdb-4655-b620-e5971db09f4c.xlsx | Bin 0 -> 10633 bytes .../www/.tmp/public}/fonts/FontAwesome.otf | Bin .../public}/fonts/fontawesome-webfont.eot | Bin .../public}/fonts/fontawesome-webfont.svg | 0 .../public}/fonts/fontawesome-webfont.ttf | Bin .../public}/fonts/fontawesome-webfont.woff | Bin .../public}/fonts/fontawesome-webfont.woff2 | Bin .../www/.tmp/public}/images/icons/_blank.png | Bin .../www/.tmp/public}/images/icons/_page.png | Bin .../www/.tmp/public}/images/icons/aac.png | Bin .../www/.tmp/public}/images/icons/ai.png | Bin .../www/.tmp/public}/images/icons/aiff.png | Bin .../www/.tmp/public}/images/icons/avi.png | Bin .../www/.tmp/public}/images/icons/bmp.png | Bin .../www/.tmp/public}/images/icons/c.png | Bin .../www/.tmp/public}/images/icons/cpp.png | Bin .../www/.tmp/public}/images/icons/css.png | Bin .../www/.tmp/public}/images/icons/dat.png | Bin .../www/.tmp/public}/images/icons/dmg.png | Bin .../www/.tmp/public}/images/icons/doc.png | Bin .../www/.tmp/public}/images/icons/dotx.png | Bin .../www/.tmp/public}/images/icons/dwg.png | Bin .../www/.tmp/public}/images/icons/dxf.png | Bin .../www/.tmp/public}/images/icons/eps.png | Bin .../www/.tmp/public}/images/icons/exe.png | Bin .../www/.tmp/public}/images/icons/flv.png | Bin .../www/.tmp/public}/images/icons/gif.png | Bin .../www/.tmp/public}/images/icons/h.png | Bin .../www/.tmp/public}/images/icons/hpp.png | Bin .../www/.tmp/public}/images/icons/html.png | Bin .../www/.tmp/public}/images/icons/ics.png | Bin .../www/.tmp/public}/images/icons/iso.png | Bin .../www/.tmp/public}/images/icons/java.png | Bin .../www/.tmp/public}/images/icons/jpg.png | Bin .../www/.tmp/public}/images/icons/js.png | Bin .../www/.tmp/public}/images/icons/key.png | Bin .../www/.tmp/public}/images/icons/less.png | Bin .../www/.tmp/public}/images/icons/mid.png | Bin .../www/.tmp/public}/images/icons/mp3.png | Bin .../www/.tmp/public}/images/icons/mp4.png | Bin .../www/.tmp/public}/images/icons/mpg.png | Bin .../www/.tmp/public}/images/icons/odf.png | Bin .../www/.tmp/public}/images/icons/ods.png | Bin .../www/.tmp/public}/images/icons/odt.png | Bin .../www/.tmp/public}/images/icons/otp.png | Bin .../www/.tmp/public}/images/icons/ots.png | Bin .../www/.tmp/public}/images/icons/ott.png | Bin .../www/.tmp/public}/images/icons/pdf.png | Bin .../www/.tmp/public}/images/icons/php.png | Bin .../www/.tmp/public}/images/icons/png.png | Bin .../www/.tmp/public}/images/icons/ppt.png | Bin .../www/.tmp/public}/images/icons/psd.png | Bin .../www/.tmp/public}/images/icons/py.png | Bin .../www/.tmp/public}/images/icons/qt.png | Bin .../www/.tmp/public}/images/icons/rar.png | Bin .../www/.tmp/public}/images/icons/rb.png | Bin .../www/.tmp/public}/images/icons/rtf.png | Bin .../www/.tmp/public}/images/icons/sass.png | Bin .../www/.tmp/public}/images/icons/scss.png | Bin .../www/.tmp/public}/images/icons/sql.png | Bin .../www/.tmp/public}/images/icons/tga.png | Bin .../www/.tmp/public}/images/icons/tgz.png | Bin .../www/.tmp/public}/images/icons/tiff.png | Bin .../www/.tmp/public}/images/icons/txt.png | Bin .../www/.tmp/public}/images/icons/wav.png | Bin .../www/.tmp/public}/images/icons/xls.png | Bin .../www/.tmp/public}/images/icons/xlsx.png | Bin .../www/.tmp/public}/images/icons/xml.png | Bin .../www/.tmp/public}/images/icons/yml.png | Bin .../www/.tmp/public}/images/icons/zip.png | Bin .../www/.tmp/public}/images/loading.gif | Bin web_db/www/.tmp/public/images/logo.png | Bin 0 -> 132965 bytes web_db/www/.tmp/public/js/LineChart.js | 3204 ++ web_db/www/.tmp/public/js/angular-route.js | 999 + web_db/www/.tmp/public/js/angular.js | 29819 ++++++++++++++++ .../.tmp/public}/js/dependencies/d3.min.js | 0 .../.tmp/public}/js/dependencies/sails.io.js | 0 .../.tmp/public}/js/dependencies/sugar.min.js | 0 .../www/.tmp/public/js/dist/angular-sails.js | 313 + web_db/www/.tmp/public/js/dist/jquery.js | 9842 +++++ .../www/.tmp/public/js/dist/js/bootstrap.js | 2363 ++ .../www/.tmp/public/js/dist/ng-quick-date.js | 386 + web_db/www/.tmp/public/js/dist/sails.io.js | 1533 + web_db/www/.tmp/public/js/justgage.js | 1251 + web_db/www/.tmp/public/js/ng-justgage.js | 47 + .../.tmp/public}/js/ng/controller_config.js | 0 .../public}/js/ng/controller_dashboard.js | 0 .../www/.tmp/public}/js/ng/controller_doc.js | 0 .../www/.tmp/public}/js/ng/controller_main.js | 0 .../.tmp/public}/js/ng/controller_tagVals.js | 0 .../www/.tmp/public}/js/ng/controller_tags.js | 0 .../www/.tmp/public}/js/ng/factory_config.js | 0 .../public}/js/ng/factory_dateConversion.js | 0 .../www/.tmp/public}/js/ng/factory_devices.js | 0 .../www/.tmp/public}/js/ng/factory_docs.js | 0 .../www/.tmp/public}/js/ng/factory_page.js | 0 .../www/.tmp/public}/js/ng/factory_tags.js | 0 .../www/.tmp/public}/js/ng/router.js | 0 web_db/www/.tmp/public/js/raphael.js | 8239 +++++ web_db/www/.tmp/public/jst.js | 51 + .../www/.tmp/public}/less/bootstrap.less | 0 web_db/www/.tmp/public/less/font-awesome.less | 17 + .../www/.tmp/public}/robots.txt | 0 web_db/www/.tmp/public/scss/font-awesome.scss | 17 + web_db/www/.tmp/public/styles/LineChart.css | 126 + .../www/.tmp/public}/styles/app.css | 0 .../public}/styles/bootstrap-theme.min.css | 0 .../www/.tmp/public}/styles/bootstrap.min.css | 0 .../dist/ng-quick-date-default-theme.css | 104 + .../.tmp/public/styles/dist/ng-quick-date.css | 90 + .../.tmp/public}/styles/font-awesome.min.css | 0 web_db/www/.tmp/public/styles/importer.css | 15 + .../www/.tmp/public}/templates/config.html | 0 .../www/.tmp/public}/templates/dashboard.html | 0 .../www/.tmp/public}/templates/docs.html | 0 .../www/.tmp/public}/templates/tagVals.html | 0 .../www/.tmp/public}/templates/tags.html | 0 .../18af1288-2a8a-4b17-a164-d482989f579b.png | Bin 0 -> 40619 bytes {www => web_db/www}/Gruntfile.js | 0 {www => web_db/www}/README.md | 0 .../www/api/controllers}/.gitkeep | 0 .../www}/api/controllers/ConfigController.js | 0 .../api/controllers/Data_typeController.js | 0 .../www}/api/controllers/DeviceController.js | 0 .../api/controllers/Device_typeController.js | 0 .../www}/api/controllers/DocController.js | 0 .../www}/api/controllers/TagController.js | 0 .../api/controllers/Tag_classController.js | 0 .../www}/api/controllers/Tag_valController.js | 0 .../images => web_db/www/api/models}/.gitkeep | 0 {www => web_db/www}/api/models/Config.js | 0 {www => web_db/www}/api/models/Data_type.js | 0 {www => web_db/www}/api/models/Device.js | 0 {www => web_db/www}/api/models/Device_type.js | 0 {www => web_db/www}/api/models/Doc.js | 0 {www => web_db/www}/api/models/Tag.js | 0 {www => web_db/www}/api/models/Tag_class.js | 0 {www => web_db/www}/api/models/Tag_val.js | 0 .../www}/api/policies/sessionAuth.js | 0 .../www}/api/responses/badRequest.js | 0 {www => web_db/www}/api/responses/created.js | 0 .../www}/api/responses/forbidden.js | 0 {www => web_db/www}/api/responses/notFound.js | 0 {www => web_db/www}/api/responses/ok.js | 0 .../www}/api/responses/serverError.js | 0 .../www/api/services}/.gitkeep | 0 {www => web_db/www}/app.js | 0 web_db/www/assets/favicon.ico | Bin 0 -> 16387 bytes .../0ab0fea3-a7ea-405a-97a5-1bbc14abddcc.pdf | Bin 0 -> 212476 bytes .../0cc46cfe-02a3-41e4-aceb-895057bba1a6.pdf | Bin 0 -> 755204 bytes .../1fa167cd-f688-4ea0-a234-901059769e27.pdf | Bin 0 -> 755204 bytes .../2e847f21-925d-48dc-ae39-1df681992bcd.png | Bin 0 -> 132965 bytes .../467b4b28-442c-474f-8a18-41efae4bad43.pdf | Bin 0 -> 755204 bytes .../85b96b93-8cdb-4655-b620-e5971db09f4c.xlsx | Bin 0 -> 10633 bytes web_db/www/assets/fonts/FontAwesome.otf | Bin 0 -> 123112 bytes .../www/assets/fonts/fontawesome-webfont.eot | Bin 0 -> 75220 bytes .../www/assets/fonts/fontawesome-webfont.svg | 685 + .../www/assets/fonts/fontawesome-webfont.ttf | Bin 0 -> 150920 bytes .../www/assets/fonts/fontawesome-webfont.woff | Bin 0 -> 89076 bytes .../assets/fonts/fontawesome-webfont.woff2 | Bin 0 -> 70728 bytes web_db/www/assets/images/.gitkeep | 0 web_db/www/assets/images/icons/_blank.png | Bin 0 -> 3501 bytes web_db/www/assets/images/icons/_page.png | Bin 0 -> 15881 bytes web_db/www/assets/images/icons/aac.png | Bin 0 -> 24178 bytes web_db/www/assets/images/icons/ai.png | Bin 0 -> 19975 bytes web_db/www/assets/images/icons/aiff.png | Bin 0 -> 21284 bytes web_db/www/assets/images/icons/avi.png | Bin 0 -> 36848 bytes web_db/www/assets/images/icons/bmp.png | Bin 0 -> 15404 bytes web_db/www/assets/images/icons/c.png | Bin 0 -> 6346 bytes web_db/www/assets/images/icons/cpp.png | Bin 0 -> 8032 bytes web_db/www/assets/images/icons/css.png | Bin 0 -> 33017 bytes web_db/www/assets/images/icons/dat.png | Bin 0 -> 16066 bytes web_db/www/assets/images/icons/dmg.png | Bin 0 -> 14864 bytes web_db/www/assets/images/icons/doc.png | Bin 0 -> 20397 bytes web_db/www/assets/images/icons/dotx.png | Bin 0 -> 15479 bytes web_db/www/assets/images/icons/dwg.png | Bin 0 -> 21669 bytes web_db/www/assets/images/icons/dxf.png | Bin 0 -> 24303 bytes web_db/www/assets/images/icons/eps.png | Bin 0 -> 15245 bytes web_db/www/assets/images/icons/exe.png | Bin 0 -> 17813 bytes web_db/www/assets/images/icons/flv.png | Bin 0 -> 21337 bytes web_db/www/assets/images/icons/gif.png | Bin 0 -> 17473 bytes web_db/www/assets/images/icons/h.png | Bin 0 -> 4353 bytes web_db/www/assets/images/icons/hpp.png | Bin 0 -> 5865 bytes web_db/www/assets/images/icons/html.png | Bin 0 -> 9863 bytes web_db/www/assets/images/icons/ics.png | Bin 0 -> 22299 bytes web_db/www/assets/images/icons/iso.png | Bin 0 -> 20046 bytes web_db/www/assets/images/icons/java.png | Bin 0 -> 17410 bytes web_db/www/assets/images/icons/jpg.png | Bin 0 -> 18738 bytes web_db/www/assets/images/icons/js.png | Bin 0 -> 14928 bytes web_db/www/assets/images/icons/key.png | Bin 0 -> 14244 bytes web_db/www/assets/images/icons/less.png | Bin 0 -> 13609 bytes web_db/www/assets/images/icons/mid.png | Bin 0 -> 24572 bytes web_db/www/assets/images/icons/mp3.png | Bin 0 -> 26647 bytes web_db/www/assets/images/icons/mp4.png | Bin 0 -> 22225 bytes web_db/www/assets/images/icons/mpg.png | Bin 0 -> 41984 bytes web_db/www/assets/images/icons/odf.png | Bin 0 -> 11099 bytes web_db/www/assets/images/icons/ods.png | Bin 0 -> 13741 bytes web_db/www/assets/images/icons/odt.png | Bin 0 -> 13807 bytes web_db/www/assets/images/icons/otp.png | Bin 0 -> 10826 bytes web_db/www/assets/images/icons/ots.png | Bin 0 -> 13201 bytes web_db/www/assets/images/icons/ott.png | Bin 0 -> 12469 bytes web_db/www/assets/images/icons/pdf.png | Bin 0 -> 16110 bytes web_db/www/assets/images/icons/php.png | Bin 0 -> 10345 bytes web_db/www/assets/images/icons/png.png | Bin 0 -> 19661 bytes web_db/www/assets/images/icons/ppt.png | Bin 0 -> 10187 bytes web_db/www/assets/images/icons/psd.png | Bin 0 -> 21351 bytes web_db/www/assets/images/icons/py.png | Bin 0 -> 14407 bytes web_db/www/assets/images/icons/qt.png | Bin 0 -> 22235 bytes web_db/www/assets/images/icons/rar.png | Bin 0 -> 17505 bytes web_db/www/assets/images/icons/rb.png | Bin 0 -> 14872 bytes web_db/www/assets/images/icons/rtf.png | Bin 0 -> 8833 bytes web_db/www/assets/images/icons/sass.png | Bin 0 -> 15533 bytes web_db/www/assets/images/icons/scss.png | Bin 0 -> 15777 bytes web_db/www/assets/images/icons/sql.png | Bin 0 -> 19677 bytes web_db/www/assets/images/icons/tga.png | Bin 0 -> 15992 bytes web_db/www/assets/images/icons/tgz.png | Bin 0 -> 13325 bytes web_db/www/assets/images/icons/tiff.png | Bin 0 -> 15010 bytes web_db/www/assets/images/icons/txt.png | Bin 0 -> 9426 bytes web_db/www/assets/images/icons/wav.png | Bin 0 -> 28099 bytes web_db/www/assets/images/icons/xls.png | Bin 0 -> 16375 bytes web_db/www/assets/images/icons/xlsx.png | Bin 0 -> 16220 bytes web_db/www/assets/images/icons/xml.png | Bin 0 -> 12234 bytes web_db/www/assets/images/icons/yml.png | Bin 0 -> 7219 bytes web_db/www/assets/images/icons/zip.png | Bin 0 -> 23147 bytes web_db/www/assets/images/loading.gif | Bin 0 -> 39507 bytes web_db/www/assets/images/logo.png | Bin 0 -> 132965 bytes web_db/www/assets/js/dependencies/d3.min.js | 5 + web_db/www/assets/js/dependencies/sails.io.js | 1533 + .../www/assets/js/dependencies/sugar.min.js | 132 + web_db/www/assets/js/ng/controller_config.js | 99 + .../www/assets/js/ng/controller_dashboard.js | 36 + web_db/www/assets/js/ng/controller_doc.js | 47 + web_db/www/assets/js/ng/controller_main.js | 39 + web_db/www/assets/js/ng/controller_tagVals.js | 108 + web_db/www/assets/js/ng/controller_tags.js | 96 + web_db/www/assets/js/ng/factory_config.js | 81 + .../assets/js/ng/factory_dateConversion.js | 31 + web_db/www/assets/js/ng/factory_devices.js | 80 + web_db/www/assets/js/ng/factory_docs.js | 50 + web_db/www/assets/js/ng/factory_page.js | 18 + web_db/www/assets/js/ng/factory_tags.js | 138 + web_db/www/assets/js/ng/router.js | 25 + web_db/www/assets/robots.txt | 8 + web_db/www/assets/styles/app.css | 15 + .../www/assets/styles/bootstrap-theme.min.css | 6 + web_db/www/assets/styles/bootstrap.min.css | 6 + web_db/www/assets/styles/font-awesome.min.css | 4 + .../www}/assets/styles/importer.less | 0 web_db/www/assets/templates/.gitkeep | 0 web_db/www/assets/templates/config.html | 158 + web_db/www/assets/templates/dashboard.html | 36 + web_db/www/assets/templates/docs.html | 54 + web_db/www/assets/templates/tagVals.html | 86 + web_db/www/assets/templates/tags.html | 263 + {www => web_db/www}/bower.json | 0 .../angular-justgage/.bower.json | 48 + .../bower_components/angular-justgage/LICENSE | 21 + .../angular-justgage/bower.json | 40 + .../angular-justgage/ng-justgage.js | 47 + .../angular-route/.bower.json | 20 + .../bower_components/angular-route/README.md | 68 + .../angular-route/angular-route.js | 999 + .../angular-route/angular-route.min.js | 15 + .../angular-route/angular-route.min.js.map | 8 + .../bower_components/angular-route/bower.json | 10 + .../bower_components/angular-route/index.js | 2 + .../angular-route/package.json | 26 + .../angular-sails/.bower.json | 50 + .../bower_components/angular-sails/LICENSE | 20 + .../bower_components/angular-sails/README.md | 70 + .../bower_components/angular-sails/bower.json | 40 + .../angular-sails/dist/angular-sails.js | 313 + .../angular-sails/dist/angular-sails.min.js | 1 + .../bower_components/angular-sails/files.js | 55 + .../angular-sails/karma.conf.js | 38 + .../angular-sails/src/ngSails.js | 2 + .../src/service/angular-sails.js | 307 + .../www/bower_components/angular/.bower.json | 18 + web_db/www/bower_components/angular/README.md | 64 + .../bower_components/angular/angular-csp.css | 21 + .../www/bower_components/angular/angular.js | 29819 ++++++++++++++++ .../bower_components/angular/angular.min.js | 301 + .../angular/angular.min.js.gzip | Bin 0 -> 54768 bytes .../angular/angular.min.js.map | 8 + .../www/bower_components/angular/bower.json | 9 + web_db/www/bower_components/angular/index.js | 2 + .../www/bower_components/angular/package.json | 25 + .../bower_components/bootstrap/.bower.json | 44 + .../bower_components/bootstrap/CHANGELOG.md | 5 + .../bower_components/bootstrap/Gruntfile.js | 533 + web_db/www/bower_components/bootstrap/LICENSE | 21 + .../www/bower_components/bootstrap/README.md | 139 + .../www/bower_components/bootstrap/bower.json | 34 + .../bootstrap/dist/css/bootstrap-theme.css | 587 + .../dist/css/bootstrap-theme.css.map | 1 + .../dist/css/bootstrap-theme.min.css | 6 + .../dist/css/bootstrap-theme.min.css.map | 1 + .../bootstrap/dist/css/bootstrap.css | 6760 ++++ .../bootstrap/dist/css/bootstrap.css.map | 1 + .../bootstrap/dist/css/bootstrap.min.css | 6 + .../bootstrap/dist/css/bootstrap.min.css.map | 1 + .../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 .../bootstrap/dist/js/bootstrap.js | 2363 ++ .../bootstrap/dist/js/bootstrap.min.js | 7 + .../bower_components/bootstrap/dist/js/npm.js | 13 + .../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 .../bootstrap/grunt/.jshintrc | 7 + .../bootstrap/grunt/bs-commonjs-generator.js | 30 + .../grunt/bs-glyphicons-data-generator.js | 42 + .../bootstrap/grunt/bs-lessdoc-parser.js | 237 + .../bootstrap/grunt/bs-raw-files-generator.js | 44 + .../bootstrap/grunt/configBridge.json | 46 + .../bootstrap/grunt/sauce_browsers.yml | 82 + .../www/bower_components/bootstrap/js/.jscsrc | 42 + .../bower_components/bootstrap/js/.jshintrc | 15 + .../bower_components/bootstrap/js/affix.js | 162 + .../bower_components/bootstrap/js/alert.js | 94 + .../bower_components/bootstrap/js/button.js | 120 + .../bower_components/bootstrap/js/carousel.js | 237 + .../bower_components/bootstrap/js/collapse.js | 211 + .../bower_components/bootstrap/js/dropdown.js | 165 + .../bower_components/bootstrap/js/modal.js | 337 + .../bower_components/bootstrap/js/popover.js | 108 + .../bootstrap/js/scrollspy.js | 172 + .../www/bower_components/bootstrap/js/tab.js | 155 + .../bower_components/bootstrap/js/tooltip.js | 514 + .../bootstrap/js/transition.js | 59 + .../bootstrap/less/.csscomb.json | 304 + .../bootstrap/less/.csslintrc | 19 + .../bootstrap/less/alerts.less | 73 + .../bootstrap/less/badges.less | 66 + .../bootstrap/less/bootstrap.less | 56 + .../bootstrap/less/breadcrumbs.less | 26 + .../bootstrap/less/button-groups.less | 244 + .../bootstrap/less/buttons.less | 166 + .../bootstrap/less/carousel.less | 270 + .../bootstrap/less/close.less | 34 + .../bower_components/bootstrap/less/code.less | 69 + .../bootstrap/less/component-animations.less | 33 + .../bootstrap/less/dropdowns.less | 216 + .../bootstrap/less/forms.less | 613 + .../bootstrap/less/glyphicons.less | 305 + .../bower_components/bootstrap/less/grid.less | 84 + .../bootstrap/less/input-groups.less | 171 + .../bootstrap/less/jumbotron.less | 54 + .../bootstrap/less/labels.less | 64 + .../bootstrap/less/list-group.less | 130 + .../bootstrap/less/media.less | 66 + .../bootstrap/less/mixins.less | 40 + .../bootstrap/less/mixins/alerts.less | 14 + .../less/mixins/background-variant.less | 9 + .../bootstrap/less/mixins/border-radius.less | 18 + .../bootstrap/less/mixins/buttons.less | 65 + .../bootstrap/less/mixins/center-block.less | 7 + .../bootstrap/less/mixins/clearfix.less | 22 + .../bootstrap/less/mixins/forms.less | 85 + .../bootstrap/less/mixins/gradients.less | 59 + .../bootstrap/less/mixins/grid-framework.less | 91 + .../bootstrap/less/mixins/grid.less | 122 + .../bootstrap/less/mixins/hide-text.less | 21 + .../bootstrap/less/mixins/image.less | 33 + .../bootstrap/less/mixins/labels.less | 12 + .../bootstrap/less/mixins/list-group.less | 30 + .../bootstrap/less/mixins/nav-divider.less | 10 + .../less/mixins/nav-vertical-align.less | 9 + .../bootstrap/less/mixins/opacity.less | 8 + .../bootstrap/less/mixins/pagination.less | 24 + .../bootstrap/less/mixins/panels.less | 24 + .../bootstrap/less/mixins/progress-bar.less | 10 + .../bootstrap/less/mixins/reset-filter.less | 8 + .../bootstrap/less/mixins/reset-text.less | 18 + .../bootstrap/less/mixins/resize.less | 6 + .../less/mixins/responsive-visibility.less | 15 + .../bootstrap/less/mixins/size.less | 10 + .../bootstrap/less/mixins/tab-focus.less | 9 + .../bootstrap/less/mixins/table-row.less | 28 + .../bootstrap/less/mixins/text-emphasis.less | 9 + .../bootstrap/less/mixins/text-overflow.less | 8 + .../less/mixins/vendor-prefixes.less | 227 + .../bootstrap/less/modals.less | 150 + .../bootstrap/less/navbar.less | 660 + .../bower_components/bootstrap/less/navs.less | 242 + .../bootstrap/less/normalize.less | 424 + .../bootstrap/less/pager.less | 54 + .../bootstrap/less/pagination.less | 89 + .../bootstrap/less/panels.less | 271 + .../bootstrap/less/popovers.less | 131 + .../bootstrap/less/print.less | 101 + .../bootstrap/less/progress-bars.less | 87 + .../bootstrap/less/responsive-embed.less | 35 + .../bootstrap/less/responsive-utilities.less | 194 + .../bootstrap/less/scaffolding.less | 161 + .../bootstrap/less/tables.less | 234 + .../bootstrap/less/theme.less | 291 + .../bootstrap/less/thumbnails.less | 36 + .../bootstrap/less/tooltip.less | 101 + .../bower_components/bootstrap/less/type.less | 302 + .../bootstrap/less/utilities.less | 55 + .../bootstrap/less/variables.less | 869 + .../bootstrap/less/wells.less | 29 + .../bootstrap/nuget/MyGet.ps1 | 8 + .../bootstrap/nuget/bootstrap.less.nuspec | 28 + .../bootstrap/nuget/bootstrap.nuspec | 28 + .../www/bower_components/bootstrap/package.js | 32 + .../bower_components/bootstrap/package.json | 87 + .../bower_components/font-awesome/.bower.json | 36 + .../bower_components/font-awesome/.npmignore | 42 + .../font-awesome/HELP-US-OUT.txt | 7 + .../bower_components/font-awesome/bower.json | 22 + .../font-awesome/css/font-awesome.css | 2086 ++ .../font-awesome/css/font-awesome.css.map | 7 + .../font-awesome/css/font-awesome.min.css | 4 + .../font-awesome/fonts/FontAwesome.otf | Bin 0 -> 109688 bytes .../fonts/fontawesome-webfont.eot | Bin 0 -> 70807 bytes .../fonts/fontawesome-webfont.svg | 655 + .../fonts/fontawesome-webfont.ttf | Bin 0 -> 142072 bytes .../fonts/fontawesome-webfont.woff | Bin 0 -> 83588 bytes .../fonts/fontawesome-webfont.woff2 | Bin 0 -> 66624 bytes .../font-awesome/less/animated.less | 34 + .../font-awesome/less/bordered-pulled.less | 25 + .../font-awesome/less/core.less | 12 + .../font-awesome/less/fixed-width.less | 6 + .../font-awesome/less/font-awesome.less | 17 + .../font-awesome/less/icons.less | 697 + .../font-awesome/less/larger.less | 13 + .../font-awesome/less/list.less | 19 + .../font-awesome/less/mixins.less | 26 + .../font-awesome/less/path.less | 15 + .../font-awesome/less/rotated-flipped.less | 20 + .../font-awesome/less/stacked.less | 20 + .../font-awesome/less/variables.less | 708 + .../font-awesome/scss/_animated.scss | 34 + .../font-awesome/scss/_bordered-pulled.scss | 25 + .../font-awesome/scss/_core.scss | 12 + .../font-awesome/scss/_fixed-width.scss | 6 + .../font-awesome/scss/_icons.scss | 697 + .../font-awesome/scss/_larger.scss | 13 + .../font-awesome/scss/_list.scss | 19 + .../font-awesome/scss/_mixins.scss | 26 + .../font-awesome/scss/_path.scss | 15 + .../font-awesome/scss/_rotated-flipped.scss | 20 + .../font-awesome/scss/_stacked.scss | 20 + .../font-awesome/scss/_variables.scss | 708 + .../font-awesome/scss/font-awesome.scss | 17 + .../www/bower_components/jquery/.bower.json | 25 + .../www/bower_components/jquery/AUTHORS.txt | 278 + .../www/bower_components/jquery/LICENSE.txt | 36 + web_db/www/bower_components/jquery/README.md | 65 + web_db/www/bower_components/jquery/bower.json | 14 + .../bower_components/jquery/dist/jquery.js | 9842 +++++ .../jquery/dist/jquery.min.js | 4 + .../jquery/dist/jquery.min.map | 1 + .../jquery/dist/jquery.slim.js | 7877 ++++ .../jquery/dist/jquery.slim.min.js | 4 + .../jquery/dist/jquery.slim.min.map | 1 + .../jquery/sizzle/LICENSE.txt | 36 + .../jquery/sizzle/dist/sizzle.js | 2143 ++ .../jquery/sizzle/dist/sizzle.min.js | 3 + .../jquery/sizzle/dist/sizzle.min.map | 1 + .../www/bower_components/jquery/src/.jshintrc | 29 + .../www/bower_components/jquery/src/ajax.js | 845 + .../bower_components/jquery/src/ajax/jsonp.js | 100 + .../bower_components/jquery/src/ajax/load.js | 83 + .../jquery/src/ajax/parseJSON.js | 13 + .../jquery/src/ajax/parseXML.js | 27 + .../jquery/src/ajax/script.js | 68 + .../jquery/src/ajax/var/location.js | 3 + .../jquery/src/ajax/var/nonce.js | 5 + .../jquery/src/ajax/var/rquery.js | 3 + .../bower_components/jquery/src/ajax/xhr.js | 167 + .../bower_components/jquery/src/attributes.js | 11 + .../jquery/src/attributes/attr.js | 142 + .../jquery/src/attributes/classes.js | 177 + .../jquery/src/attributes/prop.js | 125 + .../jquery/src/attributes/support.js | 36 + .../jquery/src/attributes/val.js | 177 + .../bower_components/jquery/src/callbacks.js | 232 + .../www/bower_components/jquery/src/core.js | 494 + .../jquery/src/core/DOMEval.js | 14 + .../jquery/src/core/access.js | 65 + .../bower_components/jquery/src/core/init.js | 134 + .../jquery/src/core/parseHTML.js | 41 + .../bower_components/jquery/src/core/ready.js | 103 + .../jquery/src/core/support.js | 18 + .../jquery/src/core/var/rsingleTag.js | 5 + web_db/www/bower_components/jquery/src/css.js | 515 + .../jquery/src/css/addGetHookIf.js | 24 + .../jquery/src/css/adjustCSS.js | 65 + .../bower_components/jquery/src/css/curCSS.js | 60 + .../jquery/src/css/defaultDisplay.js | 72 + .../jquery/src/css/hiddenVisibleSelectors.js | 18 + .../jquery/src/css/showHide.js | 48 + .../jquery/src/css/support.js | 121 + .../jquery/src/css/var/cssExpand.js | 3 + .../jquery/src/css/var/getStyles.js | 15 + .../jquery/src/css/var/isHidden.js | 16 + .../jquery/src/css/var/rmargin.js | 3 + .../jquery/src/css/var/rnumnonpx.js | 5 + .../jquery/src/css/var/swap.js | 24 + .../www/bower_components/jquery/src/data.js | 187 + .../bower_components/jquery/src/data/Data.js | 200 + .../jquery/src/data/accepts.js | 20 + .../jquery/src/data/support.js | 23 + .../jquery/src/data/var/acceptData.js | 18 + .../jquery/src/data/var/dataPriv.js | 5 + .../jquery/src/data/var/dataUser.js | 5 + .../bower_components/jquery/src/deferred.js | 158 + .../jquery/src/deferred/exceptionHook.js | 19 + .../bower_components/jquery/src/deprecated.js | 32 + .../bower_components/jquery/src/dimensions.js | 54 + .../bower_components/jquery/src/effects.js | 629 + .../jquery/src/effects/Tween.js | 121 + .../jquery/src/effects/animatedSelector.js | 13 + .../jquery/src/effects/support.js | 58 + .../www/bower_components/jquery/src/event.js | 710 + .../bower_components/jquery/src/event/ajax.js | 20 + .../jquery/src/event/alias.js | 27 + .../jquery/src/event/focusin.js | 53 + .../jquery/src/event/support.js | 9 + .../jquery/src/event/trigger.js | 199 + .../jquery/src/exports/amd.js | 24 + .../jquery/src/exports/global.js | 26 + .../www/bower_components/jquery/src/intro.js | 44 + .../www/bower_components/jquery/src/jquery.js | 37 + .../jquery/src/manipulation.js | 481 + .../jquery/src/manipulation/_evalUrl.js | 20 + .../jquery/src/manipulation/buildFragment.js | 102 + .../src/manipulation/createSafeFragment.js | 20 + .../jquery/src/manipulation/getAll.js | 21 + .../jquery/src/manipulation/setGlobalEval.js | 20 + .../jquery/src/manipulation/support.js | 33 + .../jquery/src/manipulation/var/nodeNames.js | 5 + .../src/manipulation/var/rcheckableType.js | 3 + .../manipulation/var/rleadingWhitespace.js | 3 + .../src/manipulation/var/rscriptType.js | 3 + .../jquery/src/manipulation/var/rtagName.js | 3 + .../jquery/src/manipulation/wrapMap.js | 27 + .../www/bower_components/jquery/src/offset.js | 218 + .../www/bower_components/jquery/src/outro.js | 2 + .../www/bower_components/jquery/src/queue.js | 143 + .../jquery/src/queue/delay.js | 22 + .../jquery/src/selector-native.js | 211 + .../jquery/src/selector-sizzle.js | 14 + .../bower_components/jquery/src/selector.js | 1 + .../bower_components/jquery/src/serialize.js | 125 + .../bower_components/jquery/src/support.js | 63 + .../bower_components/jquery/src/traversing.js | 175 + .../jquery/src/traversing/findFilter.js | 100 + .../jquery/src/traversing/var/dir.js | 20 + .../src/traversing/var/rneedsContext.js | 6 + .../jquery/src/traversing/var/siblings.js | 15 + .../bower_components/jquery/src/var/arr.js | 3 + .../jquery/src/var/class2type.js | 5 + .../bower_components/jquery/src/var/concat.js | 5 + .../jquery/src/var/deletedIds.js | 3 + .../jquery/src/var/document.js | 3 + .../jquery/src/var/documentElement.js | 5 + .../bower_components/jquery/src/var/hasOwn.js | 5 + .../jquery/src/var/indexOf.js | 5 + .../bower_components/jquery/src/var/pnum.js | 3 + .../bower_components/jquery/src/var/push.js | 5 + .../jquery/src/var/rcssNum.js | 7 + .../jquery/src/var/rnotwhite.js | 3 + .../bower_components/jquery/src/var/slice.js | 5 + .../jquery/src/var/support.js | 5 + .../jquery/src/var/toString.js | 5 + .../www/bower_components/jquery/src/wrap.js | 79 + .../justgage-toorshia/.bower.json | 50 + .../justgage-toorshia/LICENSE | 21 + .../justgage-toorshia/bower.json | 42 + .../examples/animation-events-hooks.html | 106 + .../examples/auto-adjust.htm | 94 + .../justgage-toorshia/examples/counter.html | 58 + .../examples/custom-interval.htm | 82 + .../examples/custom-node.html | 130 + .../examples/custom-sectors.html | 88 + .../examples/custom-value-renderer.html | 118 + .../examples/customize-style.htm | 137 + .../justgage-toorshia/examples/defaults.html | 60 + .../examples/font-options.html | 64 + .../examples/format-number.html | 56 + .../examples/html5-data-attribute-config.html | 54 + .../examples/human-friendly-numbers.html | 109 + .../justgage-toorshia/examples/pointer.html | 168 + .../examples/refresh-maximum.html | 85 + .../examples/responsive-gauges.htm | 103 + .../justgage-toorshia/examples/reverse.html | 144 + .../justgage-toorshia/justgage.js | 1251 + .../justgage-toorshia/package.json | 34 + .../justgage-toorshia/raphael-2.1.4.min.js | 12 + .../bower_components/ngQuickDate/.bower.json | 39 + .../bower_components/ngQuickDate/LICENSE.txt | 23 + .../bower_components/ngQuickDate/README.md | 189 + .../bower_components/ngQuickDate/bower.json | 25 + .../bower_components/ngQuickDate/demo.html | 45 + .../dist/ng-quick-date-default-theme.css | 104 + .../dist/ng-quick-date-plus-default-theme.css | 195 + .../ngQuickDate/dist/ng-quick-date.css | 90 + .../ngQuickDate/dist/ng-quick-date.js | 386 + .../ngQuickDate/dist/ng-quick-date.min.js | 1 + .../www/bower_components/raphael/.bower.json | 29 + .../www/bower_components/raphael/bower.json | 19 + .../bower_components/raphael/dev/amdDev.js | 6 + .../www/bower_components/raphael/dev/index.js | 8 + .../bower_components/raphael/dev/require.js | 2053 ++ .../www/bower_components/raphael/license.txt | 21 + .../bower_components/raphael/raphael-min.js | 11 + .../www/bower_components/raphael/raphael.js | 8239 +++++ .../bower_components/sails.io.js/.bower.json | 45 + .../bower_components/sails.io.js/CHANGELOG.md | 54 + .../bower_components/sails.io.js/bower.json | 36 + .../sails.io.js/checkGitStatus.js | 7 + .../sails.io.js/dist/sails.io.js | 1533 + .../bower_components/sails.io.js/sails.io.js | 1516 + {www => web_db/www}/config/blueprints.js | 0 {www => web_db/www}/config/bootstrap.js | 0 {www => web_db/www}/config/connections.js | 0 {www => web_db/www}/config/cors.js | 0 {www => web_db/www}/config/csrf.js | 0 {www => web_db/www}/config/env/development.js | 0 {www => web_db/www}/config/env/production.js | 0 {www => web_db/www}/config/globals.js | 0 {www => web_db/www}/config/http.js | 0 {www => web_db/www}/config/i18n.js | 0 {www => web_db/www}/config/local.js | 0 {www => web_db/www}/config/locales/_README.md | 0 {www => web_db/www}/config/locales/de.json | 0 {www => web_db/www}/config/locales/en.json | 0 {www => web_db/www}/config/locales/es.json | 0 {www => web_db/www}/config/locales/fr.json | 0 {www => web_db/www}/config/log.js | 0 {www => web_db/www}/config/models.js | 0 {www => web_db/www}/config/orm.js | 0 {www => web_db/www}/config/policies.js | 0 {www => web_db/www}/config/pubsub.js | 0 {www => web_db/www}/config/routes.js | 0 {www => web_db/www}/config/session.js | 0 {www => web_db/www}/config/sockets.js | 0 .../www}/config/ssl/hplumberjack.crt | 0 .../www}/config/ssl/hplumberjack.csr | 0 .../www}/config/ssl/hplumberjack.key | 0 {www => web_db/www}/config/ssl/root.txt | 0 {www => web_db/www}/config/views.js | 0 {www => web_db/www}/package.json | 0 web_db/www/public/fonts/less/bootstrap.less | 56 + {www => web_db/www}/tasks/README.md | 0 {www => web_db/www}/tasks/config/bower.js | 0 {www => web_db/www}/tasks/config/clean.js | 0 {www => web_db/www}/tasks/config/coffee.js | 0 {www => web_db/www}/tasks/config/concat.js | 0 {www => web_db/www}/tasks/config/copy.js | 0 {www => web_db/www}/tasks/config/cssmin.js | 0 {www => web_db/www}/tasks/config/jst.js | 0 {www => web_db/www}/tasks/config/less.js | 0 .../www}/tasks/config/sails-linker.js | 0 {www => web_db/www}/tasks/config/sync.js | 0 {www => web_db/www}/tasks/config/uglify.js | 0 {www => web_db/www}/tasks/config/watch.js | 0 {www => web_db/www}/tasks/pipeline.js | 0 {www => web_db/www}/tasks/register/build.js | 0 .../www}/tasks/register/buildProd.js | 0 .../www}/tasks/register/compileAssets.js | 0 {www => web_db/www}/tasks/register/default.js | 0 .../www}/tasks/register/linkAssets.js | 0 .../www}/tasks/register/linkAssetsBuild.js | 0 .../tasks/register/linkAssetsBuildProd.js | 0 {www => web_db/www}/tasks/register/prod.js | 0 .../www}/tasks/register/syncAssets.js | 0 {www => web_db/www}/views/403.ejs | 0 {www => web_db/www}/views/404.ejs | 0 {www => web_db/www}/views/500.ejs | 0 {www => web_db/www}/views/dashboard.ejs | 0 {www => web_db/www}/views/homepage.bak.ejs | 0 {www => web_db/www}/views/homepage.ejs | 0 {www => web_db/www}/views/layout.ejs | 0 722 files changed, 173546 insertions(+), 548 deletions(-) delete mode 100644 .remote-sync.json delete mode 100644 TagServer.mwb create mode 100644 daq/Dockerfile rename sampleData.py => daq/sampleData.py (96%) create mode 100644 daq/tag/.gitmodules rename www/api/controllers/.gitkeep => daq/tag/__init__.py (100%) create mode 100644 daq/tag/alarm.py rename www/api/models/.gitkeep => daq/tag/micro800/__init__.py (100%) create mode 100644 daq/tag/micro800/micro800.py create mode 100644 daq/tag/micro800/pycomm_micro/__init__.py create mode 100644 daq/tag/micro800/pycomm_micro/ab_comm/__init__.py create mode 100644 daq/tag/micro800/pycomm_micro/ab_comm/clx.py create mode 100644 daq/tag/micro800/pycomm_micro/ab_comm/slc.py create mode 100644 daq/tag/micro800/pycomm_micro/cip/__init__.py create mode 100644 daq/tag/micro800/pycomm_micro/cip/cip_base.py create mode 100644 daq/tag/micro800/pycomm_micro/cip/cip_const.py create mode 100644 daq/tag/micro800/pycomm_micro/common.py create mode 100644 daq/tag/tag.py rename taglogger.py => daq/taglogger.py (94%) delete mode 100644 dbcreate_MySQL.sql delete mode 100644 dbcreate_SQLite.sql delete mode 100755 init/tagserver delete mode 100644 mysql_cfg.pickle delete mode 100644 pickle_mysql_config.py delete mode 160000 tag delete mode 100644 tagserver.py delete mode 100644 tagserver_MySQL.py delete mode 100644 tagserver_SQLite.py rename Dockerfile => web_db/Dockerfile (57%) rename mysql-install.sh => web_db/mysql-install.sh (100%) rename startup.sh => web_db/startup.sh (100%) rename taglogger_db_structure.sql => web_db/taglogger_db_structure.sql (100%) rename {www/assets => web_db/www/.tmp/public}/favicon.ico (100%) create mode 100644 web_db/www/.tmp/public/filestorage/0ab0fea3-a7ea-405a-97a5-1bbc14abddcc.pdf create mode 100644 web_db/www/.tmp/public/filestorage/0cc46cfe-02a3-41e4-aceb-895057bba1a6.pdf create mode 100644 web_db/www/.tmp/public/filestorage/1fa167cd-f688-4ea0-a234-901059769e27.pdf rename www/assets/images/logo.png => web_db/www/.tmp/public/filestorage/2e847f21-925d-48dc-ae39-1df681992bcd.png (100%) create mode 100644 web_db/www/.tmp/public/filestorage/467b4b28-442c-474f-8a18-41efae4bad43.pdf create mode 100644 web_db/www/.tmp/public/filestorage/85b96b93-8cdb-4655-b620-e5971db09f4c.xlsx rename {www/assets => web_db/www/.tmp/public}/fonts/FontAwesome.otf (100%) rename {www/assets => web_db/www/.tmp/public}/fonts/fontawesome-webfont.eot (100%) rename {www/assets => web_db/www/.tmp/public}/fonts/fontawesome-webfont.svg (100%) rename {www/assets => web_db/www/.tmp/public}/fonts/fontawesome-webfont.ttf (100%) rename {www/assets => web_db/www/.tmp/public}/fonts/fontawesome-webfont.woff (100%) rename {www/assets => web_db/www/.tmp/public}/fonts/fontawesome-webfont.woff2 (100%) rename {www/assets => web_db/www/.tmp/public}/images/icons/_blank.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/_page.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/aac.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/ai.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/aiff.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/avi.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/bmp.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/c.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/cpp.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/css.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/dat.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/dmg.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/doc.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/dotx.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/dwg.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/dxf.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/eps.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/exe.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/flv.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/gif.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/h.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/hpp.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/html.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/ics.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/iso.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/java.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/jpg.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/js.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/key.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/less.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/mid.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/mp3.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/mp4.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/mpg.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/odf.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/ods.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/odt.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/otp.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/ots.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/ott.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/pdf.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/php.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/png.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/ppt.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/psd.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/py.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/qt.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/rar.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/rb.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/rtf.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/sass.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/scss.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/sql.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/tga.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/tgz.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/tiff.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/txt.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/wav.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/xls.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/xlsx.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/xml.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/yml.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/icons/zip.png (100%) mode change 100755 => 100644 rename {www/assets => web_db/www/.tmp/public}/images/loading.gif (100%) create mode 100644 web_db/www/.tmp/public/images/logo.png create mode 100644 web_db/www/.tmp/public/js/LineChart.js create mode 100644 web_db/www/.tmp/public/js/angular-route.js create mode 100644 web_db/www/.tmp/public/js/angular.js rename {www/assets => web_db/www/.tmp/public}/js/dependencies/d3.min.js (100%) rename {www/assets => web_db/www/.tmp/public}/js/dependencies/sails.io.js (100%) rename {www/assets => web_db/www/.tmp/public}/js/dependencies/sugar.min.js (100%) create mode 100644 web_db/www/.tmp/public/js/dist/angular-sails.js create mode 100644 web_db/www/.tmp/public/js/dist/jquery.js create mode 100644 web_db/www/.tmp/public/js/dist/js/bootstrap.js create mode 100644 web_db/www/.tmp/public/js/dist/ng-quick-date.js create mode 100644 web_db/www/.tmp/public/js/dist/sails.io.js create mode 100644 web_db/www/.tmp/public/js/justgage.js create mode 100644 web_db/www/.tmp/public/js/ng-justgage.js rename {www/assets => web_db/www/.tmp/public}/js/ng/controller_config.js (100%) rename {www/assets => web_db/www/.tmp/public}/js/ng/controller_dashboard.js (100%) rename {www/assets => web_db/www/.tmp/public}/js/ng/controller_doc.js (100%) rename {www/assets => web_db/www/.tmp/public}/js/ng/controller_main.js (100%) rename {www/assets => web_db/www/.tmp/public}/js/ng/controller_tagVals.js (100%) rename {www/assets => web_db/www/.tmp/public}/js/ng/controller_tags.js (100%) rename {www/assets => web_db/www/.tmp/public}/js/ng/factory_config.js (100%) rename {www/assets => web_db/www/.tmp/public}/js/ng/factory_dateConversion.js (100%) rename {www/assets => web_db/www/.tmp/public}/js/ng/factory_devices.js (100%) rename {www/assets => web_db/www/.tmp/public}/js/ng/factory_docs.js (100%) rename {www/assets => web_db/www/.tmp/public}/js/ng/factory_page.js (100%) rename {www/assets => web_db/www/.tmp/public}/js/ng/factory_tags.js (100%) rename {www/assets => web_db/www/.tmp/public}/js/ng/router.js (100%) create mode 100644 web_db/www/.tmp/public/js/raphael.js create mode 100644 web_db/www/.tmp/public/jst.js rename {www/public/fonts => web_db/www/.tmp/public}/less/bootstrap.less (100%) create mode 100644 web_db/www/.tmp/public/less/font-awesome.less rename {www/assets => web_db/www/.tmp/public}/robots.txt (100%) create mode 100644 web_db/www/.tmp/public/scss/font-awesome.scss create mode 100644 web_db/www/.tmp/public/styles/LineChart.css rename {www/assets => web_db/www/.tmp/public}/styles/app.css (100%) rename {www/assets => web_db/www/.tmp/public}/styles/bootstrap-theme.min.css (100%) rename {www/assets => web_db/www/.tmp/public}/styles/bootstrap.min.css (100%) create mode 100644 web_db/www/.tmp/public/styles/dist/ng-quick-date-default-theme.css create mode 100644 web_db/www/.tmp/public/styles/dist/ng-quick-date.css rename {www/assets => web_db/www/.tmp/public}/styles/font-awesome.min.css (100%) create mode 100644 web_db/www/.tmp/public/styles/importer.css rename {www/assets => web_db/www/.tmp/public}/templates/config.html (100%) rename {www/assets => web_db/www/.tmp/public}/templates/dashboard.html (100%) rename {www/assets => web_db/www/.tmp/public}/templates/docs.html (100%) rename {www/assets => web_db/www/.tmp/public}/templates/tagVals.html (100%) rename {www/assets => web_db/www/.tmp/public}/templates/tags.html (100%) create mode 100644 web_db/www/.tmp/uploads/assets/filestorage/18af1288-2a8a-4b17-a164-d482989f579b.png rename {www => web_db/www}/Gruntfile.js (100%) rename {www => web_db/www}/README.md (100%) rename {www/api/services => web_db/www/api/controllers}/.gitkeep (100%) rename {www => web_db/www}/api/controllers/ConfigController.js (100%) rename {www => web_db/www}/api/controllers/Data_typeController.js (100%) rename {www => web_db/www}/api/controllers/DeviceController.js (100%) rename {www => web_db/www}/api/controllers/Device_typeController.js (100%) rename {www => web_db/www}/api/controllers/DocController.js (100%) rename {www => web_db/www}/api/controllers/TagController.js (100%) rename {www => web_db/www}/api/controllers/Tag_classController.js (100%) rename {www => web_db/www}/api/controllers/Tag_valController.js (100%) rename {www/assets/images => web_db/www/api/models}/.gitkeep (100%) rename {www => web_db/www}/api/models/Config.js (100%) rename {www => web_db/www}/api/models/Data_type.js (100%) rename {www => web_db/www}/api/models/Device.js (100%) rename {www => web_db/www}/api/models/Device_type.js (100%) rename {www => web_db/www}/api/models/Doc.js (100%) rename {www => web_db/www}/api/models/Tag.js (100%) rename {www => web_db/www}/api/models/Tag_class.js (100%) rename {www => web_db/www}/api/models/Tag_val.js (100%) rename {www => web_db/www}/api/policies/sessionAuth.js (100%) rename {www => web_db/www}/api/responses/badRequest.js (100%) rename {www => web_db/www}/api/responses/created.js (100%) rename {www => web_db/www}/api/responses/forbidden.js (100%) rename {www => web_db/www}/api/responses/notFound.js (100%) rename {www => web_db/www}/api/responses/ok.js (100%) rename {www => web_db/www}/api/responses/serverError.js (100%) rename {www/assets/templates => web_db/www/api/services}/.gitkeep (100%) rename {www => web_db/www}/app.js (100%) create mode 100644 web_db/www/assets/favicon.ico create mode 100644 web_db/www/assets/filestorage/0ab0fea3-a7ea-405a-97a5-1bbc14abddcc.pdf create mode 100644 web_db/www/assets/filestorage/0cc46cfe-02a3-41e4-aceb-895057bba1a6.pdf create mode 100644 web_db/www/assets/filestorage/1fa167cd-f688-4ea0-a234-901059769e27.pdf create mode 100644 web_db/www/assets/filestorage/2e847f21-925d-48dc-ae39-1df681992bcd.png create mode 100644 web_db/www/assets/filestorage/467b4b28-442c-474f-8a18-41efae4bad43.pdf create mode 100644 web_db/www/assets/filestorage/85b96b93-8cdb-4655-b620-e5971db09f4c.xlsx create mode 100644 web_db/www/assets/fonts/FontAwesome.otf create mode 100644 web_db/www/assets/fonts/fontawesome-webfont.eot create mode 100644 web_db/www/assets/fonts/fontawesome-webfont.svg create mode 100644 web_db/www/assets/fonts/fontawesome-webfont.ttf create mode 100644 web_db/www/assets/fonts/fontawesome-webfont.woff create mode 100644 web_db/www/assets/fonts/fontawesome-webfont.woff2 create mode 100644 web_db/www/assets/images/.gitkeep create mode 100755 web_db/www/assets/images/icons/_blank.png create mode 100755 web_db/www/assets/images/icons/_page.png create mode 100755 web_db/www/assets/images/icons/aac.png create mode 100755 web_db/www/assets/images/icons/ai.png create mode 100755 web_db/www/assets/images/icons/aiff.png create mode 100755 web_db/www/assets/images/icons/avi.png create mode 100755 web_db/www/assets/images/icons/bmp.png create mode 100755 web_db/www/assets/images/icons/c.png create mode 100755 web_db/www/assets/images/icons/cpp.png create mode 100755 web_db/www/assets/images/icons/css.png create mode 100755 web_db/www/assets/images/icons/dat.png create mode 100755 web_db/www/assets/images/icons/dmg.png create mode 100755 web_db/www/assets/images/icons/doc.png create mode 100755 web_db/www/assets/images/icons/dotx.png create mode 100755 web_db/www/assets/images/icons/dwg.png create mode 100755 web_db/www/assets/images/icons/dxf.png create mode 100755 web_db/www/assets/images/icons/eps.png create mode 100755 web_db/www/assets/images/icons/exe.png create mode 100755 web_db/www/assets/images/icons/flv.png create mode 100755 web_db/www/assets/images/icons/gif.png create mode 100755 web_db/www/assets/images/icons/h.png create mode 100755 web_db/www/assets/images/icons/hpp.png create mode 100755 web_db/www/assets/images/icons/html.png create mode 100755 web_db/www/assets/images/icons/ics.png create mode 100755 web_db/www/assets/images/icons/iso.png create mode 100755 web_db/www/assets/images/icons/java.png create mode 100755 web_db/www/assets/images/icons/jpg.png create mode 100755 web_db/www/assets/images/icons/js.png create mode 100755 web_db/www/assets/images/icons/key.png create mode 100755 web_db/www/assets/images/icons/less.png create mode 100755 web_db/www/assets/images/icons/mid.png create mode 100755 web_db/www/assets/images/icons/mp3.png create mode 100755 web_db/www/assets/images/icons/mp4.png create mode 100755 web_db/www/assets/images/icons/mpg.png create mode 100755 web_db/www/assets/images/icons/odf.png create mode 100755 web_db/www/assets/images/icons/ods.png create mode 100755 web_db/www/assets/images/icons/odt.png create mode 100755 web_db/www/assets/images/icons/otp.png create mode 100755 web_db/www/assets/images/icons/ots.png create mode 100755 web_db/www/assets/images/icons/ott.png create mode 100755 web_db/www/assets/images/icons/pdf.png create mode 100755 web_db/www/assets/images/icons/php.png create mode 100755 web_db/www/assets/images/icons/png.png create mode 100755 web_db/www/assets/images/icons/ppt.png create mode 100755 web_db/www/assets/images/icons/psd.png create mode 100755 web_db/www/assets/images/icons/py.png create mode 100755 web_db/www/assets/images/icons/qt.png create mode 100755 web_db/www/assets/images/icons/rar.png create mode 100755 web_db/www/assets/images/icons/rb.png create mode 100755 web_db/www/assets/images/icons/rtf.png create mode 100755 web_db/www/assets/images/icons/sass.png create mode 100755 web_db/www/assets/images/icons/scss.png create mode 100755 web_db/www/assets/images/icons/sql.png create mode 100755 web_db/www/assets/images/icons/tga.png create mode 100755 web_db/www/assets/images/icons/tgz.png create mode 100755 web_db/www/assets/images/icons/tiff.png create mode 100755 web_db/www/assets/images/icons/txt.png create mode 100755 web_db/www/assets/images/icons/wav.png create mode 100755 web_db/www/assets/images/icons/xls.png create mode 100755 web_db/www/assets/images/icons/xlsx.png create mode 100755 web_db/www/assets/images/icons/xml.png create mode 100755 web_db/www/assets/images/icons/yml.png create mode 100755 web_db/www/assets/images/icons/zip.png create mode 100644 web_db/www/assets/images/loading.gif create mode 100644 web_db/www/assets/images/logo.png create mode 100644 web_db/www/assets/js/dependencies/d3.min.js create mode 100644 web_db/www/assets/js/dependencies/sails.io.js create mode 100644 web_db/www/assets/js/dependencies/sugar.min.js create mode 100644 web_db/www/assets/js/ng/controller_config.js create mode 100644 web_db/www/assets/js/ng/controller_dashboard.js create mode 100644 web_db/www/assets/js/ng/controller_doc.js create mode 100644 web_db/www/assets/js/ng/controller_main.js create mode 100644 web_db/www/assets/js/ng/controller_tagVals.js create mode 100644 web_db/www/assets/js/ng/controller_tags.js create mode 100644 web_db/www/assets/js/ng/factory_config.js create mode 100644 web_db/www/assets/js/ng/factory_dateConversion.js create mode 100644 web_db/www/assets/js/ng/factory_devices.js create mode 100644 web_db/www/assets/js/ng/factory_docs.js create mode 100644 web_db/www/assets/js/ng/factory_page.js create mode 100644 web_db/www/assets/js/ng/factory_tags.js create mode 100644 web_db/www/assets/js/ng/router.js create mode 100644 web_db/www/assets/robots.txt create mode 100644 web_db/www/assets/styles/app.css create mode 100644 web_db/www/assets/styles/bootstrap-theme.min.css create mode 100644 web_db/www/assets/styles/bootstrap.min.css create mode 100644 web_db/www/assets/styles/font-awesome.min.css rename {www => web_db/www}/assets/styles/importer.less (100%) create mode 100644 web_db/www/assets/templates/.gitkeep create mode 100644 web_db/www/assets/templates/config.html create mode 100644 web_db/www/assets/templates/dashboard.html create mode 100644 web_db/www/assets/templates/docs.html create mode 100644 web_db/www/assets/templates/tagVals.html create mode 100644 web_db/www/assets/templates/tags.html rename {www => web_db/www}/bower.json (100%) create mode 100644 web_db/www/bower_components/angular-justgage/.bower.json create mode 100644 web_db/www/bower_components/angular-justgage/LICENSE create mode 100644 web_db/www/bower_components/angular-justgage/bower.json create mode 100644 web_db/www/bower_components/angular-justgage/ng-justgage.js create mode 100644 web_db/www/bower_components/angular-route/.bower.json create mode 100644 web_db/www/bower_components/angular-route/README.md create mode 100644 web_db/www/bower_components/angular-route/angular-route.js create mode 100644 web_db/www/bower_components/angular-route/angular-route.min.js create mode 100644 web_db/www/bower_components/angular-route/angular-route.min.js.map create mode 100644 web_db/www/bower_components/angular-route/bower.json create mode 100644 web_db/www/bower_components/angular-route/index.js create mode 100644 web_db/www/bower_components/angular-route/package.json create mode 100644 web_db/www/bower_components/angular-sails/.bower.json create mode 100644 web_db/www/bower_components/angular-sails/LICENSE create mode 100644 web_db/www/bower_components/angular-sails/README.md create mode 100644 web_db/www/bower_components/angular-sails/bower.json create mode 100644 web_db/www/bower_components/angular-sails/dist/angular-sails.js create mode 100644 web_db/www/bower_components/angular-sails/dist/angular-sails.min.js create mode 100644 web_db/www/bower_components/angular-sails/files.js create mode 100644 web_db/www/bower_components/angular-sails/karma.conf.js create mode 100644 web_db/www/bower_components/angular-sails/src/ngSails.js create mode 100644 web_db/www/bower_components/angular-sails/src/service/angular-sails.js create mode 100644 web_db/www/bower_components/angular/.bower.json create mode 100644 web_db/www/bower_components/angular/README.md create mode 100644 web_db/www/bower_components/angular/angular-csp.css create mode 100644 web_db/www/bower_components/angular/angular.js create mode 100644 web_db/www/bower_components/angular/angular.min.js create mode 100644 web_db/www/bower_components/angular/angular.min.js.gzip create mode 100644 web_db/www/bower_components/angular/angular.min.js.map create mode 100644 web_db/www/bower_components/angular/bower.json create mode 100644 web_db/www/bower_components/angular/index.js create mode 100644 web_db/www/bower_components/angular/package.json create mode 100644 web_db/www/bower_components/bootstrap/.bower.json create mode 100644 web_db/www/bower_components/bootstrap/CHANGELOG.md create mode 100644 web_db/www/bower_components/bootstrap/Gruntfile.js create mode 100644 web_db/www/bower_components/bootstrap/LICENSE create mode 100644 web_db/www/bower_components/bootstrap/README.md create mode 100644 web_db/www/bower_components/bootstrap/bower.json create mode 100644 web_db/www/bower_components/bootstrap/dist/css/bootstrap-theme.css create mode 100644 web_db/www/bower_components/bootstrap/dist/css/bootstrap-theme.css.map create mode 100644 web_db/www/bower_components/bootstrap/dist/css/bootstrap-theme.min.css create mode 100644 web_db/www/bower_components/bootstrap/dist/css/bootstrap-theme.min.css.map create mode 100644 web_db/www/bower_components/bootstrap/dist/css/bootstrap.css create mode 100644 web_db/www/bower_components/bootstrap/dist/css/bootstrap.css.map create mode 100644 web_db/www/bower_components/bootstrap/dist/css/bootstrap.min.css create mode 100644 web_db/www/bower_components/bootstrap/dist/css/bootstrap.min.css.map create mode 100644 web_db/www/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot create mode 100644 web_db/www/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.svg create mode 100644 web_db/www/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf create mode 100644 web_db/www/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff create mode 100644 web_db/www/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 create mode 100644 web_db/www/bower_components/bootstrap/dist/js/bootstrap.js create mode 100644 web_db/www/bower_components/bootstrap/dist/js/bootstrap.min.js create mode 100644 web_db/www/bower_components/bootstrap/dist/js/npm.js create mode 100644 web_db/www/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot create mode 100644 web_db/www/bower_components/bootstrap/fonts/glyphicons-halflings-regular.svg create mode 100644 web_db/www/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf create mode 100644 web_db/www/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff create mode 100644 web_db/www/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2 create mode 100644 web_db/www/bower_components/bootstrap/grunt/.jshintrc create mode 100644 web_db/www/bower_components/bootstrap/grunt/bs-commonjs-generator.js create mode 100644 web_db/www/bower_components/bootstrap/grunt/bs-glyphicons-data-generator.js create mode 100644 web_db/www/bower_components/bootstrap/grunt/bs-lessdoc-parser.js create mode 100644 web_db/www/bower_components/bootstrap/grunt/bs-raw-files-generator.js create mode 100644 web_db/www/bower_components/bootstrap/grunt/configBridge.json create mode 100644 web_db/www/bower_components/bootstrap/grunt/sauce_browsers.yml create mode 100644 web_db/www/bower_components/bootstrap/js/.jscsrc create mode 100644 web_db/www/bower_components/bootstrap/js/.jshintrc create mode 100644 web_db/www/bower_components/bootstrap/js/affix.js create mode 100644 web_db/www/bower_components/bootstrap/js/alert.js create mode 100644 web_db/www/bower_components/bootstrap/js/button.js create mode 100644 web_db/www/bower_components/bootstrap/js/carousel.js create mode 100644 web_db/www/bower_components/bootstrap/js/collapse.js create mode 100644 web_db/www/bower_components/bootstrap/js/dropdown.js create mode 100644 web_db/www/bower_components/bootstrap/js/modal.js create mode 100644 web_db/www/bower_components/bootstrap/js/popover.js create mode 100644 web_db/www/bower_components/bootstrap/js/scrollspy.js create mode 100644 web_db/www/bower_components/bootstrap/js/tab.js create mode 100644 web_db/www/bower_components/bootstrap/js/tooltip.js create mode 100644 web_db/www/bower_components/bootstrap/js/transition.js create mode 100644 web_db/www/bower_components/bootstrap/less/.csscomb.json create mode 100644 web_db/www/bower_components/bootstrap/less/.csslintrc create mode 100644 web_db/www/bower_components/bootstrap/less/alerts.less create mode 100644 web_db/www/bower_components/bootstrap/less/badges.less create mode 100644 web_db/www/bower_components/bootstrap/less/bootstrap.less create mode 100644 web_db/www/bower_components/bootstrap/less/breadcrumbs.less create mode 100644 web_db/www/bower_components/bootstrap/less/button-groups.less create mode 100644 web_db/www/bower_components/bootstrap/less/buttons.less create mode 100644 web_db/www/bower_components/bootstrap/less/carousel.less create mode 100644 web_db/www/bower_components/bootstrap/less/close.less create mode 100644 web_db/www/bower_components/bootstrap/less/code.less create mode 100644 web_db/www/bower_components/bootstrap/less/component-animations.less create mode 100644 web_db/www/bower_components/bootstrap/less/dropdowns.less create mode 100644 web_db/www/bower_components/bootstrap/less/forms.less create mode 100644 web_db/www/bower_components/bootstrap/less/glyphicons.less create mode 100644 web_db/www/bower_components/bootstrap/less/grid.less create mode 100644 web_db/www/bower_components/bootstrap/less/input-groups.less create mode 100644 web_db/www/bower_components/bootstrap/less/jumbotron.less create mode 100644 web_db/www/bower_components/bootstrap/less/labels.less create mode 100644 web_db/www/bower_components/bootstrap/less/list-group.less create mode 100644 web_db/www/bower_components/bootstrap/less/media.less create mode 100644 web_db/www/bower_components/bootstrap/less/mixins.less create mode 100644 web_db/www/bower_components/bootstrap/less/mixins/alerts.less create mode 100644 web_db/www/bower_components/bootstrap/less/mixins/background-variant.less create mode 100644 web_db/www/bower_components/bootstrap/less/mixins/border-radius.less create mode 100644 web_db/www/bower_components/bootstrap/less/mixins/buttons.less create mode 100644 web_db/www/bower_components/bootstrap/less/mixins/center-block.less create mode 100644 web_db/www/bower_components/bootstrap/less/mixins/clearfix.less create mode 100644 web_db/www/bower_components/bootstrap/less/mixins/forms.less create mode 100644 web_db/www/bower_components/bootstrap/less/mixins/gradients.less create mode 100644 web_db/www/bower_components/bootstrap/less/mixins/grid-framework.less create mode 100644 web_db/www/bower_components/bootstrap/less/mixins/grid.less create mode 100644 web_db/www/bower_components/bootstrap/less/mixins/hide-text.less create mode 100644 web_db/www/bower_components/bootstrap/less/mixins/image.less create mode 100644 web_db/www/bower_components/bootstrap/less/mixins/labels.less create mode 100644 web_db/www/bower_components/bootstrap/less/mixins/list-group.less create mode 100644 web_db/www/bower_components/bootstrap/less/mixins/nav-divider.less create mode 100644 web_db/www/bower_components/bootstrap/less/mixins/nav-vertical-align.less create mode 100644 web_db/www/bower_components/bootstrap/less/mixins/opacity.less create mode 100644 web_db/www/bower_components/bootstrap/less/mixins/pagination.less create mode 100644 web_db/www/bower_components/bootstrap/less/mixins/panels.less create mode 100644 web_db/www/bower_components/bootstrap/less/mixins/progress-bar.less create mode 100644 web_db/www/bower_components/bootstrap/less/mixins/reset-filter.less create mode 100644 web_db/www/bower_components/bootstrap/less/mixins/reset-text.less create mode 100644 web_db/www/bower_components/bootstrap/less/mixins/resize.less create mode 100644 web_db/www/bower_components/bootstrap/less/mixins/responsive-visibility.less create mode 100644 web_db/www/bower_components/bootstrap/less/mixins/size.less create mode 100644 web_db/www/bower_components/bootstrap/less/mixins/tab-focus.less create mode 100644 web_db/www/bower_components/bootstrap/less/mixins/table-row.less create mode 100644 web_db/www/bower_components/bootstrap/less/mixins/text-emphasis.less create mode 100644 web_db/www/bower_components/bootstrap/less/mixins/text-overflow.less create mode 100644 web_db/www/bower_components/bootstrap/less/mixins/vendor-prefixes.less create mode 100644 web_db/www/bower_components/bootstrap/less/modals.less create mode 100644 web_db/www/bower_components/bootstrap/less/navbar.less create mode 100644 web_db/www/bower_components/bootstrap/less/navs.less create mode 100644 web_db/www/bower_components/bootstrap/less/normalize.less create mode 100644 web_db/www/bower_components/bootstrap/less/pager.less create mode 100644 web_db/www/bower_components/bootstrap/less/pagination.less create mode 100644 web_db/www/bower_components/bootstrap/less/panels.less create mode 100644 web_db/www/bower_components/bootstrap/less/popovers.less create mode 100644 web_db/www/bower_components/bootstrap/less/print.less create mode 100644 web_db/www/bower_components/bootstrap/less/progress-bars.less create mode 100644 web_db/www/bower_components/bootstrap/less/responsive-embed.less create mode 100644 web_db/www/bower_components/bootstrap/less/responsive-utilities.less create mode 100644 web_db/www/bower_components/bootstrap/less/scaffolding.less create mode 100644 web_db/www/bower_components/bootstrap/less/tables.less create mode 100644 web_db/www/bower_components/bootstrap/less/theme.less create mode 100644 web_db/www/bower_components/bootstrap/less/thumbnails.less create mode 100644 web_db/www/bower_components/bootstrap/less/tooltip.less create mode 100644 web_db/www/bower_components/bootstrap/less/type.less create mode 100644 web_db/www/bower_components/bootstrap/less/utilities.less create mode 100644 web_db/www/bower_components/bootstrap/less/variables.less create mode 100644 web_db/www/bower_components/bootstrap/less/wells.less create mode 100644 web_db/www/bower_components/bootstrap/nuget/MyGet.ps1 create mode 100644 web_db/www/bower_components/bootstrap/nuget/bootstrap.less.nuspec create mode 100644 web_db/www/bower_components/bootstrap/nuget/bootstrap.nuspec create mode 100644 web_db/www/bower_components/bootstrap/package.js create mode 100644 web_db/www/bower_components/bootstrap/package.json create mode 100644 web_db/www/bower_components/font-awesome/.bower.json create mode 100644 web_db/www/bower_components/font-awesome/.npmignore create mode 100644 web_db/www/bower_components/font-awesome/HELP-US-OUT.txt create mode 100644 web_db/www/bower_components/font-awesome/bower.json create mode 100644 web_db/www/bower_components/font-awesome/css/font-awesome.css create mode 100644 web_db/www/bower_components/font-awesome/css/font-awesome.css.map create mode 100644 web_db/www/bower_components/font-awesome/css/font-awesome.min.css create mode 100644 web_db/www/bower_components/font-awesome/fonts/FontAwesome.otf create mode 100644 web_db/www/bower_components/font-awesome/fonts/fontawesome-webfont.eot create mode 100644 web_db/www/bower_components/font-awesome/fonts/fontawesome-webfont.svg create mode 100644 web_db/www/bower_components/font-awesome/fonts/fontawesome-webfont.ttf create mode 100644 web_db/www/bower_components/font-awesome/fonts/fontawesome-webfont.woff create mode 100644 web_db/www/bower_components/font-awesome/fonts/fontawesome-webfont.woff2 create mode 100644 web_db/www/bower_components/font-awesome/less/animated.less create mode 100644 web_db/www/bower_components/font-awesome/less/bordered-pulled.less create mode 100644 web_db/www/bower_components/font-awesome/less/core.less create mode 100644 web_db/www/bower_components/font-awesome/less/fixed-width.less create mode 100644 web_db/www/bower_components/font-awesome/less/font-awesome.less create mode 100644 web_db/www/bower_components/font-awesome/less/icons.less create mode 100644 web_db/www/bower_components/font-awesome/less/larger.less create mode 100644 web_db/www/bower_components/font-awesome/less/list.less create mode 100644 web_db/www/bower_components/font-awesome/less/mixins.less create mode 100644 web_db/www/bower_components/font-awesome/less/path.less create mode 100644 web_db/www/bower_components/font-awesome/less/rotated-flipped.less create mode 100644 web_db/www/bower_components/font-awesome/less/stacked.less create mode 100644 web_db/www/bower_components/font-awesome/less/variables.less create mode 100644 web_db/www/bower_components/font-awesome/scss/_animated.scss create mode 100644 web_db/www/bower_components/font-awesome/scss/_bordered-pulled.scss create mode 100644 web_db/www/bower_components/font-awesome/scss/_core.scss create mode 100644 web_db/www/bower_components/font-awesome/scss/_fixed-width.scss create mode 100644 web_db/www/bower_components/font-awesome/scss/_icons.scss create mode 100644 web_db/www/bower_components/font-awesome/scss/_larger.scss create mode 100644 web_db/www/bower_components/font-awesome/scss/_list.scss create mode 100644 web_db/www/bower_components/font-awesome/scss/_mixins.scss create mode 100644 web_db/www/bower_components/font-awesome/scss/_path.scss create mode 100644 web_db/www/bower_components/font-awesome/scss/_rotated-flipped.scss create mode 100644 web_db/www/bower_components/font-awesome/scss/_stacked.scss create mode 100644 web_db/www/bower_components/font-awesome/scss/_variables.scss create mode 100644 web_db/www/bower_components/font-awesome/scss/font-awesome.scss create mode 100644 web_db/www/bower_components/jquery/.bower.json create mode 100644 web_db/www/bower_components/jquery/AUTHORS.txt create mode 100644 web_db/www/bower_components/jquery/LICENSE.txt create mode 100644 web_db/www/bower_components/jquery/README.md create mode 100644 web_db/www/bower_components/jquery/bower.json create mode 100644 web_db/www/bower_components/jquery/dist/jquery.js create mode 100644 web_db/www/bower_components/jquery/dist/jquery.min.js create mode 100644 web_db/www/bower_components/jquery/dist/jquery.min.map create mode 100644 web_db/www/bower_components/jquery/dist/jquery.slim.js create mode 100644 web_db/www/bower_components/jquery/dist/jquery.slim.min.js create mode 100644 web_db/www/bower_components/jquery/dist/jquery.slim.min.map create mode 100644 web_db/www/bower_components/jquery/sizzle/LICENSE.txt create mode 100644 web_db/www/bower_components/jquery/sizzle/dist/sizzle.js create mode 100644 web_db/www/bower_components/jquery/sizzle/dist/sizzle.min.js create mode 100644 web_db/www/bower_components/jquery/sizzle/dist/sizzle.min.map create mode 100644 web_db/www/bower_components/jquery/src/.jshintrc create mode 100644 web_db/www/bower_components/jquery/src/ajax.js create mode 100644 web_db/www/bower_components/jquery/src/ajax/jsonp.js create mode 100644 web_db/www/bower_components/jquery/src/ajax/load.js create mode 100644 web_db/www/bower_components/jquery/src/ajax/parseJSON.js create mode 100644 web_db/www/bower_components/jquery/src/ajax/parseXML.js create mode 100644 web_db/www/bower_components/jquery/src/ajax/script.js create mode 100644 web_db/www/bower_components/jquery/src/ajax/var/location.js create mode 100644 web_db/www/bower_components/jquery/src/ajax/var/nonce.js create mode 100644 web_db/www/bower_components/jquery/src/ajax/var/rquery.js create mode 100644 web_db/www/bower_components/jquery/src/ajax/xhr.js create mode 100644 web_db/www/bower_components/jquery/src/attributes.js create mode 100644 web_db/www/bower_components/jquery/src/attributes/attr.js create mode 100644 web_db/www/bower_components/jquery/src/attributes/classes.js create mode 100644 web_db/www/bower_components/jquery/src/attributes/prop.js create mode 100644 web_db/www/bower_components/jquery/src/attributes/support.js create mode 100644 web_db/www/bower_components/jquery/src/attributes/val.js create mode 100644 web_db/www/bower_components/jquery/src/callbacks.js create mode 100644 web_db/www/bower_components/jquery/src/core.js create mode 100644 web_db/www/bower_components/jquery/src/core/DOMEval.js create mode 100644 web_db/www/bower_components/jquery/src/core/access.js create mode 100644 web_db/www/bower_components/jquery/src/core/init.js create mode 100644 web_db/www/bower_components/jquery/src/core/parseHTML.js create mode 100644 web_db/www/bower_components/jquery/src/core/ready.js create mode 100644 web_db/www/bower_components/jquery/src/core/support.js create mode 100644 web_db/www/bower_components/jquery/src/core/var/rsingleTag.js create mode 100644 web_db/www/bower_components/jquery/src/css.js create mode 100644 web_db/www/bower_components/jquery/src/css/addGetHookIf.js create mode 100644 web_db/www/bower_components/jquery/src/css/adjustCSS.js create mode 100644 web_db/www/bower_components/jquery/src/css/curCSS.js create mode 100644 web_db/www/bower_components/jquery/src/css/defaultDisplay.js create mode 100644 web_db/www/bower_components/jquery/src/css/hiddenVisibleSelectors.js create mode 100644 web_db/www/bower_components/jquery/src/css/showHide.js create mode 100644 web_db/www/bower_components/jquery/src/css/support.js create mode 100644 web_db/www/bower_components/jquery/src/css/var/cssExpand.js create mode 100644 web_db/www/bower_components/jquery/src/css/var/getStyles.js create mode 100644 web_db/www/bower_components/jquery/src/css/var/isHidden.js create mode 100644 web_db/www/bower_components/jquery/src/css/var/rmargin.js create mode 100644 web_db/www/bower_components/jquery/src/css/var/rnumnonpx.js create mode 100644 web_db/www/bower_components/jquery/src/css/var/swap.js create mode 100644 web_db/www/bower_components/jquery/src/data.js create mode 100644 web_db/www/bower_components/jquery/src/data/Data.js create mode 100644 web_db/www/bower_components/jquery/src/data/accepts.js create mode 100644 web_db/www/bower_components/jquery/src/data/support.js create mode 100644 web_db/www/bower_components/jquery/src/data/var/acceptData.js create mode 100644 web_db/www/bower_components/jquery/src/data/var/dataPriv.js create mode 100644 web_db/www/bower_components/jquery/src/data/var/dataUser.js create mode 100644 web_db/www/bower_components/jquery/src/deferred.js create mode 100644 web_db/www/bower_components/jquery/src/deferred/exceptionHook.js create mode 100644 web_db/www/bower_components/jquery/src/deprecated.js create mode 100644 web_db/www/bower_components/jquery/src/dimensions.js create mode 100644 web_db/www/bower_components/jquery/src/effects.js create mode 100644 web_db/www/bower_components/jquery/src/effects/Tween.js create mode 100644 web_db/www/bower_components/jquery/src/effects/animatedSelector.js create mode 100644 web_db/www/bower_components/jquery/src/effects/support.js create mode 100644 web_db/www/bower_components/jquery/src/event.js create mode 100644 web_db/www/bower_components/jquery/src/event/ajax.js create mode 100644 web_db/www/bower_components/jquery/src/event/alias.js create mode 100644 web_db/www/bower_components/jquery/src/event/focusin.js create mode 100644 web_db/www/bower_components/jquery/src/event/support.js create mode 100644 web_db/www/bower_components/jquery/src/event/trigger.js create mode 100644 web_db/www/bower_components/jquery/src/exports/amd.js create mode 100644 web_db/www/bower_components/jquery/src/exports/global.js create mode 100644 web_db/www/bower_components/jquery/src/intro.js create mode 100644 web_db/www/bower_components/jquery/src/jquery.js create mode 100644 web_db/www/bower_components/jquery/src/manipulation.js create mode 100644 web_db/www/bower_components/jquery/src/manipulation/_evalUrl.js create mode 100644 web_db/www/bower_components/jquery/src/manipulation/buildFragment.js create mode 100644 web_db/www/bower_components/jquery/src/manipulation/createSafeFragment.js create mode 100644 web_db/www/bower_components/jquery/src/manipulation/getAll.js create mode 100644 web_db/www/bower_components/jquery/src/manipulation/setGlobalEval.js create mode 100644 web_db/www/bower_components/jquery/src/manipulation/support.js create mode 100644 web_db/www/bower_components/jquery/src/manipulation/var/nodeNames.js create mode 100644 web_db/www/bower_components/jquery/src/manipulation/var/rcheckableType.js create mode 100644 web_db/www/bower_components/jquery/src/manipulation/var/rleadingWhitespace.js create mode 100644 web_db/www/bower_components/jquery/src/manipulation/var/rscriptType.js create mode 100644 web_db/www/bower_components/jquery/src/manipulation/var/rtagName.js create mode 100644 web_db/www/bower_components/jquery/src/manipulation/wrapMap.js create mode 100644 web_db/www/bower_components/jquery/src/offset.js create mode 100644 web_db/www/bower_components/jquery/src/outro.js create mode 100644 web_db/www/bower_components/jquery/src/queue.js create mode 100644 web_db/www/bower_components/jquery/src/queue/delay.js create mode 100644 web_db/www/bower_components/jquery/src/selector-native.js create mode 100644 web_db/www/bower_components/jquery/src/selector-sizzle.js create mode 100644 web_db/www/bower_components/jquery/src/selector.js create mode 100644 web_db/www/bower_components/jquery/src/serialize.js create mode 100644 web_db/www/bower_components/jquery/src/support.js create mode 100644 web_db/www/bower_components/jquery/src/traversing.js create mode 100644 web_db/www/bower_components/jquery/src/traversing/findFilter.js create mode 100644 web_db/www/bower_components/jquery/src/traversing/var/dir.js create mode 100644 web_db/www/bower_components/jquery/src/traversing/var/rneedsContext.js create mode 100644 web_db/www/bower_components/jquery/src/traversing/var/siblings.js create mode 100644 web_db/www/bower_components/jquery/src/var/arr.js create mode 100644 web_db/www/bower_components/jquery/src/var/class2type.js create mode 100644 web_db/www/bower_components/jquery/src/var/concat.js create mode 100644 web_db/www/bower_components/jquery/src/var/deletedIds.js create mode 100644 web_db/www/bower_components/jquery/src/var/document.js create mode 100644 web_db/www/bower_components/jquery/src/var/documentElement.js create mode 100644 web_db/www/bower_components/jquery/src/var/hasOwn.js create mode 100644 web_db/www/bower_components/jquery/src/var/indexOf.js create mode 100644 web_db/www/bower_components/jquery/src/var/pnum.js create mode 100644 web_db/www/bower_components/jquery/src/var/push.js create mode 100644 web_db/www/bower_components/jquery/src/var/rcssNum.js create mode 100644 web_db/www/bower_components/jquery/src/var/rnotwhite.js create mode 100644 web_db/www/bower_components/jquery/src/var/slice.js create mode 100644 web_db/www/bower_components/jquery/src/var/support.js create mode 100644 web_db/www/bower_components/jquery/src/var/toString.js create mode 100644 web_db/www/bower_components/jquery/src/wrap.js create mode 100644 web_db/www/bower_components/justgage-toorshia/.bower.json create mode 100644 web_db/www/bower_components/justgage-toorshia/LICENSE create mode 100644 web_db/www/bower_components/justgage-toorshia/bower.json create mode 100644 web_db/www/bower_components/justgage-toorshia/examples/animation-events-hooks.html create mode 100644 web_db/www/bower_components/justgage-toorshia/examples/auto-adjust.htm create mode 100644 web_db/www/bower_components/justgage-toorshia/examples/counter.html create mode 100644 web_db/www/bower_components/justgage-toorshia/examples/custom-interval.htm create mode 100644 web_db/www/bower_components/justgage-toorshia/examples/custom-node.html create mode 100644 web_db/www/bower_components/justgage-toorshia/examples/custom-sectors.html create mode 100644 web_db/www/bower_components/justgage-toorshia/examples/custom-value-renderer.html create mode 100644 web_db/www/bower_components/justgage-toorshia/examples/customize-style.htm create mode 100644 web_db/www/bower_components/justgage-toorshia/examples/defaults.html create mode 100644 web_db/www/bower_components/justgage-toorshia/examples/font-options.html create mode 100644 web_db/www/bower_components/justgage-toorshia/examples/format-number.html create mode 100644 web_db/www/bower_components/justgage-toorshia/examples/html5-data-attribute-config.html create mode 100644 web_db/www/bower_components/justgage-toorshia/examples/human-friendly-numbers.html create mode 100644 web_db/www/bower_components/justgage-toorshia/examples/pointer.html create mode 100644 web_db/www/bower_components/justgage-toorshia/examples/refresh-maximum.html create mode 100644 web_db/www/bower_components/justgage-toorshia/examples/responsive-gauges.htm create mode 100644 web_db/www/bower_components/justgage-toorshia/examples/reverse.html create mode 100644 web_db/www/bower_components/justgage-toorshia/justgage.js create mode 100644 web_db/www/bower_components/justgage-toorshia/package.json create mode 100644 web_db/www/bower_components/justgage-toorshia/raphael-2.1.4.min.js create mode 100644 web_db/www/bower_components/ngQuickDate/.bower.json create mode 100644 web_db/www/bower_components/ngQuickDate/LICENSE.txt create mode 100644 web_db/www/bower_components/ngQuickDate/README.md create mode 100644 web_db/www/bower_components/ngQuickDate/bower.json create mode 100644 web_db/www/bower_components/ngQuickDate/demo.html create mode 100644 web_db/www/bower_components/ngQuickDate/dist/ng-quick-date-default-theme.css create mode 100644 web_db/www/bower_components/ngQuickDate/dist/ng-quick-date-plus-default-theme.css create mode 100644 web_db/www/bower_components/ngQuickDate/dist/ng-quick-date.css create mode 100644 web_db/www/bower_components/ngQuickDate/dist/ng-quick-date.js create mode 100644 web_db/www/bower_components/ngQuickDate/dist/ng-quick-date.min.js create mode 100644 web_db/www/bower_components/raphael/.bower.json create mode 100644 web_db/www/bower_components/raphael/bower.json create mode 100644 web_db/www/bower_components/raphael/dev/amdDev.js create mode 100644 web_db/www/bower_components/raphael/dev/index.js create mode 100644 web_db/www/bower_components/raphael/dev/require.js create mode 100644 web_db/www/bower_components/raphael/license.txt create mode 100644 web_db/www/bower_components/raphael/raphael-min.js create mode 100644 web_db/www/bower_components/raphael/raphael.js create mode 100644 web_db/www/bower_components/sails.io.js/.bower.json create mode 100644 web_db/www/bower_components/sails.io.js/CHANGELOG.md create mode 100644 web_db/www/bower_components/sails.io.js/bower.json create mode 100644 web_db/www/bower_components/sails.io.js/checkGitStatus.js create mode 100644 web_db/www/bower_components/sails.io.js/dist/sails.io.js create mode 100644 web_db/www/bower_components/sails.io.js/sails.io.js rename {www => web_db/www}/config/blueprints.js (100%) rename {www => web_db/www}/config/bootstrap.js (100%) rename {www => web_db/www}/config/connections.js (100%) rename {www => web_db/www}/config/cors.js (100%) rename {www => web_db/www}/config/csrf.js (100%) rename {www => web_db/www}/config/env/development.js (100%) rename {www => web_db/www}/config/env/production.js (100%) rename {www => web_db/www}/config/globals.js (100%) rename {www => web_db/www}/config/http.js (100%) rename {www => web_db/www}/config/i18n.js (100%) rename {www => web_db/www}/config/local.js (100%) rename {www => web_db/www}/config/locales/_README.md (100%) rename {www => web_db/www}/config/locales/de.json (100%) rename {www => web_db/www}/config/locales/en.json (100%) rename {www => web_db/www}/config/locales/es.json (100%) rename {www => web_db/www}/config/locales/fr.json (100%) rename {www => web_db/www}/config/log.js (100%) rename {www => web_db/www}/config/models.js (100%) rename {www => web_db/www}/config/orm.js (100%) rename {www => web_db/www}/config/policies.js (100%) rename {www => web_db/www}/config/pubsub.js (100%) rename {www => web_db/www}/config/routes.js (100%) rename {www => web_db/www}/config/session.js (100%) rename {www => web_db/www}/config/sockets.js (100%) rename {www => web_db/www}/config/ssl/hplumberjack.crt (100%) rename {www => web_db/www}/config/ssl/hplumberjack.csr (100%) rename {www => web_db/www}/config/ssl/hplumberjack.key (100%) rename {www => web_db/www}/config/ssl/root.txt (100%) rename {www => web_db/www}/config/views.js (100%) rename {www => web_db/www}/package.json (100%) create mode 100644 web_db/www/public/fonts/less/bootstrap.less rename {www => web_db/www}/tasks/README.md (100%) rename {www => web_db/www}/tasks/config/bower.js (100%) rename {www => web_db/www}/tasks/config/clean.js (100%) rename {www => web_db/www}/tasks/config/coffee.js (100%) rename {www => web_db/www}/tasks/config/concat.js (100%) rename {www => web_db/www}/tasks/config/copy.js (100%) rename {www => web_db/www}/tasks/config/cssmin.js (100%) rename {www => web_db/www}/tasks/config/jst.js (100%) rename {www => web_db/www}/tasks/config/less.js (100%) rename {www => web_db/www}/tasks/config/sails-linker.js (100%) rename {www => web_db/www}/tasks/config/sync.js (100%) rename {www => web_db/www}/tasks/config/uglify.js (100%) rename {www => web_db/www}/tasks/config/watch.js (100%) rename {www => web_db/www}/tasks/pipeline.js (100%) rename {www => web_db/www}/tasks/register/build.js (100%) rename {www => web_db/www}/tasks/register/buildProd.js (100%) rename {www => web_db/www}/tasks/register/compileAssets.js (100%) rename {www => web_db/www}/tasks/register/default.js (100%) rename {www => web_db/www}/tasks/register/linkAssets.js (100%) rename {www => web_db/www}/tasks/register/linkAssetsBuild.js (100%) rename {www => web_db/www}/tasks/register/linkAssetsBuildProd.js (100%) rename {www => web_db/www}/tasks/register/prod.js (100%) rename {www => web_db/www}/tasks/register/syncAssets.js (100%) rename {www => web_db/www}/views/403.ejs (100%) rename {www => web_db/www}/views/404.ejs (100%) rename {www => web_db/www}/views/500.ejs (100%) rename {www => web_db/www}/views/dashboard.ejs (100%) rename {www => web_db/www}/views/homepage.bak.ejs (100%) rename {www => web_db/www}/views/homepage.ejs (100%) rename {www => web_db/www}/views/layout.ejs (100%) diff --git a/.gitmodules b/.gitmodules index 663a721..e69de29 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +0,0 @@ -[submodule "tag"] - path = tag -url=ssh://git-codecommit.us-east-1.amazonaws.com/v1/repos/POCONSOLE-Tag diff --git a/.remote-sync.json b/.remote-sync.json deleted file mode 100644 index c88f4b3..0000000 --- a/.remote-sync.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "transport": "ftp", - "uploadOnSave": false, - "useAtomicWrites": false, - "deleteLocal": false, - "ignore": [ - ".remote-sync.json", - ".git/**" - ] -} \ No newline at end of file diff --git a/TagServer.mwb b/TagServer.mwb deleted file mode 100644 index e49833ef14cc68a85a7bd43156c5fd49e2e9cd01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10233 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 diff --git a/daq/Dockerfile b/daq/Dockerfile new file mode 100644 index 0000000..7b4d22d --- /dev/null +++ b/daq/Dockerfile @@ -0,0 +1,14 @@ +FROM python:latest + +RUN mkdir /root/tag-logger +COPY taglogger.py /root/tag-logger/taglogger.py +COPY sampleData.py /root/tag-logger/sampleData.py +COPY tag /root/tag-logger/tag + +# RUN wget https://bootstrap.pypa.io/get-pip.py +# RUN python get-pip.py + +RUN pip install requests +RUN git clone https://github.com/ruscito/pycomm.git && cd pycomm && python setup.py install && cd .. + +CMD ["python", "/root/tag-logger/sampleData.py"] diff --git a/sampleData.py b/daq/sampleData.py similarity index 96% rename from sampleData.py rename to daq/sampleData.py index de08f1a..7eeb8dc 100644 --- a/sampleData.py +++ b/daq/sampleData.py @@ -15,7 +15,7 @@ import requests import json # DEFAULTS -web_address = "https://localhost:3000" +web_address = "https://10.10.10.10:3000" scan_rate = 30 # seconds save_all = "test" # use True, False, or any string @@ -63,7 +63,7 @@ def main(): get_tag_request_data = {'where': '{"tag_class": 5}'} get_tag_request = requests.get('{}/tag'.format(web_address), params=get_tag_request_data, verify=False) tags = json.loads(get_tag_request.text) - except Exception, e: + except Exception as e: print("Error getting tags: {}".format(e)) time.sleep(10) main() @@ -74,7 +74,7 @@ def main(): sr_try = json.loads(sr_req.text) if len(sr_try) > 0: scan_rate = int(sr_try[0]['val']) - except Exception, e: + except Exception as e: print("Error getting scan rage: {}".format(e)) print("I'll just use {} seconds as the scan rate...".format(scan_rate)) @@ -87,7 +87,7 @@ def main(): save_all = True elif sa_try[0]['val'].lower() == "false": save_all = False - except Exception, e: + except Exception as e: print("Error getting save-all: {}".format(e)) print("I'll just use {} as the save-all parameter...".format(save_all)) diff --git a/daq/tag/.gitmodules b/daq/tag/.gitmodules new file mode 100644 index 0000000..ccbd1bb --- /dev/null +++ b/daq/tag/.gitmodules @@ -0,0 +1,3 @@ +[submodule "micro800"] + path = micro800 + url = http://patrickjmcd@bitbucket.poconsole.net/scm/poconsole/micro800.git diff --git a/www/api/controllers/.gitkeep b/daq/tag/__init__.py similarity index 100% rename from www/api/controllers/.gitkeep rename to daq/tag/__init__.py diff --git a/daq/tag/alarm.py b/daq/tag/alarm.py new file mode 100644 index 0000000..e3d76b9 --- /dev/null +++ b/daq/tag/alarm.py @@ -0,0 +1,126 @@ +#! /usr/bin/python +# from datetime import datetime +import time +from pycomm.ab_comm.clx import Driver as ClxDriver +import tag.micro800.micro800 as u800 +import requests +import json +# import traceback +# import pickle + +web_address = "http://localhost:3000" + + +def readTag(addr, tag): + time.sleep(0.01) + c = ClxDriver() + if c.open(addr): + try: + v = c.read_tag(tag) + return v + except Exception: + print("ERROR RETRIEVING TAG: {} at {}".format(tag, addr)) + err = c.get_status() + c.close() + print err + pass + c.close() + + +class AnalogAlarm(): + global readTag, con + + def __init__(self, name, tag, db_id, device_type='CLX', ip_address='192.168.1.10'): + self.name = name + self.tag = tag + self.alarm = False + self.warning = False + self.lastAlarmCheckVal = False + self.lastWarningCheckVal = False + self.device_type = device_type + self.readFn = readTag + self.db_id = db_id + if self.device_type == "u800": + self.readFn = u800.readTag + self.ip_address = ip_address + self.condMapFn = { + 20: "Low", + 21: "High", + 24: "LoLo", + 25: "HiHi", + 32: "Input Failure", + 34: "Configuration Error", + 16: "Failure to Stop", + 17: "Failure to Start", + 18: "Drive Fault" + } + + def checkStatus(self, stroke_number): + condition = '' + + self.alarm = self.readFn(self.ip_address, '{}.Alarm'.format(self.tag))[0] > 0 + alarmChanged = not (self.alarm == self.lastAlarmCheckVal) + + self.warning = self.readFn(self.ip_address, '{}.Warning'.format(self.tag))[0] > 0 + warningChanged = not (self.warning == self.lastWarningCheckVal) + + if (alarmChanged and self.alarm) or (warningChanged and self.warning): + condition = self.condMapFn[int(self.readFn(self.ip_address, '{}.Alarm_Code'.format(self.tag))[0])] + value = self.readFn(self.ip_address, '{}.Alarm_Value'.format(self.tag))[0] + triggerType = "Alarm" + if warningChanged: + triggerType = 'Warning' + + data = { + 'alarmID': self.db_id, + 'type': triggerType, + 'cond': condition, + 'value': value, + 'stroke_number': stroke_number + } + + r = requests.post('{}/event'.format(web_address), data=data) + resp = json.loads(r.text) + print("Stored Event {} at {}".format(resp['id'], resp['createdAt'])) + + if warningChanged: + self.lastWarningCheckVal = self.warning + + if alarmChanged: + self.lastAlarmCheckVal = self.alarm + + +class bitAlarm(): + def __init__(self, name, tag, condition, db_id, device_type='CLX', ip_address='192.168.1.10'): + self.name = name + self.tag = tag + self.condition = condition + self.status = False + self.lastStatusCheckVal = False + self.device_type = device_type + self.readFn = readTag + self.db_id = db_id + if self.device_type == "u800": + self.readFn = u800.readTag + self.ip_address = ip_address + + def checkStatus(self, stroke_number): + + self.status = self.readFn(self.ip_address, self.tag)[0] > 0 + statusChanged = not (self.status == self.lastStatusCheckVal) + + if statusChanged and self.status: + data = { + 'alarmID': self.db_id, + 'type': "Info", + 'cond': self.condition, + 'value': 0.0, + 'stroke_number': stroke_number + } + + r = requests.post('{}/event'.format(web_address), data=data) + resp = json.loads(r.text) + print("Stored Event {} at {}".format(resp['id'], resp['createdAt'])) + + if statusChanged: + self.lastStatusCheckVal = self.status diff --git a/www/api/models/.gitkeep b/daq/tag/micro800/__init__.py similarity index 100% rename from www/api/models/.gitkeep rename to daq/tag/micro800/__init__.py diff --git a/daq/tag/micro800/micro800.py b/daq/tag/micro800/micro800.py new file mode 100644 index 0000000..3c690d1 --- /dev/null +++ b/daq/tag/micro800/micro800.py @@ -0,0 +1,119 @@ +from pycomm.ab_comm.clx import Driver as plcDriver +import sys + + +def readMicroTag(addr, tag): + addr = str(addr) + tag = str(tag) + c = plcDriver() + if c.open(addr, True): + try: + v = c.read_tag(tag) + # print(v) + return v + except Exception: + err = c.get_status() + c.close() + print("{} on reading {} from {}".format(err, tag, addr)) + pass + c.close() + + +def getTagType(addr, tag): + addr = str(addr) + tag = str(tag) + c = plcDriver() + if c.open(addr, True): + try: + return c.read_tag(tag)[1] + except Exception: + err = c.get_status() + c.close() + print(err) + pass + c.close() + + +def write(addr, tag, val, t): + addr = str(addr) + tag = str(tag) + c = plcDriver() + if c.open(addr, True): + try: + wt = c.write_tag(tag, val, t) + return wt + except Exception: + err = c.get_status() + c.close() + print("Write Error: {} setting {} at {} to {} type {}".format(err, tag, addr, val, t)) + return False + c.close() + + +def closeEnough(a, b): + return abs(a - b) <= 0.001 + + +def writeMicroTag(addr, tag, val, handshake=None, handshake_val=None): + addr = str(addr) + tag = str(tag) + print("handshake: {}, handshake_val: {}".format(handshake, handshake_val)) + chk_tag = tag + if not(handshake is None) and not(handshake == "None"): + chk_tag = str(handshake) + print("Handshake tag passed, using {}".format(chk_tag)) + chk_val = val + if not (handshake_val is None) and not(handshake_val == "None"): + chk_val = handshake_val + print("Handshake value passed, using {}".format(chk_val)) + attempts_allowed = 5 + attempts = 1 + + while attempts <= attempts_allowed: + try: + attempts = attempts + 1 + cv = readMicroTag(addr, tag) + print("Val Before Write: {}".format(cv)) + if cv: + if cv[1] == "REAL": + val = float(val) + chk_val = float(chk_val) + else: + val = int(val) + chk_val = int(chk_val) + wt = write(addr, tag, val, cv[1]) + if wt: + print("write: {}".format(wt)) + chk = readMicroTag(addr, chk_tag) + if chk: + print("chk: {}, chk_val: {}".format(chk, chk_val)) + if closeEnough(chk[0], chk_val): + return True + except Exception as e: + print(e) + return False + + +def readMicroTagList(addr, tList): + addr = str(addr) + c = plcDriver() + if c.open(addr, True): + vals = [] + try: + for t in tList: + v = c.read_tag(t) + vals.append({"tag": t, "val": v[0], "type": v[1]}) + # print(v) + # print("{0} - {1}".format(t, v)) + except Exception: + err = c.get_status() + c.close() + print(err) + pass + c.close() + return vals +if __name__ == '__main__': + if len(sys.argv) > 2: + print(readMicroTag(sys.argv[1], sys.argv[2])) + else: + print ("Did not pass a target and tag name.") diff --git a/daq/tag/micro800/pycomm_micro/__init__.py b/daq/tag/micro800/pycomm_micro/__init__.py new file mode 100644 index 0000000..8c1f233 --- /dev/null +++ b/daq/tag/micro800/pycomm_micro/__init__.py @@ -0,0 +1 @@ +__author__ = 'agostino' diff --git a/daq/tag/micro800/pycomm_micro/ab_comm/__init__.py b/daq/tag/micro800/pycomm_micro/ab_comm/__init__.py new file mode 100644 index 0000000..28c38a3 --- /dev/null +++ b/daq/tag/micro800/pycomm_micro/ab_comm/__init__.py @@ -0,0 +1,2 @@ +__author__ = 'agostino' +import logging diff --git a/daq/tag/micro800/pycomm_micro/ab_comm/clx.py b/daq/tag/micro800/pycomm_micro/ab_comm/clx.py new file mode 100644 index 0000000..3da5f63 --- /dev/null +++ b/daq/tag/micro800/pycomm_micro/ab_comm/clx.py @@ -0,0 +1,847 @@ +# -*- coding: utf-8 -*- +# +# clx.py - Ethernet/IP Client for Rockwell PLCs +# +# +# Copyright (c) 2014 Agostino Ruscito +# +# 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. +# +from tag.micro800.pycomm_micro.cip.cip_base import * +from tag.micro800.pycomm_micro.common import setup_logger +import logging + + +class Driver(Base): + """ + This Ethernet/IP client is based on Rockwell specification. Please refer to the link below for details. + + http://literature.rockwellautomation.com/idc/groups/literature/documents/pm/1756-pm020_-en-p.pdf + + The following services have been implemented: + - Read Tag Service (0x4c) + - Read Tag Fragment Service (0x52) + - Write Tag Service (0x4d) + - Write Tag Fragment Service (0x53) + - Multiple Service Packet (0x0a) + + The client has been successfully tested with the following PLCs: + - CompactLogix 5330ERM + - CompactLogix 5370 + - ControlLogix 5572 and 1756-EN2T Module + +""" + def __init__(self, debug=False, filename=None): + if debug: + super(Driver, self).__init__(setup_logger('ab_comm.clx', logging.DEBUG, filename)) + else: + super(Driver, self).__init__(setup_logger('ab_comm.clx', logging.INFO, filename)) + + self._buffer = {} + self._get_template_in_progress = False + self.__version__ = '0.2' + + def get_last_tag_read(self): + """ Return the last tag read by a multi request read + + :return: A tuple (tag name, value, type) + """ + return self._last_tag_read + + def get_last_tag_write(self): + """ Return the last tag write by a multi request write + + :return: A tuple (tag name, 'GOOD') if the write was successful otherwise (tag name, 'BAD') + """ + return self._last_tag_write + + def _parse_instance_attribute_list(self, start_tag_ptr, status): + """ extract the tags list from the message received + + :param start_tag_ptr: The point in the message string where the tag list begin + :param status: The status of the message receives + """ + tags_returned = self._reply[start_tag_ptr:] + tags_returned_length = len(tags_returned) + idx = 0 + instance = 0 + count = 0 + try: + while idx < tags_returned_length: + instance = unpack_dint(tags_returned[idx:idx+4]) + idx += 4 + tag_length = unpack_uint(tags_returned[idx:idx+2]) + idx += 2 + tag_name = tags_returned[idx:idx+tag_length] + idx += tag_length + symbol_type = unpack_uint(tags_returned[idx:idx+2]) + idx += 2 + count += 1 + self._tag_list.append({'instance_id': instance, + 'tag_name': tag_name, + 'symbol_type': symbol_type}) + except Exception as e: + raise DataError(e) + + if status == SUCCESS: + self._last_instance = -1 + elif status == 0x06: + self._last_instance = instance + 1 + else: + self._status = (1, 'unknown status during _parse_tag_list') + self._last_instance = -1 + + def _parse_structure_makeup_attributes(self, start_tag_ptr, status): + """ extract the tags list from the message received + + :param start_tag_ptr: The point in the message string where the tag list begin + :param status: The status of the message receives + """ + self._buffer = {} + + if status != SUCCESS: + self._buffer['Error'] = status + return + + attribute = self._reply[start_tag_ptr:] + idx = 4 + try: + if unpack_uint(attribute[idx:idx + 2]) == SUCCESS: + idx += 2 + self._buffer['object_definition_size'] = unpack_dint(attribute[idx:idx + 4]) + else: + self._buffer['Error'] = 'object_definition Error' + return + + idx += 6 + if unpack_uint(attribute[idx:idx + 2]) == SUCCESS: + idx += 2 + self._buffer['structure_size'] = unpack_dint(attribute[idx:idx + 4]) + else: + self._buffer['Error'] = 'structure Error' + return + + idx += 6 + if unpack_uint(attribute[idx:idx + 2]) == SUCCESS: + idx += 2 + self._buffer['member_count'] = unpack_uint(attribute[idx:idx + 2]) + else: + self._buffer['Error'] = 'member_count Error' + return + + idx += 4 + if unpack_uint(attribute[idx:idx + 2]) == SUCCESS: + idx += 2 + self._buffer['structure_handle'] = unpack_uint(attribute[idx:idx + 2]) + else: + self._buffer['Error'] = 'structure_handle Error' + return + + return self._buffer + + except Exception as e: + raise DataError(e) + + def _parse_template(self, start_tag_ptr, status): + """ extract the tags list from the message received + + :param start_tag_ptr: The point in the message string where the tag list begin + :param status: The status of the message receives + """ + tags_returned = self._reply[start_tag_ptr:] + bytes_received = len(tags_returned) + + self._buffer += tags_returned + + if status == SUCCESS: + self._get_template_in_progress = False + + elif status == 0x06: + self._byte_offset += bytes_received + else: + self._status = (1, 'unknown status {0} during _parse_template'.format(status)) + self.logger.warning(self._status) + self._last_instance = -1 + + def _parse_fragment(self, start_ptr, status): + """ parse the fragment returned by a fragment service. + + :param start_ptr: Where the fragment start within the replay + :param status: status field used to decide if keep parsing or stop + """ + try: + data_type = unpack_uint(self._reply[start_ptr:start_ptr+2]) + fragment_returned = self._reply[start_ptr+2:] + except Exception as e: + raise DataError(e) + + fragment_returned_length = len(fragment_returned) + idx = 0 + + while idx < fragment_returned_length: + try: + typ = I_DATA_TYPE[data_type] + value = UNPACK_DATA_FUNCTION[typ](fragment_returned[idx:idx+DATA_FUNCTION_SIZE[typ]]) + idx += DATA_FUNCTION_SIZE[typ] + except Exception as e: + raise DataError(e) + self._tag_list.append((self._last_position, value)) + self._last_position += 1 + + if status == SUCCESS: + self._byte_offset = -1 + elif status == 0x06: + self._byte_offset += fragment_returned_length + else: + self._status = (2, 'unknown status during _parse_fragment') + self._byte_offset = -1 + + def _parse_multiple_request_read(self, tags): + """ parse the message received from a multi request read: + + For each tag parsed, the information extracted includes the tag name, the value read and the data type. + Those information are appended to the tag list as tuple + + :return: the tag list + """ + offset = 50 + position = 50 + try: + number_of_service_replies = unpack_uint(self._reply[offset:offset+2]) + tag_list = [] + for index in range(number_of_service_replies): + position += 2 + start = offset + unpack_uint(self._reply[position:position+2]) + general_status = unpack_usint(self._reply[start+2:start+3]) + + if general_status == 0: + data_type = unpack_uint(self._reply[start+4:start+6]) + value_begin = start + 6 + value_end = value_begin + DATA_FUNCTION_SIZE[I_DATA_TYPE[data_type]] + value = self._reply[value_begin:value_end] + self._last_tag_read = (tags[index], UNPACK_DATA_FUNCTION[I_DATA_TYPE[data_type]](value), + I_DATA_TYPE[data_type]) + else: + self._last_tag_read = (tags[index], None, None) + + tag_list.append(self._last_tag_read) + + return tag_list + except Exception as e: + raise DataError(e) + + def _parse_multiple_request_write(self, tags): + """ parse the message received from a multi request writ: + + For each tag parsed, the information extracted includes the tag name and the status of the writing. + Those information are appended to the tag list as tuple + + :return: the tag list + """ + offset = 50 + position = 50 + try: + number_of_service_replies = unpack_uint(self._reply[offset:offset+2]) + tag_list = [] + for index in range(number_of_service_replies): + position += 2 + start = offset + unpack_uint(self._reply[position:position+2]) + general_status = unpack_usint(self._reply[start+2:start+3]) + + if general_status == 0: + self._last_tag_write = (tags[index] + ('GOOD',)) + else: + self._last_tag_write = (tags[index] + ('BAD',)) + + tag_list.append(self._last_tag_write) + return tag_list + except Exception as e: + raise DataError(e) + + def _check_reply(self): + """ check the replayed message for error + + """ + self._more_packets_available = False + try: + if self._reply is None: + self._status = (3, '%s without reply' % REPLAY_INFO[unpack_dint(self._message[:2])]) + return False + # Get the type of command + typ = unpack_uint(self._reply[:2]) + + # Encapsulation status check + if unpack_dint(self._reply[8:12]) != SUCCESS: + self._status = (3, "{0} reply status:{1}".format(REPLAY_INFO[typ], + SERVICE_STATUS[unpack_dint(self._reply[8:12])])) + return False + + # Command Specific Status check + if typ == unpack_uint(ENCAPSULATION_COMMAND["send_rr_data"]): + status = unpack_usint(self._reply[42:43]) + if status != SUCCESS: + self._status = (3, "send_rr_data reply:{0} - Extend status:{1}".format( + SERVICE_STATUS[status], get_extended_status(self._reply, 42))) + return False + else: + return True + elif typ == unpack_uint(ENCAPSULATION_COMMAND["send_unit_data"]): + status = unpack_usint(self._reply[48:49]) + if unpack_usint(self._reply[46:47]) == I_TAG_SERVICES_REPLY["Read Tag Fragmented"]: + self._parse_fragment(50, status) + return True + if unpack_usint(self._reply[46:47]) == I_TAG_SERVICES_REPLY["Get Instance Attributes List"]: + self._parse_instance_attribute_list(50, status) + return True + if unpack_usint(self._reply[46:47]) == I_TAG_SERVICES_REPLY["Get Attributes"]: + self._parse_structure_makeup_attributes(50, status) + return True + if unpack_usint(self._reply[46:47]) == I_TAG_SERVICES_REPLY["Read Template"] and \ + self._get_template_in_progress: + self._parse_template(50, status) + return True + if status == 0x06: + self._status = (3, "Insufficient Packet Space") + self._more_packets_available = True + elif status != SUCCESS: + self._status = (3, "send_unit_data reply:{0} - Extend status:{1}".format( + SERVICE_STATUS[status], get_extended_status(self._reply, 48))) + return False + else: + return True + + return True + except Exception as e: + raise DataError(e) + + def read_tag(self, tag): + """ read tag from a connected plc + + Possible combination can be passed to this method: + - ('Counts') a single tag name + - (['ControlWord']) a list with one tag or many + - (['parts', 'ControlWord', 'Counts']) + + At the moment there is not a strong validation for the argument passed. The user should verify + the correctness of the format passed. + + :return: None is returned in case of error otherwise the tag list is returned + """ + multi_requests = False + if isinstance(tag, list): + multi_requests = True + + if not self._target_is_connected: + if not self.forward_open(): + self._status = (6, "Target did not connected. read_tag will not be executed.") + self.logger.warning(self._status) + raise Error("Target did not connected. read_tag will not be executed.") + # multi_requests = False + if multi_requests: + rp_list = [] + for t in tag: + rp = create_tag_rp(t, multi_requests=True) + if rp is None: + self._status = (6, "Cannot create tag {0} request packet. read_tag will not be executed.".format(tag)) + raise DataError("Cannot create tag {0} request packet. read_tag will not be executed.".format(tag)) + else: + rp_list.append(chr(TAG_SERVICES_REQUEST['Read Tag']) + rp + pack_uint(1)) + message_request = build_multiple_service(rp_list, Base._get_sequence()) + + else: + rp = create_tag_rp(tag) + if rp is None: + self._status = (6, "Cannot create tag {0} request packet. read_tag will not be executed.".format(tag)) + return None + else: + # Creating the Message Request Packet + message_request = [ + pack_uint(Base._get_sequence()), + chr(TAG_SERVICES_REQUEST['Read Tag']), # the Request Service + chr(len(rp) / 2), # the Request Path Size length in word + rp, # the request path + pack_uint(1) + ] + + if self.send_unit_data( + build_common_packet_format( + DATA_ITEM['Connected'], + ''.join(message_request), + ADDRESS_ITEM['Connection Based'], + addr_data=self._target_cid, + )) is None: + raise DataError("send_unit_data returned not valid data") + + if multi_requests: + return self._parse_multiple_request_read(tag) + else: + # Get the data type + data_type = unpack_uint(self._reply[50:52]) + # print I_DATA_TYPE[data_type] + try: + return UNPACK_DATA_FUNCTION[I_DATA_TYPE[data_type]](self._reply[52:]), I_DATA_TYPE[data_type] + except Exception as e: + raise DataError(e) + + def read_array(self, tag, counts): + """ read array of atomic data type from a connected plc + + At the moment there is not a strong validation for the argument passed. The user should verify + the correctness of the format passed. + + :param tag: the name of the tag to read + :param counts: the number of element to read + :return: None is returned in case of error otherwise the tag list is returned + """ + if not self._target_is_connected: + if not self.forward_open(): + self._status = (7, "Target did not connected. read_tag will not be executed.") + self.logger.warning(self._status) + raise Error("Target did not connected. read_tag will not be executed.") + + self._byte_offset = 0 + self._last_position = 0 + + self._tag_list = [] + while self._byte_offset != -1: + rp = create_tag_rp(tag) + if rp is None: + self._status = (7, "Cannot create tag {0} request packet. read_tag will not be executed.".format(tag)) + return None + else: + # Creating the Message Request Packet + message_request = [ + pack_uint(Base._get_sequence()), + chr(TAG_SERVICES_REQUEST["Read Tag Fragmented"]), # the Request Service + chr(len(rp) / 2), # the Request Path Size length in word + rp, # the request path + pack_uint(counts), + pack_dint(self._byte_offset) + ] + + if self.send_unit_data( + build_common_packet_format( + DATA_ITEM['Connected'], + ''.join(message_request), + ADDRESS_ITEM['Connection Based'], + addr_data=self._target_cid, + )) is None: + raise DataError("send_unit_data returned not valid data") + + return self._tag_list + + def write_tag(self, tag, value=None, typ=None): + """ write tag/tags from a connected plc + + Possible combination can be passed to this method: + - ('tag name', Value, data type) as single parameters or inside a tuple + - ([('tag name', Value, data type), ('tag name2', Value, data type)]) as array of tuples + + At the moment there is not a strong validation for the argument passed. The user should verify + the correctness of the format passed. + + The type accepted are: + - BOOL + - SINT + - INT' + - DINT + - REAL + - LINT + - BYTE + - WORD + - DWORD + - LWORD + + :param tag: tag name, or an array of tuple containing (tag name, value, data type) + :param value: the value to write or none if tag is an array of tuple or a tuple + :param typ: the type of the tag to write or none if tag is an array of tuple or a tuple + :return: None is returned in case of error otherwise the tag list is returned + """ + multi_requests = False + if isinstance(tag, list): + multi_requests = True + + if not self._target_is_connected: + if not self.forward_open(): + self._status = (8, "Target did not connected. write_tag will not be executed.") + self.logger.warning(self._status) + raise Error("Target did not connected. write_tag will not be executed.") + + if multi_requests: + rp_list = [] + tag_to_remove = [] + idx = 0 + for name, value, typ in tag: + # Create the request path to wrap the tag name + rp = create_tag_rp(name, multi_requests=True) + if rp is None: + self._status = (8, "Cannot create tag{0} req. packet. write_tag will not be executed".format(tag)) + return None + else: + try: # Trying to add the rp to the request path list + val = PACK_DATA_FUNCTION[typ](value) + rp_list.append( + chr(TAG_SERVICES_REQUEST['Write Tag']) + + rp + + pack_uint(S_DATA_TYPE[typ]) + + pack_uint(1) + + val + ) + idx += 1 + except (LookupError, struct.error) as e: + self._status = (8, "Tag:{0} type:{1} removed from write list. Error:{2}.".format(name, typ, e)) + + # The tag in idx position need to be removed from the rp list because has some kind of error + tag_to_remove.append(idx) + + # Remove the tags that have not been inserted in the request path list + for position in tag_to_remove: + del tag[position] + # Create the message request + message_request = build_multiple_service(rp_list, Base._get_sequence()) + + else: + if isinstance(tag, tuple): + name, value, typ = tag + else: + name = tag + + rp = create_tag_rp(name) + if rp is None: + self._status = (8, "Cannot create tag {0} request packet. write_tag will not be executed.".format(tag)) + self.logger.warning(self._status) + return None + else: + # Creating the Message Request Packet + message_request = [ + pack_uint(Base._get_sequence()), + chr(TAG_SERVICES_REQUEST["Write Tag"]), # the Request Service + chr(len(rp) / 2), # the Request Path Size length in word + rp, # the request path + pack_uint(S_DATA_TYPE[typ]), # data type + pack_uint(1), # Add the number of tag to write + PACK_DATA_FUNCTION[typ](value) + ] + + ret_val = self.send_unit_data( + build_common_packet_format( + DATA_ITEM['Connected'], + ''.join(message_request), + ADDRESS_ITEM['Connection Based'], + addr_data=self._target_cid, + ) + ) + + if multi_requests: + return self._parse_multiple_request_write(tag) + else: + if ret_val is None: + raise DataError("send_unit_data returned not valid data") + return ret_val + + def write_array(self, tag, data_type, values): + """ write array of atomic data type from a connected plc + + At the moment there is not a strong validation for the argument passed. The user should verify + the correctness of the format passed. + + :param tag: the name of the tag to read + :param data_type: the type of tag to write + :param values: the array of values to write + """ + if not isinstance(values, list): + self._status = (9, "A list of tags must be passed to write_array.") + self.logger.warning(self._status) + raise DataError("A list of tags must be passed to write_array.") + + if not self._target_is_connected: + if not self.forward_open(): + self._status = (9, "Target did not connected. write_array will not be executed.") + self.logger.warning(self._status) + raise Error("Target did not connected. write_array will not be executed.") + + array_of_values = "" + byte_size = 0 + byte_offset = 0 + + for i, value in enumerate(values): + array_of_values += PACK_DATA_FUNCTION[data_type](value) + byte_size += DATA_FUNCTION_SIZE[data_type] + + if byte_size >= 450 or i == len(values)-1: + # create the message and send the fragment + rp = create_tag_rp(tag) + if rp is None: + self._status = (9, "Cannot create tag {0} request packet. \ + write_array will not be executed.".format(tag)) + return None + else: + # Creating the Message Request Packet + message_request = [ + pack_uint(Base._get_sequence()), + chr(TAG_SERVICES_REQUEST["Write Tag Fragmented"]), # the Request Service + chr(len(rp) / 2), # the Request Path Size length in word + rp, # the request path + pack_uint(S_DATA_TYPE[data_type]), # Data type to write + pack_uint(len(values)), # Number of elements to write + pack_dint(byte_offset), + array_of_values # Fragment of elements to write + ] + byte_offset += byte_size + + if self.send_unit_data( + build_common_packet_format( + DATA_ITEM['Connected'], + ''.join(message_request), + ADDRESS_ITEM['Connection Based'], + addr_data=self._target_cid, + )) is None: + raise DataError("send_unit_data returned not valid data") + array_of_values = "" + byte_size = 0 + + def _get_instance_attribute_list_service(self): + """ Step 1: Finding user-created controller scope tags in a Logix5000 controller + + This service returns instance IDs for each created instance of the symbol class, along with a list + of the attribute data associated with the requested attribute + """ + try: + if not self._target_is_connected: + if not self.forward_open(): + self._status = (10, "Target did not connected. get_tag_list will not be executed.") + self.logger.warning(self._status) + raise Error("Target did not connected. get_tag_list will not be executed.") + + self._last_instance = 0 + + self._get_template_in_progress = True + while self._last_instance != -1: + + # Creating the Message Request Packet + + message_request = [ + pack_uint(Base._get_sequence()), + chr(TAG_SERVICES_REQUEST['Get Instance Attributes List']), # STEP 1 + # the Request Path Size length in word + chr(3), + # Request Path ( 20 6B 25 00 Instance ) + CLASS_ID["8-bit"], # Class id = 20 from spec 0x20 + CLASS_CODE["Symbol Object"], # Logical segment: Symbolic Object 0x6B + INSTANCE_ID["16-bit"], # Instance Segment: 16 Bit instance 0x25 + '\x00', + pack_uint(self._last_instance), # The instance + # Request Data + pack_uint(2), # Number of attributes to retrieve + pack_uint(1), # Attribute 1: Symbol name + pack_uint(2) # Attribute 2: Symbol type + ] + + if self.send_unit_data( + build_common_packet_format( + DATA_ITEM['Connected'], + ''.join(message_request), + ADDRESS_ITEM['Connection Based'], + addr_data=self._target_cid, + )) is None: + raise DataError("send_unit_data returned not valid data") + + self._get_template_in_progress = False + + except Exception as e: + raise DataError(e) + + def _get_structure_makeup(self, instance_id): + """ + get the structure makeup for a specific structure + """ + if not self._target_is_connected: + if not self.forward_open(): + self._status = (10, "Target did not connected. get_tag_list will not be executed.") + self.logger.warning(self._status) + raise Error("Target did not connected. get_tag_list will not be executed.") + + message_request = [ + pack_uint(self._get_sequence()), + chr(TAG_SERVICES_REQUEST['Get Attributes']), + chr(3), # Request Path ( 20 6B 25 00 Instance ) + CLASS_ID["8-bit"], # Class id = 20 from spec 0x20 + CLASS_CODE["Template Object"], # Logical segment: Template Object 0x6C + INSTANCE_ID["16-bit"], # Instance Segment: 16 Bit instance 0x25 + '\x00', + pack_uint(instance_id), + pack_uint(4), # Number of attributes + pack_uint(4), # Template Object Definition Size UDINT + pack_uint(5), # Template Structure Size UDINT + pack_uint(2), # Template Member Count UINT + pack_uint(1) # Structure Handle We can use this to read and write UINT + ] + + if self.send_unit_data( + build_common_packet_format(DATA_ITEM['Connected'], + ''.join(message_request), ADDRESS_ITEM['Connection Based'], + addr_data=self._target_cid,)) is None: + raise DataError("send_unit_data returned not valid data") + + return self._buffer + + def _read_template(self, instance_id, object_definition_size): + """ get a list of the tags in the plc + + """ + if not self._target_is_connected: + if not self.forward_open(): + self._status = (10, "Target did not connected. get_tag_list will not be executed.") + self.logger.warning(self._status) + raise Error("Target did not connected. get_tag_list will not be executed.") + + self._byte_offset = 0 + self._buffer = "" + self._get_template_in_progress = True + + try: + while self._get_template_in_progress: + + # Creating the Message Request Packet + + message_request = [ + pack_uint(self._get_sequence()), + chr(TAG_SERVICES_REQUEST['Read Template']), + chr(3), # Request Path ( 20 6B 25 00 Instance ) + CLASS_ID["8-bit"], # Class id = 20 from spec 0x20 + CLASS_CODE["Template Object"], # Logical segment: Template Object 0x6C + INSTANCE_ID["16-bit"], # Instance Segment: 16 Bit instance 0x25 + '\x00', + pack_uint(instance_id), + pack_dint(self._byte_offset), # Offset + pack_uint(((object_definition_size * 4)-23) - self._byte_offset) + ] + + if not self.send_unit_data( + build_common_packet_format(DATA_ITEM['Connected'], ''.join(message_request), + ADDRESS_ITEM['Connection Based'], addr_data=self._target_cid,)): + raise DataError("send_unit_data returned not valid data") + + self._get_template_in_progress = False + return self._buffer + + except Exception as e: + raise DataError(e) + + def _isolating_user_tag(self): + try: + lst = self._tag_list + self._tag_list = [] + for tag in lst: + if tag['tag_name'].find(':') != -1 or tag['tag_name'].find('__') != -1: + continue + if tag['symbol_type'] & 0b0001000000000000: + continue + dimension = tag['symbol_type'] & 0b0110000000000000 >> 13 + template_instance_id = tag['symbol_type'] & 0b0000111111111111 + + if tag['symbol_type'] & 0b1000000000000000 : + tag_type = 'struct' + data_type = 'user-created' + self._tag_list.append({'instance_id': tag['instance_id'], + 'template_instance_id': template_instance_id, + 'tag_name': tag['tag_name'], + 'dim': dimension, + 'tag_type': tag_type, + 'data_type': data_type, + 'template': {}, + 'udt': {}}) + else: + tag_type = 'atomic' + data_type = I_DATA_TYPE[template_instance_id] + self._tag_list.append({'instance_id': tag['instance_id'], + 'tag_name': tag['tag_name'], + 'dim': dimension, + 'tag_type': tag_type, + 'data_type': data_type}) + except Exception as e: + raise DataError(e) + + def _parse_udt_raw(self, tag): + try: + buff = self._read_template(tag['template_instance_id'], tag['template']['object_definition_size']) + member_count = tag['template']['member_count'] + names = buff.split('\00') + lst = [] + + tag['udt']['name'] = 'Not an user defined structure' + for name in names: + if len(name) > 1: + + if name.find(';') != -1: + tag['udt']['name'] = name[:name.find(';')] + elif name.find('ZZZZZZZZZZ') != -1: + continue + elif name.isalpha(): + lst.append(name) + else: + continue + tag['udt']['internal_tags'] = lst + + type_list = [] + + for i in xrange(member_count): + # skip member 1 + + if i != 0: + array_size = unpack_uint(buff[:2]) + try: + data_type = I_DATA_TYPE[unpack_uint(buff[2:4])] + except Exception: + data_type = "None" + + offset = unpack_dint(buff[4:8]) + type_list.append((array_size, data_type, offset)) + + buff = buff[8:] + + tag['udt']['data_type'] = type_list + except Exception as e: + raise DataError(e) + + def get_tag_list(self): + self._tag_list = [] + # Step 1 + self._get_instance_attribute_list_service() + + # Step 2 + self._isolating_user_tag() + + # Step 3 + for tag in self._tag_list: + if tag['tag_type'] == 'struct': + tag['template'] = self._get_structure_makeup(tag['template_instance_id']) + + for idx, tag in enumerate(self._tag_list): + # print (tag) + if tag['tag_type'] == 'struct': + self._parse_udt_raw(tag) + + # Step 4 + + return self._tag_list + + + + diff --git a/daq/tag/micro800/pycomm_micro/ab_comm/slc.py b/daq/tag/micro800/pycomm_micro/ab_comm/slc.py new file mode 100644 index 0000000..ea278ad --- /dev/null +++ b/daq/tag/micro800/pycomm_micro/ab_comm/slc.py @@ -0,0 +1,446 @@ +# -*- coding: utf-8 -*- +# +# clx.py - Ethernet/IP Client for Rockwell PLCs +# +# +# Copyright (c) 2014 Agostino Ruscito +# +# 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. +# +from tag.micro800.pycomm_micro.cip.cip_base import * +from tag.micro800.pycomm_micro.common import setup_logger +import re +import logging +import math + + +def parse_tag(tag): + t = re.search(r"(?P[CT])(?P\d{1,3})" + r"(:)(?P\d{1,3})" + r"(.)(?PACC|PRE|EN|DN|TT|CU|CD|DN|OV|UN|UA)", tag, flags=re.IGNORECASE) + if t: + if (1 <= int(t.group('file_number')) <= 255) \ + and (0 <= int(t.group('element_number')) <= 255): + return True, t.group(0), {'file_type': t.group('file_type').upper(), + 'file_number': t.group('file_number'), + 'element_number': t.group('element_number'), + 'sub_element': PCCC_CT[t.group('sub_element').upper()], + 'read_func': '\xa2', + 'write_func': '\xab', + 'address_field': 3} + + t = re.search(r"(?P[FBN])(?P\d{1,3})" + r"(:)(?P\d{1,3})" + r"(/(?P\d{1,2}))?", + tag, flags=re.IGNORECASE) + if t: + if t.group('sub_element') is not None: + if (1 <= int(t.group('file_number')) <= 255) \ + and (0 <= int(t.group('element_number')) <= 255) \ + and (0 <= int(t.group('sub_element')) <= 15): + + return True, t.group(0), {'file_type': t.group('file_type').upper(), + 'file_number': t.group('file_number'), + 'element_number': t.group('element_number'), + 'sub_element': t.group('sub_element'), + 'read_func': '\xa2', + 'write_func': '\xab', + 'address_field': 3} + else: + if (1 <= int(t.group('file_number')) <= 255) \ + and (0 <= int(t.group('element_number')) <= 255): + + return True, t.group(0), {'file_type': t.group('file_type').upper(), + 'file_number': t.group('file_number'), + 'element_number': t.group('element_number'), + 'sub_element': t.group('sub_element'), + 'read_func': '\xa2', + 'write_func': '\xab', + 'address_field': 2} + + t = re.search(r"(?P[IO])(:)(?P\d{1,3})" + r"(.)(?P\d{1,3})" + r"(/(?P\d{1,2}))?", tag, flags=re.IGNORECASE) + if t: + if t.group('sub_element') is not None: + if (0 <= int(t.group('file_number')) <= 255) \ + and (0 <= int(t.group('element_number')) <= 255) \ + and (0 <= int(t.group('sub_element')) <= 15): + + return True, t.group(0), {'file_type': t.group('file_type').upper(), + 'file_number': t.group('file_number'), + 'element_number': t.group('element_number'), + 'sub_element': t.group('sub_element'), + 'read_func': '\xa2', + 'write_func': '\xab', + 'address_field': 3} + else: + if (0 <= int(t.group('file_number')) <= 255) \ + and (0 <= int(t.group('element_number')) <= 255): + + return True, t.group(0), {'file_type': t.group('file_type').upper(), + 'file_number': t.group('file_number'), + 'element_number': t.group('element_number'), + 'read_func': '\xa2', + 'write_func': '\xab', + 'address_field': 2} + + t = re.search(r"(?PS)" + r"(:)(?P\d{1,3})" + r"(/(?P\d{1,2}))?", tag, flags=re.IGNORECASE) + if t: + if t.group('sub_element') is not None: + if (0 <= int(t.group('element_number')) <= 255) \ + and (0 <= int(t.group('sub_element')) <= 15): + return True, t.group(0), {'file_type': t.group('file_type').upper(), + 'file_number': '2', + 'element_number': t.group('element_number'), + 'sub_element': t.group('sub_element'), + 'read_func': '\xa2', + 'write_func': '\xab', + 'address_field': 3} + else: + if 0 <= int(t.group('element_number')) <= 255: + return True, t.group(0), {'file_type': t.group('file_type').upper(), + 'file_number': '2', + 'element_number': t.group('element_number'), + 'read_func': '\xa2', + 'write_func': '\xab', + 'address_field': 2} + + t = re.search(r"(?PB)(?P\d{1,3})" + r"(/)(?P\d{1,4})", + tag, flags=re.IGNORECASE) + if t: + if (1 <= int(t.group('file_number')) <= 255) \ + and (0 <= int(t.group('element_number')) <= 4095): + bit_position = int(t.group('element_number')) + element_number = bit_position / 16 + sub_element = bit_position - (element_number * 16) + return True, t.group(0), {'file_type': t.group('file_type').upper(), + 'file_number': t.group('file_number'), + 'element_number': element_number, + 'sub_element': sub_element, + 'read_func': '\xa2', + 'write_func': '\xab', + 'address_field': 3} + + return False, tag + + +class Driver(Base): + """ + SLC/PLC_5 Implementation + """ + def __init__(self, debug=False, filename=None): + if debug: + super(Driver, self).__init__(setup_logger('ab_comm.slc', logging.DEBUG, filename)) + else: + super(Driver, self).__init__(setup_logger('ab_comm.slc', logging.INFO, filename)) + + self.__version__ = '0.1' + self._last_sequence = 0 + + def _check_reply(self): + """ + check the replayed message for error + """ + self._more_packets_available = False + try: + if self._reply is None: + self._status = (3, '%s without reply' % REPLAY_INFO[unpack_dint(self._message[:2])]) + return False + # Get the type of command + typ = unpack_uint(self._reply[:2]) + + # Encapsulation status check + if unpack_dint(self._reply[8:12]) != SUCCESS: + self._status = (3, "{0} reply status:{1}".format(REPLAY_INFO[typ], + SERVICE_STATUS[unpack_dint(self._reply[8:12])])) + return False + + # Command Specific Status check + if typ == unpack_uint(ENCAPSULATION_COMMAND["send_rr_data"]): + status = unpack_usint(self._reply[42:43]) + if status != SUCCESS: + self._status = (3, "send_rr_data reply:{0} - Extend status:{1}".format( + SERVICE_STATUS[status], get_extended_status(self._reply, 42))) + return False + else: + return True + + elif typ == unpack_uint(ENCAPSULATION_COMMAND["send_unit_data"]): + status = unpack_usint(self._reply[48:49]) + if unpack_usint(self._reply[46:47]) == I_TAG_SERVICES_REPLY["Read Tag Fragmented"]: + self._parse_fragment(50, status) + return True + if unpack_usint(self._reply[46:47]) == I_TAG_SERVICES_REPLY["Get Instance Attributes List"]: + self._parse_tag_list(50, status) + return True + if status == 0x06: + self._status = (3, "Insufficient Packet Space") + self._more_packets_available = True + elif status != SUCCESS: + self._status = (3, "send_unit_data reply:{0} - Extend status:{1}".format( + SERVICE_STATUS[status], get_extended_status(self._reply, 48))) + return False + else: + return True + + return True + except Exception as e: + raise DataError(e) + + def read_tag(self, tag, n=1): + """ read tag from a connected plc + + Possible combination can be passed to this method: + print c.read_tag('F8:0', 3) return a list of 3 registers starting from F8:0 + print c.read_tag('F8:0') return one value + + It is possible to read status bit + + :return: None is returned in case of error + """ + res = parse_tag(tag) + if not res[0]: + self._status = (1000, "Error parsing the tag passed to read_tag({0},{1})".format(tag, n)) + self.logger.warning(self._status) + raise DataError("Error parsing the tag passed to read_tag({0},{1})".format(tag, n)) + + bit_read = False + bit_position = 0 + sub_element = 0 + if int(res[2]['address_field'] == 3): + bit_read = True + bit_position = int(res[2]['sub_element']) + + if not self._target_is_connected: + if not self.forward_open(): + self._status = (5, "Target did not connected. read_tag will not be executed.") + self.logger.warning(self._status) + raise Error("Target did not connected. read_tag will not be executed.") + + data_size = PCCC_DATA_SIZE[res[2]['file_type']] + + # Creating the Message Request Packet + self._last_sequence = pack_uint(Base._get_sequence()) + + message_request = [ + self._last_sequence, + '\x4b', + '\x02', + CLASS_ID["8-bit"], + PATH["PCCC"], + '\x07', + self.attribs['vid'], + self.attribs['vsn'], + '\x0f', + '\x00', + self._last_sequence[1], + self._last_sequence[0], + res[2]['read_func'], + pack_usint(data_size * n), + pack_usint(int(res[2]['file_number'])), + PCCC_DATA_TYPE[res[2]['file_type']], + pack_usint(int(res[2]['element_number'])), + pack_usint(sub_element) + ] + + self.logger.debug("SLC read_tag({0},{1})".format(tag, n)) + if self.send_unit_data( + build_common_packet_format( + DATA_ITEM['Connected'], + ''.join(message_request), + ADDRESS_ITEM['Connection Based'], + addr_data=self._target_cid,)): + sts = int(unpack_usint(self._reply[58])) + try: + if sts != 0: + sts_txt = PCCC_ERROR_CODE[sts] + self._status = (1000, "Error({0}) returned from read_tag({1},{2})".format(sts_txt, tag, n)) + self.logger.warning(self._status) + raise DataError("Error({0}) returned from read_tag({1},{2})".format(sts_txt, tag, n)) + + new_value = 61 + if bit_read: + if res[2]['file_type'] == 'T' or res[2]['file_type'] == 'C': + if bit_position == PCCC_CT['PRE']: + return UNPACK_PCCC_DATA_FUNCTION[res[2]['file_type']]( + self._reply[new_value+2:new_value+2+data_size]) + elif bit_position == PCCC_CT['ACC']: + return UNPACK_PCCC_DATA_FUNCTION[res[2]['file_type']]( + self._reply[new_value+4:new_value+4+data_size]) + + tag_value = UNPACK_PCCC_DATA_FUNCTION[res[2]['file_type']]( + self._reply[new_value:new_value+data_size]) + return get_bit(tag_value, bit_position) + + else: + values_list = [] + while len(self._reply[new_value:]) >= data_size: + values_list.append( + UNPACK_PCCC_DATA_FUNCTION[res[2]['file_type']](self._reply[new_value:new_value+data_size]) + ) + new_value = new_value+data_size + + if len(values_list) > 1: + return values_list + else: + return values_list[0] + + except Exception as e: + self._status = (1000, "Error({0}) parsing the data returned from read_tag({1},{2})".format(e, tag, n)) + self.logger.warning(self._status) + raise DataError("Error({0}) parsing the data returned from read_tag({1},{2})".format(e, tag, n)) + else: + raise DataError("send_unit_data returned not valid data") + + def write_tag(self, tag, value): + """ write tag from a connected plc + + Possible combination can be passed to this method: + c.write_tag('N7:0', [-30, 32767, -32767]) + c.write_tag('N7:0', 21) + c.read_tag('N7:0', 10) + + It is not possible to write status bit + + :return: None is returned in case of error + """ + res = parse_tag(tag) + if not res[0]: + self._status = (1000, "Error parsing the tag passed to read_tag({0},{1})".format(tag, value)) + self.logger.warning(self._status) + raise DataError("Error parsing the tag passed to read_tag({0},{1})".format(tag, value)) + + if isinstance(value, list) and int(res[2]['address_field'] == 3): + self._status = (1000, "Function's parameters error. read_tag({0},{1})".format(tag, value)) + self.logger.warning(self._status) + raise DataError("Function's parameters error. read_tag({0},{1})".format(tag, value)) + + if isinstance(value, list) and int(res[2]['address_field'] == 3): + self._status = (1000, "Function's parameters error. read_tag({0},{1})".format(tag, value)) + self.logger.warning(self._status) + raise DataError("Function's parameters error. read_tag({0},{1})".format(tag, value)) + + bit_field = False + bit_position = 0 + sub_element = 0 + if int(res[2]['address_field'] == 3): + bit_field = True + bit_position = int(res[2]['sub_element']) + values_list = '' + else: + values_list = '\xff\xff' + + multi_requests = False + if isinstance(value, list): + multi_requests = True + + if not self._target_is_connected: + if not self.forward_open(): + self._status = (1000, "Target did not connected. write_tag will not be executed.") + self.logger.warning(self._status) + raise Error("Target did not connected. write_tag will not be executed.") + + try: + n = 0 + if multi_requests: + data_size = PCCC_DATA_SIZE[res[2]['file_type']] + for v in value: + values_list += PACK_PCCC_DATA_FUNCTION[res[2]['file_type']](v) + n += 1 + else: + n = 1 + if bit_field: + data_size = 2 + + if (res[2]['file_type'] == 'T' or res[2]['file_type'] == 'C') \ + and (bit_position == PCCC_CT['PRE'] or bit_position == PCCC_CT['ACC']): + sub_element = bit_position + values_list = '\xff\xff' + PACK_PCCC_DATA_FUNCTION[res[2]['file_type']](value) + else: + sub_element = 0 + if value > 0: + values_list = pack_uint(math.pow(2, bit_position)) + pack_uint(math.pow(2, bit_position)) + else: + values_list = pack_uint(math.pow(2, bit_position)) + pack_uint(0) + + else: + values_list += PACK_PCCC_DATA_FUNCTION[res[2]['file_type']](value) + data_size = PCCC_DATA_SIZE[res[2]['file_type']] + + except Exception as e: + self._status = (1000, "Error({0}) packing the values to write to the" + "SLC write_tag({1},{2})".format(e, tag, value)) + self.logger.warning(self._status) + raise DataError("Error({0}) packing the values to write to the " + "SLC write_tag({1},{2})".format(e, tag, value)) + + data_to_write = values_list + + # Creating the Message Request Packet + self._last_sequence = pack_uint(Base._get_sequence()) + + message_request = [ + self._last_sequence, + '\x4b', + '\x02', + CLASS_ID["8-bit"], + PATH["PCCC"], + '\x07', + self.attribs['vid'], + self.attribs['vsn'], + '\x0f', + '\x00', + self._last_sequence[1], + self._last_sequence[0], + res[2]['write_func'], + pack_usint(data_size * n), + pack_usint(int(res[2]['file_number'])), + PCCC_DATA_TYPE[res[2]['file_type']], + pack_usint(int(res[2]['element_number'])), + pack_usint(sub_element) + ] + + self.logger.debug("SLC write_tag({0},{1})".format(tag, value)) + if self.send_unit_data( + build_common_packet_format( + DATA_ITEM['Connected'], + ''.join(message_request) + data_to_write, + ADDRESS_ITEM['Connection Based'], + addr_data=self._target_cid,)): + sts = int(unpack_usint(self._reply[58])) + try: + if sts != 0: + sts_txt = PCCC_ERROR_CODE[sts] + self._status = (1000, "Error({0}) returned from SLC write_tag({1},{2})".format(sts_txt, tag, value)) + self.logger.warning(self._status) + raise DataError("Error({0}) returned from SLC write_tag({1},{2})".format(sts_txt, tag, value)) + + return True + except Exception as e: + self._status = (1000, "Error({0}) parsing the data returned from " + "SLC write_tag({1},{2})".format(e, tag, value)) + self.logger.warning(self._status) + raise DataError("Error({0}) parsing the data returned from " + "SLC write_tag({1},{2})".format(e, tag, value)) + else: + raise DataError("send_unit_data returned not valid data") \ No newline at end of file diff --git a/daq/tag/micro800/pycomm_micro/cip/__init__.py b/daq/tag/micro800/pycomm_micro/cip/__init__.py new file mode 100644 index 0000000..8c1f233 --- /dev/null +++ b/daq/tag/micro800/pycomm_micro/cip/__init__.py @@ -0,0 +1 @@ +__author__ = 'agostino' diff --git a/daq/tag/micro800/pycomm_micro/cip/cip_base.py b/daq/tag/micro800/pycomm_micro/cip/cip_base.py new file mode 100644 index 0000000..3c6e253 --- /dev/null +++ b/daq/tag/micro800/pycomm_micro/cip/cip_base.py @@ -0,0 +1,827 @@ +# -*- coding: utf-8 -*- +# +# cip_base.py - A set of classes methods and structures used to implement Ethernet/IP +# +# +# Copyright (c) 2014 Agostino Ruscito +# +# 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. +# + +import struct +import socket + +from os import getpid +from tag.micro800.pycomm_micro.cip.cip_const import * +from tag.micro800.pycomm_micro.common import PycommError + + +class CommError(PycommError): + pass + + +class DataError(PycommError): + pass + + +def pack_sint(n): + return struct.pack('b', n) + + +def pack_usint(n): + return struct.pack('B', n) + + +def pack_int(n): + """pack 16 bit into 2 bytes little endian""" + return struct.pack(' +# +# 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. +# + +ELEMENT_ID = { + "8-bit": '\x28', + "16-bit": '\x29', + "32-bit": '\x2a' +} + +CLASS_ID = { + "8-bit": '\x20', + "16-bit": '\x21', +} + +INSTANCE_ID = { + "8-bit": '\x24', + "16-bit": '\x25' +} + +ATTRIBUTE_ID = { + "8-bit": '\x30', + "16-bit": '\x31' +} + +# Path are combined as: +# CLASS_ID + PATHS +# For example PCCC path is CLASS_ID["8-bit"]+PATH["PCCC"] -> 0x20, 0x67, 0x24, 0x01. +PATH = { + 'Connection Manager': '\x06\x24\x01', + 'Router': '\x02\x24\x01', + 'Backplane Data Type': '\x66\x24\x01', + 'PCCC': '\x67\x24\x01', + 'DHCP Channel A': '\xa6\x24\x01\x01\x2c\x01', + 'DHCP Channel B': '\xa6\x24\x01\x02\x2c\x01' +} + +ENCAPSULATION_COMMAND = { # Volume 2: 2-3.2 Command Field UINT 2 byte + "nop": '\x00\x00', + "list_targets": '\x01\x00', + "list_services": '\x04\x00', + "list_identity": '\x63\x00', + "list_interfaces": '\x64\x00', + "register_session": '\x65\x00', + "unregister_session": '\x66\x00', + "send_rr_data": '\x6F\x00', + "send_unit_data": '\x70\x00' +} + +""" +When a tag is created, an instance of the Symbol Object (Class ID 0x6B) is created +inside the controller. + +When a UDT is created, an instance of the Template object (Class ID 0x6C) is +created to hold information about the structure makeup. +""" +CLASS_CODE = { + "Message Router": '\x02', # Volume 1: 5-1 + "Symbol Object": '\x6b', + "Template Object": '\x6c', + "Connection Manager": '\x06' # Volume 1: 3-5 +} + +CONNECTION_MANAGER_INSTANCE = { + 'Open Request': '\x01', + 'Open Format Rejected': '\x02', + 'Open Resource Rejected': '\x03', + 'Open Other Rejected': '\x04', + 'Close Request': '\x05', + 'Close Format Request': '\x06', + 'Close Other Request': '\x07', + 'Connection Timeout': '\x08' +} + +TAG_SERVICES_REQUEST = { + "Read Tag": 0x4c, + "Read Tag Fragmented": 0x52, + "Write Tag": 0x4d, + "Write Tag Fragmented": 0x53, + "Read Modify Write Tag": 0x4e, + "Multiple Service Packet": 0x0a, + "Get Instance Attributes List": 0x55, + "Get Attributes": 0x03, + "Read Template": 0x4c, +} + +TAG_SERVICES_REPLY = { + 0xcc: "Read Tag", + 0xd2: "Read Tag Fragmented", + 0xcd: "Write Tag", + 0xd3: "Write Tag Fragmented", + 0xce: "Read Modify Write Tag", + 0x8a: "Multiple Service Packet", + 0xd5: "Get Instance Attributes List", + 0x83: "Get Attributes", + 0xcc: "Read Template" +} + + +I_TAG_SERVICES_REPLY = { + "Read Tag": 0xcc, + "Read Tag Fragmented": 0xd2, + "Write Tag": 0xcd, + "Write Tag Fragmented": 0xd3, + "Read Modify Write Tag": 0xce, + "Multiple Service Packet": 0x8a, + "Get Instance Attributes List": 0xd5, + "Get Attributes": 0x83, + "Read Template": 0xcc +} + + +""" +EtherNet/IP Encapsulation Error Codes + +Standard CIP Encapsulation Error returned in the cip message header +""" +STATUS = { + 0x0000: "Success", + 0x0001: "The sender issued an invalid or unsupported encapsulation command", + 0x0002: "Insufficient memory", + 0x0003: "Poorly formed or incorrect data in the data portion", + 0x0064: "An originator used an invalid session handle when sending an encapsulation message to the target", + 0x0065: "The target received a message of invalid length", + 0x0069: "Unsupported Protocol Version" +} + +""" +MSG Error Codes: + +The following error codes have been taken from: + +Rockwell Automation Publication +1756-RM003P-EN-P - December 2014 +""" +SERVICE_STATUS = { + 0x01: "Connection failure (see extended status)", + 0x02: "Insufficient resource", + 0x03: "Invalid value", + 0x04: "IOI syntax error. A syntax error was detected decoding the Request Path (see extended status)", + 0x05: "Destination unknown, class unsupported, instance \nundefined or structure element undefined (see extended status)", + 0x06: "Insufficient Packet Space", + 0x07: "Connection lost", + 0x08: "Service not supported", + 0x09: "Error in data segment or invalid attribute value", + 0x0A: "Attribute list error", + 0x0B: "State already exist", + 0x0C: "Object state conflict", + 0x0D: "Object already exist", + 0x0E: "Attribute not settable", + 0x0F: "Permission denied", + 0x10: "Device state conflict", + 0x11: "Reply data too large", + 0x12: "Fragmentation of a primitive value", + 0x13: "Insufficient command data", + 0x14: "Attribute not supported", + 0x15: "Too much data", + 0x1A: "Bridge request too large", + 0x1B: "Bridge response too large", + 0x1C: "Attribute list shortage", + 0x1D: "Invalid attribute list", + 0x1E: "Request service error", + 0x1F: "Connection related failure (see extended status)", + 0x22: "Invalid reply received", + 0x25: "Key segment error", + 0x26: "Invalid IOI error", + 0x27: "Unexpected attribute in list", + 0x28: "DeviceNet error - invalid member ID", + 0x29: "DeviceNet error - member not settable", + 0xD1: "Module not in run state", + 0xFB: "Message port not supported", + 0xFC: "Message unsupported data type", + 0xFD: "Message uninitialized", + 0xFE: "Message timeout", + 0xff: "General Error (see extended status)" +} + +EXTEND_CODES = { + 0x01: { + 0x0100: "Connection in use", + 0x0103: "Transport not supported", + 0x0106: "Ownership conflict", + 0x0107: "Connection not found", + 0x0108: "Invalid connection type", + 0x0109: "Invalid connection size", + 0x0110: "Module not configured", + 0x0111: "EPR not supported", + 0x0114: "Wrong module", + 0x0115: "Wrong device type", + 0x0116: "Wrong revision", + 0x0118: "Invalid configuration format", + 0x011A: "Application out of connections", + 0x0203: "Connection timeout", + 0x0204: "Unconnected message timeout", + 0x0205: "Unconnected send parameter error", + 0x0206: "Message too large", + 0x0301: "No buffer memory", + 0x0302: "Bandwidth not available", + 0x0303: "No screeners available", + 0x0305: "Signature match", + 0x0311: "Port not available", + 0x0312: "Link address not available", + 0x0315: "Invalid segment type", + 0x0317: "Connection not scheduled" + }, + 0x04: { + 0x0000: "Extended status out of memory", + 0x0001: "Extended status out of instances" + }, + 0x05: { + 0x0000: "Extended status out of memory", + 0x0001: "Extended status out of instances" + }, + 0x1F: { + 0x0203: "Connection timeout" + }, + 0xff: { + 0x7: "Wrong data type", + 0x2001: "Excessive IOI", + 0x2002: "Bad parameter value", + 0x2018: "Semaphore reject", + 0x201B: "Size too small", + 0x201C: "Invalid size", + 0x2100: "Privilege failure", + 0x2101: "Invalid keyswitch position", + 0x2102: "Password invalid", + 0x2103: "No password issued", + 0x2104: "Address out of range", + 0x2105: "Address and how many out of range", + 0x2106: "Data in use", + 0x2107: "Type is invalid or not supported", + 0x2108: "Controller in upload or download mode", + 0x2109: "Attempt to change number of array dimensions", + 0x210A: "Invalid symbol name", + 0x210B: "Symbol does not exist", + 0x210E: "Search failed", + 0x210F: "Task cannot start", + 0x2110: "Unable to write", + 0x2111: "Unable to read", + 0x2112: "Shared routine not editable", + 0x2113: "Controller in faulted mode", + 0x2114: "Run mode inhibited" + + } +} +DATA_ITEM = { + 'Connected': '\xb1\x00', + 'Unconnected': '\xb2\x00' +} + +ADDRESS_ITEM = { + 'Connection Based': '\xa1\x00', + 'Null': '\x00\x00', + 'UCMM': '\x00\x00' +} + +UCMM = { + 'Interface Handle': 0, + 'Item Count': 2, + 'Address Type ID': 0, + 'Address Length': 0, + 'Data Type ID': 0x00b2 +} + +CONNECTION_SIZE = { + 'Backplane': '\x03', # CLX + 'Direct Network': '\x02' +} + +HEADER_SIZE = 24 +EXTENDED_SYMBOL = '\x91' +BOOL_ONE = 0xff +REQUEST_SERVICE = 0 +REQUEST_PATH_SIZE = 1 +REQUEST_PATH = 2 +SUCCESS = 0 +INSUFFICIENT_PACKETS = 6 +OFFSET_MESSAGE_REQUEST = 40 + + +FORWARD_CLOSE = '\x4e' +UNCONNECTED_SEND = '\x52' +FORWARD_OPEN = '\x54' +LARGE_FORWARD_OPEN = '\x5b' +GET_CONNECTION_DATA = '\x56' +SEARCH_CONNECTION_DATA = '\x57' +GET_CONNECTION_OWNER = '\x5a' +MR_SERVICE_SIZE = 2 + +PADDING_BYTE = '\x00' +PRIORITY = '\x0a' +TIMEOUT_TICKS = '\x05' +TIMEOUT_MULTIPLIER = '\x01' +TRANSPORT_CLASS = '\xa3' + +CONNECTION_PARAMETER = { + 'PLC5': 0x4302, + 'SLC500': 0x4302, + 'CNET': 0x4320, + 'DHP': 0x4302, + 'Default': 0x43f8, +} + +""" +Atomic Data Type: + + Bit = Bool + Bit array = DWORD (32-bit boolean aray) + 8-bit integer = SINT +16-bit integer = UINT +32-bit integer = DINT + 32-bit float = REAL +64-bit integer = LINT + +From Rockwell Automation Publication 1756-PM020C-EN-P November 2012: +When reading a BOOL tag, the values returned for 0 and 1 are 0 and 0xff, respectively. +""" + +S_DATA_TYPE = { + 'BOOL': 0xc1, + 'SINT': 0xc2, # Signed 8-bit integer + 'INT': 0xc3, # Signed 16-bit integer + 'DINT': 0xc4, # Signed 32-bit integer + 'LINT': 0xc5, # Signed 64-bit integer + 'USINT': 0xc6, # Unsigned 8-bit integer + 'UINT': 0xc7, # Unsigned 16-bit integer + 'UDINT': 0xc8, # Unsigned 32-bit integer + 'ULINT': 0xc9, # Unsigned 64-bit integer + 'REAL': 0xca, # 32-bit floating point + 'LREAL': 0xcb, # 64-bit floating point + 'STIME': 0xcc, # Synchronous time + 'DATE': 0xcd, + 'TIME_OF_DAY': 0xce, + 'DATE_AND_TIME': 0xcf, + 'STRING': 0xd0, # character string (1 byte per character) + 'BYTE': 0xd1, # byte string 8-bits + 'WORD': 0xd2, # byte string 16-bits + 'DWORD': 0xd3, # byte string 32-bits + 'LWORD': 0xd4, # byte string 64-bits + 'STRING2': 0xd5, # character string (2 byte per character) + 'FTIME': 0xd6, # Duration high resolution + 'LTIME': 0xd7, # Duration long + 'ITIME': 0xd8, # Duration short + 'STRINGN': 0xd9, # character string (n byte per character) + 'SHORT_STRING': 0xda, # character string (1 byte per character, 1 byte length indicator) + 'TIME': 0xdb, # Duration in milliseconds + 'EPATH': 0xdc, # CIP Path segment + 'ENGUNIT': 0xdd, # Engineering Units + 'STRINGI': 0xde # International character string +} + +I_DATA_TYPE = { + 0xc1: 'BOOL', + 0xc2: 'SINT', # Signed 8-bit integer + 0xc3: 'INT', # Signed 16-bit integer + 0xc4: 'DINT', # Signed 32-bit integer + 0xc5: 'LINT', # Signed 64-bit integer + 0xc6: 'USINT', # Unsigned 8-bit integer + 0xc7: 'UINT', # Unsigned 16-bit integer + 0xc8: 'UDINT', # Unsigned 32-bit integer + 0xc9: 'ULINT', # Unsigned 64-bit integer + 0xca: 'REAL', # 32-bit floating point + 0xcb: 'LREAL', # 64-bit floating point + 0xcc: 'STIME', # Synchronous time + 0xcd: 'DATE', + 0xce: 'TIME_OF_DAY', + 0xcf: 'DATE_AND_TIME', + 0xd0: 'STRING', # character string (1 byte per character) + 0xd1: 'BYTE', # byte string 8-bits + 0xd2: 'WORD', # byte string 16-bits + 0xd3: 'DWORD', # byte string 32-bits + 0xd4: 'LWORD', # byte string 64-bits + 0xd5: 'STRING2', # character string (2 byte per character) + 0xd6: 'FTIME', # Duration high resolution + 0xd7: 'LTIME', # Duration long + 0xd8: 'ITIME', # Duration short + 0xd9: 'STRINGN', # character string (n byte per character) + 0xda: 'SHORT_STRING', # character string (1 byte per character, 1 byte length indicator) + 0xdb: 'TIME', # Duration in milliseconds + 0xdc: 'EPATH', # CIP Path segment + 0xdd: 'ENGUNIT', # Engineering Units + 0xde: 'STRINGI' # International character string +} + +REPLAY_INFO = { + 0x4e: 'FORWARD_CLOSE (4E,00)', + 0x52: 'UNCONNECTED_SEND (52,00)', + 0x54: 'FORWARD_OPEN (54,00)', + 0x6f: 'send_rr_data (6F,00)', + 0x70: 'send_unit_data (70,00)', + 0x00: 'nop', + 0x01: 'list_targets', + 0x04: 'list_services', + 0x63: 'list_identity', + 0x64: 'list_interfaces', + 0x65: 'register_session', + 0x66: 'unregister_session', +} + +PCCC_DATA_TYPE = { + 'N': '\x89', + 'B': '\x85', + 'T': '\x86', + 'C': '\x87', + 'S': '\x84', + 'F': '\x8a', + 'ST': '\x8d', + 'A': '\x8e', + 'R': '\x88', + 'O': '\x8b', + 'I': '\x8c' +} + +PCCC_DATA_SIZE = { + 'N': 2, + 'B': 2, + 'T': 6, + 'C': 6, + 'S': 2, + 'F': 4, + 'ST': 84, + 'A': 2, + 'R': 6, + 'O': 2, + 'I': 2 +} + +PCCC_CT = { + 'PRE': 1, + 'ACC': 2, + 'EN': 15, + 'TT': 14, + 'DN': 13, + 'CU': 15, + 'CD': 14, + 'OV': 12, + 'UN': 11, + 'UA': 10 +} + +PCCC_ERROR_CODE = { + -2: "Not Acknowledged (NAK)", + -3: "No Reponse, Check COM Settings", + -4: "Unknown Message from DataLink Layer", + -5: "Invalid Address", + -6: "Could Not Open Com Port", + -7: "No data specified to data link layer", + -8: "No data returned from PLC", + -20: "No Data Returned", + 16: "Illegal Command or Format, Address may not exist or not enough elements in data file", + 32: "PLC Has a Problem and Will Not Communicate", + 48: "Remote Node Host is Missing, Disconnected, or Shut Down", + 64: "Host Could Not Complete Function Due To Hardware Fault", + 80: "Addressing problem or Memory Protect Rungs", + 96: "Function not allows due to command protection selection", + 112: "Processor is in Program mode", + 128: "Compatibility mode file missing or communication zone problem", + 144: "Remote node cannot buffer command", + 240: "Error code in EXT STS Byte" +} \ No newline at end of file diff --git a/daq/tag/micro800/pycomm_micro/common.py b/daq/tag/micro800/pycomm_micro/common.py new file mode 100644 index 0000000..f44819c --- /dev/null +++ b/daq/tag/micro800/pycomm_micro/common.py @@ -0,0 +1,32 @@ +__author__ = 'Agostino Ruscito' +__version__ = "1.0.7" +__date__ = "08 03 2015" +import logging + + +logging.basicConfig( + filename="pycomm.log", + filemode='w', + level=logging.INFO, + format="%(name)-13s %(levelname)-10s %(asctime)s %(message)s", + # propagate=0, +) + +LOGGER = logging.getLogger('pycomm') + + +class PycommError(Exception): + pass + + +def setup_logger(name, level, filename=None): + log = logging.getLogger('pycomm.'+name) + log.setLevel(level) + if filename: + fh = logging.FileHandler(filename, mode='w') + fh.setFormatter(logging.Formatter("%(levelname)-10s %(asctime)s %(message)s")) + log.addHandler(fh) + log.propagate = False + + return log + diff --git a/daq/tag/tag.py b/daq/tag/tag.py new file mode 100644 index 0000000..9580b04 --- /dev/null +++ b/daq/tag/tag.py @@ -0,0 +1,107 @@ +#! /usr/bin/python +# from datetime import datetime +import time +from pycomm.ab_comm.clx import Driver as ClxDriver +import tag.micro800.micro800 as u800 +import requests +import json +# import traceback +# import pickle + +web_address = "https://10.10.10.10:3000" + + +def readTag(addr, tag): + time.sleep(0.01) + c = ClxDriver() + if c.open(addr): + try: + v = c.read_tag(tag) + return v + except Exception: + print("ERROR RETRIEVING TAG: {} at {}".format(tag, addr)) + err = c.get_status() + c.close() + print(err) + pass + c.close() + +def writeTag(addr, tag, val): + time.sleep(0.01) + pv = readTag(addr, tag) + if pv: + c = ClxDriver() + if c.open(addr): + try: + v = c.write_tag(tag, val, pv[1]) + return v + except Exception: + print("ERROR WRITING TAG: {} at {}".format(tag, addr)) + err = c.get_status() + c.close() + print(err) + pass + c.close() + +class Tag(): + global readTag, writeTag, web_address + + def __init__(self, name, tag, db_id, data_type, change_threshold, guarantee_sec, mapFn=None, device_type='CLX', ip_address='192.168.1.10'): + self.name = name + self.tag = tag + self.data_type = data_type + self.value = None + self.last_value = None + self.guarantee_sec = guarantee_sec + self.chg_threshold = change_threshold + self.last_send_time = 0 + self.mapFn = mapFn + self.device_type = device_type + self.readFn = readTag + self.writeFn = writeTag + self.db_id = db_id + if self.device_type == "u800" or self.device_type == "Micro800": + self.readFn = u800.readMicroTag + self.writeFn = u800.writeMicroTag + self.ip_address = ip_address + + def read(self, forceSend): + writeToDB = False + if self.tag: + v = self.readFn(str(self.ip_address), str(self.tag)) + if v: + val = v[0] + if self.data_type == 'BOOL' or self.data_type == 'STRING': + if self.mapFn: + val = self.mapFn[val] + if (self.last_send_time == 0) or (self.value is None) or not (self.value == val) or ((time.time() - self.last_send_time) > self.guarantee_sec) or (forceSend is True): + self.last_value = self.value + self.value = val + writeToDB = True + else: + writeToDB = False + else: + if (self.last_send_time == 0) or (self.value is None) or (abs(self.value - v[0]) > self.chg_threshold) or ((time.time() - self.last_send_time) > self.guarantee_sec) or (forceSend is True): + self.last_value = self.value + self.value = v[0] + writeToDB = True + else: + writeToDB = False + if forceSend is False: + writeToDB = False + if writeToDB: + self.sendToDB() + return self.value + + def write(self, value): + if self.tag: + w = self.writeFn(str(self.ip_address), str(self.tag), value) + + def sendToDB(self): + data = {} + data['val'] = self.value + data['tagID'] = self.db_id + r = requests.post('{}/tag_val'.format(web_address), data=data, verify=False) + resp = json.loads(r.text) + print("Stored {} for {} at {}".format(resp['val'], self.name, resp['createdAt'])) + self.last_send_time = time.time() diff --git a/taglogger.py b/daq/taglogger.py similarity index 94% rename from taglogger.py rename to daq/taglogger.py index 21f3f9d..1698b41 100644 --- a/taglogger.py +++ b/daq/taglogger.py @@ -1,20 +1,20 @@ #!/usr/bin/env python ''' -MySQL Tag Server +Tag Logger Created on April 7, 2016 @author: Patrick McDonagh -@description: Continuously loops through a list of tags to store values from a PLC into a MySQL database +@description: Continuously loops through a list of tags to store values from a PLC ''' -from tag.tag import Tag import traceback import time -import requests import json +import requests +from tag.tag import Tag # DEFAULTS -web_address = "https://localhost:3000" +web_address = "https://10.10.10.10:3000" scan_rate = 30 # seconds save_all = "test" # use True, False, or any string plc_handshake_tags = {} @@ -31,7 +31,7 @@ def main(): get_tag_request_data = {'where': '{"tag_class": 5}'} get_tag_request = requests.get('{}/tag'.format(web_address), params=get_tag_request_data, verify=False) tags = json.loads(get_tag_request.text) - except Exception, e: + except Exception as e: print("Error getting tags: {}".format(e)) time.sleep(10) main() @@ -43,7 +43,7 @@ def main(): device_types_json = json.loads(get_device_type_request.text) for t in device_types_json: device_types[t['id']] = t['dType'] - except Exception, e: + except Exception as e: print("Error getting tags: {}".format(e)) time.sleep(10) main() @@ -54,7 +54,7 @@ def main(): sr_try = json.loads(sr_req.text) if len(sr_try) > 0: scan_rate = int(sr_try[0]['val']) - except Exception, e: + except Exception as e: print("Error getting scan rate: {}".format(e)) print("I'll just use {} seconds as the scan rate...".format(scan_rate)) @@ -67,7 +67,7 @@ def main(): save_all = True elif sa_try[0]['val'].lower() == "false": save_all = False - except Exception, e: + except Exception as e: print("Error getting save-all: {}".format(e)) print("I'll just use {} as the save-all parameter...".format(save_all)) @@ -79,7 +79,7 @@ def main(): if len(hs_tags) > 0: for hs in hs_tags: plc_handshake_tags[hs['name']] = Tag(hs['name'], hs['tag'], hs['id'], hs['data_type'], hs['change_threshold'], hs['guarantee_sec'], mapFn=hs['map_function'], ip_address=hs['deviceID']['address'], device_type=device_types[hs['deviceID']['device_type']]) - except Exception, e: + except Exception as e: print("Error getting handshake tags: {}".format(e)) for t in tags: diff --git a/dbcreate_MySQL.sql b/dbcreate_MySQL.sql deleted file mode 100644 index 0a302ae..0000000 --- a/dbcreate_MySQL.sql +++ /dev/null @@ -1,101 +0,0 @@ -CREATE DATABASE poconsole; -USE poconsole; -CREATE TABLE IF NOT EXISTS tag_classes( - id INT NOT NULL AUTO_INCREMENT, - tag_class varchar(64), - description varchar(64), - createdAt DATETIME, - updatedAt DATETIME, - PRIMARY KEY (id) -); - -CREATE TABLE IF NOT EXISTS device_types( - id INT NOT NULL AUTO_INCREMENT, - dType VARCHAR(64), - createdAt DATETIME, - updatedAt DATETIME, - PRIMARY KEY (id) -); - -CREATE TABLE IF NOT EXISTS devices( - id INT NOT NULL AUTO_INCREMENT, - name varchar(64), - device_type INT, - address VARCHAR(64), - createdAt DATETIME, - updatedAt DATETIME, - PRIMARY KEY (id), - INDEX device_type_ind (device_type), - FOREIGN KEY (device_type) - REFERENCES device_types(id) -); - -CREATE TABLE IF NOT EXISTS tags( - id INT NOT NULL AUTO_INCREMENT, - name varchar(128), - class INT, - tag varchar(128), - deviceID INT, - description varchar(128), - data_type varchar(32), - change_threshold float, - guarantee_sec INT, - map_function varchar(64), - units varchar(64), - minExpected varchar(64), - maxExpected varchar(64), - createdAt DATETIME, - updatedAt DATETIME, - PRIMARY KEY (id), - INDEX class_ind (class), - FOREIGN KEY (class) - REFERENCES tag_classes(id) - ON DELETE CASCADE, - INDEX deviceID_ind (deviceID), - FOREIGN KEY (deviceID) - REFERENCES devices(id) - ON DELETE CASCADE -); - - -CREATE TABLE IF NOT EXISTS tag_vals( - id INT NOT NULL AUTO_INCREMENT, - tagID int, - val float, - createdAt DATETIME, - updatedAt DATETIME, - PRIMARY KEY (id), - INDEX tagID_ind (tagID), - FOREIGN KEY (tagID) - REFERENCES tags(id) - ON DELETE CASCADE -); - -CREATE TABLE IF NOT EXISTS config ( - id INT NOT NULL AUTO_INCREMENT, - parameter varchar(128), - val varchar(128), - createdAt DATETIME, - updatedAt DATETIME, - PRIMARY KEY (id) -); - -INSERT INTO poconsole.tag_classes (id, tag_class, description) VALUES (1, 'stroke', 'Stroke Information'); -INSERT INTO poconsole.tag_classes (id, tag_class, description) VALUES (2, 'history', 'Historical Data'); -INSERT INTO poconsole.tag_classes (id, tag_class, description) VALUES (3, 'gaugeoff', 'Gauge Off Data'); -INSERT INTO poconsole.tag_classes (id, tag_class, description) VALUES (4, 'welltest', 'Well Test Data'); -INSERT INTO poconsole.tag_classes (id, tag_class, description) VALUES (5, 'custom', 'Custom tags'); - -INSERT INTO poconsole.device_types (id, dType) VALUES (1, "CLX"); -INSERT INTO poconsole.device_types (id, dType) VALUES (2, "Micro800"); -INSERT INTO poconsole.device_types (id, dType) VALUES (3, "E300"); --- INSERT INTO poconsole.device_types (id, dType) VALUES (4, "PF755"); - - -CREATE USER 'website'@'localhost' IDENTIFIED BY 'henrypump'; -GRANT ALL ON *.* TO 'website'@'localhost'; -CREATE USER 'admin'@'localhost' IDENTIFIED BY 'henrypump'; -GRANT ALL ON *.* to 'admin'@'localhost'; -CREATE USER 'admin'@'%' IDENTIFIED BY 'henrypump'; -GRANT ALL ON *.* to 'admin'@'%'; -FLUSH PRIVILEGES; diff --git a/dbcreate_SQLite.sql b/dbcreate_SQLite.sql deleted file mode 100644 index 23b9879..0000000 --- a/dbcreate_SQLite.sql +++ /dev/null @@ -1,42 +0,0 @@ -CREATE TABLE IF NOT EXISTS tag_classes( - id INTEGER PRIMARY KEY, - tag_class TEXT, - description TEXT -); - -CREATE TABLE IF NOT EXISTS tags ( - id INTEGER PRIMARY KEY, - name TEXT, - class TEXT, - tag TEXT, - description TEXT, - data_type TEXT, - change_threshold REAL, - guarantee_sec INTEGER, - map_function TEXT, - units TEXT, - minExpected REAL, - maxExpected REAL, - dateAdded TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - deleted INTEGER DEFAULT 0 -); - -CREATE TABLE IF NOT EXISTS tag_vals ( - id INTEGER PRIMARY KEY, - tagID INTEGER, - val REAL, - dtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP -); - -CREATE TABLE IF NOT EXISTS config ( - id INTEGER PRIMARY KEY, - parameter TEXT, - val TEXT, - dateAdded TIMESTAMP DEFAULT CURRENT_TIMESTAMP -); - -INSERT INTO tag_classes (id, tag_class, description) VALUES (1, 'stroke', 'Stroke Information'); -INSERT INTO tag_classes (id, tag_class, description) VALUES (2, 'history', 'Historical Data'); -INSERT INTO tag_classes (id, tag_class, description) VALUES (3, 'gaugeoff', 'Gauge Off Data'); -INSERT INTO tag_classes (id, tag_class, description) VALUES (4, 'welltest', 'Well Test Data'); -INSERT INTO tag_classes (id, tag_class, description) VALUES (5, 'custom', 'Custom tags'); diff --git a/init/tagserver b/init/tagserver deleted file mode 100755 index 1322397..0000000 --- a/init/tagserver +++ /dev/null @@ -1,37 +0,0 @@ -#! /bin/sh -# /etc/init.d/tagserver - -### BEGIN INIT INFO -# Provides: tagserver -# Required-Start: $remote_fs $syslog -# Required-Stop: $remote_fs $syslog -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: Simple script to start a program at boot -# Description: A simple script from www.stuffaboutcode.com which will start / stop a program a boot / shutdown. -### END INIT INFO - -# If you want a command to always run, put it here - -# Carry out specific functions when asked to by the system -case "$1" in - start) - echo "Starting loggers" - kill -9 $(cat /root/tagserver.pid) - # run application you want to start - /usr/bin/python /root/tag-server/tagserver.py > /dev/null 2>&1 & echo $! > "/root/tagserver.pid" - - ;; - stop) - echo "Stopping loggers" - # kill application you want to stop - kill -9 $(cat /root/tagserver.pid) - -;; - *) - echo "Usage: /etc/init.d/tagserver {start|stop}" - exit 1 - ;; -esac - -exit 0 diff --git a/mysql_cfg.pickle b/mysql_cfg.pickle deleted file mode 100644 index fdde65b..0000000 --- a/mysql_cfg.pickle +++ /dev/null @@ -1,18 +0,0 @@ -(dp0 -S'host' -p1 -S'127.0.0.1' -p2 -sS'password' -p3 -S'henrypump' -p4 -sS'user' -p5 -S'website' -p6 -sS'database' -p7 -S'poconsole' -p8 -s. \ No newline at end of file diff --git a/pickle_mysql_config.py b/pickle_mysql_config.py deleted file mode 100644 index ea19c5f..0000000 --- a/pickle_mysql_config.py +++ /dev/null @@ -1,11 +0,0 @@ -import pickle - -mysql_cfg = { - 'host': '127.0.0.1', - 'user': 'website', - 'password': 'henrypump', - 'database': 'poconsole' -} - -with open('mysql_cfg.pickle', 'wb') as pickleconfig: - pickle.dump(mysql_cfg, pickleconfig) diff --git a/tag b/tag deleted file mode 160000 index 30913bf..0000000 --- a/tag +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 30913bfee3bb96f3fd5bfa26699629a0e3616491 diff --git a/tagserver.py b/tagserver.py deleted file mode 100644 index 21f3f9d..0000000 --- a/tagserver.py +++ /dev/null @@ -1,106 +0,0 @@ -#!/usr/bin/env python - -''' -MySQL Tag Server -Created on April 7, 2016 -@author: Patrick McDonagh -@description: Continuously loops through a list of tags to store values from a PLC into a MySQL database -''' - -from tag.tag import Tag -import traceback -import time -import requests -import json - -# DEFAULTS -web_address = "https://localhost:3000" -scan_rate = 30 # seconds -save_all = "test" # use True, False, or any string -plc_handshake_tags = {} -last_handshake_time = 0 - -tag_store = {} -device_types = {} - - -def main(): - global web_address, scan_rate, save_all, tag_store, device_types, plc_handshake_tags, last_handshake_time - try: - # Get tags stored in database - get_tag_request_data = {'where': '{"tag_class": 5}'} - get_tag_request = requests.get('{}/tag'.format(web_address), params=get_tag_request_data, verify=False) - tags = json.loads(get_tag_request.text) - except Exception, e: - print("Error getting tags: {}".format(e)) - time.sleep(10) - main() - - try: - # Get tags stored in database - - get_device_type_request = requests.get('{}/device_type'.format(web_address), verify=False) - device_types_json = json.loads(get_device_type_request.text) - for t in device_types_json: - device_types[t['id']] = t['dType'] - except Exception, e: - print("Error getting tags: {}".format(e)) - time.sleep(10) - main() - - try: - sr_req_data = 'where={"parameter": "scan_rate"}' - sr_req = requests.get('{}/config?{}'.format(web_address, sr_req_data), verify=False) - sr_try = json.loads(sr_req.text) - if len(sr_try) > 0: - scan_rate = int(sr_try[0]['val']) - except Exception, e: - print("Error getting scan rate: {}".format(e)) - print("I'll just use {} seconds as the scan rate...".format(scan_rate)) - - try: - sa_req_data = {"where": {"parameter": "save_all"}} - sa_req = requests.get('{}/config'.format(web_address), params=sa_req_data, verify=False) - sa_try = json.loads(sa_req.text) - if len(sa_try) > 0: - if sa_try[0]['val'].lower() == "true": - save_all = True - elif sa_try[0]['val'].lower() == "false": - save_all = False - except Exception, e: - print("Error getting save-all: {}".format(e)) - print("I'll just use {} as the save-all parameter...".format(save_all)) - - try: - # Get tags stored in database - get_hs_request_data = {'where': '{"tag_class": 6}'} - get_hs_request = requests.get('{}/tag'.format(web_address), params=get_hs_request_data, verify=False) - hs_tags = json.loads(get_hs_request.text) - if len(hs_tags) > 0: - for hs in hs_tags: - plc_handshake_tags[hs['name']] = Tag(hs['name'], hs['tag'], hs['id'], hs['data_type'], hs['change_threshold'], hs['guarantee_sec'], mapFn=hs['map_function'], ip_address=hs['deviceID']['address'], device_type=device_types[hs['deviceID']['device_type']]) - except Exception, e: - print("Error getting handshake tags: {}".format(e)) - - for t in tags: - # name, tag, db_id, data_type, change_threshold, guarantee_sec, mapFn=None, device_type='CLX', ip_address='192.168.1.10'): - tag_store[t['name']] = Tag(t['name'], t['tag'], t['id'], t['data_type'], t['change_threshold'], t['guarantee_sec'], mapFn=t['map_function'], ip_address=t['deviceID']['address'], device_type=device_types[t['deviceID']['device_type']]) - - while True: - for tag in tag_store: - try: - tag_store[tag].read('test') - except: - print("ERROR EVALUATING {}".format(tag)) - traceback.print_exc() - - if plc_handshake_tags: - if time.time() - last_handshake_time > 30.0: - for hs_tag in plc_handshake_tags: - plc_handshake_tags[hs_tag].write(1) - print("Handshake with {} - {}".format(plc_handshake_tags[hs_tag].address, hs_tag)) - last_handshake_time = time.time() - time.sleep(scan_rate) - -if __name__ == '__main__': - main() diff --git a/tagserver_MySQL.py b/tagserver_MySQL.py deleted file mode 100644 index 9cd5724..0000000 --- a/tagserver_MySQL.py +++ /dev/null @@ -1,97 +0,0 @@ -#!/usr/bin/env python - -''' -MySQL Tag Server -Created on April 7, 2016 -@author: Patrick McDonagh -@description: Continuously loops through a list of tags to store values from a PLC into a MySQL database -''' -import mysql.connector as mysqlcon -import pickle -from tag.tag_mysql import Tag -import traceback -import time -import os - -with open(os.path.realpath('.') + '/mysql_cfg.pickle', 'rb') as pickleconfig: - mysql_cfg = pickle.load(pickleconfig) - -if mysql_cfg: - db = mysqlcon.connect(**mysql_cfg) - -tag_store = {} -configProperties = {} - -def main(): - db.connect() - cur = db.cursor() - query = "SELECT * FROM tags WHERE class = 5 AND deleted = 0" - cur.execute(query) - tags = cur.fetchall() - print tags - # [(1, u'Century Counter Up', 5, u'Century_Counter_Up', u'REAL', 10.0, 3600, None, 0)] - db.disconnect() - - - configObj = {} - db.connect() - cur = db.cursor() - query = "SELECT parameter, val FROM config GROUP BY parameter;" - cur.execute(query) - config = cur.fetchall() - db.disconnect() - for x in config: - configObj[x[0]] = x[1] - - try: - configProperties['PLC_IP_ADDRESS'] = str(configObj['ip_address']) - print("FYI, using PLC IP Address from the database {0}".format(configProperties['PLC_IP_ADDRESS'])) - except KeyError: - print("FYI, there is no PLC IP Address stored in the database, defaulting to 192.168.1.10") - configProperties['PLC_IP_ADDRESS'] = "192.168.1.10" - - try: - configProperties['plc_type'] = str(configObj['plc_type']) - print("FYI, using PLC Type from the database {0}".format(configProperties['plc_type'])) - except KeyError: - print("FYI, there is no PLC Type stored in the database, defaulting to CLX") - configProperties['plc_type'] = "CLX" - - try: - configProperties['scan_rate'] = int(configObj['scan_rate']) - print("FYI, using Scan Rate from the database {0}".format(configProperties['scan_rate'])) - except KeyError: - print("FYI, there is no Scan Rate stored in the database, defaulting to 10 seconds") - configProperties['scan_rate'] = 10 - - try: - sa_test = str(configObj['save_all']) - if sa_test.lower() == "true": - configProperties['save_all'] = True - elif sa_test.lower() == "false": - configProperties['save_all'] = False - else: - configProperties['save_all'] = "test" - print("FYI, value for save_all is {0}".format(configProperties['save_all'])) - except KeyError: - print("FYI, there is no save_all value stored in the database, using 'test'") - configProperties['save_all'] = 'test' - - - - - for t in tags: - tag_store[t[1]] = Tag(t[1], t[3], t[0], t[5], t[6], t[7], mapFn=t[8], device_type=configProperties['plc_type'], ip_address=configProperties['PLC_IP_ADDRESS']) - - - while True: - for tag in tag_store: - try: - tag_store[tag].read(configProperties['save_all']) - except: - print("ERROR EVALUATING {}".format(tag)) - traceback.print_exc() - time.sleep(configProperties['scan_rate']) - -if __name__ == '__main__': - main() diff --git a/tagserver_SQLite.py b/tagserver_SQLite.py deleted file mode 100644 index 264fa97..0000000 --- a/tagserver_SQLite.py +++ /dev/null @@ -1,96 +0,0 @@ -#!/usr/bin/env python - -''' -Created on Dec 8, 2015 - -@author: Patrick McDonagh -''' - -import time -import sqlite3 as lite -from tag.tag_sqlite import Tag -import traceback - -# con = lite.connect("/usr/db/data.db") -con = lite.connect('/mnt/usb/data.db') - -configProperties = {} - - -def main(): - - - with con: - cur = con.cursor() - query = "SELECT * FROM tags WHERE deleted = 0;" - cur.execute(query) - tags = cur.fetchall() - - configObj = {} - - - with con: - cur = con.cursor() - query = "SELECT parameter, val FROM config GROUP BY parameter;" - cur.execute(query) - config = cur.fetchall() - for x in config: - configObj[x[0]] = x[1] - - try: - configProperties['PLC_IP_ADDRESS'] = str(configObj['ip_address']) - print("FYI, using PLC IP Address from the database {0}".format(configProperties['PLC_IP_ADDRESS'])) - except KeyError: - print("FYI, there is no PLC IP Address stored in the database, defaulting to 192.168.1.10") - configProperties['PLC_IP_ADDRESS'] = "192.168.1.10" - - try: - configProperties['plc_type'] = str(configObj['plc_type']) - print("FYI, using PLC Type from the database {0}".format(configProperties['plc_type'])) - except KeyError: - print("FYI, there is no PLC Type stored in the database, defaulting to CLX") - configProperties['plc_type'] = "CLX" - - try: - configProperties['scan_rate'] = int(configObj['scan_rate']) - print("FYI, using Scan Rate from the database {0}".format(configProperties['scan_rate'])) - except KeyError: - print("FYI, there is no Scan Rate stored in the database, defaulting to 10 seconds") - configProperties['scan_rate'] = 10 - - try: - sa_test = str(configObj['save_all']) - if sa_test.lower() == "true": - configProperties['save_all'] = True - elif sa_test.lower() == "false": - configProperties['save_all'] = False - else: - configProperties['save_all'] = "test" - print("FYI, value for save_all is {0}".format(configProperties['save_all'])) - except KeyError: - print("FYI, there is no save_all value stored in the database, using 'test'") - configProperties['save_all'] = 'test' - - - - - - tag_store = {} - - if len(tags) > 0: - for t in tags: - # (1, u'Pump Intake Pressure', u'5', u'Pump_Intake_Pressure', u'Pressure at the Intake of the Pump', None, 100.0, 3600, u'PSI', 0.0, 3000.0, u'2016-04-13 21:27:01', 0) - tag_store[t[1]] = Tag(t[1], t[3], t[0], t[5], t[6], t[7], mapFn=t[8], device_type=configProperties['plc_type'], ip_address=configProperties['PLC_IP_ADDRESS']) - - - while True: - for tag in tag_store: - try: - tag_store[tag].read(configProperties['save_all']) - except: - print("ERROR EVALUATING {}".format(tag)) - traceback.print_exc() - time.sleep(configProperties['scan_rate']) - -if __name__ == '__main__': - main() diff --git a/Dockerfile b/web_db/Dockerfile similarity index 57% rename from Dockerfile rename to web_db/Dockerfile index 2064d6d..2e5927d 100644 --- a/Dockerfile +++ b/web_db/Dockerfile @@ -1,22 +1,12 @@ -FROM hypriot/rpi-node:latest +FROM node:latest -RUN apt-get -y update && apt-get install -y apt-utils dialog vim +RUN apt-get -y update && apt-get install -y apt-utils dialog vim git COPY mysql-install.sh /tmp/mysql-install.sh COPY taglogger_db_structure.sql /tmp/taglogger_db_structure.sql RUN chmod +x /tmp/mysql-install.sh && /tmp/mysql-install.sh -RUN apt-get install -y python git-core wget -RUN wget https://bootstrap.pypa.io/get-pip.py -RUN python get-pip.py -RUN pip install requests -RUN git clone https://github.com/ruscito/pycomm.git -RUN cd pycomm && python setup.py install && cd .. - RUN mkdir /root/tag-logger -COPY init /root/tag-logger/init -COPY tag /root/tag-logger/tag COPY www /root/tag-logger/www -COPY taglogger.py /root/tag-logger/taglogger.py COPY startup.sh /root/startup.sh RUN chmod +x /root/startup.sh @@ -24,6 +14,9 @@ RUN chmod +x /root/startup.sh RUN npm install -g bower pm2 sails --silent RUN cd /root/tag-logger/www && npm install && bower install --allow-root && cd / +RUN apt-get clean +RUN rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + CMD '/root/startup.sh' diff --git a/mysql-install.sh b/web_db/mysql-install.sh similarity index 100% rename from mysql-install.sh rename to web_db/mysql-install.sh diff --git a/startup.sh b/web_db/startup.sh similarity index 100% rename from startup.sh rename to web_db/startup.sh diff --git a/taglogger_db_structure.sql b/web_db/taglogger_db_structure.sql similarity index 100% rename from taglogger_db_structure.sql rename to web_db/taglogger_db_structure.sql diff --git a/www/assets/favicon.ico b/web_db/www/.tmp/public/favicon.ico similarity index 100% rename from www/assets/favicon.ico rename to web_db/www/.tmp/public/favicon.ico diff --git a/web_db/www/.tmp/public/filestorage/0ab0fea3-a7ea-405a-97a5-1bbc14abddcc.pdf b/web_db/www/.tmp/public/filestorage/0ab0fea3-a7ea-405a-97a5-1bbc14abddcc.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3c4ed38c99b5595923a9c6eb5357143b3625e3eb GIT binary patch literal 212476 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 a0npEa<0rui1HF?)D57{aZ`Lx>=J|gst)8a< literal 0 HcmV?d00001 diff --git a/web_db/www/.tmp/public/filestorage/0cc46cfe-02a3-41e4-aceb-895057bba1a6.pdf b/web_db/www/.tmp/public/filestorage/0cc46cfe-02a3-41e4-aceb-895057bba1a6.pdf new file mode 100644 index 0000000000000000000000000000000000000000..158a8cd162c092c9dbec955fc2eb241776fbd7c4 GIT binary patch literal 755204 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 z zgiVk2g6Z4yXc<|$+@J8Bq5%I^*F=|ryr2qdZuj+T>s61QajRQov?nDD)D{cILn)i0 z_~GS`Yo7AzKL^LHDuWQWk)rqlX~vD%zHP~~h(Vb%NQFqq^9C?QdO_k&Z6B)7v!bH4 zIBeMtkG-^5-!zPbnc^%MJnf`|44&q+b(;{Uam?PkvlvA-1RQQ0V|H=uJB1dMsCn_A z?(OG1p-h~G5Z253yg5x3p-}!jrsWT}GzG$fPx~4#MEt~W?Bykdl#nijQiINSRu|;p zQc}SLdsG2jh!Y{1vcak*cFPs6{w=?6FtGdX!})igTIAa{*0Ehlkv3>!PKz{d>8`vL zb{qGaWYbkM+(HtYgY`2vp?iLOs&^!1!-c{%ME0Jr;tatD&?wEv~>9B}B`WYj$c9bw%X)KRgXSHi2 zTL*YtL~M?Pgl zwdZZS`Y_#IN?Z;8z?}h8vol-}OiG?snb5Lbq$eQwK;yZGMB4;Hl_{Bnq1G2Cdr$Zr zD!w?pn%h%sZK~$&?%&hl3a|ITi-!4jRD~si{V^iY%$~8j9q3hdG48IZrxS{kv2TM( z(Y{eSkFZ4)B~ibItArE$7&2B8ZXc>X9R_;-Z8IM|$1`fgLj=pliLr~?KC`WM3%{$`mUUr^wB*SW&=uD~F{qgzeJJM^oXd0&`Y8bsV#)%FKg; z?;k%2*Y{5csAwdaoS57DFN|2M7s)Zj$m3_wN+-L840cW@b-GwN zFmJ=%!D&fUJd8cz4H$lBn{z|0Od{|IR&@?UUN9wc2#6OBODL;Hg!tJU`eYTjIfy<@ z;nC%|xfFXz@si)=l7QB|(^+<`R&fKk!bWu|)}r!9f1{?`GvUDiFV(4dA1Nwx0z5}2 zhqzhl%hH_U2KS1^qB^Ho0?uD1LlGweySVznnlac7d=mBwnECyTm= z6zVC?Ez^0afkgF7R?u5N=1K-|GAg&Q?G=pnY*YiBHm`Nc#^$NFzt< zg>W=fEhOWqz=Njf-=kC#0`4?rH0o}44!V)N3pRPGZniq-Lhd|^1eDCRb9d&Bgd*vt z@y6J-A66nzk^|J~g0odv?z9@%j*3P5lc1J+(Cilzo(0nvGz`G3mL4<;c5@+J8~W59 zku$uu9DSH3#HVikp&2}2EjRP)W`@v-Blbq;J;)QJ7P8eZo7Cr3-iqyNY{v{8-G{o4 z^Lo~4+A)8tWy3?~UwtRdCahEmV)|q<<10`{cyd3C4SoyMyXLx77?X?rS$Q!7e8$~2 z>#bpU8(o{UYVL*4?nEk@b!h9mjrm5yO#&+#IE`fQK_Aq*oag`#SMKLNci1QdMPh(0 ze#*6Y!i5-IdgjN!qE`P5PA?Z&X>yALTUQ8wxTEi&jpJ~WMc!G-?+m$9d0{vf(gpXo zr#O^drrG}44?mY6TDYWKyA0>SDdNw}BR~DNyV+KlByQ=$>o3CtlIB<=@2Jr^E|Z;s zGg6`q73g#)(;`>k+=yxUqrhbhv+Zl()(y`muDHY3s+w6&nFxn(TryO89rf)5I7G$D zjm{~AOl9z>XUkr(x_G(z%HluTlRsFZN7e#O!P89Z$dOao3VW3>h{jmQ) z&+TYDunawO0y1lxMLf3FT$d)Q$LG)QqCNC(hKi(}4m}q@aE=e77MwWFs`tr&@~Gr7 zjmP$>%wyZBr~=}JNFF=oU=Fi^$zBQ8c;A%k<7X4s&O|@NNR_TfYJ1k)cfS!^$G3M zoKb+?H$S}rXApKx$ZIwx1OpFaY-8l;;UAiSth`QyuS6$dI zF*CCfF*7j{v9hrdu>xccCJrKYRz@NwM!*^e^FPGG#!ke_!9>Kw3XqxE{~1{rS>a*W zSvZN9xtIZpTtuv#oJ4E@nT?T!h>abfz{N_$#>NcbSpW*0{}3zN*FF}2Gr-8qNyNzp zaK^+)#Kyr1Fvi46#Lmt}#Ky`6FvJGnIf>XgnE)O+iC7uA02|o>^BhE+00nlAuSfxk zY>a>r;E3zXF@V@u0Be9Vvjf8CWaj`Z00`injfD|#6ec1-*#C@Nj2wX60HS32ik|78 zNLe|)3;>J))|dg#|B0RrPzol1kuPH9UjZ$k zfRW?N0S90YBO~C*>|f5|VVD8=`HJFS?*JnJ@2r3VFtL8k0rJTXkO6661r*|60<1Bz z1I`LKA2T3vTwj&?su&X>wEr;wXn$Gw(*B1y0oJ$x$pD16tYhU4g8TbnIUjzT- z=8Ffw0AP&s%M0s2i)>7QvH_~V#`xupnTX@7%*=pu{FAi*82C>DSpb#!#|S6D0iZH~ z{r^VB#`-Tw}%EStY>dOH8SD82gBLFjBIQYWA|3zE?hX7c>!~B!!uWbK^zA*8> z=?gdi#l#mb{x`7#VDKdaaPc2({LB1v_Adaju>+#|s>1(4oB)Ua-~xb&FI@bW{sW2s z!Nxxz`!6Q`SEOGNvjQCc8~GO){}%yp@ehswqt4gM7Vz>GHFh*~Ft>BEbpU`K&@GhU zVfgv~r-S@6_kVSe|Iq^&5^^*&26PH8Ms|Q8qHiZ@{M9LlI9UKMGls97U#m>)U%f%x zO5fCx=xg7XcVS^$H$Y>cV**4(#{@_m6C(#B5f=a;|Bdh8uJr%4ASow(D|1638&fM| zB1V8QWhY~6RU*zWR{cNT*_c`W<3-#YunPdf|NnGfbN_QXSz{YhCo>`rb`I7r)qlmW zI)Tf&E$W3vRit1vazT4^f8F3^DaO{tS7Wr{}~cFyCa58vj%4 zpr+-7WjNPD+o3LNy!78O5(*;HY_Oq)kd%yoh%8~b+j^Lx<%K^Q6Fp;VA$}3?c*cej zMLF*0Kwz92K34re@`6{^2NP&0f}}9)@-PT4Uh?uEn7n9sR%g+;Yv;m8r_eG~fcK2_;qtQ?AQZYJu2~8dOfhd8TvVmH# zwRm_mn}Ddxx*u1$L8#LOKi7=la-$pAO!R-l*Hi;@V`%}EQO~WN`+P$qSy(_rh~C5R zp5+F?*Y=_K=8Y=Jsij2=WYq$?BNd&&? zEsPO~f?*?wN)AhD=m?|i!^Y{qY40rQv4GJaNFJRBZlp++yu7^h(Nbt)qi*SR0 zcD*T++O=sZT?tYHy!64whZKH~$?X>4cic{B483+##=;COr z0HPEVE%OWwLl25W@_n3IUBgO9eoKPtEIos&japU+;V8P`U@u$GxenAP2^sHG;ZK|& zdW`{4S`ZQ@cxgM!5VVB&)D?>1I6qeN>Mh@^&=%E#ytt+IR9KCwbO1i0q zW8wjsZkQ@y34GwK@XwH&cUKaLu+96=PEJf*H!vU2sRbOf7e)xoSMR*e)jeW3dFZVp zFtEnFc@d=a1pFpgLXfTW@NPaxw_qPsX4gg*NPe>3{`a&skUO6taQT60oGr5tB;cYQ zU?(6xur2^{2#>l?Crj8h5YsL zed(jryH6)!-tv&P+I{91c9@_T$V@G#@`9d-dY9DSu=gQAwM4idvVfAY%r4>F)PLJB zR%08{g76DEItr^I9zDIvJyAkIK=Lx$`!|abpe1YE3HiGJ6rf@(Tk;3-5B+(TC zgps9u&h9c&LWCJ3d(ZA-WCk!Kui0JS9KM)O00RSHa-X7hz-y`as2Ia;{6T7qc>&DH z7xOjq0$|L(W)1*MoBMY?jB;-@!ep^mAzzJfJfHzp!6JbTTzl;dFT68H6t2{ERo3@Eg-udskCNzt*BBfOt=I_!&QYEe9YEI6S`VdF^_m z89f@Yxswt9ev}l}jgvr;wR({B;~FQFV$AF(g&wH+Mb<5=8byXR@)854%ttmdflyfU zo2>gsHejnUKxe}b!0cZEnAI=lPSUR=9iW^rN(x=*@H-k$kEZc!{sS=2OECOdL4Oq` zuXniRSJy+zABp+demO}15I<~DIW^SNcr{TF7;~F$^Twkx;?A!LY{2Y(IdM=XPtW1( z>0KA6B0;_gI6j}+1fyzbX)SSS^3q`Uh06k&m_)G?xCCRqQ$8%^ED`J8Wfij3L-5ng zd&3V82*N{4cfBs^cnfEd-r!0d|18{iSOYZ12U)EI94Wo>wo(4Z5$l zoY*uihzhG4|LIA{MzYnf%%{QIiK$Nt&v(EZ3z?_y`v*954Y2Ro+NU(s4kHmHs&W;_ zhkni(QmyZgZX7ev7e_7Qpr$a;rz5y+2>uhA;K?PR@J}j=K5JPYlPE;sGo&QoEL3&8 z4DT#1f_+f?^i9e@?`DW=LZ9l|**ssO22g%1;I7rG^}PL{r%7*lmT1k-VJLf2!)$0y zhOWG=uuaGm@3i<=S9hx}Ex+1(!h7H3d4c=q(qg1jkSIugNlspVj;h;_!!9F)DzCa$ zk+w6}iO=@;=~SWc{|84vxWDcH4jO+p62#g>{&XL9h_Q+MRUwF{iTvBv05LU@zupmu zqlx@)=Rj;t#Nm(rgm|0CqYVM#Zm<6?D+k2n#Q%ikfH z;DYR`e>5q?*WLek`p*v#N&pL6C&)LM|N9&Q`6BUKvp;Bg0C=-^qtKyXgM2Ca{lV$? z-ycfvUp{S!ih|rIJeeVe&kS);@FAZE{5yu*`_FrgogKhG^qqcxq5>av{!g1)SOY15 zKsTT<`qmu4!Oy;Qe4=TLt#dheZs~niU*LVG%g5^?N^06D!?6KPGy|1(jPW9E`=KbE zVcHVx&)&X6ByBxR0)dee_n#+h5VGT*d|bQFty1MS^7$}o#6+H`^4>;9R4lZ*^ZrK) zw-{p!TA{QZ%62&8mC5x;=+S^lZTpm&=&^pxrdC-2buQ&AMpBAk;c|VrI%}d0kT@!C zFdPByIxF_rC)G@Rno*pvu<(E^gC%(zoTd$1raE)qa+81fVD%&0cSHwo6RU1pBxaO~fScceaIj-J69 z2ra;7y=dg#Lg1T_E0vre{ZSuv-F+#5qhXfEK2bgpspB9|Ag66WSwnN57)3I@x zv3?`{nMCk1Qlk-xFgBD{@LU!4ndxDZOAoc;L8laEHGiU>{@XEPu0UVdh{gsIF}fYG z%ak_%1Tt8CgD=@B-Nd$wFR!TcTacK(v3R;<6l5w{_M#gx0+^neDcP=vR37Eyt)q@a z3cs;xWOP|3E`GCVzsbT|k=D;b$=+yQ`-A0ulQhaTW>(FLWfYIRo7A-$y?&+cjLMM1-) z1XZ`uHgPMPC85)A%#^$OHTV4@FlD&nt8BaS%N3yG(SuQ$1fIz_A&$S*%8VzJlGeS( zui}XmL|ANaC=@C$r+$WJMNE){9AV)PMNL>i6eF_soz|)pIXzw5w195l^&xpJ#UX!V zWNoctwXx6YW>EjEX|zu>x>OlKUX^?g2`g0&Xq&?|?k9`wQBuO54vfB&}U}m2Sa(noi3cWzdV;kC>PEY z`zk+Cde-~8!k0YPi|9@kR$-a0*CN7CfgN767K@5dO#gND4dl)^?si zcGFHr8S*M8CMTJ7FTEb;s~!Idw(j$9PDmPxF#$@eXIA1U)HiQ1E5b!YZJiczZUsoO z>pakD)Jhw)f!|O+DWw)!@zKK|>b!Fuag<8elRW-hYV^K~;CrHmc(?e9C~U^Nsq%^V zYzY~@JIo}xGyxpC`!_-`H1PwnNK!vQtYN4D&1rc-pGosLP(pii9$J|90u za$m$%FOVoqfcn1cmxCPdAzr|xtDxZp{~ZUTMZdq^14k$%gIF}SF__57?A_Fl^cWL_ zgQ~eZ$$-v9YXq0|e)Lked>NCBSVH=;cbdWN#5Dri;qoUWwLv^p&SNq_kQLtaNC~A# z1K!Iv?3Wt1Dc;h=jPJFwk*sQ^bt4Bk&W3~2Sm#W=E1?4s#!#daFBnMP?@J|V$|z>y zPU{954^j^TA{S$1+cMNODr%nMSQ!|48TD61%GJHEX+IpF$G!7JIegL5sK(AU zn50j}^`S1JU?{pYSmhTM$L@qA>G!j;&**45dwGBL@Q!H}*QJvFG zlzn;FuFx*FTdABqNascDz9!6zX0?P#sN~&C*ou$CN0#}9SkGBtuAOdv@?8Poi=A6- zv`aWA3H^{diXPgnw>6m(Z0k4X*H%)6OZF*jtKDT=wbr*Yav8&I9?vp<)xU}Rg{vEE z?|eS{#_5Um@v7=u%4~#M`S@>x8or$gXEdh#nIMvPQljndF|lql`ObV6Zw}DS11;CQ ziMfcBbIEhHQBYZ)^chsjWQMVwnrXTX>xSioxym60Y#n;il`MFK4W$)uEJY|b&kaPy z)dfVU_vqNb-%b@b*pkCF2GBry9zD7HIZ}jw>FS zPnK=1H%yzQ{juA#nZ6|#EtaQ=$=_^A)^%Tb@!6O?_hLIA4-1C56VszvBcaH*eNBnC z@%lT*R6zFAv%$dU{lXk?tGV%Jft=Cuga!tN=};;=x&q#+z@hW*54lMhPjFt?w`|qV z6oKg2MCeeJ^3w#fs}d|Jcctj%Vhu5(wury*QH-m;(;q|L+Ixc0Cd!wTmbGcz)*wZq zOq`{2Fd86n`MIcsR3Tki%fMaliV_u_twYq{Ito*YD0`GeYF+FcO%z*HV(l0vc1O4i ziEbKZR2^#`*~kBVWY#=`d4tuP!j}#F!UKcw3MQh0WpV55!-7}nSzN~%!!SY>w++PR&{LsrIj9*qbrN+* ziDj>TY3&?yzc~n`9fxAz?@eW+&WGk=UAplyZhW$u+1Sg}Mb1o17fI9Mk~I?!ll`-! zqILsRiX5o_6CFyI%tDo;iB8r$cBSx6vwgvr$p2Qh7wjz|>IDl|GVXPmnAwZ{2L$%R}7aIm{*;8c*yez0mM!{w8&8 z_u1RbfcG*qCr`Wl&G#L#=g@6St2MGU013h!qU$}c6(s{X7$Xm=1&Jg?`jfL6^;s1^U`?c z3HX?yun6CO8z zd5jmAAtZ=^ey(txP4}fS8%3U8tu}?GJC)sta4S!DoW4*$Jf@8a*MeNYb7}grXkViD zTd#Vjbvi=1omWXn}cdMFCk%S zCMl5Af!F)oRLLaTkkb8PyYw#W+GD2R8GM_K^!I`{fOa|ZZgYFUno>82?(-EdxotiQ z-isd~*6oOdsxZq{7|{)QAvTtyMS5X<9!` zeoAZFl^lL(hH#&n^|@bf1~%h*T6}oGDSBZYNYaUtF1M(*Hi*RtnsLUpKTl6rFxU=x zK6hxb_7zi3_~#A1MIjtsK);w;(T&oz-3qn^hG%dr+IxHGHSKf~fA;qostxNV^dztE zFsuXmLwVD0?!Cm*qK`c1G1WwA+8WbWE-4C2V`HQecXZrK&j5z|F&bTIR#_dD?pDXE z9vhYQUwq|g@rF(E(Z5v%qo~T+@-px2OIm?K77bO_KU=-M_3+!39^*q{*!p}}_ucTW z6CI}XX#)~@u55TU{M-7K>#Ww~ms^n_w#J@(tl^dk*XYUNR~}*CU~york3aQOOX9o5 zGt3JFefwdZJNS$t{R7q8mLDT<`=0wTS{liL=ps{=brnDPD#Yi~MGIeskJ;w+lf&a2 zDv;0O>svM3j{kB5mKM!D&7b79rE#2rni-Ji#gLMJtva;6NasmO{>veCUtgAZfZzu= znmN6<`fI{?Xj&8}&g8cytY|qU&qde68gDmBrFm{IU3oB?ZF%D9yrBui4nEg6(WoKc zbP|?1HXl9ffV=ELmxXii%YF!f+=) zsh$~1Xnnv;OqBLbh%mnZb9~V(nTW?oP|*r z?c=_+NmVEB5f@%*rJyu3MG1YhlT?yB#(8bVC%{`cJsm05rV^KNV(+q~8A0=B&c}6X?PqV2uQ0m&;4%u$WpW8kSEP~0+Yj1dyKhSmvnF_kdhWCZT}y%EF;HV0uUueoJ! zGh$~)>+G1iUUguNJ?%xsHcE^66}vyn{cT)b&a^`^v^n?v0-l6KgWKBb2r|YkNn66C z<565k0%ocaI>FXNsIsJlsFDSJ#4X`l7EHFqG&_ZFiDt>tjw7N|Jd3);0>lnapT8nR z+Lt}qCfEyJwogMvTq^F5mV@(0G;MS5i!3 z;v@x;$k^CL2w`9z#wFoNC7mU|jmFP*qs~=HtBQR$Anr~wLw2TS#Nz5!T?c5g`yyp$ zHDQQ&I(g-ldH-dkw`e{lNU7MUSR|HiHOnFCD zT`!OR*D%`cAT?>Gi*u%FZ;@e!G#scy_ZQ_eA+`DuhuupilCx>s*VuLrp~Cf(3AGIf zYL27OGzoxrt*f!$Rbp%MgxNk@ei%9@DVwV9QDKwBS~M2-HO-SK%UXUCuohrLx6k9& zj^MoRYuaAY6Nj0Z0^r$!BmXk^0S-X!(pJ@uZSTnDKZ#Y;Eerfv5z}uD2P;so%dwe6 zm*LDgss96Zg)+o_WcV@h?`Z)2q%wRYOt9h&C&ksj4x z-=KeA##qfE-n#fE@|$En%lG{V_J&>nDVNC$Aawc*cjq}uRe^)e4i2yTjl?4i1v;Gb zjcLV~BCQdH)C61Hh{aHO1TXH;5 z0D~b>?9SVWd|;t`$qtC!vBUob)|HDl)veP>PzE4cWsUEfNP0Li1 zE#Jx$Y5md=YMoBm#_mr=sn^u8o${`&8d7WVZdE6r;)+%G1X9Ch+9#wE-QaLrV8;m& z#hWgv5>tJ|5vKf5uA(?31V!uZ0Mi%$9fneUKaLLJp7@T8!39qwUE3-3lT~{MySPT6 z%WA<`0Ai>+5(}QoY;)9tc9QHIMOe#;{9)d5$LjYnrv{O@>+Lc_iU#;4Ja61J4yz{K z6CVAs83rh6+5J?sh%_XCC;@+hvha3j{KM? z#>KOQRlpHpi<+DoQpZz!o&20^2kUHWUc2r`m0^*L~n6 z$mGdD)2{i!z?tsiO5-le#?G(${L$E3aC5bj>)hQR&U-_P`(JOEFOsYPZ#>N9(d*;v zw=$bnO7V!pDPm*FY!WNYw46T2vYsxBV_ABZqY1kK$y)HX?T>D;a4dAaKJf6gV1T|r z@i6!hPjtss3EauM8Rh&Gm-1_Ji0KVKbfYiC4NyNzrC}jrtR~2O9epUi<>z(gwDv95 zRApr;;<7P27Cq+jRWuv=0P!a!;ytoE<7^!gRM)I~wf9JCH^RG!&u_E(CqhbxebcoR zYOC7Q{J!qyVr_eKOJnlIb3@N*3X~o3d}Ob@6^DZqUs-ZbB)3 zLDbFn4kv&Om?ZC0=I7j3V?Sp~G+3cGj%!-|se7gLgW%dT@>Fq7PL=?f1Yoru?D&$e zIpuWsXV8(!KAhe`>K2bxu#=#+&eu9aEb5z1TJD51)G4zWS7=ctf=;!DvfcoA8y)yd`9|CRj`{CoM#K4}zp-9BimX>7Y7ll7o2 zsgDennM4Bx-Jq9NR(e;h4JBy3@63>GMo=y~{oG9#y#jnB<$}Mi*==J7pzG`|4P9K6 zFSGTZ+FA`_9dFZNH8BbJS15Oi2W+XD5v@gLcxN1@ZE#JlZ@WnQdYv}j%cWf`P7KCgVRyv;2+l(cLT&Rh7ol19-)gkTNzTQTjy zVp_XdFX|p_nZya?RI_rY0v~`blX39U;oGQ;{GveFaAbHPetb zX?!DOSAm0?A*JpHCU&a=9LW~EH1SL`p-balUYy$>seHoFE&c4RS$zc0 z8c=o-Q-5hj4`y*ZRn7vjqTtpuH8|JBAlpN&g_k3@LBBP9DKko6G+leM#r~YFfM4)H zA`R&&w$OTZ)X$av5k#gyB`meo)?JJ)gV=2N*zGSBG~ETrAVyvuJj5)ydS^5x?nFQ? zMp$b>KqpRno`Mg)VU5(?4>`}!)X!mg1mQ_dpAH0)OGWhcYR*OUGCTC-5@rtlzet9i z2u!4&qJUr=w=gMd73`l=ikU$Zn#r3P5)xfpg_-Z@n=EsQ;xs?&fYH^6_A z45WRD*I#UkIb&4^V_vqyG5#GsZ-|#x`{t?fl|3!?$;~t0r~a%v!vJ4hvZzmqGT1hV z2-C(0pCgOKaMq0gKk@HZEMqaSt}f-?mO-H}iEc_K#*mKe4^5E;iOe4gh#JAN0ecb* zGs(9&Zn~AZ%h4nGdtouhLQCg%OPdfspGQ#$gmW6%b#k)s_Vs zwsW99VZ=MX_dfYtU09?#yu34^<^^T8sHm*UqITqMa8*mVHs{cDLwIuDdZ8IZO{u9a zmPvX)G<{a4QQiBf`!)Jd9&!<-4}s`mOR_(chWeZ+x2kU2o<#0Vhb+(e)`q0h>;+HB zR!n(PYy7gLmCCPKfoC^Wlw67Q8}spveE}pncBjz&o_nM17RGGzq;7gx6ULyyC`C{o z-Jj(RAkfvhCFPiy10;9TtpI4M9cDI^Tg);FxY+ZeV#vjW^<(&|c0}pPgD)?hRGjGP zX*S(cQjR7MLslnU;cHqLQ#Hu5{p&XVMP-&oWAif0`i{hC#HfF$kK#MOm9pl>*Dp-F zZ{dF(2pqn2T{w0a{DBudTojKtAWa3zMS7OcgYd1P9{TjU0PS=}l=B8ECaw1=qSWm> z(g3Zb+p|`OB~~Ick+IQmCpu_FdNO z*4sg~tjA)eRppH*g8rLbf~#y5hEpt3;^27e+q!;#xYOb@9gFuvdr8GW&XRW?U3YVg zAs$}h)lWOZD3|*D;Q4kT@X| z$<&R6C=m=7Cn@uKGH3wI5BNkeh_`ca9h&y)QBV8fO4At9{ZB^eGDw?y89Nsho@FWE zpVg_|OAnMVExq!*w6ec`(LVZ;f4BA06A2#637a4Gbx3v#(B}J{9nl z`#!*O_w`^sx8w~zb_;Y;Vx-XSi{&hC`KNMI03CON)y1ILIwX>eXRTg?PT_ZBugInh z->rYz(nth^r|D?cr}skFN)^R^i6A=@Qs(_mTq=D0Yvtn$orb42tf&~6qKoav*x^0Z z(4sXJir8z8C{)?$a%|Ae``hozdPH^#W2{2HC^W2v?^EabixVjTRyhK8hF%Uft&VY< z?0Lkz`C;fbrfqxONz_X0ks0`eeh&H;`v>Rnv-{vE-)jYU>YnbGAw1RsMKm`D&qH)~ zJv%@0?f9-XDlL{Zwn2~TU|kj4r?9qL_0m<4P=Wv?s9OSxT}Nw2&mIWw>mdzWJux0wW%0jfb(T^FHUoam~ye zQC&QBOgn_#D+f)~5gj=+!V>iU*I4>469czJSCxoKvTqF(~IKiA!JXsuw@K$^NS!6t@S()A`F8`J3-VLq3 z5R)t0hkVO|O*N^rr`KoPm`cRLd!^cgMV4Rq4KK5+>_i(@H*t zZ+H0n_O$XWGMT9>l`vOd=WRE44i?flMOHCYHRY;NtKebo*?qPqh^zR31kCE00Tfd( znGNl{ccSBTqzZ0-9b&1PKet4Y_}0_7JfRNGlSLqYd(#*>m)(1=f=JIB*}`orV^aTl zj}`EBw3bBeG&&` zJF^K*MZ$4}XA*{sH*a+HHbrsYjqVP8JFjYt3?-_npDcG zI{~DA;?OPCkJ54kgg<94hPc~4oQIM-fy@bDepdIj!3iea5EiJ(h}#NO@1miHDdD5v zQ4d|R0AC*YH|IY&p5RrHm*{~S9k}HvQo%o~XdpXq&1*m+xk+0MW5)KTr@^Lcp2O4a zt&pBjyk>cO9iZ-yD-zqL@xDyXnFh$6^S+AkE$wm4*)rOWyx?$?#Jjo8H~x(SVg5Yn zJ&cRj1!V-~nr7>2y~DLA5qfG>{UIGiVd^hxC20Vmo6QW{o=~^nNJ5rHHo}zAzu2>k zVW@Y3;C#;`o$4}IY$}Fa^Dy%*OZ8TpH0jdN4rXrN|9CDu)25=Z{QaHUynSn`IZ4oA zp`$%5a}BzRI9f=`U{YXoy79~RTXdt{2DVGiOSTjj5mwC{Hi`94qz;5v zDsx}6_hI!;LMSP%3bCcn4rZB)?ed=rCt2q#!D23pz+;)#F`>z89T3}wamg_Zi`8Z? z59kHG&6z#`ADbhSo1XX(*}ao9Cs8EyY5bJ(3%B`VX4Qo(x}OJbs|E8jH<5a7i);A= zvyNfn=C#}FgRHldFIl4NkGN{yF>PwseEy)~f2Y#8Tx1q^FV`NaAjU7%%iZNdR)iUF zv~>OjV`?H`FGX}NMPE^f1`YighsMvzbHxTvo6eCXvYG~UdYMjd;{wHv2qM-6$Ej32 zzaVG_%$`bRE^%3|QxlkKADz00G9f_Mz*MCD=jcjZZW^Wmdk39+I^zk1@L`FiFD5O~ zd!#U$a!jj<>fzNglzoh&{A@~i2A{tldrKbDrq8;Yc2*hetm2TwksZ1b@3bHo6~-A* z@9;{TN6j{K`MF$fZtcez@*iQqsgbN1>|0l2E#eLDF)2+s=u}<6>fxJE&I7LRd*ez; z@R?M_wdLNZQ-5R^o6&bu%65Dm^q#e!>+|7Wq!%fDHr+h$6tTy&w8Q85a%tEA+dy4) zSa0kOl(%2SNB3ybpgEI2?a3OgRw&XM5Ph3$)*eC#>0w-WqZP9DPR!NB>Fw)6SgauQV8kej4Q0|29yv{~*P4?yOU5a0#R>x1xVQXn*V zmKmPoTP^p^_-ozsl!b3&wScyuIs+t)oUa!qaF=G?EOw2RJRMek!|^3yUC|EF{?a&4 z6^r!-*xC@)r@o+nRQ1x{Jsf1={PD8l4UO|#lY%}Z>MsKCjQ8P&`}Q^ZYj)4~zVIea-<63BAA2)Zp$K-nRk5LOQquMM3yngl z;L3c5g?dTsSypxwrFBnyOJ}KGeBjC}?|k*E$e6mZd5t*dRd1=6RZ0jVq1AYu? zv4yRw(&o;nli19OK=M29A`lcW{oFaOoJ0FBYk1WWnC#uAMh>Xq=})kVuXs_Nc0_xO zd`RV7KGdZUvqcUePL9OxepEgUsRGHW!MKunxCxD~7Jc++EIMlu{^k#5!Hi;z)`nR^ zmn#zai>yUZ)k3Mv@!aVN>c@*s%_pWoeWRpWS6Ajey#A(y-e|+UX}%M1JDp^Bn=E7} zqiXOg%*d762qnkzfr)CsJRxi9&f`qhanrXZ#G8sX+LLi-O7#Jq(dzaVI%LzCxBxXcf7EAh?l1qGoBoF#s{S?*?49dM?25S1ySDV#I z=W&=A;$)@B7VT3T?yusI6Ljc$UsoxAQO1P|!C^`<3=P=uT$ii6NntHz!Andl#t0YK zR1AdOmkL?(l?aEw>sybc6u`cv-pW5yyHfu<6}ouY$du}D+rop z{z9l>*0J|w=_(|_d3!A(Y`e-QK z0oN||^?)Oig|&S``!9p9Omh9nCR7%$Y51&NQ^_%wER z4Y1*TM)~+Akp20S%&atA$1giA_4jH=8>lVMOHQE14jYihs+GAkcCT}bRQZ++GOZV` zGz?j51am`*Cce;EbLF&%ybwJ#nCnZLYTEj&27fa(L=>yis&-RuPP{Wkr0G$flcLwg ze8kssLtk01mZQSKuWp~s1CTzI|?+i4ZSjPDr=@l37wI@;M5>O(1QtBYTy`oHnkE;2b z!UC@(09Oka=RVB_1TT=v+3$#?;G=>P5Fio!MIN!_{roaP_0mdHw$T&9=6H7u`#3(W zgzhJwt?jIwf580QdVP%MrmYY2)Jai8-+okCJ|M5#n4#s@heSb|`rV-qO^o{`mt0OK zT%GIbP$eMZ6n)+R1{YAidkGJd+_#U1U%t}vXmp|f*iSBQ>R=qof~S1l)c%^wklpk-bv4d4&|Y_y6!ue2c{)k$=hB!f zfEl6S%A{z6=l34#_U50O0CyKf<;4gQA^0+lHT|?D`!KE8 zba=VVHwOMY2KBcb*-hbB3FpvdM=kBzVwBc7ULPf(MCLbjDW+bQ?TwK4)=HHkTme<_ z+i+*sv5;|F7@!OMie1`nYG+Qvb#&twnV}h9KxsZzvChb@6g8%QbzHjp8Y_bGs0F8{ zhuof&r)KaRp`xeJ3q47CasrANM~w=2`TaS<`U`yacgXE}1QWA#cs+-e67#`E zbBKvJ8oX5>3O(+>&!o~|>6K$fO?xnwGn#2U8U8r9kMErUqs+vwjCH%Cftb9dzI$c? z=P5i=H4<+y0zK<7i?4>M0`s$eFIX;Xp6c^PM?C)2P5k)voh0FP#K#uxGIqRH@t0aT zj?PKwM-}Y>r4HKUo*Ihvqbxf53vYAv&EU^LL0D*Uj-F%hd*t!UV!2E;r%2n@mc-Ac z7Nh03w#mqsn*~3$cp^(icin3}gJTNjwK!zTl<#G)F{(UyE2@uSeLPbplOg<#>^kRmLsi=ASY;{#vloTc)jrd&$iegS`IY@N}z~7 z`LCm1I@ym1YUsHa?dFnc=9A#YGj~0Px~u?Au>hYqo%$hf+ zDoUSTacYSy)YpIfzBqiUT2IJu)!&%9bIQ2l8327~q;ZtTyZ|rOt1G%&nj=d4HbSMP zF~lZp(=ldW@CHBAz)tyy?(#ONfz@1&1d!k5j>mfPY-(oFa9vG_bq2onz%*YT4cYxC z^VGU3fjTia0YAY`K8at=WsbNyU^3CgtBAOT>Dxsg1+#RFBYReGATn-Lb$E9;4?BV_ zVf_gHQ$8Ou&gT?vL8xw|h|dv|jZ!p`S2#jmZTZ~fbB1#&6K}v{ssdGdo0NDfB%?io z&xw>@Nv<{Qva{xY0nU7SyHw7e$FX=~*QW5sg_^VSJQn5S4NC5Xp!^<=!)eu_mN*oX zbLmDxn9fh$KHV!tG`H6D!lQZNC~JFw9fPL52fxk?!=AIz$6(p%o?@L78*FWZ*N#KS zhdpW$_G19&xYL2k{A`1Kf0IWAIt=#{J}95eLjlF*PPK;RxpXmWz) z84i-k=E!;V!fRYDmVvKl%x%--f`puBuai@j*t2c41aWBK27IW6(;G&wH<01S+6WEl zj`r3hBr-HayuODDYV1JwJo|pTa_TnwAv9SUCi+D{IX)p~+B?#q4?C_}&(Ko>3REUa zQcj6pnujHuj<_+%bG02lkzgV^kL5`%4+<$E-TcMu)D|=AS+Xyg@7hmL%H?kFzH{4X1i9|7jKlIBKkdFPtZg-2W&TKKVgj)LMZUepE2KH!ZJh1$DbV3&*zN5wMUR?2Rp>F+cmIK+Eap3H=#`}-j3JF2G^zmSKJ6OK{$GdOk{>Ui;PtEnRq z^+EhGii7I*>#Gdo%-1cTRrva1{;IbfMR)nl#!$Zk!)x+hZe)hj@=vAL_uA~!iNRKV zjcsUp(sPf!nep?DiW&)GI6BWU-uG9d_ZWJHH&$nbRI=}WlG2yMPf-NctE+Tj`s&zm z-mSfiR^nH{Kkd*5epu~HNs1!nyX#UN)u2@ut;97R7%<^peffQzsCLii`ZwTY?OD@l|fiJ zH#`+_-f>)JLR{4o`u0ESf@~!T~!K^2#AH3qY7Kg!yDH2*9 z_1>?M#3_C}$_ANGb9_~E`0MXBqR3{t^A4Ppa!Rb54399&n_BaohOfU>+9kb-ppQ?Y z5>A--EH`~L7e=pQpicgNk2AN@Yzc?TZ|n&k65Kx14uuC)aZQijX@Hs0N9e5<9-4dS z-LzW#`iA{*>99R$k`2|lC%CG~u;{zgY45CaaxpC{kYbn2neY+gwzW=2u1%wUWoPb` z5<4vxFU8m#w7`}4PpUVjQ?->x{%mv4qG#wI|Ku5f(3*>6NiybPO_zllkn`*%0Yf`u zZsKRc={_{A(kGiUHN`lLH138SiP#PF?@DE+?6Al)8;IOhWi=R#%O zolL5AMCzNpXk4yHzsPJ*v;eRlU=L&PQEGf_6lMv}A`zt{u?@dOYv?pCZS2B)DexYp z5roR~Pi)-d=?SE|?WE?I9(`i8Z07vIsu;R|E%M?0p<$|VTA6cpS#FYatw z8Ixdjw@Rp%ACy5$P-#Uns6!`i3FaCo!+P$F&?@Xk9$6!B8YNe0_D~%8K)kBL-wp%A+*@1f0;^?#Im;^)luJOmeOeJiz^1xr=wLuh zw~g8C+V3^0GEBy4KRSfL))qQAUjISFauO)(ey5zIQ?O5-W|J-GVINQ1#NJK)?Ur@*s0d4^dXcH zo*^k&g<)K{l=|`z>0O^5nhP~wVzpl}S<3nj4$7|F^?DhWc6(48oi7jQ{aoTMjIaZNh`JJLq zrh`YNx6c^Hbd@6^jgoXQjo+4+OGujlqFj!Q>|IM}iV;wbBhUx~*kQ9656 z5jh)5RZM%BqrW-l?(Jc*i(0g9X*sh7LN(h?Z|~FVZ0TfLFaoI14rfsGh*z2fu-uS~ z)~;H&<(c2DMxv8ltygz96jZUC_ASincf?5DTzz!D9Iz#TVsSjr3-=6sQasxnLYmn| z_qnlzw2pzyt=J;J$T!6lW?tYKgYbv1n66fV>PLQz*L23OoE@nGo=g&;R8EJx6%S57 zUCpXy<;%-ytrY>Ozauw5=4LQy=b~{Nq~BST&P=ItD-&TqutxyV@vLOG`)c=SJLrM- zqSolqSQt($^RwJ?CJ5Z#S|`j~^W1;>nTS;$hl+93P8a#3Hx)4ntET#;n1IPtla9#c z2u~}D>0%dL&>9Od!ScSt)1E^ESXUE;lXh+-Jc3|anCxW4uCRD<2AQihwJg$~Obo!I z=NT6H4Y$>8J7P}u`oa-q=b**&k zpW;fP8rqaAZmjb}eW-48mblGRP;?J#XKO9$wO;rzlsO$Wf~=8O@k2}##`!h{@8swi zqv;%V7kYVx#w(V3A}kk9-`dw#!RAh4 zw>%dZKk7SudMK_HjKXiZlI$a(uZ7ht1Codq_ZtjS*`1GLQ7ZjB4Di#bm}FXp<*U!c z-kRNJEr7wv1sSV88|fgiSH@S#DM2wskB*BAB75t|rf1{MpCo#DiYq#+Qlpg2l^HXS zmJ5?rmt95Lri~I)T9WsgtCnlc{vHWF=<{Gaz^YfFl?utjar8 z=X2G^5I$Y&wA#%D3`k?z4k=W*7Q?&NyTf5f9s*UC%bDOIaEwS+8iuO#uUHja(Po#z znjfk}c2$o8Fy41Fr`kISH~#3V&JlEjWT$z7~WMjX3Rz)Vts>SQF=&#Du@cRU;kz2aXODohh$GHzw|+F)Xj zz0hWlMUr`EFZ0Gy5?L`v28?6JE#EcW(0IIbGj&FBs^}T)(|S%QETH|FvYXhxfAJ-S z`G_X&mz0l&h)$CALe1_j3(pYG3j51D&HOb=?3;TFkPZqJ_pe>PL2+@0W0w+{H6SL* zxw3HW>!_#Hc z8SMj03b<)#y!jAr4&&Y_Qw<*4<&(+Xv~}zs2he99(AshQ%WV->Cd@&N-Tcn3LR_>u zw;K9ly{wksRQ(HLQ{vj1KcVcw59f4;EmVGK?{VCJ=|72_y)0-LA>npZ{&f+F^vy}VgKfuGPwLum=7Vj$I?1d$Qbx)=JmRp_{jBP= zcBqqAvEc1k@R~K+HOlB4-krIXsA!MS!xMep(#SG|nSUmnKx@Yko2Si~fR}bpsVkA{ zD;?pCFiQuM?eCL_wsvCuBMSOQk2Np3XRts1np~r1Val9xuHe*^1?621T{g=XgaXRi zF4Z4q(#OQ}eg(^C7Il}YL~tP;Xqh^AWQ;ix>ly4>46h^+@e<8hj5qs0bH^7;d>8m{ z%XE&`bYtLr*0zh|ueG znnj@lE-xzR+Sos-suwz+<4C{sgd;HS%7E78M4UY%td?>^mTVkf6`WNqGGv9Q@Y^kz zgm-7rcKW33dzAcdv!-lnU;$Cx(O=9kVQVBodzK`TRu{5zt8xQdBs!f^!Mc#L%VKM9=FQ|oXA>D$ z@`G)mJN8xs$H7V00@sX#k5_10XwGJR&$)o=SMwRi_{I+`?!%U0{DyYijluEYcXBaa%P#= zQF#Mu#2#ouirv04;G`1sMam^71$BU!V6c|!H>y(w_NshJ(u|G#=`c6{Pt;7l<19Cg znaw}YQ1kP9K~wz_>M`j33tiJv9xPlBdaP5YD_xd9-Pq{t(|sXs8UQ~)z`x<9G!#BQ z@2o1oc)pmSqKR|B%fLTIC}k3m;~G$25og# zNIS?CZ!t%u{4$nJ0Z0j;e2D`YXBUj&o(uWhb`!_;f<^?eeyi0W?qt|%Tpk=XIAWz; z)G1gvRRR-LaH{cC-r4hlu$jJ|m*|8aC0Vc=Btu zjn1A8Hu{?~gpsD$@3Ej9on{mu9Cgz{Ln#5L=Etn(czRV@zbng3{K)HcC_BvvM?)b^ z{Xr0UV^Qsuh!bQVV9p^4B%QNmU`Lz7$_)LaYnnI9LdJ$kK3VY)POysbBH!NCo&4Ic ze4}4293K?nof@be=>yZyZ{VKYv1=Lc!8^%Qa}v;EfGh+{cc1pLbs-v;~MB2140#E#9(SEWXxM*STx1X z1DU2gLX_@~@>-v;F(b2D+vtI#R&-o)B~V+xZQeObM_q0>BWc5Dby{vTqQvfX()1Uv zhL*h$%^5|>S0r?eF~k@dVpO=ckn>YGv|yr=hJ~Dfau0kVWK9@}%7S z6Bk7cA?`C}anltzanJIwYF!b#+96z)dWFk2;$Zy;Y^xLb)ZI}Js~z2Lkz!&+vc0!E z&vnaUcWqi@;|dxzlTF~@x_^i3A_S$q@2i+!M}#U>zU(@F z&w|saZq-hm-9?>4B~v?iOXzxoiEf)RD0B)oBe}nB{spG;5fDp9Ovc5-JNZfsG!=U& zn(>l0uiQ>c3zf$CLUAw91S-!J&2FRz@IA0up{Y@3V)o!Hhst!w8|2d{&Qg;=$CGqe zz#a9D`%u6*CZ0XOCD(T)98w*M5Y}nyF!XXPBy4gsZ9_6V6>$cQyNV3W9^dt~1D*7g z!_9TdFaYU5gJh#q+bWic1>fvtaulLRLt}}scBBHOm}1RK2bo17r^|zPDp~D|&K^3% zK2WwqAJM26iV>>1VaqXn!?Q9FI1bkgnm8%DoP3K1_{+`h{0KWvNjCRPoI1S~pe8+| z5t->_x~$;|UeR!CjAO?!Q?{J+jOf`SR(*)ji-vffYkM2zhFeK2r_31w^ajXO3CMb7 z`ZTOjN(x$}iMWF^ zxRc^zH*Ps=Wr=EWAYYWqHW^4+wMBaxO5xZ(-iF9p082#Zw|oPiL(r08?B6Ln{^=<7 z4pf%tDfAEMeiGeGk@t4DJNrwwHsgBQkTla!E8Ddr$9pJHl9+AV>XHktkT#1knx8@R z%A>uHi>Z|urHIfFL6D)_Ld%@E^pS17k?=tw>7D|;fw6T3ME2#O*_|sy6Am2xqs58} zU8grmcEI9nCU_U5cJbjD${E32r`oSt_r@OWl_t?&@`UhSB0609Bso#G>E3Pr2X%Hy zcrh&TnO%T1RV{+Elox~HvBfgp~ z)BAupo};=57MD^yKq z^Nisn;3Db=I#J}z6&yQ|=xS`SGi2C=LJ!K8NRB&=zOIgpB8g``#NY};M*w%?YK2ok zlg>&Y;JO9*ka(xY0jdqi!M@P9648mzJ>lU3ifQ5-GHQ)&`aA#tQ&2Z{63U6a}(zRs$(m{ov*XI*-dU!vJ(@N|5i6 zYHN#JeRK45_-ql8sO1(QcmXPCa*RZoI(@5SiG%UhM(C;0s)HT+NTHkTPlM+4-CVeu zwf(YjU_Q$XNoa*(^O(olqff>H{}Y6!1Opi7G8&4G;?2ZMP!E}}!0gdPlNzWei^ag3 zTW!6l+A=AcO)0fw&xU%x^9~TyG13<3)V-w~75(`;!)?H50W5SJ81Xi+5%r#B~iyU1Uva%+@n zM@-<^RSO(_CJDD-v+iQd!;(kZFB*4RsOoMrThaDX(veUW{Ths?O-P9K!o<>F5JRdp zs@CC*X_-B7N(zU486I0JkZ|LL>YApxOBbeBDY}+`*)UT^BIL~x^BK9MkD2r{-Wt)P zwdhR9tj3J|>0_SYT9M1hqZQVYfIkj55!Mp{`U6*z6=2Xbig5e}v@4;bmhwZ zofW9svr%t>Zer+r(tcxEp`lN7r12Z?vtNK25QtU*wum)2iNAG)_9^p2E`k*?>FO^d zvn^I}7Q*aQg?61q9VGl9VPi?s0xP5&!F-uULS3i>~R;-)qr zWTasPSGVh^3d2F``ua2{Ng=wrPw0%{OIsP(NZ9ZdLY>XuNSR$n--&-g+PW++AOw`^ zTqOtvOcVxlkl&FA)$n!I=o3Q+pIrmh?&3>s;`7a9dL9@00BGuW?ik^cciRG#q^1c7 z;Ex2l3_hi6v{dc`-d%>(;F)j^wIEt182qwY)^u>FLo*_1whjn8n#;N;IUK%Vpfg;I z4=@^VAs8fvua|&z)uslLUvU`EOYtRcf$La$H0|t;l9I?^)|I=KIdP)a^Umv;oynGY zkq~G6-sUkxlZ#lF_3U%5A_nM=-P96S4#okepRxg&CK(L(POMS9vmg1ZiMG!M2>2oH z6Fx15xwHh|j`c-))gLk-r3V3Oisk8Oq2L)8Sat9n z3a1GRAFKM_pvDuc*g7zGYh~GPOuXQPAyM%X2%9YHYK@Q(f*Pq62P;fo^-W+hnN%+Z zMFFzzvyd3CX?0VueWh+82Hn#rlZwdN-4L|82_yqBWZ3#Y<=l`kdT1`*;XYiswiN!6 zq7AfXHX)~EP^I9M%Ai>2A%hK#iDj4A*wF}I;Bkh@1yjdv1__Xeyu_L1g+~3t4sdQ@ zUst)%FbjI4F!n?pSuh9xdCk?B1rWgnbK&fz;o+RCL$GknC&Z{srzFr)73pvPeSNV=%+ZApQ*;M!}d$R(h^mx!nJLQa-qHv#o_U3!at`vEXly3X=}jB`fYgNneKB0ewGb%f;T zM`O91^dWbynQQxUILO~+x#csQ`DPJTV?cFSNEG|H*AScxxK*%fidfy%zY{)C!l{DhBa4I0A|$^v5#h^-56sDPx&iFbS)q7U}BEQ{$o;O%gn|Gx8yx zmRyhq~e%OCr2s8&4jdmoD2*gqAoiTThzPUPli zP4O}Kt-<^mx-aV>X>3?(z7|vp_T>Wu+gfi=O!^=xPGWz7-z)2ypI|vq-Qo0qsQUYdio{F07y^&l$4B^mRb-djwo3{U(H!4B7FkdX_H#Fuiv(&h95{-P1p6>n&5&9o-=F@*-k%cg0UCql3e*CCdNf!A_XEj8*&NWnaTw zR)N~X9y~DpN~3{O6xOsnd3oJEfr!THw@Wt=vh9|yti0is1Ga!Rt8I-T-~(N>t~oEQ z*4{9o#JWwD!_t$QoTL+I^`R}7>a`q5`!X)_SX|oO2tl$( zQN%CI!n`Yfzf48$F2Rmy1?murm!iR6jQ7`Ob4563C%;_u*l_ z=iaCHgQABZGjI+94-qzlu~%Y?)TuYZW&l{R8=V&GwHJ@e?hC zr7}_`RhYdfL?o&WwO;j!9qc84oV%8w2*ia!Lwjh2t%T7E?p&~^x+tv;a;s!p9Xe3%xXM_Hi~EkE?8zFS29?O+m{Ob+KCXp(KBzKJ6+WLgs0#=kcJ_G$6)t~~aQ)v!0Uw~_ z(rjl>vs?gho7^-oUO6;SB{DVUP1sFHMZD!hK=*(4pxKWJw7evm*cAb0as;83d$NN+?I}+w?nQ-ySd{)|K9lNi$CQK6{yKlVdE7>w zkp8PEHq$(GAKNXrbe$gF=n%;C+7jBR5H)57S}Rvv`Cm=jdOv}UX6K*qtvRVUj$goo8w`1 z8dZb&RZ1G%NbnIIpegy1z}Z{YSo<`>jzXrL6m=K*m%UC>9~y z8Z^CnM}pKHG3P714nQRh?3gir!Br^ruAt;oy?L)^Hpd=g+GmGketK5$!Cq-MVQ}f~h2uB{?T6MY7~WVs8#n z7#E9vL40Zo-#yilDh{w(<9{1kvXmh8=d$*+M=w8MSxjB?7urFJX!~GLA>4gI`>`Ev z_&~pF)4V}MmRgbS_&hAI zT{>#LsD#73VA!3Vh&Dt8kqb3i{fnh}DEY-2;_;PV6lMlI;Z;1XgD=Aa+heOi=bQHL z^M%hgpAiEUF~n}J9f?GqORDqkPLG-NnG=YV_R+EzyGv7PYE(%`ivY&TjcZb%ujeDy zv8o&~Ysi(ZO%+X0j_>DZ)!uKNs?1X`B2FONHeeQZW|}~_So$h4-zSh`Pf)c*mZwHJ zPA!nEOM52WNU;5J`=W$&{`sey7)KwBMGN?Tt;dkJ^VLTFTR1nq`J47713n$$KM(Cc z%HP~lM@$bWp+=crc0DX3>}pT79{K(5wYf^m$p(b5-~ z{``l;adwbY8?Yi`RpTcy}6*<+pcax^&b85J{_E}guLe#eX3y0 z${MiNq=`$RF#ks{Ld`SU3Frye+QpNJJZgHsJZ0BSV5q1B!`d9VtitLWZ_{(gg~FhS zI6pFBCtk=J{qx86Xk&MHRgsAG7R2idm3If&gNlq`dQl93OqN4rKJ&-DN3n+|puKr1 zf*Sr@Yteu(Hq|AeoG~Qn9kH$}AOap(n>qOdn@7GhU8NzKSxeUR;to%2h@_fH8MKs{ zbH;U(0MS%dx9!|BuWlOk`k}Iqo}W*m?K+|Mkq#Mmi<>|1M=tcYjd)!_NuQ$Zg^>Sd z6I3T({9=<*;5yo|@I)?@O>`XUbX?AqdUIF*%00L0xVhRX>aa-h*Gb+3{ zCcup0I$wdI&()smr^Ke#HKsC}c-t?KoAyubu=!xe@NO+*P59HACIG*UAz60u*$VFA z=Qd6UMw+lfOY1I?A+bU;Er)D!$dx14;wQ&n>*MI~0}Zy~s2xJ~!^x^qIT8+k5RO-d z-CHc~BNsBgkT~^!ISmB?qRA|vmLM#KVjfRe+_zc!;GtKQV;V-EbdK2p1hWCLtN?o3jyeC+~2uv9ygz0YEE7cGO%d&hKvG7mrNN1_bC^3p5is9QCma( zSz3VrArVOfU(&zD2LEb``z3kNp`z!WIpB{m88pWUkr=;nD!y`r9Itv{v)qQEaWpnA zbszWYm-X(9Iu$Sx9C3mfVJm_TNlMCTLelivgcur7cL|yKyLRFKrJGJ)?g}j5Fkc}0 z=g2J1tR_94p-`}bUADjg*stG^QBYpPejtN#zxDZ=;a{UR?#=L{M}&hL#da`AKsnWM zJFYM^+XAu_&|WLU;W=KAS&5CO$+3ZZf1Q^)GBnKuIH%Q4*ceKOr#hks*!1@a2^lA2 z>6iN5(vLWXt3=y-O`zSZ)htMIkKnd`m2xEfOz(-@3F-n;LaS=*YkC#P79fBPMJ!;9QxfD4$Es>Hzd({)ZiH-`hi-x3qTW_CYQs|pP3*IvTEL4=RyMw+EY=+!CH{Vg%Mx|B0L1>cNvwLzU^OHZ<3JHVie3Z_SHKaz_7tob=9NUSeFPok z>Hq3l%Ou^H3Z>Yo`6M&-P?uJ<{=Kq4d03Dux-exRAYnoUWlT;liU+N`u3Wo>W3~fn zyN?IYeds7s)Jq>vL0NzdDzp@RXtOC5d&BN7%8qo6*w$5Bp^M7tMurL@UGQp_TXtP2 z51!=)QX4>>>6Dw-Nvy=X9V&F;8}l|^o9A4{95oyX8aSw;+ElRGHliNPJtkzx7^B`J zlO=0-jivN3ngCBwzaHeY6R%?`<8U-*eUR)dHz)Vo51OeG`;3;Z3i z4fYaCMtxavPZnmyil9dJ3*zy=8r0t{y(W0H462^MuNx?6-Fp{Jc~Z_6tosWh=YS6F z6Enj=nHyQ+nozhh6ha5wW5d8j+=chlfpW=@(UM4@YulEG&4TMxx(mN>3qt-dkl+72 z6!7v%=Se$?b2HIytjnu#onU*qk;Op}3~Et2s&(RnGhN4Pum&ZQSu)3Rt0M>JyIIGk zW9JTNdO4X{EUUmrD_?YK@C_~0{b-cm3BZ?e@5?xxVuJo)OlxyN!K6*I6lwZdE-oK5 zP>v@qRJ2pca03)1KjCacI=LbuN8|L^gGuwGM=LiC^dZ_*d@j5C)h3b25=SK9c-k5< zYh5@51|B@WCRl@8#$fs8zVf5Pm++Uc11-`Ne!%A5wl|LS`S@SvDKP=L!BB!Xudbpw zO*~@K`U}C~4IeDJJDaaQ_j^vr%wV7Q#xQ+Y?=YmoKtCD@VU4`f*10~P@YG`O^GxIw z-Z42JmI-jw{b#9Ov~9L{hrO_}qu!wozmKfexf-kr)qc`PS(q}eLITL`xZUU#$8!WH z#j4piXFA1P(m?9gV|;H>&70a-wYK5GiyZHFkbAbGWIyq^>712cU^6{ID`+S(J)b*s z&bT0m8H|Kli)YKKB+Wf&Nnms~xBTRo!(&9Fw|0yJ|Fp^%t$HXgUR$?*dJ)Hu3~TvS zNBe2p=0gc-p7jm51#jLrtEATnF~UFoe#Afq#ktUG4O~i1zW{*-X?b`ynnbFYW<8aI z6>?)EcY!RDgWoUw_+W*V+nBPN@@T)U1dOkh0+Op7LlLCPBSt8oKm|bKfSo9hit-;m zm8;b)B^66O{WMip$=<6mx>dBy-qbm@uiquDAv#B8=)#_Xm ze3{u{F`X5sl^`p?jVOZd^oIwRzQSPUW(UgdOpBwrK}qgh?iXB<6i~huxrkGGcinj_Uw@XZu~CruB8@K4isTw%y&hR$ftqUck!zX(0rBY|zCh+k$VH%u1zQs0zKRZt z=UCNvSl;+vHN^p`rwbWIQ;cwxkVrZ!078w$70RWY8u+v2gF8_^#lp`2dQtC>SkpBd zJu2Ed=UiPkD{7{Qn}WQwC%KJZ!aPQ+W@)saV`rL|=!ednH1D@Mi@+_%6od_Q7&jDn z3olgG?{y_U1i>#*6p5Dzi#xOE_ByMSby(06Xkt*XWZrQ(ER#>!v2|J;q`+7s#^-=% zpAV&H7sn8$K%JWFzAzz0vyJ2KX?ib__` z_}HtwR;SO5m~i&3%f*DB0>2T9Yz7C=k9-MJ)sUAu7V;do-nV4a{qdz|&yzLEu3##O znOa6Dg)t0=o#9D>lNfS3SVzI%{|s9AQ>=X{R7ZVuMdf(>w7yz)>qiobC6WO497h7+ zf<1md7z7%3ljfbE8XG$W_PwMi0&J_#Um0k`=V}}F__Zq98P$?Zr*O$fL#c&^d=V;(Yy)`MA zvK>r4$X{koRL~~GlYSnkCdDEQYv@2(OedNav|*7|5j|GYY7w|#1-YJ|-XF#=|EB}x zc9@8qscWacH;t&@HrIf|pvB85A(m^`vh5NZ|A-6_e>J{1xGsTt9{+48*>>C#32FP( z8_dE3k^*YEaaJZp(r28>n6+|}4i(%`;Q)6UnL)C+Q{0h2m?#!S$}`kG1Ejr7icQQ? z^YV9R6K#|>P1yhctcorNN@2b{#t-_#M&!tctgR!=6eQLiFC7O}NwhpgipG3Aujc|q z`Ffh2(l(eEDxCImX84XvyRt1sQ3E4sF9dGc5W`FgOQ#gmr!6u4hU zw-hNJGQGHE5g#Tf9_B8F$`@Q~aYGD#?oS?yj& zdN!I9Xz-HHo%4PlgUsu-gUZ+W(+M&RBIZlBFLq#>6Y9-or8?Lm6aaqDii@xyx^5PM zA3Afga1LFVBcdg(*Ntm-Mg0|_>2=eK!~pcn0X&;TaA)jVSrziNmzCPB^|iLY`5(k4 z#%$R{%X&&+v;efUs^(;#_5d!%LEF-n6@*2fJGfus&#V(WHc0ATBCjjC+s~?Xz8;0i zI@b&kl1a5jU1Z-fPRqUH<^!wex%T?VASf$ z(SD!~Ss8cNYbh<_W>69dlhMxK9vr7JpRKl_7Kh3=G#u4BQ6W%-m%Ktz+E9&`pNL(M zL35SEPw&F#3%KEwch6C`VW#&GM2ZEJeiL$=UNS%vf|3~xrk?1VJJbg;y{Dp6&dEk^s60w+{b^awaPPoEMPnB+0NvbMonv@{xSHU|7=Bm4p;Nc%D z9qM@VP3Ywf=3T}hTE?Fw|KZ>$Ofb-K4r~t#IB$`xe?L=;C!%&08|X7Q-LS96@AIL=No$Oka698TU{27Vt8`y^B-y2G+}GG%@ibi zb#&>iwV#C9Nmh^ym~>z^XY2sHW0z>_o@91y-L2% zXf2$d#58RpI{Xhxhv>a5*g{8qI#VXrMfDB+#@$h||A5qb_gERP6C)wvL;C?e3K^)goSa$Q3++_{wb7L!CXntcat?*N>^nWDzWTDxP69v|KUh~M<2VEM0d)g zKfh;q5?T0QWQM_o`cS0t|Kw-27g;JNm0O`5FI!R`%40iBK?j@y^BexFAe9anbp_VO({iA9+P`bFqSfK;o$G4y zGHP)*bCJLhixM+|3FwPzr*OI$0ArA7SYAP5{S^&cx&$jj^xw9;mV>qr35+jeVV=qO z!MrHu1gS^F9USO$J=&IzFaPO82%&sz9z%G;gD6$HnRpSt>WXW0J5Z_hoBcIoov*|u zH$aD^{=%oC@mUyk3|2HYI%*%NLp(-Fn5$NwkYz!Nu*y%Urj*-(J|ixyLlT&zHOVW>mXC|Ohmy16dzJsT^b`$^b^#=Gg;kYH1ReXD{QaMUZ6{Yj>NzazL;9tC z@kOEwCzr;2U5d64&~Po9T*KDyOpWugK}~s`J$8>jpsepy1g}~bz||6$2?tT6+VzdS z)^F!haMsnJT44%K;;qVHtQNIaVd{ube9BZ+)#?rtF&=vlp17VWR$nD;N?}brcu!xK z$88?2CnH%{s*@*ZL^6c=VZJ-6Rl7LhH1zcTCDAzN@3kKH1ee(ke}n)G+Y4SVt{suN z+Z=-=#sb>6;+bNq-qty9wVESmL?oJRY*10MLqszoQ-eD_tws%Pu_|hOarmwdS3z# zlwj*sTxa2I!Q92`7V<%-GKE0o8kIXxAoylVl2=Bq9FOWGl35zwp#f_1+B%t=m-06!(Xibka1lFfJjlnDy9P7`rB9p9xt!;4yggYxddHUNg7x5gsI5oxaWRV4@z#5 zo*do2!eXgxhmuGYIB#E^g$dqF%*YY>J#<8bDn)%vQ37W+G@6$Vq8#fF;NGD95Vb2| z^K+?G9qpx$JdoyHqA^>=^iEJ0u%^21`Pjq_-%Dc(>A!J`~1uSRHLX+ zlEl(y9-EP3hjavQ>pkm>^Zd=xUCU%bF7s&!6z70N2?u5 z55l{tG$hGCL!*_L`TBg>WPZjNE0f+@$<_=To8NZwa8@u}U)#tYVShJhKSJ1V8bY;l zbI{3N#BoP%5cgy`!4WdEWSQ*5DveB4+igzvec+)-{^l+VXCwZ{r znrt}c;f0qh*O2*^`=IV|t!UE_fQAV@v|Bb0Ne~q;j7SWluArGQP?3sBN;3&djj*aq zyulPuAD5jZVkl;A_xMWcDqRxV5ekiOEr}yuDJRTYRx(N`B!G2~Z^}Z8ndlNrS1elO z%kaI8^9zIAV>{5-axRv4zbF(>w)9U67qeQ^znUYNsr*0e` zsX}o{fgUilJ+$!pL-$G#^VIU!B?+>=9&`n3B{RJdKDc#Hu<(cSl=hPkhYt^%vgT#; zPdreA^T-9F#v+(Pyq!?F5V}J5Tyiq0%*vuV>b*gN6r`%Q6$i^`OAI_=u)zV47eIo* zby&a&2u<`St|??QGx6$?AN9r~8*S+FLh)A33D zcN#@yWzxF5+3_ahY2JiDCO(it9m@Ysjw@HuJ18_bPq-tvld7jppJ=%PkP>arM=s7$ zJuz%YQaohzE043{HRjO;$R?UCm82yB zQuHDtuRGhtXi1Ee9HO|SmB&)%3=d2jYsG)EbpOc8-+4%xg!{kG z^Y3t4uM*od!H*}@e8{i!fXdO;zFl>Uzn!g@wO=?GK8ib@Uv!}I&h@Wx<(-M}eQQ3g zxVk=K-=1gDsPjvoQyt2tTBG~|essRScKndxl_cTHKb!A~)Z~a%G1stY;gl5a>tbWB zUyZ*ITdyxMQBmGRStx(cu)qiO^yLK(Hf+t+=y}OHnjjkmjf+f!T>ZneCVq0#WPa$a67rQ=RyuVr1F0kjRxzz}b9k1dGa zVpZozIrfkp2g3DhmrtH{5o4Szw}a$zjxD;%pZ0Z*Tmc$M__9;fbHYqR98^BwF7m&a zhNT}c*2{rza6c9zA^~bHz;MCX9=BzpldMQ5le&0~d{>7ofHE>?Ki61RH%WV+-JD#D zF+-4s;7d?+wmapXmj7|Uh;kHdr%Zjo;bT8c8+sg%C1fP&NUwovuVVU&6{gnz9idjt3FLfNK3#xcqZO_6oT>>M^q=_&Cl34nDmQZR zx)~YB0cB8)TSZo@sxfIjG4GA)UV1m6UXqPhb0{TgjpFR!)u(d6}OW>y) zzA=`6TQ)-eI?@wiMcan_SbJtvWFpqNOh3e}Q^sQzKVEdi&QXRMP6edjrc=?Ly5%KU zd0v=R$j0eZznLdmV9AuEoNpl6XYt6E4%6sB0O~sN8obCyISU3m4+@?SdRY~ac-`Kd zS&DE;wo*dR593J&IXZNyhCyKL8lWV~hJ*#0zZ;a-%l!!+S=c+4DP{UmUE|`!5jb(s zeL`H!0&TKh%tR`cyj_W!r|5ljpw4^}lIyXbHX5)Oa+Is>@Rz&DjyK_M*PZw6xThfk zyU#EENgEs5dR#lP;(!9($S13In(yj53D3PLs(P}II^(HslQkRoB;0FatOwYt38c(D zj40z8wKv_Lx62XXvw1h)9HaDF#@7s+!pm_huKeNxRa?RX(I2<%3B71__ax79zYqaW z;rsy#tz1{j?gKgzw~<9&W1~ z>M2rR7#*$)oi^zYfyu`@iwEh{bX)nB0ZRg+cD?ep7LGoFPjqb&nXvcwUZ>$*;4EO>Xcs! z=>j->7wg+C!XP>fDK;bZ{z@Q_R$TG8*lV|y^3>OEl-i_;@l;PMV-jksHHymuDBWto zF2hcXl_sw3Y^woRVtT$rAMJANH#uo}J5GdCe+-SW+?t#%){_*RE>ZF|Cuv*JOavAd z8c>E|#IqFAczMLBb61Tjb?Ajunu2j&o~5#tIWrlc!0YfAx%-oMGLMJ7-nVO)Rxe*_ zr);qzq2~|245*id3RQGvyshjTis-ccRRDzjb^0lDNg=Bu@4A8YQwoMi)DJF`i6pPt z(aOdKU1Ql92JErPbl|BgMW8q^vkHw%wUh$u){@J)Rm$Uofx=JMd@JSiH*#6@ic_dC@;u; z03oJA3Awy#tr<4_!s1@zOwUdQvU^Gz8nGzE0AK?h0R_U+_yOm_e|F)@5>a6d>v)@6YfXPnmJ_)eau5zE5)F8&po#CxOzl@A$_^^T#yKwvz2j@ zHg>=81q{b2{9u(W?EiIvhy9F|Bpz)oSQxIGmAWEY?wv7@}nCtvD2KE5JqlrYaxu z7_$h!1T?G1x$s*A^33e0Xcjwr_U+Hi=0LgD&f$~l7}R*XDfaD4SWnuf^wV{PYyOwa z&-vX_xN(D3AaI-{z)aw0MvEc|t%F0LzfR2tnuLL42t{b}SUahmIV)S~th&zA1c2_J z8;BEs5NkA1e&v&pKrjcrwya0m1-(D34cM;ll&*5v%09%=Harm!6r%>s#2k*5J*4B= zrMaA*Pjazyv@8%fecw@lk|t0T%ibSxlS>5z^s@_tRAa~Ge4H+Y6cHQ&BtQs6>&1>x zotnhy>G>)Jm`*mUqqSb(&W^4E;<FGBxi!lY2rSO1y3g9NCayw|HX2mEf)h);M zb8(2o9xzyu2&KA`ip`^)ef0?vE4xxO5O6rVAHOj-i}T{914{P|OFH+!CnE3cS_oGm z@IWJN^xyrUBM7sl`P~`aU95vfw{)qjxynJbhmS5~g(CSsU~kwYuE}>PC??%HXYs!~ zgH!8-ruaHUT(0}lPS2)UY;Z0ULNGw>MMK%e&adH_7A7uj9CAbjBq5sZ0KGUOzSH7WwWdk1ok|b-}HU6Bk0hc{cH$ zc!ne-f<0vyaYHIdELI@+L+`(R>vNScg|^--40)}fU*?qnc5-<9H+c{D>=?`2_!}zq z^?lz(y>YBB)9kQLSrx7rcp15yX~F_~Zm33EoU-bV9@d8cWC>{We+bf+>HAI|c#-?KhC zS|8nPSAw)|u*GB7Y7WdkzR3?#W49B&G9|A{-2UxTtg;(aP=`P@#Q|5jbLc=*fMNIJ_WYsDpAmNgp29PqtiCsF!Ovd~7#=5qx)`d%ZEWrz*7 zp1*S6z&8eP-w2{d*xxlCpByH$R(L)|Z5o>fb);?1%FuD$+61cl{HDL#keb17Rvbs; zukO5uN{3fgIkp|_6+ge*JN&cMR3%}RU~snyZzl z&uCq#KV!H_y2)?ggF zeg)feFI_r6yvGV*$YE4N(bJO|N*_3_*SCBv>zZHsr6B+TK>oi-zARyF^#eHTm2$BJ zCcqaueA5GfrX61IFo1_siC0E%?$EJPNAPp+F@gR)N7$;i#uBthH4A6D8+m zn`ZsCQQx^xZbH`;LozQX89e$Iy=ePRloD|&ueu*I!(v*oPi?qR!*m?50PeM!itQeH zxA;uINJF8TUT|inaunXh9rcOEPyTI73=gu^)n?wUW`a?v6!B1=D)$6on1?RBnJtq! z$>s`U7LA{epMV~e!)*&6pB46;aho=zHmF$0z3}p`O zaZIS3*AV z_oBky0HHC2_&&cTC6cm1?16}8RoOn+DDP}MlKYtn8WdG|HKqm7J(Zy02wLCca&{lL zu+wMUNdnayc91;Nc;3sjIjxX2?wL{hSAHlD0wqW7POJ@3pq^27;!nUMJw!`4(@l#$ zCB9yv_|&UfjlezgYPFqN*Z7Dun@z{c!r?VHJLWMedNXg!YQyw8_^*XEbJRNDo(Skg zx~Mh(Kq`9oS>S{l_1fQ1-H)m5N7>hFGpAfh zvm@s+!o^g)YCtrou;sswFlyXLD&Z=d9yv-}_4`>h3kj9Gy+rwKclA;$@;4u8Pu9ZV zDD$o<&m{1n!G?+%-s7~7{_@7J%{b7BNN0y~htS=AtkD-`F`TSCFgv<^8=Qw}h#%{U z2{mHC*^;+S=|Lx!cfO-L^*0r}XrB(E)L^ky%Xdd}A54LD>WoEC->V75;c6;)IEW-x zpR$SUGq2$F`n=1kBBBJGoiCI@t1lIOFSCx0{hGido1jqLp1lXhsM8o_bkzVlHUcs= zBU%1xDD-=s{1v)ACXbRTD-D9h9hbUMu+)#S>y52= zUvRjYEnKNT&|Saf!8VY#^?@NrCaP}bJ&LD@{V3g?(Q4xFePCSZT_yH+=AIgi*UVd9 zRltP}1??E9b^s|r*1yNhgeJ^|v9zk2U+>ZJJ&NS;wIJV<3mwZc;AJUvOX!at+@Rcj z_|7ATY?>qqziNG`w`9lNCHXYD3c+P3B(NChHcTa#(TlPYp(WOs$$${Ats|8~QgE?K zhy&n zVT@Gq0KPPos+-&OH8PiJu;w_HHQiYoMRQ)sW5Sp|N6-RmOBWT6oj9omOGzY+OM z3QM_rFFoK-PSLwV=D>q%$^dEa3#q$mBskMHF&z1qkf8IGpcGuX#fr__3R5#ZgA3T6w&a?-{67B{|(D`WHf5i4qFGH!{!k$72_*_Dxn{ zumFG9;&p`=OmM~7(}_)A4{5*-xcJntukjHgjjUep;-B!hl&xpeq8 z_+Fyc@An)G{Rpg1s3D2PWREhnxBx3zJo#?%jLE1UHUSU|D|?SKKYITcHV16^1$*7t z>~}3t_``{k2vwKsh{~}r7Su1XZQ`@{Y5Rbc2q@|1N~^H~YJ;}6`!KVq=cOdXl$f5n z!7SMqPabL3v!e@)MR7J-Gq-O5+554x`- zqJ#~M(k-6At7ZEH3Ne!MlKQp^YaOu}2*P<{Zgz4Nl8bYyD+;V;Sds_GCiHZc&%KR( zFCzM|M=q8knj4}iW7Q* z;X35OO^$9M3LfOdBGTklR1-M3DvZ$BAo}1Qom2~~^H(BI zj`}5J)A*zrLylXgpMQ__$CU>|u87+B9Od%&UY7m%r%rRBc>{y5G?tv1dvfKZEiPOioEd0tmug43#o*OzOE za!_uBtAV4KBDNlx3(x+gZ_2KkwbU;q+q1%d#HE)yS<|$``XL)U;1kG&TKo80fW#G~ zoo|bLOd_;OzO|9ptSmq?@Z{#eFsgC_oG*tD1M80@bORy~VyzZnMO_wx!2@=MTV^oa z%e-Py?+uPS3tWwt9&7qFkpP`4q5^RC>o5v#-@0@ktB~gu4A>_94pIIOv!@b6TOZ5# zXEo7c#V0rRjvM`6b_S1vvvr9CE$D7r*S`JQ?y7X+M3BhuuY|y{`Y1(Vk3m!@1 zsX2;)Nq4SxFzH+fQ)9jj1}Dme1?IDMuJy#~ucco+f1!8%p!{y(M@}*1(nAZ6NN7?? z^PxHG+g*=SfQ8YBvQs4NYKuFjOBHHTRC4ca#egd%8!04=Hf%QlqvE{zJh6~Tdeu)_EzA0pahe zc#40v#vTV`cb70$jJVsd2rjY2-R#KoTy;3g?3t5mtAcD;F}M+(n1~X=oW;JpKtwKVy zuIZaaX${<(1B!??iku@YLc3@$bfOcin9D6dF6j$1#>k?4UtqmF0mJra9&@&aHhCB+q=ihUocwCtxVkcE6Kpt zltX0$GYAbo0p@^aYO?dDtPM;&t9Be$fkEKD=IgknF+%Xd2pnZ-JS|fyv3sN$P>l1d z*)%}f8~ruvj`@)or;7S*EUBqv%X0hpHT`uiw|xQs+ltV`!Bx&^GVR9fK|@$E1s)ZH z@EH=5yD#}bsA0YpqdoWmw7G)Klo3$&CDZ3u$Cj0}~5k>(I> zR6AAffz(yU?R8ap_5YW+%01{q_$f~e#$0eB{Y}RrMnjhQl-)&xCA>=sxOfxvE{V&3 zeEl<;b)QFCuy5r%*l|}jX#+&bmPW$W7IAnW~TR#fACfbs%c#{kFs}5L%lcU zLB$@`dRL7r*=4bopp8f(VO&&rEo%Kx68lEQy# z?Q8yR+u1*Ym$HLDfoA#LEWqPbT0rHaYrmE0LiJFtaL}K*-}n*>oU6w*CN+{EaL=+o zyme^+39iUr{jJf`xe}Zp4xPrrbWDn2cSuu;BRM7(!_bxZ25EdS(NvU{`1I zfz>uTMcs2|3DpnLE!+5o{miO@*;1z(7IqxbO&mnhlr6%@FMJX>{#HKR@kMY@>V0%b;~RO9g=^#$&I+K6vT^2xcrKqVam3eh)? zd;0n)8;BSr#QE++yC;I9!|Za`@VwyUG-#$*q!XV`Z>=La^4 z&31d-X>^3uOaeFo-J+LQI6su5EDlPmz$-EAUbl>29!FBkJuWa5O0F5`PZq&chnE&L ziERc*-WfiN3#6%GnBuC3k(m_uapF4#l+~|Iw}u*uoo+27Fk@pnRd{FA|01Bz(;dAo zjz%tcKBA`mxpQ9PutIL(r3U8Icyo@2rRBC(lxT;C*6T}K9 zIfp-<*HS+8{D7i)TUC3@Ohhm-E!@xgq%H-W^m52hI|oI`;Sm(u5$J{At(xk-RkS^S z=mHx!YQ&0(pbmM45KsV@%~`Ay4dh_^!B@(mO*BmLME%<(0fFYWNVQjzM}6GBQA)t| zT3Xm}tN2SD`7y!3@y_~19w?&2Tg%3$>}HB4HzR@#IL+!rdml*?jFYQ4vn^3i_%`9` z-0mvJQ5|(BBHQt^PpuY@$ne}i= zRhOAzW7$fSZ8uN1;Db|I+>=2W)lqS%-0KVc;tiASI!Bv#r(4oK$c$iF4QvJ z90{3w6TI}C{+s}w%S})+Q^1}}{%E*{&nld+ zMoaS^p&E+buno#HWSHW8#t7`?r=a{r1Bm6+kQXQR*F(S5<9RL=l$>#&ziL#=$CF-R zRlo3#E;UJO9RK3m2YvbU_B-SpLmV|HyhqoiXRK!Av&=4CN*F<_w0?FUbk3n_k4O@& zu)DTf)>qDPo(b5mdvgs)UR^&u{;0lwPmkL^i|>TdiL$#>ta;RnKSO|0V|ACYptp5f zPMJy%qPpHm88dc!c2dJ%1NU2pB6mP9VPdCld^L2^cq}@SAjPRK8iSH`zyG?kaz`9- zZs1wc8GCW!zFT@kfyyc!6ISA^Nf&Cj7Wj3Jcvi5J$bkPLlkDUmR-YF2c-Bu6QqeZj zQ7YEI-0Jlo6eCY@qnoGfRBSm_aq+Rk{~{1O<9M}8Qv4MUVW&tI)juyX_k^$E5o#cw z>oq9rNl4mP{a$DM)b~5IR`dEE=mw?$Ai8^tZe|Ob~v1@3{CQ2KtF|mar zy?Uf>&@+1Q1MZHNe2S*CW()1`pJ9#I3u6h-OcFN4hZYYwlo{L+*esb9BoiU0p7rCRjaYryfV%B?M%L-rT5`sF?15wvecxvV-Rmo5{bqHo5M12HQ*z zUgs)~6MJeq_$rqMRr`xYwy0Nw%BF>jCKtL{I|T2KVqN7}r&*JAJ2TsK z?2el#ak2Tv5S+`_Gu)WkPyhd2q(cZ8RBiQY4fyjR^A36-n0}V>jy1Nzwc|_3IaNw7JgK<|VW zD1Pfkh!=@;d_B+gtG@ZXVLBR$mLflRx473~_GujS= z_!v4NJ>YhKxJhOkj0_V|%8{m>%$QmZ)i%VVZLuezx)#9Wkpiqo4yoKt$z;oN>T_?< zh;RHO0zY=SgMO5&4-WllzkuluudLY}!pJ*Jc&+`Y1^+>szz-|Tk zk1h>Mg=O3>o)u=QSTOH24e{EP+gcC9=)+|`2ma^&6Rj4bQTH*iJ^$F1C%5`qNqira zir=wP=JkO2*o6CTz|DcH3KI(5=l@k?X%;i(fYr_u-enXO&RXPf9n1A*zo(vw=oeK< z3^olD`QlSgi{0DkVl)xVu6GNzH0?sftQr$gdQ?}KDN8Lb6CO&VN8<3oLqV27UF;nY z#klfBM$Da{5DV*Etp+b%{DT~$9rx27 z@|`eVpit)~V~K|Zo+2oE_qrW=!ED1YiPF6UcEgDJ#pvrCUO6!87(fZRDro)xn;1Nv6oU*Iw0tmxOwW<0`czF#@e4;IV2Q_w;rm40w zZF_+$qvzfjO6>DQBZ|2V?fp#wI@u?2}12LQcU zB%;(BacGe8&lemif5b$ab;4ponT_}0iB8H)@&YSbWF@lGln9RBpc8PSf2jNt4S>3euZFg`$;*ud zz1e3lBIfn{BZq>Ds@NloHpV2|X>&QKDPYYGPwkx~sGztHHK+I)I{qQq&RT2u>No;+ zGy~N$4&a)AE$1Ma?R@Vdt;2^XsEKt^%yz$B9PlgHGmXNl5tzq`LhDhZ+X~Esj8c@ko&JbB6rH@8ITL&@46EGCRbkTAj`ZDYR_ocT%kwN zhBuD>G?!p?zm^eR47e6k3@e2(xX#4}Pj4iw?3+D~c5g@Y-qn6BH? zcuqcBOU?@?!FHF&Dmo#mmryInJ$aYU*-$_Aj9fL*1Y|Zy_GDhBiYcmAzUW06{-RQ( zQrK%bI`8eGmy_$!_!SMq1Pu-?6DOsAcL7^%2QXgXb5>y`dV=8Ae0n+WQ#rJ zJeLYliBFK^G#B9P+&Ao!*dzti7iUV}_ol!kOrlO?wq(oUo!oMl>3gcUjq-^BrSCNOJAi_F)_wCC@KLQg6sPm0Ti1^m80vb67?X?Z>cPD6?6B zyWpF-MZB8a8*!@sf&7A_J|`EX^pae7AA>+V=WinyRh?B-)8dr)@%Z0u9!qHb9Dn5a zYO6xM?ur4H!XLP+24x;!EUpJ;IjWr#@->BY@n@u8&MGRZ3y=XSHS#U8Rd2n5FH`Ay z=Y5qc7?Kq(Te;Y+wHJBt1z$lIm8j0xnu-b^dz8kT@$j**f>2X>UEl{P|KF$D`8TVm zDsS9&?3zMj8|Wcuhpc}8WlU8@FO)1X`<%!%xNi5zQI8KZ|ATWoBEu~`HJsEOd+V?x zRd#WHlF?1D8)-Sd01JXf*V9k*uF(SfHL&^cZ(ei1T9@r$K= z&Hzu$B23foW!|B@`=s7FcDAUc?ek(b9*R8Sez~H|${eiC1>i+aYA~WlB;s`UdblwQ zwQz~;NFEhh2#Wz29>Zpd6c*ATp4@x`@0y)Y?;l)N2kp^h1>Dy`qdx%zlk^s$99P^A zW+}u6x1!s-Iz;d@ z>+OhL6&KK=qJ4xw2Ik^6Rovb9ZkkQ1KUF?Sc1{d{|87~50@5h&BU4?N{_Ydies;aU zutqD?G>OpYh~{K=Uf?~x{?uR`7)_bBCFvl3ZZpAQ2gZ!wX8u{+K_*Ly8nU$e7E~(h zs+euhS6yDD?X20Cay(Swlgcr5bUgc}fOL0nw@0^OvsF$!VBL#wTl$$0bBGMKd ze85GDG$kLL@J=1Q=w_DbCb%@10#=T4$Tn2Fjud$f{LsroKO0-Pbtc8hV_-Z!i<`pk z{Yb&P(5B)c^KY_Y;C;rHH@AI$V+#9WaRW1YLoZZLlmr2<4R-!CIw(Se2LZ=KfFrF> z_`EQl1n;-_k*JA!Hi#+5+#D}BN950HxgU5OQ% zOB|LM+s(vAvqt`6OOG2P=k;6!W10k2g`|y2aT0{wlj}UJ;KqnxU*o;MUtPqSr8cXB)&FqW{rLFUU`@?J?qvjY5+88NCh8iDEmzO0m+L|xmw*fbbaXUvxqwC-W zTGe`%XgsYgb)`P?JOcIHu$H>Dwje(oLlxW>+l?yQ6p0F{O^6;XA;7GlV$+O4N+*3H zo(Z7jUE9CvFAV96`VKqU*kEGFt*|T*1Doi(P@SqJ{Xut-ZHd=qh^A^BysI^id|fEs zPMnrw4(3Izq8_Vh9vKSNhh~F0_HSx1=*s_@6Pc&M-O{})9WAi`W)lUj32GRA-? z5SeTm(uVP}E0Y$=eYF1EZA_W_Kji{gndL@8xm!2@_-gdYy|cISLs(rk8JYYEN$>Tb zu$ZT3fDS;%=wi4D%aQ|Y2^loZosXd>_Q0t@hmKfU2;_l8n7ikGOOhx=qm-&b&FPjX zY6}cS4N8GTm!vpCJB6_d{P;a!9wO9xf+QrT%ycm$Ed*7a#Xuxx}h)SC+4ch6z-9!q(<`{i`n4LKa>{6rW9qeergn0w2dNnXChvquPjSDe( zGQfYs+vzKflXm?&*2MDz8XQ^zfcKM{pLqcUKt?3eO&(3@9k&Y-28;PTLnpBuTL@R& zNawyMt_K3=r!2=jECZP4jGg9Max4Tb8eP48WNiHlD2AOijqxiHfFFkk_m zmY7?ycC_j;y8M9iGQsijYP4iGAz3l$noUJzkzG^)rWuSmhUAl+tmI0QeVzL(F!{|% zid-(~D9_kDI%m0mART43ZvymKeo`}3R;6;NFeq@^T*5fgT7ZxSr}fSc9kwPy|1Izq?fHmO4GwGYG>1a`4XsnV5s z4#mQ)CIX3A45w_(X&TvE1rw!@FmgA!5jbmUxxBlK(In#Wm8g-OBfx*?MJ~ts{jRIJ z9*bP*Z>PbhjTC@}iqInozq^V5GGds5-2rUuW*gax3OS}}2xXVWy&yNyluc;_E*FZq z?@L~;C?#`~H6u_oqaT^_RvtEJZdk^NQpYXF=MItI7_)u5^^W9OLS;2s&4FkF2pw=#cmWQIYYSC(1cD&rgZUn*8dDM(nr5eI>Y@|53dAKZfv9+;+w8dq&Ow>Rjz z+NGouKP+h(J(8VwQ!dEr1}DABz_kHC^FFJt|9|i-%x#I!kP0rMp&Z;gFa>bxmBqcZ z`SD4eX{4zwH^NstED%Lk^rDrYCNa!GvyPAX<%(o29h>cH(8xV^4r@kdWO4l&B5bA`b-mjX|t^lajQE|Wy0DYxzt1t4~ml+ICBCh3g{WVlUZEfJRO^Z_K z&h+-~;Pkl%i9Fcs|MINE`No7DXi?^mW|k4Fx%=6W$M4R7@k+1>Nnro^H9Mgp;hJQm zrZoJel<4dX(`3o^5=tJXma?s3pu~ce4C&dCCO~ZE$94 z#L$SJzjt~>Ye>1VeWe|*ZQd{jGQsbb7$6}>1LQ!6{x=4%ae40dv`*vm4X0I`tOn2L zM>-8|$9-m{veCpvh+l1SXrKx1JD2F?a+|z`R$)8 zB;3V4t48KDtc6q0hIA5-7hrKk_yYdQX;`bUYW(~3tCRHHji!UX-&1^^o_S9_gBDCz zC@CbOJrF)Jk}MJhR^tqT9E8;fMpfB|&p4v^#e@QX0492@p7dyl-IFU$^jR|$)i_1JYZLwk_jl%G# z2*T>3rObH4Y++h3qe3Fc1Ki~VF&Z0D{*OO6=jTG_9Bhr9=;*Bp#&td`ziLCuJ_ejy zO!secLQaNC0|ag^gjPyWsQln<;VK~i`Lx}4puyV^`|TMLAo#dwF6P}yPQIXP|EoS~Y6kHe?6{f9jV?DzL8cNn>_$z1NF}&=9Sj zmL+qjVYc2dp-B}g%u?kqwe}C!0qQMz_7M&;Di@yA_LH{IxJlBculrBFBWf`<*W~!L zbw@X7PuZ|~zGL!VB1xQ`VsAa|Vxzm(%(uyHO^yfv!&p~%Ov0$s;oRwJxZ25AGgapwy^emgKX*On4q*pD*>Hy z2XkAqhuv<0xmBA8b`r?CAJJd3_OOrI%((zCuo`wa4Kb-E5RUMrPX89Q`&|6Dd3s!@ z37>0oj(!OE5($dNDCmV%8jMZ8EeuIxVWPZf$B@THjgEcJuE|GR8^l3YC)TI=*-=HX z>lJMun?dsEYIWw(JZw3mIy*LTf+Z!x=2wGXWGKF}fknZ8rNd3^>uVepl>j*9n8;fF zl#yXt#H{pk6mX9JRU~^DEH5g^f4)rOb%N}{WQwt_3lIDydJXi<%q9Uq2US8Vk-=65 z)p==?VlhP@uvJY7rAvKXi3pxkImL)rLGQ!!#Cj>VXo z`09p=>WM~ZQjFJCbhv%i)Po?s$lU$nInBKrwJ?P+Pz<IB{1Y4RODqFyWUu_5SAX}?H21h$UAbSPg|srzKU!r0Y}$n0n*uZ zO-oNq_D^Jgddm7(d#zZ6TW<8zqLTiEgyr#j1k{f5=G^eykrX0q}y zFV87sC>m0ZjHL0_iY7a?Q;At-5cM5z6iTU>yTe~Y4}8o~7S`7bqN)H5LbA?QLT>RsNCW~KN7eOvz$l7CPtX{K-tPfl16#G)@Wa7sC% zV}zY>5--=4Li7WX=fLYDb5}cr`7hAD7+?r`ba8-JfUMPY9=EagJ{>&xWB_I=t@Q?i z<@W`KvNGs)#lJ(mtToWcL3KcaY z;{gW@_bTQG_tGr5k>Ugl6%W1<89v*&xMpKNVj)!3R#KCcvdrGkTyg&n&|_ey)A)RV zO7R_%!~AFsUXLlhG1eNl*(?xZHrC-oV)~Xz^KBU&i=7CrxB`HurA_OXMCoQ9!DD(r zYV;E!kmnvoAqG?ml~m}N5##3)iqD|K>)Ls(&_ZUPYns9b%3reL5~kjQKfmx$>~M*K zC$yMH3T)?f4`1NKGbh!E3df^||Awf?#EU(r;2Hm7XVIRVn_?z`>N|Ho{#$ z@>rb?Py==qW0T9`Qm>hyRjLMZchjqAr5N5dkd5wk9rX*0al1b9!N%%G64+VC6pO!> zu)Wrv-}OhNNJMWb^y^}ogLFAkVAiJ$Gzb<2luI`aP^J%&<2~0)^8UDSB#$$$2F7|R z0&89(J%0Wo+CS*k-h9d!`HJvZ#K(N8i?F*<3U|efc&7c$e@Y(#cKiE7DW@4+>1$wGA;h(daAo! z9I-o{>i>baN0}_%Mkx;DVL6c-STA*d6w%+tge_y-K?&(Ej+n_4=y5 z(ok+g&(P{t;@0K?hD`)1obU8;H6g|}xsS@bIc<#rydrt-50(f9>8!oTUm}lv4LVis zn319$hUC7OYB@~g+>><15lDvvgjzTS--rVh8`;E%L7?aHtMvO+(4fy1!fP9Pz%1MX zq|7-vcXF*P{N&gQwCL#Aein}Wf@WerHSxOR)rt*(b)E`|zFhC^BEWJO$~s z_Qws-xwM&~E}>yHvEsn9vJu=pi}s2|Aa5l|Ev94^O5rJags=<#*lU?)@`2?};ZevT z2m|9F;i`Z|F_$9vv>F$1p&IEp|D0fOh$v zStjody`^@a)PunH+yy^%^GWoc(P6M_SOP$gq;geNoIKNm;K`QMUP{Y5?pUBkkv~?l zRqIEB36Z8ue%!R*dW*-c<`783n_$*4TrlZp9j@txDC{zMxZ16!uB0@J(C_Uz<+PIO zuHD9trB(k{lKC)y*iX$M8UHpcqQBz$r5bi#H3hFx|iL z7WEYDgdJ%bsptfekZL*nf(3#)RFQK8*LDMgp*5s&rhhrV_-m7QGamu;p=$GKD(RN5#_N@!HXbOo&jI@uHAb zO`M^?y~}r$Dt~JX5OBRrsskp&=x?oHOd-Ogt)znFhlP0rP!#Dl@Utr4a;p9dca}=n z_R5?FvN0?*=_pB*B;}LlJ$k6Es_zb5=bc8!807OC-MmLSTAunz|96l4wd&B5&jAid z4C*o#1TR!b)21|ncrFPHfLhc_#zDu}0cDWHk5~m=3;n%s`omE|W>~6)?1y<6uBXlS zJ+@?S$$Q5;Y4igJq6NA3BQd}2R@jn;)ATHLRRu%xnl2S}ZISL+sh3G9W#fuGI6EYl&D*Pfnaiy|ckLf@I%IhD5ixgmo2-hX4B0iL5E=FtfnQ3l*8GW&^A zW75^G79oH-cahDmKYhkuiQ-7abY*VSd<7^L?WA-@*jg*4URPb(6xuHxeYF@;J7z@z z5BBFs!DZ28^nCQ7I1m||>C(+in@Pzdx<}*9U%L~o&jn-Gj{%TM{I1~S1Z1N<$*HwzckCHUHGfjohu~1 zT3)A#4pSGC;fK1+P1c?lajN>?$h_H)vMHteedUY63<%MXdcO1$7BfsC>lkrSrh??e0RA*!D+|^ovMh2{ zBi!LL4(4HhK2%&(LZSd4Ul;lWo{DfiB567tKV>B6Q#o!kAPJnZGEyGTT~mH_Y7U|l z15uB@bz`^MH3UChntg~x9!E7f_dXur zUD5UFY~ztSYx409UI~%KrU2OQSHDO_V zv4u!6K?y{P+S+4pAFQ_RLK+Y{c16O}9My%T=N8?6Hl9o!{$<&;IX!ZaLW(MWKz$;z zkj4yYz$7?djhd8!qo9Spt;YxrT=@z{OYrV5ZsAYFRt8<(t&bvahge|T8u_0yWq}h9 zi?vDO5KCr4UF#El6!lzb9sH&@NPZlQ_Pn*KQOr-kqs;a~NuQuLPHp$SdM z5M%~DT`QdMyi`8G&fe7|FV%X3E+vsY?oLP|usd$inM@TGDdj859((x5!npd+l7bE9 zdavv|{W*Z9fa#>IE)UKmj9e43hy|hvq+~|b@M6L-;QwtRLOiwu=qKtjDJr<#rd7xC z5tnTtYNo!-kRCDdLt!eNwMNJqJ$f@Z8>-+cp&-V!10#AR!w00Wu~PcMi}(#^$y zHwc@v1aDvEI&Nro$pG(Bt>PNz3t-$yIB^?fF3WkH{7k4KFsDKI-2=i?5IYb zvj#;U!eh3~=5E&@`oXo8j&lcLzY09b0s*^rP=LY*tXqX|{7vc@F%<)Ij|c3?c742n z^*-q2B9O9&%0=jA!o49>a1WQW7lRl4p24msS5Lo3-G=4UlG&FaEyEhvcF4Dx2PFAj z<k=rpa_(u?cMA_$?jFOx(I8wM*1B?nC z3pdDWU18Em57qI>2(Pg9kcV)q0~AD7jEY+jp)0wXhsi;7q1NFA3Hao&>F`F5j0}^f z%b?Y+CERBD(KxJMS*cCPZE6oL=vH$~csQ7Ijc$%fFSzfEV$8^);IDv12q!twS3?IS z4}AltPxA%@WtJG!C&g_Yo9fWI%6sFbFu2kR>3M%=O~a&&i(<4LB7FyVshe zY1fg98N|hj^8_vgcD!5wn!}+m*G5HBk}C1@lbU+`q#>ati*9G9_R*X z-0Txfo=uk%B15nqoZ2 z&|K+%PX@C=fVbvlvjOOF{3)d^1at8~2B@o`b|&npcLFS44~=H_3jUG=?3BS1Tt;c+ zI-Ru6^eD9--$$n_Wdc#Q+V}AA{dhB!4vp!v`FB!hwy*V*)4??#6dl9_V;IBD1y@Ck z{E{$ahy4yAf>S-hAwnyNWpkWS9M|Dld#74pMK6To_f z)NZOIBLq3Yy&YKVx%Dl7ShFgK4 zjfWD)>*@?*X|z`p554J|yZNWSRGWvf8_o7#Z%Gvdd|Yw?I53H1bkc!TNUmR?&-lsqQLim z<;u+$KWidF)tjVBZ88fUq`NRw`LGb|fRL^I8^bK~UhHSo zPKZb=vS}O#$49e*6%Rn)gmP$n+dBe>Z_Z3|M2fAz@A@fO%rr})WZk0Kq2E0lmxw=6 zu86SH#~^EFsEemIscRFDy_-+$UJVj0uj^%6Lu@3WuT=q-DbEz^xPD#hY}KX3&26M| z-q$g)xKbdwmrZ75L9S|AatdMNSGN^&&(uY4fPaxoaw38dLFNn-&uCighI`~3g()0G<157GWO znX?f(hbpzXQWKW@1k1SP+$I=vu`~>UaMkk-DH$N^pcXdsaZE&KGxauIMop$d-T}zM zjn^av_dUFA(`e@Ex1#aZNIW-KM(R?&nx9)9lbuekZcjzQU{IJ)?vwhyH5j6mN2#1| zuyHkYoT#v^gGn}%QaL;ku7=v)Yc@rdGOASgYBV2iwbMDjXQhuIi;0bS0RJY@%QDcB zGKkCh+2D5y^iiwBpN-EZD?XwTesA;1t3<&cBPnw8PcyYLa&o%byDB}HyLW<~O=vh0 zpuyTp+s5XiW3S>JQFSF_WW4zEUMNdN<+~&`8yY8Kj~fnloqUcfgYTh)_4(LQO}A zv+Ly}thkr4y)r{%;id@@j?-`t9a<;9w{v)%uPUQvjOgZZuv7)>wHu-?k8vaG4DL!8 zbH=|$$-a`l84p7I6WK zTBv4W!j`|YXXc;+Kajx2W{#FeKXW4BEp8V=qE2pKT|BTRye=O+visr=NBP8$b+4Sa zPBtLg;22#DeV5X0TALMeQn<(*4d=W3ocD0iq$pTFM{Qr#CX^hNZdPxwW(FUsWq3wc z5f@g0F$?!_c}H;sy2qAoIJxq|fbn{p1ch4UeMH08WkkW`B>FypNX)W-u4w}0p#TLy z`oC~wt}!mt1?J}RFc&bq=+axx8LsL(gshBZX@ft0CbbUT>41%F|BK;z+id!Z{>XD8 zx`NNS^|jh+ut6*Iv%-=fI;gXQ&lr?19Tp<>%v}Q)CMAQ`vG=SzMUvDq5eEy}?wnTj z9%gOs>x!J{EATnmz=rNJrM}TbScjhxL$fT9CFVUlJfa_^Do-Ls35BmUqn=UYUPdMuUb}xGzhpkmdV^hj2z=ftq`}+v#o)A_K{^pyl-^H(WIMBJ0l;RkT4%V zM5)p>>Bd!XR7u}#DJL(igvZ^#d|``XaYQV^6~4*#?_FQ@uITF!ZG5xL;)A|EaaWv_ zrPKTd7iuknfRXUK?LcTnkHb0iLORStwUkNI-6`^bC@AAe4}i;$F8oZ-#8`|GqHOf3 z%=`1|5Bbt5tfSbHZVM=&Vu)$<FQPvn zzGDkKBLy9>;=?zwQ)sTRBPR)RAio6sCBQysp?u>}qxF%TH-Nuq-NwG5E(H-su+qtz z;Jtq-1I+pcOQm)GM}{Cef7S`a-jhpMz(y-IyXiDS)WwhTHB?O+$rU;U%r9txOsj|M z0`&B%)XLC9zZVGV8h12ZZrpsVZ0j=v&imd-X?m(rDy}}qeiRHW;DO2kzDXGVQn0C7 z8Cc&C0gL^?czkuny%<-Ps2ei|mX$DlMBzsDIVi>`g%F1U1372Sita{bjw(VpwZs|ei1mbaIGg-?W1AqK6AK3 z5>1&Ar^l1HH+oeMtZpVwYFzCcHb%E8Q|%nPXAll^*ORZ(3f#xVcwQ1?M-ZzMM%N5s zYzSY^v%4r|ai3C!w`TL>Gs_12%jugF2IgS8)H@^D{Wd?2#6nYky5OE_vn%^0rSYhE zc>sW<2m0h7%Df-eoJpfE4}+nUY&g68>*}`w2;Km9vQkUOc|f#E|8k>>QVAgQ{0c;) z8AFHQ13vu#LqNR05gwOknX!CybUsb!uHw{!HXaEekHXVxXR!!`9`l*d`*)_Lp$hUt zv;%x^8lhjR^>HSO<(q^Ry{i2}8*|Hki|A)EHpz#d#4%21D&obU#;}3vfyY#cR6Z%# z%8mM0+%)g|`L^GgzG0P!cKhiW2*k)6pA?jozr?+;UMe-BXjB>{!}vAwyG&P;4p$n~ zcY$K%YpI#cc5AK0q!$-~V#wLv>X!?&T%IE+4J5(lwxVVskb&=SX%_Q}EfZQH~gD5nGjDFnV}?G4u?^oOdt3{zX3;#bN~fyi=AWeTDSK7l&6B3 zXUHCW5<2AvFg>yl4$G4MX=dQBho}ZMhV%q?I8{jp;DxhH@mVyMr2fdu#spynAnK5>cC9>=Sw!pzG_2*y>Cz> z{khbFt9V%`gh{FO0WrSM_rG*10CsZ-C8^*FVNL^)tO=B@|1pWQU7!*s!S{5;}a zDLfPz#cTSVg~|HoTcDr>!?txCd<>SeR`@wTwU=NDyPo;?`<>k%8Qa?F%{Y+IT^6ijC18m_zlpyP!eAshqE?)hu zq$>q!$yH~s>pz4RPk8>FNp0(N}wN+r7+%CQuy8htu_sJ!~ugF-!6S(^q){yG>$Ev`PwRH!wt{XToB@ndh_YW(c)vwaTH zIOh}p!6^zx7umtjK^U1Ct$)0fe_Sh?%m039A4%0;dDFyRgo2$V!E=#I7EQUAXBQ*6 z+|{$FNrfn<<)D4``ryOysUm_k+H`^(wnk>l#`|5>HDi_O&r!5R0bkFQAaZG2ChF&drhOZ(IJ0crM4v2!hLS>i6mUR)*=*HqXb7C@QMj9Fl8X;(FUcJJTO? zKE)-}4e4;9l@PhB{x}FNehdQ1yPT#vk-e)ks2tR}(TK1L18qMpFhK%+Yi9ZyIYt>q z3zH?9Z)Un69^C|yN4&byyVT?Ce;Oy~5A|1N@^pM<=Tn7bG(m6_x9nuFD2ua&BYS%7fv^X|u z6mh2i94WQ^d9{ex*?cz><75E73KpG5{ZPdsZX?N8bzQgVSvz(rgd5b*rXtIsn1#fd z!1yMq@$KHng&}F$FKh>NeSW66wM=I(EA!w?j9Sb@bnQs3QD%U&sKcR>T;Y$K}4Cw@jDJ~8U| zpXJTU4}d@GT%T8;_oB-n6U(%LW1)$EMH#Q$E}eZ?`aBZO*A}kR^5@>&QK+d1M&TkU zgNa4_#`uS}vs4e~6*rmlbbrWg@Rv$9@R}Wz51D* zJD0=m6@OJKTp}sXNQ)(wR^QvdYarE8Xz`vwU_+V2>~`w3F7~wwR}EPo&x49SJoziB zYS#`LhzZ2}f|f9>oH=Mqw6RL1|JqTRCIf!`hf~v202A+iv*xiegV1?2p|Rc*FDf9v z`(8tXg?q-~HuG0aT##;ZehTM7rdgm66)x~xpM58J%#$E#)dx|&<~shlNl{T4;d z2=6}YcWbCqkk-Z__x}Qsa+7;0C31uQt>aa%(>D;kIjvhHxr;opavdP%)fcMG0C+jJ z-YP?&9J7b+**3W(#{B_LQKhMF@G)~&@yS!-9FHRH@+XgMt`^*-#q20;cop7@`xW;M zSI=axtnF0MOyXp0ZKS%nnxRI={v})j-Fq?#tW}KK4F>;_*xll6Shv}UX7c#9`T3;o zMNV{-PZGeWhie=4dA#yhs;uV&rwCGU3R;iRM`*f>LgWkVh*ic3t0Cv!^f0ea0tO*X zyVgiH<;a{(?fK??Hzj7~pf9&cDHLnOEm9^IEb10R5qb2qyP48aVSW8VZN+bG_srg_ zZpaxn*t#2A;wz96E8@=|_nph&gzzc@#H(*2#QsVM#pP;k%XKt!hq#mHf7K)j1LMTm zeJ9m7h^c4cZ2SK$@&1at7<&l-K!|3rd^lcK4?6TvOV5YL*n@Of&+cx&>zzQYJtx8y z#No#}D6N0Wk4N<2=!x6yTGv|Wdr;IE7>$^rq4`%vn^*XB(K$#;7DL~~`#6l1b5ePy zJ0=__`Hx)G-@zcw(W!5cMNMY#YjnE9!h&ILHTS{zPcr(oiU!UjE@kZl95jD#HR)ZP z*oVHN&u_I^QhuX3S9LlcAZ#r@={?;m2VM?2T{sXDj?XMj*(`;0%PeT|c8vEsKZ{sY zL>-Q^z?EKhsj_ifOCro>2`e=^HxZui39Ws5EMVIKq2>*SmOyBn9jI|kOjkr+JIxk3 zXObhclJ&Y(sI zd*8UZ!c#Z9T#W?UGYq>^0UP8W{yO&>$(4Bl*C#(A#uV}8JTTH;6&>(60E|l&(KJ)N zLd!F7>XJbLc73wj4Dy={4&xCNK1Zphbzs)@{GL-bM>yT6&2vAhpVh^ji+()q6kubfVYvE|JSyP?KUw6kj2X)wljuncx2fxT>^z8S{Rih{EeEAY%lElfSgc& zW;+f(82uKttbx;PJ>RJA-eaGWFA-PJ4zpFa;UwF`$j=cNJaK>Ghjjy9_3@fpXVPle z=qrD5fx6keqhJ;@648OmlV1AHW|pL0ILKP}S>=6&5-<%^a*5s^P`C#Mm80D4#1E4+ zBigC{R$O*6FAJ5AF8d*WJsd(%M;cX!Uo|l#H{sJj8h8uGhU|8Bl{W6Fq;+EMn~{8U zfxRD44stn$)6*zO(PH7MgRB>o@55iYpqr5`O*pDfz|%Ya%Fax0aBHZem(39yerLV^ zfmc^dPiH8?EDJo8yY&JcTTJ2FQyds-f%CcWM0QlFV3GmAC?+d`uhkQq^YWaq&bi*b zxoxzA_jL|*+$=VZq+;qu>&M%4Uwh@O3H>xe)O(!+wC*lmPo}d&dCgFPD(eii=mB_Y z5KUQMze@Br_WPhRIpQJnr#(bh>l^kPG`>}NbNkauh*iSbwVUeXPpeD9EIJR7P==Y} zIJy*C;LAP~Oj;JJt9twSX|zbXmTeLL5w2L&lF{a(=@^c)pq?&j9V!^>&m}E*%vi1b?msdk{)9&vtz(tA`C@<<3 z$brzSwT&3?mVm`t+Br)l@$d8js&=^Av2YqZ$ubjo9ZJz*!SDhB?KRz;;t@U>z2#^s z*ycK)-4;!UrFPPXjJHwPVys$0#*JMG(LOwF^+odWu+2@BI)z?gkz+)ARg9>w?df%j z=lZ*?SoQ9d_GcGPS%K`PuJ>|wV{;Rsgqi<)dEXcTk2sm3vW)jBd}4Jq~%7(FctLCbJ}n!`m#w5 zi)KeriByt36&pII?Jj{5HHYGhU)7jxyWBA?5TZtY5ikyVMO*BN1W(|o&?KGkGF9@o z-cb}qT$v>-0*-abOXa*bXyy1*)BGKf6Jlh_Bi4k6_z*9fM?&hr~jAhc01Q{gt`$kQJT!Javw9*M zOb*^6c{;FGMdIz=YwApQUpbrJ?m3UEX4&Q|M=M319w;8#gEK8ofuiV$1Swe+n{kkN zm%b0e_iMLrko~8?tvVVdLJxz^sjyZopWqy!f195q7uBiA`Tm01|I$xfp>EFGz{yS~ zur8NDs+Z+rn)-qFsVAX35MVh?zt5(I*Us?Z#DOR9T#&|8M@rY=hn|T=Ml_UYgy_lF zy|(Sh$LLcNk<3K1(;+3nP0Yi6Yxy!-#3X=#3oT{p)44G^K+=PWMMX#15|0>Sx?6fg z9sX|NkV{XC%{DiG@`;V}sebU=U&k7X2Zz^3Y`>?$uT^pmr{ZQ6+P_?0L)*vrJEePA zv~`x=!~v9LYb~UJy*9vyAp1rONnH#L`!;=Cs&i@R*hn-~;LbvZQTB=!c=1+Qcdm!1 zsQsK))!5s-?!IxW=jRz4sOsm2XrEX0_<4LyhWf&ov_wWad(ZRrp5U2uMxHsmS?@Cy zABAgqIhN8B6Mv#!L2+!Z6++50Z|2Gi;=?>Yn>kfEIYVSor7q zd2{>)E3V*%6>sl^omBiXvB6372}#pd4ogA+h$pdV^O#xEHS-D@K2lK-r*Nqi6Js7E zi#rKw^p-=C{A(laGB`CEL`7)4Udi$SLqYUL7ptJ&n>=P2OBv}1SEuT5KFYc3j<8<) zgh;qNYgaqjdw=;Gy=l`Q2j}~_cY+}ztbZNoaZH_zWG*o`%G6OGnZ@M{0QWRo%EHp` zlw=5lkxji~brC#oXIkYvU%B-N-lfj&%-v^~=>e4PNsc@|^^XWtP(zEH>f1w8Mq(aX%4_@|I)? z^~07<${zHHjszmap_Tpvqb~ur@Up+YL*0jrHf=&zc+c*c$B2e~3t&XFFOn)LanR*( zqaU&}2t4p#YZ%bNBfH<_h7D-@X^>R`lpZVHNO?f3d0oARWnAEM74s>rStKVL_bY&+ zKNTSjJfwS81Jb^T!vOgM0Zi{DpSN6vHfC%j!Wc_GOT`)U2JKAkxFvJ#7lQd@5|>E$ z)Y~Vq5u75e$W$BV9_dhLPzKB)%<&<{2@ zC?Vb=$3+R#!C{?HV7w@vTEQ{>L;GH=JbhYC#%#IwE_%Hc*I7OlpQnZ?qcPy_UTN#% z-w747I8=ez?n_bSa?u=-nyPV5+fuw zLuU|2rzyaj_2Lh2wz3{dA~Js=HMW-a8rXO#bJH!LKybG$E-Jhti-g}d1Chyn=5K=u zr+1F@hGBfq_z)(w^YAA-Ck~}NA#*MdwB-L<5?~2vj02rmxO31H_fu2$_?)O6FHvpj z7UTFlOc-gb*J>)_Q(<}hP)${~1npOG1nVbk+hj>yu#dp3|*VBSuE^w#z zEkMRtPM~uzI^we+XI&(zY}T>6>y6Ig_2YtEoFltW(<*GD`LY~Ik|%Ax?xoJ+SI0x( zG+f>uEjtP&!auc#oM}DGcV32QC&I(`qSbyTNe<|8=s*2u6mL`6u$jun2{ap}Y$hb%lc$;p_rMASGq_GD?p z)L6}vyh6$^_F?p`>(B&jW4gDOH4g#pD(b`<o-tciA4O3Wze$M z(AdQri;x9D{?X5tUmJZmK2@g9M%c7*!xt&yN#8@ogZ8C==whulUxGdbX&h$$rzKN| zlbh@XErIeBe%7%MJ5daSg2m^u4y!*FY-#32{O_!F&27tSXP$HieSTR_^UFeAq5jo!)5Y2T)9bC&RN=~bD z5AT#jCOqFi_+1+#o40=Veb5O5#5`BA`}!l#-uuYSoz1PTU?}bf=^;GxabD6-DP%Vi zw2Dg<*ECAv-96&MQV4Lf%F!6ui8hhwfB9{BAxYv=hm)j6E;eMv|Z^00@^fJ2UCpZUVuj<*tS8eD8XXO-G!mY*!8&zBNZu^VyLt-RkEjG zjh_bGLLn`x2Cu=uJ^BNi}Jwr zz88I{^ZsNJ)c%Po0eLuXjVA@DI%vyz|7Jg+11p2a6%nCPPQV(hqHQWIgP-5>0%=G9 z?5r1J_55JSNT7KY!UeN6#) zv&Ja%7$Ou}j4e^P;nEKkw<_uya9;YGSpA!eJ`w-ih?zFzzjq<_T}M<_7`xA2X_MHY z7}8+Jl=A`~n%;UOdoo=Pj2S?{i+^OJY_+^z)Pq&Z-@2dpuow*cI#%1EBSIMf$d09t zkzgE>d&~olVS*0`->dV;TZ*tv5p!LC&%Ucuo6HhU!XUDZ{g%{p4}eZNlG`)ygp!ci zVBLW_Z;a6}#mEVd=?`gyWcm0C@M;SW+0X1}VE_*~>s*EVFD7%~`2HlOfio=1TaX^T zgyYPO)3$OE!3GKD2F1V9FNbfmMN3$N)~skul4d?2dL(+G^3+9%Z9AF(!J?VSJ9Poq z2kG9+2i|q#>~FQ!)a}Yc;h*mQl|^_|%U{|IPax?z*-ldA2~yxfNV-l2iT4F8)`hD; zE69=V9%JWW4HYyP1Np)9e*bsM3#de6jd<)e?c| zA>XfAjJW$-cmJtSw@(uH?hILwClQu6n!$q)~&?+fDDu-O<%4%`;C zaGlK)_YjtW8^wX9y#BS)vzl(wP!A{CEK;RF4t0@N2lrS=gZH}|xE^DuBAj$(j|;79 zg>sRNIjrzQl;Tm8*KUe`fr&3Fb@Dj1FreCT9z-?23x5 z)KDBQ2BujMU|Fxn?7wp}x5~tp8@~?VEFf5#k6(7H(6jue6oS0#5-la75X>U!TF~SD&m0uPY2geG zX+3o|1T0%Z;wQomNx7*Aq9 zDXA6mK1`#9wd$y=8!$fb?eHn8v|049p|dEbsa6(*RBjYqFC(72gHsFRR#L7#C~KJq zc&CZr;4Wwr@^}CZKgKy(pU>0`d6xK6bD6?9gfMA-dhACzRV$clOI^H{{aH%;V>g17 zuss2S&tMvy0YC)u_Z(c8zL&a@S^k2}e&l+qbnY(p(X!U=$xG zCH&}}KhIrRX>5h=##52m+f0DkSw@qs4jEh-E|~BOF=d)OvKq+5*CT_$g2}RARu< zE?vbgY^|%zBNgC+T4}NPJf>%4jS&?|T}DVG0FR%Ul1sWk+%0kdY7*|<%+fn{*RL7O%LD!be+$iZQ38tg{a}eP@Z&erv z(f7;EDU!z$L?1!X=#s#afeXg6XY6gCHHz|<%6(&K$eNpUWGS7xt-yS98^t@P`y_!n)6AEwqM?y zG*h?tK9c1~K^M@OOgPpzE4aHwi2seGnC%#<=f&uRE8Q@*)zH?adKQf>Pb5zV+; z^#>cVR8kDZ)oMg*VnA|O)yDAe=PkEN#&t@=BQzDTBHVdvuuU$h z_rDrBznYN(x57=zHbVmV7v_R35nby0gJBt)#HRC-))}yZMWR!AvDk_rZG>7B%V>%| zdzyVwv9$!wB|}$oPv`}YS^SiA=56Eo#uGs*3K1W1JYJ<{V8Mrx6Rq77$Bh|u=4IUMTUfU>WM0NNnYzr6Tw)W2BExma7fmLCv6yIJ;< zGu&_}(rx>P?eH%RHvDk>?f99>>!fO11r(Y56^DD%pv$#FL7c?*`Pz{80gX&$SGdU4 zlepC++fN;Jzc+6$X+e%V{I`v&mz$k^1ScBzHiSQragcdI@ z&*Uw^F?GNAUv2Hsfet9RW0{Spf2JTT4$`u(yv_%}wcyO>jxF?{Vvl}AC@&pCXY5vZ zt!w;R9NZQn|HTd|r5y=?n4Ua7hU>Od-E01O@4?6;j)D(1V*X6FZoWX3;#^aQlnxG9 z{ZQC_T@)wXpp;`DPMq7=vlIR%BHrB;;H{{I8!O}Yqo1p_%r+Fc%=B`YbNRTMv{}s= z94rN~H9(Btm!*Pe+8~FZSJD$Kav$}}*1Sfu-IH&=nsKEH@?b4hLF5r|zc5FFsG_&L zj!<_e!-#W}Da&+GT3V#;`e?sbAV=GSjIAX9grO@{2T@`?#IU%%wr_||kuXowhQg4$ z>XsJI-!l5wWI+^P=Y{JAYZo*yR6(VLv!~%8MA=;gqywroTru2uLDN`u_wIbSFnKnr z)65`8kc!>gz7md~l>0ezymqPqU9T!cS=>yD{%{mmJZMeUn1>$&Bpq14XshA|XJz-M z#LXu4RN@=pj?MIR5{0BkTl6}~Eg_~(AIrd;9Rs97Lqoa*T@*QU>(5GsPB&!cPX3sJeg+a- z<8>ldp)@186S|t{t!LcS?&hySDc@w@b%hG9SwK;}LpxntIYBHN5rNgmu(bR8e%%W_9KJf~$rE;kS? zlc*{R0)5`W2j^_7ov>f~uP^G!KE5;+Hr;B%_>(IeJAm_uUuBO{=c__oU6u5yOlIiT zg$6>pCvv$ZFezK-6f7@&o>BWQCo9&4!LoG-@9Y|GZ|}ulVY3n|?jB$k?1~v_X5r9h zr)c2w#(2nLk!uS<&|1B?E6W7?b+nQLmlfWxoOUimm*$2a^TSn1< z>h?bb$USyT!Ii!kk@uL%R>XBL^f+SI$LCkFtG#xGTq*gLTm3&j@|l! zrWkKp=Ls?}vfqbih1W-g#&2bLv;&l6z}=ge&w!uW^UK+ne)-JN#Dx=_4HKz%ioNL$k9fn3UO za`@49r<(g>^XWf>9!ild5HLgyzBAHQySQwNfi8aar{?-Qq^dA*O!p-XRo`xJ2E2!cJ;oK&QNmm4EY>UQ~LZ9m9)^~sW3b~L%Ul$I00qC2g zwn5xG;mDN%vxMrLxx;-zsC*?1zQ3t%N_(#5eHKz=hO6P#jk37{KBm$$ zjeDj@wma=HhT#IVa1tHZz1z?@ib2n(scS`*{C*^t4pvyzS4ob5&A$i7G^iQP_whZL z3py{j&nHw1R)O^Y^>DRo>O;XhM0j9=o$)Z;w!Sxb_vzJ0c|L2O14XV4Z!8BTLw6jPJ#g_23t- z>G7KM9D`<590-hR+U3fCvb}e;PH`UnO-4{X@EQ;v1Op}A z*EuZ?dgeTbAwZASC{q&f)GeY*gX`wuS^k7aYCsX{Wy&w@0E;;I?->OwkalP8bw>p? zd(3I6*4Lk(4@C5sotx77JcAt3tZIq`uqnoXRw@p!{b^c#TqT#3-Ciu3*f^dAwR|#N z+npqLLOrcg z55PLLcpbnnjbD?;{Wy`Wt2-||rhq0gGA{RqQK@bp)z6lsh3^IQmYexzTYF4R*qUD^1VPh3*Xkg|w#`2x$8Jm8I^uur^REv!r{(>`eGF0UAD`LO6ra zO*cy;!62}amwSJbBd(*u8Q$p{1l*8^eD>`gi6=;7RPc-Y}$aTTQ zvrv~J-H5R=>}J?;M~zKpqA3?twaUs)xv7-p)6C>D(tF0n$Np0TxyhsK8ZqT~<0{d9 zhd;IY#GO=e?=Lzl+=|oovEu{pLp7i%sMOA5W2?8GrK@xmdc%a%*(6(Z+9BsdSb02vX2 zU;|2|=kFbXNsL?%X}D&~ki;79Ib-T_EgJ#oN}|DdB60e~G>h3SSAqF*Hq?BU(0o|J zl*Xolh~O->c3x55cy{V2ZLbm^9t(D6pUTw@HRu6Y=(bg2gR9DU#fnI-t4dgllE6JG zZNtYe9C%T}O%8=pcVgm4TqhqYcwi{t^LFL9K)Ynknf0?{4WQS#KNyU0hyZ}725KIS zihPe|cR}gvBM=Q{d&%1)Ti^^<@KEOD+k;jz=Z7kdW&8C>L4YM#p6c9SU%Jx8SvYr9 zn;e{wQd*m(wvdO$Vav2tk07_;f-&h{Gcgc-pgZhA!I~2~bMsIuhO*ZFM-xm8cr$4w z3`J%Y6!a^n*X0r|JuPUa`{OgUCP#LFDK=;L1t1NVWv=_Vk!Kfu5|Wjxi-y|43r&&P z{HzvXem?m`in?PHu^=dM#y`^5GKP)NwapX1iMd9r3!y9W@U+5iT>f&OL7Li_`K2ur zMI{IS?fryAe6&!!_&CF?;=fFi(k;`k1#{k zB{Q_3Veabd-?F@3zK+L9(qyC3i0OZUwJt3uqQEO+f;xfAs3sFzVmmp@SMS(mQy+h3 ztmglkW^u&#@yoP+^=Hv=)ligNYf6B@j?%XipBO2~^(7ck{kFtrz0Plaf1)&3({OT( zV-QHqZzcWxj}@EhwMA3NH*V(3k3dL-VRS2251(ZOm^Uz|@#}uP;^+*D&?F-(n0*l18s@7?WP9O|o86^@}LQ<~kiWp0^Y{#g73Yj|o>MxO)1)>{G!z-fqAsr}7Dtm0ApKRRNVO=7IAMk6d0pdm6hm+0(agJkCr&@9 zWds@JxV~3!B_4Fix!u#qT4{-`P;B2lz;;8T)k|5#J|wy=F@cVm5!R}pMC)PuI3uT{m0&4I??wI7OSU^dwJsun zR<;;8^3zP5!6`p7_;*suDY~`zMT^ggywd=Q&-ogr+r?4QVjpy9|DxCi;yNH_s-Y)X zsG#8pXF^v!*&W&+x|Q_ zrT6?fGuvPjcIjo@EGM_qh~95XdSaiZwpz&hMi{rM+b$+MBO_;(t(KvAJEk zNtzy)nEnC^$T}4sW0_UFub9mtFE%CF<}Y3Q@;2JS#p9zLOt*^c_1?>`5(IG8&gv0$ z*c+WppwC9iEB#_Py&r!#-eb=A(IHLme@59$ib~AGtz@W{>R5L~{CB{cJ;|C z74C`BGi*yCbz=Rlvp*H9(HJ!4Q7s0W`sk;$0W_D))-H8~Z664`?hjUMIC|h@N~p!z z)%zh9fR;Kb3?*VYF!^!#JVoq-h?b;sBHi9Xx!C3)2@%2LMw1QIghtsfQ|2s&SoR6_ zRt}R)Sl`e{jQA&oh6YOV^d({Tty>dOZPmMYK;8l*$A?@8EnX`i2p=E{;Ei_6ITA(- zkpd_=b4&uhlg;R2Kjd%4V1AE26|J!h{_8^DV|f&6!-=uea!=C0#eTF^qfq44l(v>? z-RD^RGvbR`*x$8O&`8A3Pm=t{$wFD>;{ixWH?i`e+)B-UTrl4y>d2@ESBVH%@593% zDGzGP`NHqWJu2RsM&cCGD#@~ZKD6=)c?#b0ljjVt9=)5Bn|zhDec0!qg?<&2Nl#%V z5ZV24UfhRLRiBvKhpBjAWYn>Sz|`oJsWC9!(l75S;9v79VvBAxPQc7y2DFr-H|Oisju zQBm6mm%5d1w!-nbt?mCouS8lU-|~nKm!yt>{R$OErx44!O67_PdCug!(qJ}K8M6n6 z5D-aw7vh4hm&6bj()- zTfQ^P>!w+!LGgAf(jKJ5UNkDhe$1rj+(KnmhFwh-l_%RN&ftDGrLG&ewhlUP9L;wK zp6x~kCMh6gk-$K`%b79;^{C7X7=G5NO8Vb_>q>qzq{4xdf$w`0SI$E_7a zEdhNqpLl6m?6ENTqNwmGJ3RYEHM{${C1}t)^a$pKV}ii$7ePuD$?_rE}C)q6>J%3-`bW1J1V<|qr%}bfRTwDtV_RqnWaz_yTxGiyHu;)%*Yix|%GTBwA zHCTn~7-wjhf-ug{i*O9sjFYFtQ!I_}WkU=nZS}8dN)yq$uGqa*VtWG1B}~c(0$Dw= zY4(w~!`;V|DGL;2TG6)I2Gl_HWW&pknG&5{K1U)I7f(B(rcsVXD*8H%q^{L8BxyHt zD=2%>79tM9%&OT35#i0 zQ~K+b+Pw$#fH|}EAG{xflU2)^JWAnIMn=rWr&dt1H#j_BnsYPxPMn;_j7p8+)fnE5 zCxT~IFfWhMTsF5^Vp_sGYwgE$XpL9oYSoYUc76;ljiu!PSM{zPb3LTA099} z!GEO>Z^XP+_rTQ-avlJdYK3)HZA!7c@F&N(}2j&}t)rLfz9j z()fSFsL(=@eDQQoRov5%R60L_YM$YU=NZS+#p{j$e{7jcLE^^qU9JzS{;r41KUh$6 zH_}96E~0FvjKjUO!G>J~Sw}eB`0NYF{@o8lr!!B+s|z@HC~qzZUdkyTt%J|E4#dOY z53k3vQ%0&Z+m`{0C9}<#x6?xvJu3M3IeTIxUHOYL~l>NEpvl1ctGD#Nt6!1liGh zTsUJLIMz$@^+`LF%9}rKh!q&12?R{u5`%1?OnmxukB{2(1AVaP<-)hxu@Ne+W>vtDAC6?7c3+PsU(y&=TFhS zvO;snQ>KN6j*_+c#G%^8vf-yV)*f9zgOsqcBMaKTiFZRJw1^_WBUzm~Hmnyzi=+wIzK_83nJja+LPgUQ1iltWn9%TOh!QX}dCSG?!*mPx=s%6@@ zU8)Bwui{esu+~^4bS&GY0+Zy}MFQ}Lw)P%*Xt=Y_)RA!*1}*3dzVf^fH=RX9w%)nJ6{l13gvssuqtY%#g0?UEGej-npi__wO7}YQDkT$^Y9LK<-G??4;{}H^gpqXot zC!B1;WmBB+&gh9wJ9DIBGj`x;j%W{!)W&7hG##e}HrjRuye-&?E6UfsK*=x4R-y6e ze#t6D#y`8Nrr*Ea;vK#BV+2>298w(uVA`#f6L@{*0Y1G$k<1F53Ye@X4Fz3x`M z|Hc{}-p1BjdUeyu5_~1_kb!HLYDj_I z>D9fLTQ8Kz{tQwH>V4@vIDy1YTN+R2@6-8M)Kncn$`1j*zoLuP-~<;>Eel*Y$jgU? zGOebr8f54X&7W2Q7P5)bqXweHER$|8Uws*U@47cnA3%;o;M}+vsFDKGK|U7VcZ4qe z?Y&a!0#&jGxVD~ba~t|KRaNv`#4FSB+5-W5cFg?3 zD}QO5$TTFkg{BDw@%-@TIad?uN;vnbKvlI~&oS8%k7qkwnfA(B>-G=IqPb6KN}Fzf z(-odHuGzVB|lE1iRv5kB)Yt*V*CxqyfuJH$ptA<&yV&2LCrqj=n|2i9KCiDej zH4+;!=lyz|4@~?h$hfdY`+3Dodv>7I@@HnSHhhEGYZ1d^t+zRo)oKH)j;ly_nji* zJ6_itsKz}m0)Dm8F0MuS^Q!Jz^y9d#Nt9zn1+dN4t{rTr7WCv{<-BWR^MT*KDRNZ` zYGJ#99$`}lf^f=e6kmBUc&fnLw-IR!b-~zSNDKCQPMS^?x>_qlEVqo94rQxEK6jS_ zuWkKIgdzA8?9B3=o4yzdu6g7`ncjO)3wWXUg8uEHiKbS%GrV|+8KZrZH2?ciq;M+& zxv6d8F6Z#y1qC@xcj@3mY!wJHE~0Jy0eJ2oB%MyH);F@;P0k51A} zUK29~E3B1cW+A&Nfwv~t@NszYGfbku5F^y|Dm37AM#|JC6hBEuU5b;1sfmO7dL&L(*20 zyS7hMT@${EhketmPnaXmRgyI2mz^$&tnXN}q5hq|>cvI%a6vDN=8mlR#VnPck}jXX zr0Lb4o2oP%Ci}l`rp*hGWj*$k+LFkM8UKVcWVK7FKIN$KTRH3?iITTrRT&L^3Y9qL zIrUz`$7O`!iS-^F?-hUkhJ zs(90=@){;i)lnbHvY&nO?bbt;OWS_00?L$>n*=@QLkf6PH+Ih#$ z!W7*}ONi?P+@=t57PUM;5eXHi#_f2g`nB9r$FrVn%e)(LuX_l4>gmT%6y&(>zRIj2 z!x=r1uiI6W)%D{lnKiOZsx2kdsGW0;OXA_$%-4Y@mC zr}Cgw_rqvU5G|S5Fp;Kf2iG?l>B8?m^xtuo^upCv1giRr&U)nShTpwbq$Pe-!=$;3|v3Fle~+# z)N(bQ+(o62e*ZHcz6^~Q_||XkE_6zI{>A~ENN5;yzS-x;!(4)S5UyUDt7z4{0G~01 z)2q+rOIsja_jBBZY)lWE<(Q2E$3?k3wN729C%i%UA#PV7$y!FH3wYdCZ@<8k2$pvL zt6Rf$Qw@ox-FAiR%Ilf5&Ti+2A>@yE+8!WS&XqtFKdPa?!uxr7&wvYo4h6ASk2!O9$3bc9%EPl=2@(MPzwl-AO0=)bU zj$DGvpNcx|_ulsiT~hdP(GsIv9=$HUS5gOL&FXInWykeqcytEO`ikQpp?w#-lrVDg zRGK(#7pb|k(_%|`0&;=e>~#MaGJ7va0Le!SmB(Dnz4LQsLAy4Zi8aB*w)w<1Cbn(c zwx1*u8xu}!+qP}nPEOukdspr6JLeBLwSH*b-PNml)mp3X>+b6^=(>dR(*3A^ou>MW zxrA#oM(H<8q~OfSjWf%3(XX5%_k6RqH%KE7ZU|l&(u&o>+k=s7dzj*P?6&($S|eT= zFk)H*6bR1FRog@LsUIUVK#n!$IZ3?UnMN%V-wYFa7q3nthk%Q+g-2aWJ&GlnA=?;Q zQ!mQfch2eKH^rMn2Fx*cEC7_nI@{SGz{nC)6A}gHk9YO|9O+%Ycs_ zXO{O{LKTfHA9^*~3H$+rXhQ)`#j?^J_xGY1gr_`T)Q^|9YQY(1KIV$+9cC8$6d!8p zOt>jHr0(^*8&5nx`eBYK88V*>)^~biiQd7ElMo(`KTA$~aBhEj`Kp$3DNwh0B%Ikv zK{$A!!v4m92AG)lJR4g6jGvCsRzjMewUkMx6u!H@dQ}}gPx{Cx`#{mboOPak6GiM* z+v}wzHGv4Sww8JC>BQ4QQsns;k|d#_sp0Z7Je}g#kFTOek--ihRp?-|NN@j-_fmY=YyHw_Krujz5-hIdJdeK5?YJ3_hq@y6PdI+K3|TuK9= zI@nQ&N8C8|n3g+U5kNaJL$k-*Lh_dI6atez@~j}p7Kd!i*}(o)!xDl%&>Ajgy)||O z5R{$d$pUutC|4S*3mQ^STX^UDC%eDh@Cg3Ea-IfT$Tp6~*BB>G(6vHhhwUUqM9}?V zv4Wv-+Z#k(W`mEUw%0zg)(PF>Q36}3A20sgSr%Y=Z}PbBX6Vagcgu5=@?&9kRIam@ zSs1gKcB6HO!9s(;-zfo&3P9OcVfw#^vZ*z57nLmkjBWx~PDXVgGbINhvTHUVZPX>MuB)zpP2@*@Wmp4RPRV&lF5nAfJ4_SB4|}h={R$eVNKfaw zbN8C|w+&z5d|n+ru+(lkBc$5<1Bj&|*r&Du>D+04Z(E4law|E~)A zSEX7`_7qRD6#>M*Zrk#~!}!I!gfeN#i)%UWi(KvPqcFdm>C-0jQl(IC>K-ImOK$3x zoR?Ud4On|PYSWcF$+|t^H~K$E&?P9b&ERgza+7`O*(d=-aJSY$R3uFFdYo0NxwqMa zi0@0qA8EX}9UOouy(PtLO684>^NS}3N;fGGP#kgsnqwU_Hr^*IiZ2nNAJlF7qkVd4 z`!8xlQ;7{wX}J3&awajMvMfJOHg{M6ts zsnv0UopXPQAU!*2z?c$RNIY$wclmDZL24oYCAIL52VJe?^gw|edH<=|a!n|)t%}4h z8*o>Z)%`rTl@JLa3siM30pX%uLgn%$in{=}CoN2?&7}namUK|-f&>O8nUPpW4Q2AE z*L}wCaeHL5@}7A{GM(JJgXTq-ksgAd58on!{)t)F_eaLt*D@wT2Yxucy=$IvfL7C$ zo0yrdN57}&i}z$Ty00<~@{M9D(ybsIh+txnW&SZ|)yoF|6@~jVzK?6!7LkMc^Dfq8 z1GGR-pir*NBBcK#LvLP@j4U@)YF4j`gaPutxQy?FT^0VKBg4AvCP*!_pdat2###kGx`*Q4!xfkO z33x)w^vD>`i1kPnv-NAE^J9vJ0&l6dEyZ5{{++Uq&BbOK?s$e(bR=GIb|XjRIUW|; z*5SGc&4ZIV#7$ipQUyOBaQa&s-M0P6BlRZ6Sm`o#ELn!PbTbgpkW0do!;}kC&+)`P zY|nf#&KIn>&<*V5!*f9HM9_$=nmdxTL1T;jDssm^7X1u6V&QxBdT@Aw{rlvZ;1fvo zK9A`HuEp{QM?u8JECG3`etyJ)9*%HWyABLuUzsU2nNhFLvUqB!LvNa~@2C#5!Mexc z;B?C}Wce3iMLsJR)HVKE!l#`M%?C?MSw^Ok5DV6njb~rl2|HJ|z%<3hi!19_Dr(7I zle3hg2~WeD#tee8+pm4GKQkzNn3$1;0@^4!ST_tg_9K0S-&39tPaKeTyQ~B|kp?oh z*;@6E%P17fCYS>8!i00AGzr_^o%x`2@s5K5NFf0HCd zlgpz|vHLXD@AoA}Az)jku95G>b+HmQPowQzKe~Wdv?Iv!Y7@zicD_F}+~tr^VS@7Y z9G(#_A1HFZ^@9{QlXgyP`OKj5CS4`oY{FZM6_4?dy6)biXXB->)u`x9TQXLj;;0>h zD(od#wz`jcqjtPQ!yUe??GPWN!JO}-1o;}5Rl!q;OUZQ%EV)ENG5IYcQKe9nmifZQ z&eP$B+uL5!0Z49yyCAfp1+cQbCbaCvMXDi=h5a2g^R&q+jQ5>p9Qy# zolaXi>ZTJ?2kq$C1$0kDI}y4|%RdFDN}LifE(b5UGj7cRnF)1Te@0!xvT(h0-B)&e z|LVYP56;~uD=plo!l9y@hYQVI^@MsHk2Tr|pHm}PkE0dg8e3VoyWLbC3Z3N#%G?-g zKhZ-f%fWqzxp+xQ#VRMq{ei`L!q<7%T}h1xn48rm_{YO)=GItY8MUx6>2L|4;3E?p z1PR-7V&9_NU!WA(klczpo8dkQ)@2>7o>KeCAO3`1WY=nEI~8MiT%Sn^uKs4dCk9R> zk58Ghphn&Dj%$P{DG)SxUlt-NS;*Xf>vLr|f%S2zPt1hi&x$zP%DK$rad{*LztrGjEyIoB%JDPK8-SJ%+ME1J} z+pBuESZf&LMbC1joSz-~7B2n709nj?#{aj9`#{_`IbygrsW*V%3p{3qNn0g%*Qe^n zOaKjLHUD*=zv`VsXi$%8X*ee@eqnt#8HrDR{N)Kmj2s znJ=4y>x*Wov>t(t)rq{zOV0FOuE}>1BcNoS923bfG~o}W0_J&^<{ZHSW5xE;e)InH z?`tvndRK?BaB}2a-8_i=A%;W$+agxUwKUruq5aig`SbTDBvK*0;6S;k(3yH4F(qOo>{+Cnh^9=jJvmev`9z5xH8%% z6Nj6D2&}BH?55E!HOtXZVlkvK2by$IANvNNFsdh?INcjQGDmQ9Xde@O;;6NK zReJ?rT!(zOJk)DJdc3c02VJXr4z5_yqcBfFFL7$^g35zJVD1llkes^gI|}+j%FW$% zVOBgwTBPs=hK2dj#9_p&sbX-T9m%%@P18W46rR{jm)P`6y zH9GVHtf6dbWEDJNQ@#_M6#molBBJ3*BFz65s-oj{b!oP_Q)0=7eeo8ANA0uO*3ta{ z=q$!<9h!7|gnT@=LI(*>_2LvG+&qim!~YPkRp3B(c$^rPdV-_6{#&wEcaTz-Q0;b4 z9Yz2dI$^yrsKEd&(Q9qYnat=sC;LW!(>3U1pIzAHp zh%dCZp6cjo4M=DKp=1o>?$HvgrrD4KnA73+b#k0<(ENs^wk5?nz$RZ zGMyX8*xHWysDV&ur}qBZU(KysA=h3C=0?UL4g|JsrCiQ&hD4mNWwk!XguM5yFh;}s5|!HFuRzn0BOHCf+9 z!tyq>=I8Q1mfiM`d92ICpTD`f2&ZW?TmE`c+0I#!*MLKbOE(+g?x}7$bU|=?z4^*9 z3Q6*VETT{mN%7IJVmq&@6kLCC7X03T)DH>${?eApE2OnJqyZpIT%Koe_k#|t;?K`Y z+Ys04sfic6eP&hgsFpz{qJNMDVFzoxd=x1A(eJiUNd&#c>~ZQO$>3!q^K`GSXdtjz zLMQ*T)&B_%(;QqtIDb`pPWA9BJY>E3#?c{}3B5L9gwi^C{24LWFtzti5{}pN`s+G+dHP`u2zvOVP_dlm*Rnt|ts`GuJdv##X8jAs^oX&p zRSAe1-)z7QGHRp4TGi8oB;GXsq}2AJ6i1xD#dc)Z?xkatA!-{UoyiH_Plx>q{~p)3 zf-#FirBR!p<#|1PPETL}pYgxv8HP%p{M0JNsSS^eOCc~n*OFbT`3vS^dOVsF*|N6t zX{62tUmn?0Rz37(qsIxb-wIeY5KyNoMmH5cbx@i(79@aw+Hu3vf_hj(F0)idQ>ukA z3YUK$@F(~g^ziawV1{+dw1fTo-d+$AB1s05@Co}=9(MgZzts!=vBUW61?nUWd>)-@ z)a6}Jv)^C}8{-$&oj#->R1A_%Z|G6fXOcCK31W(a(5kg5PL$>vZ2ypypOQs#u2p)@ z!;(7yF1EvYBSGqQl!nP}vc;0qw7OYXpbs3U%;pABPM6B4n-a&=b$ABmK9|kAp0+Vi zs4g)MX}t0xwYYJ3o)KjjzSq4L3!Jy~s-d;oRe@6*|v7W!*NgWpM7%l7(Y19)fcbiZS^;X*ao#EP*Me0WbUa=F|3i$`9 z^;ydFZicxuq?N6yTX#a43htQ-sNsxj`L@emv^icXzx&2S%B46ieG=Cq5lZ{pj$ z+%4C3w2$;pY$7-sQk724MMG>GZ1`3D+$iCdd3~z-7S+=ikPGpOY^q29xzFw3->*%HO|D=aS7Wu5A4krDAdYgiD$>fK`uediz&p_`Y#E;psHB*$NT z1VxaNZv+YXuUN*)UKV<>q#S#RT-%fMdpQFgNAs-a%oM)oAR7*ac(Tmhvi{zdoa^T6 z4-5HaX~9PS>8`i39@a_LTEL9xuw=gTRu3dG9jSj}tAKQZC#xno_N^KEUd5=9BX-|w z(WgNH+I|6Tiop&|RgryvQXM}+avpN&2ogY@lqC*)4fI|NFxmwNb3#l2xb8;O%PR>$=I z(#8vf$A&(Ux$%M2B6`frh=-_ev)uN!-C4+xwvGJe!pXu?BePI3fwI3~?=MB89bp@M zoTHuT8E1M%sV<6JM7?Biv2^=%Qak7z5vXi7&TTzz$oMzl?{E2lY`$H*+DUVzx=W-Q zctTI=CKJqHY?3@;&i2QTUYEV4&QZhSezoxGApE2gh!^J@(4bD%@iygZJfA17zi36a zq$)QNNI#NPd-meOF`OkN=(t7oF1Tc=P?!V{O$QQ*CI^%B9S65H^8$V@CPbNpXlU)K zj*0)VY8>6yPNIw4>vSvES=`xG@E!th9S=u+P<96=X+8be0@WV>da zS+Qm1*0Ae<%^JFi2&aI+p$`|cScbHRJEw<_z||;mwHMH7%hEgFRv*&x zBlz+%EiqoAC#j^IdA^$f?>S7xT9#%qn!#$d?d!U-K|(bP)!tKQ<89Ogg(>HcC1kA0&pJ&tF=mOA%;Jv z6RwY1JRHWvD4gfrqGR?W5y*H$ySuX8nmrU1IKp@8e!jn=d{R;bcueE552|;3-*hH`s_NnbR zRA0?mQREkx>_($2-3e|5b72CB$j%T)VdkoJwLhd0T92txyb4V8?{l}=So$GZJvnLd zFWVrUkOku?dbC1RTF7@&iO6K4Pbd$oe3HUPxDkbc=t&W~RG|N2Yijrw1dMBcAVi2_ zWW{qzw!z9Yp?uykGo2gn;y2*q;_O#-lU`|pM9o^WaDR~813f3ebCt9!{pMTWbOVI$ zDhjbotz6I<{|4&wHDh@n(6{#`Uoo+uBOAFD?KKm}U2+&DiiSBcK>qt8f)=j)a5Hwz z3%G4V)-RP*>$SnLkrgvfeyik5-%2fPKiDwS`q-6x)>`o_l>p(r=OjXcx7HEz8$V%A zYTzzA>^Ljnu`(=0)0}5>E<6R7*{S{c(;#$pRDgkh%ZohPVp=2(H1;%=@|9LgXCE^Q zE{7a#C&591jIowHqF(5i>J{5z2yxbJWz)wCM7ADD6?@=dB|$ zf|46N-`6rUwt-niUL*DbfNAhd_iY9;?@SXsI$0hqQooaZvsl5 z*Lxo?=6>RB1syA?jv+*y^_>S2!qWus1(_!U`&_ zHz?SSe99q_VT1myj0$v{1#-%ob{R)G{wL)o{kl z_zX|WyVHqz<%dBclxa7G%bb|X{N#U)i#noN9p~CHcWyPs&$9D^y~pF$g*=ReU;03I zh!5DV_7`YaVTn>UpIIw=+D)7tGIkK+7PCcX;(RtWG-H7PJ8B4i%PIFhtZ7AYL5!7jGfo|}c~bN@eR0U% zU}8_lymQ?W7R8}immgYCtV}$ry;)Z{OvnLBTxoC=E=D!bi09oTL0=liQdIjc^MZ$q zT&zg9c~}S0j0S|M!z((|8`s(~zE6)emySulO_7VlnAv~f!x?}AuXQ_#@PkY)e?bDe z1z*(N+`g1+CY{Nb=Wc~O-QVV&wyAzbWDvn?UGe$CmUtoK?dnz8%*W*(p^s~j|EVyy zP<*r`tZ(!5vX#Fn3URHisr=-h+LrDqX-S#Fty2_yXRZ@tU+!~V$6=W}`L#iVkeQOM za0;SX=q8U}C!keFe$`->cgBYG7hc;Uz~1qjb6M{2uIJYf2(btXJT}j;Uf~ofE<&*P z98tbqKjVEn&n&vQ-XlRVbUPKOwrj^tw8iTm@X-(-I-p(N_&NM=80r`Nu!$a06`62} zzq;`h#b$7OEN^TSHSYT)J&2=31>2-&xfIPNc{f4n@drRv9Ve4VFvamPt#GJ zIc@^xDs6sQ8$VJ_E$^el;6^s8hi7)m;Hu0k^2Wv;^nRr%%}F{>%MC1HJRQWM@sEJ0 zL@5@Z(YS-VKcVGm&<+V@=e0MDbHh;6Bwwt+n`J2)fADz>hnm_CQM@hlvvEJPxtz$5 zj12M@7mdC&CO0f_Q+gG#(t)OU!9Vw$6O#^HsysOQ`R;_X zV-S$8d<9!kw2f(S=k*HU@ zgSJXq>r@8Brm~mq?An1^aM56?hn(<qthp;=1^eYE+N$XD8(Im@Mjm3B;-m4M<@G0VF>$)3sjl zK80FFXsJqTaco%REJ=cdD?u1!5jR$ZMi7T&m}q2%S~t`d^cA$qO_)IuKLRbjRrGO5{k~R!8T?^rp9ZboY;7uyZMr9E4 zBDdXQsrPeoz&9YXA6QvL9?YqXZWDOdA|WLKdYzBc5ExpnksVJ3ehs?JwdLop9}xA2 zLx)I9$(*TqSna|y7+suM)vDey7c&JLY+YC(LP9o<%XSu?0P zy0VGIOhOgyFi}s&2O83RClZF1usOk==_O{c=GEVafMjgs2S#O67ea?_O`qgx8kCxR zfhyeGrOR|hVn>zjjD3gbxllvI=2Jqh=3&$rVt;p3PS_SDk)%<7gt9w$u!p)G)6J(S zMVzDXp12%23CTq0%CpGa)qKYZlW#kw_cgnm8*$YzD|!tLCQ)0R<1h4<&=^sDO^x?5kK%p zFobTnfry>E|2%9<#|=61Qt}$Z>ODt;3+FD_i%=aL1@(A)=$)2{yENui+Hy$WTBvH+ zfcV(!-D=fncK3WV)8k>u-uhQhksuQJOkPp&w+~(ZCa`ZDGF;pNmi9ATJcC_i)RAyW z7H&Pz5jlDB8br^PF~$1DpjzEKo7qeaqV9%FlWZv=z27a7=VGS8tZga+_4h8MAdNpp z&A$S+8M>H+=K}qiA|_X%*#|Jrfm>?Oh#&L+Y^L;QMayDi#a^iD@PCldlbrk*aF7IF zXOAFgr;%QB@O$XG8mofv{?O6}xLcYDAE5X2=7Z9Bit=!N_Tg3?a5p~`)_`p`&|{ii zR;6lk_o&3glu0 zyVmcQUGQeVMwPP{UcA`J+@T5LQ8d;wu?#CLU@pI;6$Ysm-xehIz6l%iU1_EF_JsQd zHTy)9w>rd;UmO9I1k;Kn29abs)gUqG7%a~Ow{WM9^abQEV4v$gZk2|o?n+c>tNi>~ z_eEYGd94MO7WgU|8_Gdva0&XfPetWujBILP78?T0vk@|e4J-5coTw%SuiQZdCHOKz zNa=&Qzg7JDZDzt5Ej}|&P_^dNayT8Yu=$(BbSf+B%z)U9@+b)HW7r3)%1m@`F>`d? zp9wSy5uqGG%9V;%moz7y&tx%|XB-Mk=#P-xb_FF0x*kix$;5r^6Tb#%uF?~tcH6J{ z`tA3}$bT@h{sQ;3B`>2y}y1Q%l>1-1;kR{Wju zAMN|^{3jFSZ=VHylqf+Mt9qyX@s~XaL6T0Z zmaBZfW=u&cc9GU*ME{3M&+DJNG)-YJzbH(|&K615$-!CH##SHG+l$XB4XkhM`7~EJ z@&9==8?KjVo$C=4iOMU-ioi_ znj3>?JzO z!Nb39QoK!hu*%VGdZ3Y{WINDV@b|qyI$87kgB0zENYlkrkD85{xY090gmc!7aU`nL zV+J~6W`>jV#TRSm=LYnV1W&H~Jy~Dti4AFU)yy2-3CevdRxOF-g%TR=6lBbe9JZTe z9JM@9zJZwhHLC?N{O1Tvzw84Yk@D7wvTp3U3;yv7>WczWY>^x?X3~`nGDfxf3v3HT zFAw%7tck6$le43Vfz5wq?Y={BU|E<5843R@r$xvhFCs?BplssqOvoT%V_;??^xvuQ zf2R_JI{&LD^Z)eZ;rR*6AZ=o6=4?*L1^}>qm&7crolP7GzsD4_HgGl(F)^|;Hu+C) zKE9u@|1$@7-HXhz7?Po+PzifR&h6ezD5T5>P?;M=HT`KAcb4hlz<{`pX`$&}a|>g2 zI*r-!?hbQhQ(?qh@#%aH2)g=AaeG)@b1H;(#-9pFcOMkQ48}F3>gVKTt1*8{qp+~B zZUzV_WVM;pKjhx_cEar$HD4QWJsjB_+z5Q;pHBGx@zL@>t$b6Qc>5fkyyZOd9x%-Y zHPp=S?|nXBOFwX7=D^3kJSg}%a^c5hgb$S=(>$rs6D*9x4)&qcT4X;VFMypf5G)8h z+@bxAZT_tF*i<{dvHYn<-R}7E?*gmik0(IE=Kw^VQz;i$Gd;;vx+{cZ9V35RO>M8>|$igW)v@fJ=M_s zB)@gNj$G)Vvw^QF!={Dpaft@)`zEvvt~!6IO~19-*^bpY=oM6Xujk++%2~ugiFaaT zW@|9G3$(9()ICjLZk}!t10<@PC@MwJJUo@TQCrt{OrZ7&RX2WhJT9>N-W(@9eL6W` zuU_eUAo8_D|cg*|Fn$WFY-OvapBV33%xaB}NLq{U=8=)g+hF41=Y;5INSsws&tnQ;!h$TkkV!;V@nkw#M=*$g#Bvy{WkvCj&vhBAh zZxt++MJhDxmMj1UXJbqQ^d@}Xj@TBS$@bj!$L-g2hr?;_&z|RHNnUq*L*1K5hr`$Y zj2PxUfa^aYOpZZur6clW8XqQ2_IDPriDqo`;iF8NY{%AV5sT z*J&4lbaC;An%^VAmnY+8*X!zAtnbt28`KpLQS6Fo>-l(zp#3XK?`tUx>g!|Wt9{FF zuOUblS}-72K%S8Dnu%tbF3RRQ-#VkX(VLu}q0xhBv($7gv7gyO!+LFCD=N9RPt%)hq{y3>4MrayN2$9Kq~z296jiC9D+3jKs%eFkjZ`6`Lfp zJvMXh@qLis^VoV%9RlBQ%|=CwRn`xI8LJmjztz|_$+KMgF;|u`9pYTDqfurbRCyAB z1q;v&pk_Mw8;ZKzlUzqx_!IPcX^fZfx5j@*#4ysln1f9@PVL1{OoIa7g4Xfn19hN= zQqeb<`ZD}<1Iu#?D94~9BF^9s%?Iog%OE#u*<;PJnty{F6#Y8qx<`ug2*JEL)Jr+Q zO&6tjancxM42(lWr|QMlaZ4@aKMGN61^RDkNz#$90jt6pt1AgBnRt{B9qlw+Cb_O7p zDGmE0?{`lC`k?y`W)wbs9mSP0fEogLGl{qVi$oV&>^-U^aY$Xy7KpV8gD6T0toy-r zNQFQcOWRZAX`OM&l;6(L(P)Uw!3=;PW-r z@$7tWF*61qin43C?}#q4!DA)X8~OM62vm51zY30V>luDFV2(fyGqk~zATK6C=+HI= z8q|X~%@}9YOMTw#GLgv6VxmCi#OF4~R7;-zbq~dFKaT19WfXCxF;g=Te&-D2{e2aK zjN#5oGS|>%(0^`TVkzsuYBUb53~(K@!yI{9TCDJhWn4UNX7n=V1EB03&6jBTE}5>k z_*nxivD-pt?iG(1#ZEeVo9}K~2PlD3K#gJ}V7in!x@n_=ZxzwpgVleY2J2U|$8fur z^td$RC}gu1aj~XDM_?Rgn(GSfnm31V))MlMBU;4F7>fyW7+1X3ab(XHBauldBLiK) z>b4T|WQ(&A5sWMTA7gpKsxnVGG=s##YC7UiU0A z%oLvtE5;&D5aL@uJ6?n(U2chy=%Xa4{A!?g2Bx37i{UDbCjkc8{N`F2l>)PvOZBTr z2n@yJZAMeCLKN11iH`D9)0@Q(T`0NZwJ4nZ;{_?+>vk@G1aYm(H!Yzp_G1}@7b9jd zVkD?6sW@ZqK9scdG41B(kmAh+=eDz|D=m00yU3Am9S8d0CqrP-bYg;QJ@>>@QOz_8 z5r(wlB&~ww&w~^q9YYkpeTYwmJ2M*vhZuAitAPw=tD0F0{VE3MUW$vaH=LZj2r9ya zp&Oy6!)ar-**bhzyc0_Qv#TxQ?xHBtPt|jY#Y%T9L5)69{+Ft?BfQtHO@O_I%@%54 z0Veq}IO@ONR!FGOu;37Zp#S~ys)mBFE));v;%{lJr=W4W;F@KU8LKSVjvSzky7&Pn zuJxtggeh_>AbbZbHM>g=QctQ5M`%DTibZx{HHdy z#Z{t`Zg(_;YRoc(L#~zv<)dF>ru8Z%-u6jojdtA$7;#bVlosxgd#+Te6Hg=6d>QI$ zbN<-?yde`?!^+JvDj_nx*@J-a z8KS6hZh{5V)im?mg~a1Fv<&2i!@yW{A%65XYPw)vavk#DAkM=hS-ZIZtXHDY7&Xg} zYR(m>IgkO$CD%Fuoe^Qs5ALHQ<2Lvo1F6NNjT!fJ;};~@dNn0Q0CA%0{mq#!SK@We z@B#Jw4@%th(EcxLOpcawi*+|y54EWpQ1hW*aO~M{nVyP)*IhD5Z z_POt;(P!Wb!JZv)vrZQNa*SoMz~JO3e>Bcq-mEu zHOabMdY+c!%BfDGPDwb$I-B;ECn5KC1}e-*pw^X>V3pa@!?4@o00DzT*d&khG_7o0 zMI75<=dt1*#ZMHNM_C@4j@5EnO)I)sWhFm0rGUz;yE<$W@Gw^hD>{osOu#Ah4T7;- zZd(U#J=21bj^C^KzB^otK#jg(`OrMycTIhX>^Q+IFWaAo5;KfKCSLoML@k=MfL)*` zv&tvu>MFBodvuA5aVThhv>rwrCe+sLY>*Obd-T{GE&YBKjTdTuH0vS3UOA22o_72z z(1m&GIG%Fl0`!42(=8s|NV}i$Hs&|QIQ?+i+-@4ClWrN!U)VCNC=;=}(Cj$CA6r(+ zOyn2K^%%Jlygiiini;^Pvw251Z!ypXXVTr~pc4-7VNC`#BfEtHPu#bgb>IB&M`)XQA|Gkp* z*4-Rk7!$nQ{Z>ki@rem@-3YBBuTSRwPqx)qNf0+ni8C1!^X=@ z*nUfg&6+eIL#ThWw1^fvzfKz=$pdOFtkP#NPmVy6o5@d7jRCr7_$6YEt=v%?=~7P0 zm?vCXAq`xw?U}s2sg)+i11Z(BUB?Q?=p#OalYSe}HILlpwaUX@v?};EB^Ha>j*(0IZUlL{-Pk$h}qR zzn2b#H+|uY<>n&qX;(~`j7NHXMpE~2oAIUaSBF=Z^q?Eikwh15yYQ&Nv3;+(I&O%c z0w(I1&3WAVzMw~9LvHzf?;>ou&R2gbrCo!}HSpjI{i5bisKMzr)*PA`_T;MOKoSNE zOMd(ddUo310!*4YZVEqJvV)^XueNPWi#l{8W2ZXsA##FEiTOG$u0|}ZHm9?yTRLp( z{TqXOx*3Td!u+jBB&Ur)TiW2_0dps2?wK9ToDt#0&M+$Dd=h)c_|+AA<@@rJ4czQw z)Gp)5s0~v*E$}5{=T3AI_q0P(HRil(O3Yttma z(uf6fT5Mx%dFuQLreDQ@Lw-K<2ihQu+6`m+=)+5;vadw4a3%c+dZKC~mtMw1_1#}vnNWwV%gzZ!$vXNzIEOqD5a zwd5-L41npL;p8`*C@3?Y8s^`uzVn%@aD_m;&eg-F3 z0{2@hN{rNT4=A$%>t&lEfPvq={1{the%<}2-EZEYsxgMrPm|d)H|X2g?7rv;mAL}5 zA-3&jHm@)WsUCoE>4PhqH&H^NmcZ;DG|WS~<50*$b4v5Nm`S9fG3!U`idv@ETp!tZ zoHJuAldsJczD>;gH)9Gj(~0SbY!->>+vL-5Ykdhk+IG3xVY-P2jTBZA?2-$OjR9$B z_Z?SWYPI-iUXKfFo5LERS)4=g0^s(+a*+tT$_rzatZsJT-v|EGFlmYDJPWSX%yvw= zZRl@0mPLJ#)-mypj+%s;wMT4TtCkga8%{FnziCR)brazkMHJk44S|DP zW8;`kZ%|_34Ww%!s4DTdI77c1zIrQTRznyfyzr)O{0`I_Vkq_8#q|4~A@Vn5p2IW` zrUo#}T1F||uHfcw&xG`9#Y05P@h*zln)2-GzJ@mo9y?`7xpk)=NrAGyC+5)-VzS~F z?Y+ehWuNxlPREpHi&-wrPn$_sJG;(~k&(B4=k2p`848H>+~<3iu_-A?m2192<#@aY zyk+GGeE17No~)E!&M%bAp2>1~$45V{J~?Dr^LXqQ+q^gFC|osq?~Xp07+bTi-(5CL z5E#Jn58pho8v9(iHS!mt9k1%y{a&9_9Bu3u@+iB z+|Yqsqnz~7+Ai-1hpsEoP|;wduL&?%J`#R;-GJNDLc%06{U#-?8;>K4 zysl2cUY#&yATHDHpAl_nXXjNp=vCV)Opii&%B&6rd+uw|qdeM|xzaa-{R{ZQy&fwu zMpz^7Lzj9K#-rT1`ty~km5`-~)LRDCG##i=LA=F0ZCN$N>XTz#yn;;nBw3acqw{1Y ztq%P?cPhg>H>u~fj5hKDFifK-A(FpbB>>QXm`mr9398A$y+DMI#2uf-0~}~?dJnL; z0n&As>ZfO_yEO`%L7^(>>|+;sTVTm1%_#(#9d_<3>7+tpmuy}TW*hmu{!hKqj#YG{ z29=_wRWy>J`gJL&273O&yO^hMCf}fTVMiWpt`~`?k#Mxle@(wrfU2J>TBx$5dm+R;2~EJR{}q;pZ9Cdz#dAz+^T($4eH> z`}#-!o7I^)xmd@U-5Y+#ASny*WzOks^M_y^wC}FB-J|(dV_+Oc7ac+6-)nrp=@(Ynm1DB5wg7mm$)*4gOmosPg3hyM+9!t*JS&?sNR?{i!qy}Vr zWTLTVwoKoXOVP}U__Ra!b1(yDMFp#xY`WL<53>L{wJr#v0c|t{x`11gY*j6*#_r4t z)ANrOOz*Ufh0HvsfbjHDd(zI6CD3|_=q7Q%=glRi(%@DGmY;vzj+~EJ#LLRwdU+i( zNmw*-j53Cy@>Qd6W7ADKvlh$;Uf!4F3R1RdSM37G%ztmzJoy3YP*a>20h%l-O=2+OQ>#k zqM{j{&eLibDG_ABn#hf|$Uo%cK{b%y*-sFpsfV9KjU>)^ zjM**IQT>tg(-Y!8vesN_s$1XO^u;2u?2EG*3T~7gwTqKLVa%d;@dHuLpz_Qb##dJU zL%b(0F8yGJdW&cE?|dcK1Vemi5{~;6FQwhTaBSL#L&tIpKPqanYuQSJ3w2~+>cOd0 z+;e@)Oa6rDf9+5HukFhJ|BBsPEubHMUin|>U(ul?y*;;8Q+(#U&s>6dPHVVq zvRhyE{2EX%`ZnkJv9APAL*n^6J2S`nJbYN$ifys42?=#OFgc~ELn(%;O69uzmb?yZ znSZ>v5i#a?>ONl;qRL0}4O{^1I!$->4PM?Qon;St9lrBlGG8{%o<|!&Gd*7QCx5NC zpU!Z6&ilXqmpil?7?v0|Tii!d^>K1tj&|4lRo3Ov$IXW$oAPsNs2(^tG%w~f;4*eC zD`whX!Q(BRHH5ZAmtS)CFS>VV-Fag)zf$T07~68<$q*{;V?23!zj^IFzE!;=Lmt*= zM9quWwl%po0$zq`#&Us)HR1BDenmTQ|L@>t72tx;H*m`8p=>OJPXj2UQmxYRcwSXV zNqXIM_8GY*pWO2}V(V3r(ahggRwH<$2nk(>`NxQKGz=}K=bCb&vxtt`|=)K{9tHK`}fwj^Kk&P=!rM?Bxh z=E|K7S%kRoNiy*lU!FCQoX*E?S;-FP2c&VsvP%td%M9O@P}Fi%Clg4NN>#W3v!Vc9 zfT0M#jiq2l)qH)V#r!r^@w>zUbwr%voI?dQ54A8rMI-yq;!UZn`{r!(yRk!OQD;)& zvSV8p<&$I9!iI5zuj)g*^b`Wt6jBQ-?;T)LV+vAZOF~#uVHNI|j;Qrj+8n2R7@-?+fj=A&eEO)JH z;gdkIzdHQ?8+2g#KcE9;4|@|r26Z_@OA{mKZ}33L#nAb`s{RXv_^yyOu=zHSkTJ41 zHf8)St63O-Lk%p9?BDrsqINTLXF>qSe;WQ9cKF|*!*{Kag|m~qiKDQcjlG?%iLEms z$9JW$owc2#lD&b^_sAk9t`pa>zOjq{!8q7iI641cNQM?n z3}H)jrtkLq2!9hDOYo$rg7Kfc0v^L3MsdV@`oC4y)A7DuAI_He-wDXO!F98`{l4y| zx-R&u@ZhQYuV>&iIe9-g*hPw zrXIXmYxk=AEzL)WmyZ=W4cxUWq)c3dn;8Wl4I<&+HXsM{g5~2Gn*++t1at0-p%$C% zYKm`|3X%@u7L}d&R%sQQRbY=o!pKeSs=HQwP_NUw1^JUgz?>KZc*aj=r_;>;s&e5-QYVg-6G=)De^}5U)(3?~fJT+t8$T{2X zV&%%bGRya1+C7@g?ZV9Ny!uCx{5;Ov$@NWEt!DaZWuwOWG+fFSSt?r9>UhNK%4dam zeQK_v+XlSY%d0jR=(ZR>X(z^k?IV<3LnSvJsdFw9P7k^#%$}O%YcTB=O_{z=^It7> z=SxGDav&buGxa>O(Nleyl~&m#SYjVqp5-er?IukkTjLSFZ{)WND0L#NcXK{q5&Kv& zy?gV|JmV*=hb=i3*QO^mrWDur8@0Q<6OOA9S0$5^)u3Hww`Qe;9^w>t9ISkZPGO#l zP5poCe&cr4fM>UAO}o|PBTBt`FU8OzMc+xRPxVBu^T^UcAUah@d4sQc);+_^8osjc zdITS|WOdKE!rh{)J}pP^6}NIx#C~x~RJfgfvqsQAYI|g2Z}z$K$!@DzS#sWt%WX@v zL3jw4dA^h8tkqC6CqA`|EO3g~MwWgX=7d?e{9Ky)kFDliEt~8%%(pE!jptxVM^i1a zc<^0EgkeI(@bKPzrbnvklKsay_~u;wdt-Xolj-AgmuA9%x?NQm4Kt>yrTCmjJ zby6MLi+iSKBmUqUZyQeRvC6%<#?83w_GDY(u1qejt7Lf|r|P{Az=pKRoF2b;@W?<@ zr|+R|!(F5*Zzw&Dl{bLK2UqQ0 z?k2(Us3wyIXXNyX1v{jM<%N@tJm6KxvxB(}W1<`N=>$@3bV|nV-=mvNbp?GE;`|3sX(!S+{yHGl?eh?=snClvc{SATfApLH>&Q#4iqk0u zENyHBS=gOIb>9({`0JCN@es$rsS>yU)yBF->JuBiumxTBiLHYcf!NvK3S3+fka6pB zV}eD`FQ}*hT`OEC^Rvf)F`_YlE-nCBHw&j%AWWa(YW|h&Xh%ZP)rN#i)vAfd)#{0G zlln4sfi##!kVF|5=VW|!l>SX3v56Mv-OYI=Q8wSb<15&_*)!|xy`DaUa)n;%vEIl&?(AJd4(JF z{7?jcDs=c{;d$Oznv8KtwfhhZp2_o`Wa*nFr;VEjZ0&-O8f~}dtf|atE_mRyj@n}} zs@)lHDqBCJ$|2PZ#a$z%DMyWhUfAz#ecHdv(S3lqfYiEF%!kVEiXMr4l@p!JKrL$( zYM=axFHzDAFKN?d6&zMXJY5uB`Q*P(>qHoLR{GKHYqIEn<*$pgNooFY%`dR`PLKzSy(a@WNjNV>a1c3x!! zkb%0UaQz8(*@t2XhfnFy8AY?IkT&O^PZY^Q%RSj%$oPxRLR6bNXC9jz7^rjd@ZKxA zqFwQ2i#hDD*aRco+gCS_FB+K9(YwZkXA)Nhh5 z_riF$(arRvaVANei05MT<7!ZU3hktf3*Y5Kfd6&!ja!VRls`^U?pY|EgOFgkJv}u| zPPI$9 z4r?GGu{#i>{3Nbvo7JbPfTK8!js7>~z#K=tEI z^gtu}tf@B#vTogm*yIoI!NDM_KfUg7K7_@;9h&j>7Cty^y(+K<9l5#8jTxlza0(6( zHl4W=yy2+iDPdFOQQr5<^t!bymG=_FczvtkmXy8E!fKr3gEY*-!eGewK*)>W{p6*r zD7=FUkAgfrXK_kbfzV*y5 zX-Jh>u^@Fe{m^67IPOhSfp7i0ACBTVKl0P&ycyp%H%RZyKbWkFa}K3Dim&4bZKM$5 z>vvv*_1C_G0>8A;Us=~!r10bIZXCx8_be;GEkz11d5EEwlULMb9`_g#;(~T%Ze0$) zT6!k5<#DS z+}5Vxj1~;lmLF}Nn3-qWdNN)RL74f^OV?|aSd+Yfv8vfWLs9S6&4ehztS^klC^iYcYICBNwsCZ*GXXcY5C zwqg6})iXhgqb!jm$F>sIZ@|BAzZTKCWvEVxKZN8J6)*X3!(lZDI&Cn}6W zKxawKqRj-a@v^z$t08JW2zto{BIQd1`k~i+)JIRvPA<7RU?Fr8WC@mQxPsPypE-$p z10FcjF;i*2JuesT2&Huakm33p_!U^|?E)lJWC4o^F0((8s;Bs8l3r;R3J>_v>!DNY zfdTd{Pjx-^dCOyPnsSDQ7cr2gbauEQFHFlSx zCGFS2VPH?~!JGE?Ko zKVzp#TRy%WUT(15Bm1WWe>@&f!5qQ5g3upM`gP2rtgw9*_KP3-Dr0dN%_;79;H4ALscUob9QGlc=(cR;mA0fiYs-~=WSqIp4PwU3u$CqGXC8}f{C;w+n{Y(`C;kyEon$>_?)5ro!TKEdNPV#Pf88x8 z_oX)oT_wVjwwD=;EDW2ZpxsR#ynT@-%)4^R$oG!vWr^?Ri=dkZ+)xJDAS)hpsvEk8fORf$t7z(_wzl6B* z$j0PF@={5;(CJe(*M{VY%+Y%sYa3wV^v=A(wAJQSRn*gm@nPsP8TQGS2_cc5-u^Q9 zQ1i_M6YQ^DrL6IY+R&pi${fUh%w%@*Dsp_29!z#jORZM8QsK0!?=Rz5D=sQ9hM<@e zsI$L}rK`*2=3Q&MxE4(Rj%j1}*WO6Lp;>|=#~aVBUd)D^Gl1Ob)JP z&mWRclNUD@OoT+e15NsJDT;R>0JlxF`NTPKz#RC=Fv?9q(>gLFnS2#oZe-xJIm@dF z$YE%d4RdZ#<; z6`=Kz{jq|nI$vrZwWp=eT;y@NXnQkc_9O8G>0M1znZRTbMr$P6(XC?zk7aO?nZ(?y z=>#6w6^MM^c~|x1Idv7*tx7<$Up~6sj;2fr-UaEiIC`9o8}xNyT~#i)zrjxsJhS88 zsi=t8CiX|6w|=_z`>MUupjA^jg@jRmtR)K6waJ5umVEi$PT1oPUVi&{3+;oFE#K>H^t@fO>eLJJqZouF}x83Nzl)7bvZ?Kyvm3W zXzlu-r5kmHc_G8`bw+);Aw|46Wk;emiEfC*qa%IxO%DpYgW4_&c6InT@O_+B&XLi^ z-HEU0MZakkk?YTR{4!Q8|32Z`$8}d~&cor6v1eZc1U7lyV7FogdRNR@`PqQLtu$5V z4_=}yV~a^}pnQ)Ws?S2Gc@}CWYiq9xHG>cbs}a?qDaiHP%XVUmv5)9Gw8e;8Db~>o z<50v1B^ArB)tt8-W%ha)T}t%t3ig-v<#oPx9nTSt`9$X&T?U>f4)I!pv-e{Zy5b7o zxiP6b69q2qvU{P|5ex%5H~hDA@Um#ccSx@}B>NyHac_fY7PMtj7gOVdZ&b{IF1rtg zTif19pG%9Lx?)T)>BV8)d8&PhqzDSFeXooMq?Qs8kBB>DuyOtiQrwfa6jDeO*}D?j z@uJnh{)nt24!6w^q3Zq(4^YUspIWhzz|JE6aW=M!R8wzx`QY41#Pv_R;!h7mNJh;| zBGdKWmQQrV`SD;OxVkdd@%(xxz{(4R=22Y?!-tn53mNGNAMK8T{b$P<1D7*uZaVxk zrWI>2qljt_Q?&Yz_kJ=6@r`35W_F<|Zr6O7P>SekP2~?k!|znmiA{QBl0XcT3c`jSzhwGuTN#q`*O@=!cf{wI=oU^A1Xa__9EI>I>AP35s}2vj zqRoswgMQwS168#rGWIM!MM>F!BZ@|H%>vu1uN(!9tjik!|}w zBZf_9xIlW)_ExXdUG->8VVd(G5jw5~< zM(8D*!0${j4jC|~TeVWye0bb_H?H!Hj4`#f$TTjhh9lZMTm1+Um2oAyvnwN^PYbfohZs~!GS<1x9JB(m3{C%^Yb~}L-zekh-${A%)Z#R z>*zZxBpZGt6J0R%OE9){hgKib6CQAAAmS-w=q~E#{-5peR|+PK77}~y?$1aGoAe0A zZ7V0=O8T$(E{W93=y77TTmHBivd<#M7NXg}zCk;&XmIi!v%El;&r=4oAp8GMbULKx zT!0-z9ub1N$Lu|$%2jB-?RyHgD@*O0JdRIEkc~P1l{Vb_I`n7E@E3i3v?YCmT2IpN zxwCjKu53-)RC@fVAMJq=zd9OHf4lAcZhX`8u$o}|b~CmDSTp9%?Q_p8#Mh|K4$en! zn9HC?#U}iS4-R{gFx+nw{y+B1tXmXrc>#n=<(a4_iqS1Hh#)S$KRmKU<#j~nV1K6( zH}qcG1%g`M@(E#&Rkxz1a_BV$7@Fzt z$TQeNbqn~Pkjc(J6Pu8b=I(OI+7WYO{tKlyHj)Mjs^QdkoAzCpYb&2h{1X9Hz4)}j zjX-@LS^!)`F3S`PZWfhcvXNUI&txqIsFz+v{2?9`O*zOjkiVnymro=hrphj5)?3-9 zcfAU!gC$l!84E^kWeaIU__oZvMr{#jDn}!U9fX)LRfY5U8!{OTCFk*Ah+nN6GlzBi zk3*1xqV7;bRw2e4Uh|?d?@gjsW5y_A-l9otMiTvXx+ST+{5h5X3x>>6)HLDe5K>bK zuUf{fg5aNf>|EHOg*Ma?e z??=<=H=_0@?aJ@4!^N*Qd?9^s>|-k9)^d3G@Y{{8D_GN8(9(#ItcQuk!SM-J695`O zoD{ATAhKBO-J`jfa%rVyew_oRrgE&3eQXyp;m`l+6%2#`{5KzXD>&zM{B@ubi_5Hc zlHYu2xtqqnFtPE(b;eL(;=(fS4$~kOv=NiXD{NxW8;FZm1oO~|?6bHGn~colbpL8g`pnRShC@j; zQ#l8(B65QtT*Xp96F<0~(~yrkk?+;3PXJkfNe5OCA6zFj^a73c^b@W>LtIE!pBo!& zfNDz4L0Pa@Aa~)$S2o?RGlCXnci^}t_iWD<(uSHX^DPk}HQ|$YPfqq)CU<-uyK!Ay zNX->?nq-yPXZ~7rS=GLEbclE_bw!ZrIbGHZ-xmR-rO>fLKm>;Av_Mo5%ASsV zz+j`*fPK!p=>&)^%v9@9oQ$p$KLVporD2Grnbz?-Dcn8~UDqmgWi# zU}akKZsPXwAEy2xejbz#P`;7V`hJ3!zX;p)S%Dg0%w{A}w4QQh;aCcgFTK956JX6M zccc{J(G0fT$^T5b5`@lhteuDUdp8$hMhsRM`PUu@rhA;drfwad>UrASxFYI27-&=f z@Ged?7l;64XazW-vbCj&7D_}3js?l;+hsOT_&k&(#iYtXZ{rv+Gke0Vcsbo0OLpz39S3)D z4q@dSM8$Vs_)XdUQCs#%q9QK8v7Dt6zD+u=14ZGwv}U)(4qj34uX1~@MJMKt^0bY) z(^Umv$VTr!4qq!oQEM-bwO#u!SJ(f!uBu5{Qb^P&#k#IedQid2QRnNSRDKv)G7x z3DSja`B^p^!81(A3C~;T{1Y(k^#;^B?}SUEm@d?k2$P^{+p&iTep0wDmq@j)hv;+`0x79s?cnFq5km#QHE_Z z`Y_Ts@E@JTwZT&=YOGCDM@Q)P(IYERha+|9lHY~%T>OjG%t*(n9n+SpWbw&+zVQ4n z2r$bw?PBlYs5SQN_2`?|hxhYBcdq^F8LsD*xVMH9nE>@~FD_~OTC^ldpbK5@cC3gg z=k5e|9auiD@ut03g`Qhbaf`O=Z2XYgAdu(?7sLVaYn0fmD;k837d{dqWi4;wh zyuDwGvLVHxqW0j7CsX|IG!^Hq-Od4AS-laB9qArnuse)K<-;EbQ+4ZQf9?ULd*Ln9 zxgMIwMMTr5iS3J`Tuw)4aHUD8jkvOE)6#=gtJYF?{u?iOI-&t6z2(Ax)iJ<`|K2Tp zTP(x-y|987%lJpcqejM3jRx8{cv`Vju?FIWy^raIFGCt^0yd~sLT5t2&1>Y(GAzF zTY{idEqkB7V~Afp_1&%`31=diAO2Yk=ruI7`8VC zjRBTM_&G`#b}lr&Dgc|qj`4>XwjH-fw+!7m?V=-A&0N+7)UOtEA{nbm4*ofFiK*8| z%8i)%mHQyrDv~-80};5&@JM~T!~*Tygdic$saF-u9exfh9;0i~;+HjZ(i9JiJ<~aw z{^p%QE~1)s=&28U-#=*WWUuj>fY*CZs|q~JECq5zwlpn<679C#;mF4@z{+B-HUK>C zjzO_(jb%jcHgQ)1O8s8@eL5p*dQ{RDq^GlS{z!v7W3saq zBZHnV)(k7^mP0ak+-=x^db+|LZm;nq8MP)J>Ke%+Csrjme}_2yuh}Y|rs_nbmvVk~ z(}$rYOq_ZxU%OR@1pd!V*>C;cV|?yG z#iVpUV&@!IX~t%1a?GV>fd1R~zWvM_L}%~Zj?VO{uZy~_xeflX-C+(2ecc}tCKd!E@bnAbw1$44ykeM z1A5MGX|`^?s_a$RiluUIxoJix%Vlj{4<)S+64p+f{P#6@RPhXySg+dsk(otQ<2E;X z?gm!X)VXUm6hMyg7Iw6V96xtFrd(Q~V9LRB0naZP=|t{*-!GD5(ej0RWouT+j3(P9 zH}~$Z0OklhhbF1bHir24Zv_lh!(iD4Bqvy2Qty2B3m^`$>2*Z?48v&^FMhIwV@22+wn-UF(5T`H>Pj6~yp%UP`P z{NveI9mmhb3RQ^l_p+fAPP(x>-}lGM(I0Ms9NB*~MCF3#5(fTZWwqmq_Z{`b&IM!O z=t{hps}_eFshM$O$qgHH?d!u}df@4|1Hf)3i^*llNPUd^IN6zR)4$sOi%B9q*|}!g zjUR3`l%hBk#`=J`KR@pH$ds9B>|Scup=D5D>;B>^UrkscX}u5V*ZJRB(cR9TI|uxC z{=PXS?x%gobUU;-^}4G3?BlZk!-QTV^4W*mbs~3vjJNcfW6x}RH|M8gCVsfKO-A}4 zZe}6_GFksCaaRD5*P5KLwm$v3ig=E{Tn*Zxr|S;%H>K?@t^wvHw|=EFPW{;eOVT)h z$GIaPEr6N->F!d^Gt)J?q_tEuyFL#}_#iuSKAB#=!V0PMvvaWR3v=~Wyl<5Z=Pg?P zZaDDz^;?G(j9~#i@NqGzVZ+EdU_K2&Ab__rZn8|tw%fHE=k0+R=q1u9=)0VBH|Pjt zL@)fAap?JE&==@x09y1%VvMV$3E&B4t7HtXZnoK_xFb7K4-aWZ1T7aE`hL~{7euaj zsmj@*$4$0DO#xvI_(CNL>5@_RCj%W%-BR)EwZwgUM@QG8d0w;<*~&y{H`Op+ z15P^iudMCo%#PMOE1KW&iP%bdzJ*tV%Pvs#8botV?F#qX5bYAW^Hm9FpHcp+eefs_ zMAC|>URpAnVlUkJY<1F%BPvduH1LZtHA!zI z$0{S4u1Fw>?1)8zY{ER%{=^h2`y6R8_~+B>llJS9recz{`>C-?e*ZRzaV&z}!$`)( z$U5!PKTrXty<^v0WR$^L84Zh7A~sb3{<5I?HX}5}JV9b<1eNI`KW#UdC_@I|`szTGXhRRE{K{%+;XDxO2j#{2s7_6e( z12+UO>lDvWVOW0*%y2S0?fue`!%_b9p6@e2erU|4Z~!r9rw zXIjmJy+f1P`(MAmjrAPWMfv(>t@%r#qyoIWrQ_`#Zy!sWJ~C*t(1m^|+opH>cc zA`FNUu0ZS}idTs9Kdd-FsjSV9|CzXA?b*IWiYsi`Z^Xy0-F8`Ac(q#*5x77)Ag#>F z&ads#tshDJN^G`k1}IT0`C)A`LD^^xf~==Q(A_u1axnqPBj^^3qnU{#z!j-jw|$G; zLosm5JA5M>AoqXUEjOYz18mO?6AnaX|_%0ZxRVn};!^zVRp2=G(@S4)0yn z%=GifB4Coc%^r{!79(#NO}Q5}m7|{Af7w+}jG3)JWqp{5y5<6VA=Ux=HWA#x`cVy11Z6hpdW+dzU}f%YjWnyufuC4ipw#S1yj6 zx#ndC39Wo|Cae;)bh}Kr9TTcWOWiJ$cD}!LeZ(KBh`m66<+k=aar19s@UyD!~Pr&o!I~%W{bcHBK&BN3IH19Qe2jh(6_8WWk(RQTon|<_lhZmMvDE39t8r9AS>tMd#C>GhzySvZjgg#8c(nzwKFH}`?@`iUAIySy{;bq z=}WJTf1FpyMrjGoq$!X+&~G^sNb+u{t7>{7L`>k1Upl=f9xj%2Oi_0&#(YZ8WwI7{ z^1CmR!Q9c<090TK^7H9-et(iXn;hwM%bhw?F``P7>K2LRTl25$a z+v?^vtWT;y`wYVdT~>dAJHPY%f?wc@bi{=pVr{YQxqq?0P5 zcSpHdHqjsB4OfWyx`;$PjOsEXwT}Fj7vAO`M`s4oIi$k2;_=1s^7aM41?PEb^!;H)tZ(cvXNUJdNx1Fg6T3+42TcV_1-8 zq6O1cGReD?r5ci}ZoWQ9j5Rj9R(8lKb@=;(6dQ|z3M`C1EycY+S2ZQzbIGWJk@#x$ zjI@0vzp|1P!2PG&7K?3-+D$HnM_!N|a1$6{qwTM?DhK=ZMfpUVC|0h^KejYHoqeH?x}w)|L;^AQ`DMZ zfa(lD#a9VIA9i-#mFEOcHSB*){`-{6Dc9<|1pk8`#!N@<(uRab4nR;2WC%JXuDk+U z(v4)dAlWb7vb?9WeMLTuiaB-8Y;(DM*c;dzHV<`=4@}5DnzpQt0*;=MTT;}FQG&d2 z%k*@KG~PsI8(3g^yM6&p|?;dfLQHMauM);&&xY`JacpAJ!iJ*sI&f4l^T3 z&^l&^Lain57B3U5N8p~CgN^MDo^gfIj}yS1kf6*7T+~r(Ya25yx@zpJb1b&Cmc)<$ z7WnLL-U19Lx9P`Bc|?g@7Jl>kkCUvxw9rqfPW;&MD%Oc@cwWxYPSt0SNMpEPm#hvy_mTI+2|*KZwh;r#+n zv^et?!Viv1UnY3H{*@B@lTy4$D)67AEP0X~>gHBbIxp1uu&SlTEhQI=1sIcYOJqAK z5e7j{^Oh?<93P%)2)I8`-k3ELQI3qfWs2X+Tv-ep66L$FfF3rTdxWgd1QC`trm)O} zm;gsTGx|H$)S^j+56Cr`hoDYh5_HaK5rR1nU+BjlkuivpV%4d)-I9vZD%;Jpi^Y75 z3DQb?>TuL{t1x!le!{subOt>)5MBBl5tkPx3g~YtUFb!&;RHYRAG0^sx#ZJKTgiIb?~~<5n7*QW)P@bi83Mk56>|@4NlsC z7+Hcqg1|@KhHxo^J76j)3TuB0@oos;_|b@w!6Rho@UhT61>~^ZEOQ&aBM)O}xmk}d z-<^lDF?2GhLWyHVtse&owPtQ{y}*g@#95k13$`a8@)?PK65JN8gjZl}3e{$ikV;Y< zQWjS4Cvsq%?%KJZwbV*2!%bN#|G15!V3wz-7LnaA(k7*j}% zx_Ej5{IMw2MI+qSbO|9R0m?gL z+{$Xg*K~bCO+3dQ8u8ZHsKV#W<1?la#GQ&4XNcJ@t`hgY={)F;fsA9w;o@=Hj-YJM zuIziZw1c@`(01C)ZUV|v{y0idgVi>xL@a^kKt~T)8KbgQXFEuO+NX}q?F+4BC61RZ zl}>fv4TtST7B)qV_*>?dEOFDOt1}LFYAZPK+&X;4E#E-s_RY)oGs7K$v!TZ{W)8=! zA18Qq9$Vyv!q7%GNEWy1d2I0rIweKlwlh%6CgMO6Js#fjYQF!hP{54%SUYg_Xr9(4;cDN$K zuFBn@#|ats&GqoMtVU{aZ_f(6^al`>9Y)b&<_arBlelO)P8P>gR%nk7^8jXd*BRLO zOZ+q-?+`@n&ry2XQ-t=bJP|!=#sdpB=^x<tuh1m$9J+(5$Lg;$3s zYLAb+&v-w}c`&4+V(QUY2nnphK5(9kMP&6`+#n!bU7rX*5CclO^=po8 zSWmxHUL+fBp509>Q|zC?3B3s%wRK(3Nf4wJI0FT-icC{)?WJ_xgi((3t{HEFY&C{L zHnGe>q`1kt$P1gg>1MWNvZIJhdZnFxm)o^Wu9QP=&;Q5E)h~z(E=vhV$?=e~MmuOP zO6auk9No^z;pWcQQ=ZTA5i_LZwR62nj*0X@5 zRm*CYxMzfYgy9k!%JcGcx&_bha%GaBjTZRRmiqo{nm)tP$TUC=N%HyUc22m{>S`%M1w7OWw`joFk!hD z%q>gEXaPRzKzx20`g&(wwG}cOW=+nPmp%v@JsZ{f?%6meRLRB~J;2B%LC-i#MC6zg z_7McqR^QRuN1wIRSc@He42{AjLlceT+qAQz-rc15?jF*D;cfp7D6RMh;Sv}MmccR3 zbCaCO7MyNw2B>^C)<59oa}Yi>(rmskPXKp=L@KX}W%O9(p%cB97xE57&G{+9KXX4F zoKCkQd1>UM+nJm9>Kj5G9gMAzCkz}h(-XK4E1tzrVS(@QGNSlu`LhpCy;_4};%#~b z7{-{Fd|BYz_9|c7!j7FfcF-6fB>Ce7JKoYG~UmWZ=XfUM~G z@|whM5>`e{p?#2k7<##Hyt67~5m#vg zXm-O=1q3~e8jZL2r8N~Vz%~AooF%Hc(XbC1jk6zAVyCUpQS98yE{S`V?>aC-&dx3i ze43l{7rGchLeJP%Djiu6LbTyNckrzOX{_xW99QhMVaW=DMxe%4PzHX^|M4L6=HyhnmG6)Hc zIS<0NJ1!%p=eXX%BU)jhoC-oDkc3npK|IvX0cj6joldG2zILa?covSm1Tjv?^lPF- zHU8pxf*rS-gPyhNtr?|C2@7l= zIl4a2pjP}c;K>@^#0KVlKq>zOJ9nWWCp6@ERKDrZM$aw_b|dsZtB21mFYAYLP3o#= z&pl$wtZ4UVN(AZrQK%+vkgwdP*t{X9b|f51d(#WQB!CONvQLpOl_`F&49$oq7(39t zR2c>3B&H*67*UP`&_N(7$s%YYyvCmH>2!Y;eQ81RvH`o50GKq3@Nj%$Up0uBaT4KZ z6Xv$}6myu^!A&peD)9K*Uy)WC2TZ@RWTGeVh92+}<|9;~3Fg0itH}_6?+Y8@9Tx0P z=+t6Ci9R_xs7VM z4?@zy{M)XIMRd3Eh=@-AHHj+%;Kjdk2~n|}QN?0sVKd|PMDe15#^{=_L*TRX2;MS> zJ$ud^b+wChyqpX}BFJ46$lp@Kw-3ZUrI8~hsvN@RxIU@eNW5zYxrqN<7(1N{_=#q; z>RQ=EuMN3NRzPmoE?d z(yRC38_7>%JxRy?e#EErw1j*3Y^o*9sBD+g+&VEXZ3GO*J9V}f9e#J+j^0 zBgSyAN8WuqPnNa)rLx^ker<F}-Ma6CHfheUsgHu6p=H||(cXA%= zY4h;N&5S%q-_^P=9WE}d@+4T)`4Q^*xkGVWV@tjCYPS=BFHU}5SeN)=LB4_-oFi?S z&c3S(CI0Gv-;P4}ncGtf6L`;_Q&3y36yb)V-m0^kMiu(q`>e@!A;X@7sh#fw<(;7r zT%|SBFd(m%?vpO`2Im*Ue;E-$!iF=dRu(STQ*HA7#?}Nxm4_XDnBx#8tcVL44qfDi z+W0WKxU)#=WXo?iZy^x}-S9P|;t6W|0>8F=_?UL$EGoMyG~N`J+{Hb&uRes^I_^fc z5yC=om97#4p3!0uZkpqS1ATC7n;TA@?I&Jp?icixNnX9{q5qQqnr0K`8nB1`!*UKG zn^0J3zElN)8prl_4dcrt>0ScKHnZGOIialsov#QJTKilo1M=`-E(1qWoamYwcAY%N zj6_@weF4&*l1ThN4Z34G2?fnLfFR?x=i zcH`Ye%|?E`St)&<*7&QWzGg}GK*1<7)smL1pO=hGFE=FvzTf*YAbSm-8%fJnbek%6 z3NpEj(k$s;H8~A}g&->JROlJr$A1YSQN*sI8Dn^U?onGis}6xVk<1c!EtCp1_cQHU zhj&NKNJ=wU^`xcz*@U+glu|-jWRCMYN4>+q^OV_-e1amBz(e$v9UGCf-J3WTQ{sE# z@U@&xHeqLaI!&(mB0p^FiiU$Qn$UI;1r0i?mKjYvH)|%q>1&E`xrDfkZk1HUAc&{3 zM;Mt2!`~;uOkygLANj1-|5SCo3@BQI&v~pm^wTk7rRz0rJKQT~^N*px9a($!s6uf} zvEh-y(UCEt5OtL9EEE(k(k=#)DDY)ZQP|KvFM-;>a!Q0a!0?I}x6Q_I;$h2?E>8+M z-OH!0F+a^*h1f(C-(-jC88fB+&Bt(%W7Z{bptjPOw^VgZA%XC56lNv`tfJc_)BcTkf{d?_(b^}Vs@p!BhhU^^0U2|20 zE&^C@M+>%OFPpI*MfvbvN=>Bog~Q%jqj)I2NCVSrUx3EIv=b~-30niRH2g8NYvVIg zS#{(o`@+(LKOUFLa zZYJL>e(M&9A315^=zyIY-tw&AX_cwdDJpRDt;kZipbpvkosg6rQbw|gHQO0HuG|N3DD+kKvgzStrt<)zs*&B>q4{nC$&drgsK!+}#V$Oi=Nk9678*+Fpxbr)UI){~yvDD#_o2T3m; z?RmG&i~b1W#$n9*)EZ~r1QO{$lKYz^%S|QoL~$na+uS3U+zy`R1)TTJ^k`v}mhX~h zxq8B)zur)b+&MkhYgolLp_NQPqhbTeGmHN?T?`m7tvmQ?xg#x@N5Vk;DN2aJ%59(( znz+nw*!-^I4f$aQ^N8PP7&`H*B6+G-$}WntiTVe^*IRw_I;)x^sWk|%3~^uklHWpb z+zGh%xV8VIuoWxvNfvVJ1W=fTc{YdV9MA>X>CT~KgOdY&-KIf+c4eUlwfu+u z{qe;?sh0^*oGH)cw+-Qvb&5?C~tVt(Ji-isA_r?Av8 zU~}EhuNOGy_xv@ZVVYchF-Xcwjw}a>qM;j3(YV=6pMl>PLedTQFG~1E*Hx#R-P^S2 z5tWPl&{^nGZ*)wOsFDduEg86<_v|U;DOg

H^kNtXr){@VxhZl-O=SKoOGYu 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

AL@=AZX`9=gP=JSzPK2GFb@fF(cmL0 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

c>OQ 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

k$Sp(`I!vjd*fMfV*Pig?>XZwM)iR-nKU+z8 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

q*C26+` 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

$$UO;DgFSSRX2DZw8W()urs-SQcd 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 literal 0 HcmV?d00001 diff --git a/web_db/www/.tmp/public/filestorage/1fa167cd-f688-4ea0-a234-901059769e27.pdf b/web_db/www/.tmp/public/filestorage/1fa167cd-f688-4ea0-a234-901059769e27.pdf new file mode 100644 index 0000000000000000000000000000000000000000..158a8cd162c092c9dbec955fc2eb241776fbd7c4 GIT binary patch literal 755204 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 z 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

H^kNtXr){@VxhZl-O=SKoOGYu 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

AL@=AZX`9=gP=JSzPK2GFb@fF(cmL0 zNQEvH6)%5Ei%LV^BXITRP0?(T7dp7xe1$}R8x|}$p}%>{A1f)c$Ox4leaPsiDs|}0 zS|p=gTO^&;l>2a{qz^~f4f2|)M^+kW4B2)p5@2LWof5d>`cj`H;+VB*sTo5kPG{*_ zhlR%K!SKr|Y=pP!-%>jXAc@a2S^M?1*l_osfZn53)5KQ!JD}&-`J8;G*%>TlN+}2( zkiNRQ@6<*}A-g^M%A&@Hr;C^nrU67Cu%ZS(j<0Zz-MRn{%5}AAnv{x8aYEua=(lTS zm8hMEYS~&{1gcI4FzUZT;6Jna{Zd+I=tUWiZq}L!Rgve>l49l2Cla(r8J-e4CvOE1 zR84yyXu<@lDBzi!&3lciVAQ^e40!}jdr^|m{=%sF%UWUkjZ=WmsnKMAOp^=$o4@^Px9_~_kQf}gC~D0tR#?hk2_kFA zxy~%XrKQvKKfg;-S|rJ5f+1yS(qc{G?ZicGK4K69{ER0+d7gpIlKz5VQ-s2Qmj!x3bbZ{_Soe zAWd;9U=by#MaCmkqis*ZY)$__CymHHPo!$_I_LjPVcu&;a3woz8@;)9b$cvE_<+m@ zb(g2>5ju@Z|6j6$`*vPE3@X0!>9Ybhk+Sj8!)WP&f*-jG2D>N0mfBm$We#$5D^3&{ z<7_lJIoTvXBtbDnH7< z?)x?LfPUpD)tGs!UgI)*K-Nu>c0~cLmb_s!T({Us!OyVA7|Re1+BhVZvE z{}f_;_<&#IksK9`<3LPpxj(UAv9Vfk<3K_UlEQ@p&)S+U7_o^I3$};cqG&IzNUX9vv}KvKg;eHB%k>WKl1mG36{- zMi92mGojj}G$gkn1!w^adb}Tr(2c0Brjid6hu3RjGAXmzWwil(gjv5&T1zzeYO2}x zgd&U%YS5v5*66<^8TqQ>P#*lpM?C&PLkF$DCn}0F2)-t<6uz^xt&Lb(J&#V`1F9vg z!F>wL!lm7*`1L@jYAd9taCd2H2r>_1y!jn#n)%~iw#os8!5jIrDNqO35zE;)hdx0v z=5^yjbK?tJyDVB8heWm|S*`6n?S)0=Bn&^7gnMVj00Whcs1p5vuuHxM7;c%EEmDP%cKWTTc*25FrPDBQ1 z?%#nOn*}-1;Bs95vF;JmWh>0Sdg#Ne$O^&dDyIiG#g0@jsA*sa5KIyT&BqX;j=#xM zhq+oA?Ujh%I= z#miM5j^S%&$cz&W3m0daC*C*d(g@>sc}@9H-5%D(COYkt!#AeCKmYtg83e1qDc%?< zF{R6nvhxm;cRovjbi%3wnnO9*oLeRfWjB1g7Ux6Y4E3B~!6(27Pn(t;TK|zxy30_b z<=W}1lpmBj9v?TGuDC*BB0`VSV~|Dso_vsM^#AzF?~fA2)#R~zURD^XGH+IV?J!c& zs9%iZpEO)q5T|0hh8il89wVFT2Q#oSDOw=L0wB+bxF#DhXXgt@R>qE~=?l10Ykq~d zE4)A~yVxWC8Smpe_5KQT8r)#q0Rlga&XqY-4H~7HT)*J{ul5{|x|>v_p4bT9cg<9x zxwt|$<&h|DHp{9|49hWH${53BNjoUUC_H;eE`M6GPn&_%0ZEA<3|6-$6N!<6Giam? z5}$1-Qtrh+{AnmqGR5o5_KgH63`s#oQ?}}v1P&k7E5G4V>SB)TGJtsGo)0Z5b`{_y z?xQe7l<3Wde7Kg(yozIP|E7e*FJi+L;CG_!Os(xC>=F4z&A#`I;Ewv=x&!jJq`)uh zYJVr!-`Ade0K>aEKO+YWg>BuCZ<7ajpUM;bmkZw{l!r;Nb-^S( z?o~;EA|Y*#4N{t{8b4@`gSQIWI5f26&{<|+JP>HWHKRiQHOGg&P5$LQL)^E6e$CgNq7G+haAFukQ$!7f^@bybZhy&X0^G z!P|Yl=h{3NhRVD|UQj)DISS+Q6$oSZhP6)5kib*Y)tPG# zZdO`qv`Kogc%#!?nq-xtf}bO8u@5IN*V0ZA#!?i3lNal0@f+XE21)?B1WRiW1)9sv zhoy;(`}^uIT!oq2uOv>MrM%L>bjCc$4ysA1ZdSEvQFKRLq-qJMKE3$pksTyG)7QX;Yg$ z2YMa}uBjAf{ERM0W95B1nB$oz->1j)Yij+|S#>G$jn0=ke?i{W#b0J)>`N}x7knpA z8SyQt^qW(LW|@O7qntFSPit{zvREIO!?~YkIV4PxZA0S-*?GkAX;xaS&%m`Yd(JoZ z46&TLJFQMF@NAMX?{KHXC#YoYby23SRdTf;Ay-b&gZuo=7(jTL^NBDt6_5UGI{Fn! zW<+_jb}cj>mS*s;Ib9ewnm3EeBiQR*p8Lcwp2Dw2YBF(>9Tp5vPSAo>0?zaZyxUN! zX9l$zrZnbz>%Ys#Z0iYA?RzZrJ0ZzsKbuHElR2}B{`7aAG$rT#Vf_8$%8e;g2v`ar zJ!-#a(qXMETn?9Vx`Gq|`LblKPSX*9SUZfT)efjU6$f{$%dF@J(Eg>&8q8+BP>odZ z>}WKGa}b{f2D|y{xPE!QVH+Wf#xEwD!H3Mtvi7RsG|0ixv?uA)D>V7Mf;SL-89ewK z_(gaHem;lz$5S2f6ufe~k(Dd|VhP#w$aWJi7VZ##ZfH**!Zkuwh*M z_!_IlS6|$Mp`P}utX5FsWPxrg{|2d?z}1_5I}4HuB-c|fbWHRR^MQbQF?#}LjpjBS z*c#Bu{Ty_5rPt_cB(hvF#{eYHIEP0l9U-vS!dzk^P`0XAerlg!6Dt-^wszSUBOgi= zgl&NzfD5T1X0Uw@>z_KU8MIAS5QUw;>12BHkH_)U#!VOv7KTCzTdcW)otN=PA@l6t zQdKE^H7gid3;YPZt}&Cq0496ump|*;hm9<8W<+K){%cgXgGn}gvV0J0;o%zH5s50u zKnN5|HshgS&V?UL(=m90efmT9)z*nj2P`&m_|63*=5M+OQqyi=Nstjts~Yq@jN3j!>$`ngy3i zL!b)Rtg&Qa`$JAKLa(l&n6+b;IOpMP7-2CU2tvhgbL2_Qto&Hdg9wM2ycg4&om= zTX8s_Bg7d9*|fA=Dy65udC~y#f`1Q$>W^K1?8G{6Ncz@s^JB$OVTeaYF$H^YI#)!LR%PMyE@k`r{jtSE)rSwm*$Yq43^OC_B%s3Y-fUZMx`R+Ce3e1!f z14)I%b!-CO*2axR6yd(;%%2tx#TEN%!oTX}SNXG9#KLb>pj8y6jKzj+=#KbKRlshI zqf~Lyn$Ni-B^#aJMU*D3S!~Y)#tt~6gink4ctvL)0cbLAsIqI%im)*x=kHKE+iG#- zIJcG(hQ&fyZ{$>{HI-6v(v!VtC83LbAkS%h#qNE{I9RFf7c$^nK-F>d!OmLd5#Ffe zVdN*e#Q4)Nu)O+AVU@1eI4AXE6`QAP1s)Wa!BjDh>r;Ct=LJ0^9-| zH*@O0gvw96ELP0zb@w*% zNbO|r?$$`7+kOo}2EII1I^zQP$867vXd)SN+O+%=L+kqkM_s@QJ!~>OrR7R=Klg{s znn~XEZ5aB4+RxU*E2##tCC2uZW`aFy)ukjgIV>l686A zk7w@Mj{U?P#55bd@E?yap*QYupZug5>9tuE!~Hf$UI#NJc}q!{dYH;&3m7Wz(fjji z<@VPjyaaqxZa3iFch%*FRlS2fZsyWo$e=bFYYlb-z$scO;~G#9yk}z>MCYd}23zAY z!Y+`T_VU>C>k_|vXGTJ>4HaWuDiNFRVzgPf8UqySjgaVL+mkkX_Dl?^>GO*`sQV23J5<9`4QfTy%_%yU<35Y*Rt!K9ET$wDW?fmh9Bp6h~f?p*a9T#|g z)7pw&>(MEU>8)8(@gRypG7sdjUvZ@QtxZc`*%)EvptQ!NydxQxzBZQ!VuJ6HdL77= z_r|ltCdpoWnv;BSAkceP&8V${Gn*)Q+%E@9vbN#z*HNsfMB@_idvH*!A%9U@zr_ zW>tR?@hLL>1(m3|7r`R$R^Lix%?y7!Bf7-v&`Ms?o)$Za*PRo6NFsj@|jLtqr!;>d2%27zdBBS&&fu9cSU$brnDtdVbW)g>ARM6>zbTz6y557 z+l*#x8MuTpqt%m28<2AYX$_|O}D{@4jG1?4a83~B+iO>8kvS&t5%(eL+{jIGG*TQ5Y#@BdB0ci+2t=>t^ zQWTd~iZ0}l+a`7om!WYj&_J&02^`_Vvrf7Z4E^%*!B_|K|@WT@#3T$0J>?!fCr6>y~< zKzag`#*a#TGOQfI62CW(YZD$+a=H`O54A1>DW7bjx|1$JmeOmzSr`HV)3)!6k;G0E z;DX`LsfFlk#kWXPJ!4!W6w`#@9-8+jGdW0P`Cs%J6orl1Bp@tr$;88R)dWL=Y zZ1LSrBP#Yl7FLJ?bn(9w$d`Q}3f!BEU&)8nt~<({#`NKz92iB!k0|D@P%x{<)l0<9B-bep9_WXG5;E-2LFDLQ=2W8KJUjVokGj?AT`ON zFtf4n-J(EU!E&mBb>Xo;*XZ=f49@1R$N6EemAR4u$)}too`<0k>Q^F_g52x<`T$55 z2o0YPZxRNacV7hUKI5`7)sTPPHl$Jg(@5=^;m|zCHgN_oWWDmq^J0eEM*CY*cHzb;tMo z2ph16eSh>n@#0G-|H^V4QZ=fnl`3TR5bj^FNwATqyRe>h`*4qW?#je&vsz_n5zK|4 z=oCVf6NUOtp-q+szj!fMJJGd=d=d~G^W|`9a(5?J)#m9bXZ8z#+9)coyFT@;^4W-9 zHPmDVQYI3AA3c#as&mFO10 z+56hz?HL{E5WlbWi29;ap5xCR+@7Q0MJffu0kyl+#o*n1txQjycC}2PUa4hl7mynV z?ym>IZ+f?ExpvioFX+l#XMT-90t?;BNK~qcp8q=f0n)AuQkN8Ie2Eocxf5gJ<(@dz zyuSZb!PDw7ClL!Svz>d&I0alxl)7gtVd(v2u$N2aM?+}PZqJki*AM=vYp-%UHBB|@ z0tRQ2w{wLOJhn+&>ebaM<407wp3Iie9NKZapP#XX1pecnv&^bY^avY>$Vw8|l``;>YwRp@~Xl2?V_xs|w@lsbiYn2$Rzja1h@H9lBnR@@K-E7>M6 zXWQOT(q*@!efmyS&e`---h1(VdusY5aiarUE0A8=Fa_Nm@rsu7Y8WqIWuPPhmS0hX zg)PlxKD@4J)||J+dz!!9P*^xkM?uN9U0pa_mUhjJZc(Y&1(1qoaUc#3F*H4D&GPyR z$^3cw8%Dr87&yO#l7&QT+d-V(-_6>}Q*3+>Px z%WSPd_79vdxbo>rM&c*sTRM*AsVO22X%GJW|1$o};v6Xd2B3G8KQXb=ZRqoEZP#Rj z#dTa!Xt%k){McxVs=qIn938dBLica3iv=4X?}|%R)b-mp#OKm9C@*W}3@+!)FvriI z+a`Tj;93$auOZlCmvu0bTz1y5$XlEtCin5HD?gH%I!kQU0nS1>)&9+WAJat@S6mf3 zI;}B^orxq*>4}lpDqWwBSU2F>fst!D($MrY07c!doHU`OUqAb--Re9 z?S0O|2-F7@=vS^iC=*-&qgm3=?7JG~H*Hlc(|+XGj4bgbbb%esXQN!cMQA)TFQ9_` zsl?IbhCETr5+a8{RA#7a)6@S4%BPVEQsQpE(~?}loXn+`AXZl68x9%JMG|`a`U;YH z7^WP;fevT2XuIC!kG9hM~qF<&#E`)lScwR=%pEY8ULUufLV z8!IedOZ%qSvJJlEEXd|JSVXOXcSg!>XgrFwH)5o3g%?@=d41*N@ z<|VcK+B7_?ogE|%W@hbg9qF~~!eK)x!DoH3SezIAfJ1VOL= z<9`?OR&Ok)Fa^7x7rz=?r(|dv3^b=Vv+IoE~^`P^ktSZA*scW~EYOmwTVA#(FrG7Lo zNc%*P%Y5W7Owbd$Uv+egCFOgBCx9VQ*{^4$vErNeO<12ouZtdWNYL-PuTrsHs$wjX znQC9z8JgRkQFwTn#fXQ8OQ%CcVB3{XUV715^{`6)%}wx1q9^37AbdtlRnKD>Rs0N} z(!R^_pl-v&XsYnC*-;^>uCh6ihwE3%_$HD*P06|rhkm5{4WtOd0}1{p?d6*L1rIFs z>FRj{xW)bNEdqf|fV>mliq-@27iGSG@5nlHlNbQ=3Z5(}mf7S9zMGG6U2{TL;W+`5 z?_8iS8oc_(7`4G@CCTnMj8+&T^w7fd!kq}eq zOB6D$URCep)n(2fkbq+K3mFAUVoMEyYlu!w$NcNN*s{-oua>N%K^%xdn-VtpRqg`{ zW$D0X5=;o>5aeOv2GlIQ!48T-ExY2yKdJS{1AeV1{zpx@ZJCV7Uu`q&Ly>f>e zJ>7ag6?gz90dPB*cbphGofmBvCe)o0Y1$f1(_tuVXQ1}R{l&;!Ace>NlBG~4c6ek# zjR`ra;$~z9lCn)?5_t2SxF#=A4UMsw08KSaPiWI&29BFM5@l}DCxJUilu${C;8aj0 z?LU0vuFal2jUKdKCKov@590QXh849IVXTz72i%%uyzm5)_@P zgByS*<^=5tdcb`ogNVFb^<9g@#tw5rp)phvjl|Zvh%eS42b*n&nJOEAOR7-caSZ?8 zYVDm|4H1JB4At}H7O{c)z~uDCDVCcBx9PVWJ`Dw=tB_*2W_eO34!>9ak+l))|=5P$u^Gf z!PfozYN^ge6HlF?UHeoTZN}lb3W9Pl-QUF~QlxKD$d4WvAPDmRaN>fCo%X-So|&+r zMIg|dnWRl$_!JaIpOnX9ZJ3Akj>kz7IN-qZl#T&!@SHpaQVvY zmVC&tzbdDBOC3jzlAWc^wOl5IFVR@vG)Bx=d;`qf`B*qccE|Yn9WCNhI=8k~^>-Y` z+}>{BeBm_A9LfvazCl2+Cf$@%;96ftY=DCw&gA4oC~cSaaZcsf$9D588bo>$%Qd-K%f&}=Ovhr9V*&5P;evn0LtG!|E z64E{Uwn)L*E~j{!pgvr{(`vNN-&}S_FVLUoCi_Cr0m+!g-rW)4{`vMa1+;r!;+9Tw z-Qcw8@!^Nod8DS->knGXygE|)m}!WJ(;fZeOjkVYpCVG9bA%pE29l?QT=Eb9PUiOU zO^SfHUr(CTKbPJwCG;U&8kaYnOe7CC*#K3GYi+);?7vZSEr4vxK02eeUA#Urq<4Wn zYi%)4Akv9tONbsVw4??$)%b&1py@yw09WI7{WtVp1&AH^Mh1K)1z1Du&vMt9-i%$j zr)jg~yx>uLP1K)%J5qG z*e;{a+GzUxpl{lfk#YN7$cVU|Dw{U?KrRYUsVs5u0s?r2NPap$3K8G)-6DeSv!sn_ zhyGUe&Sp~(c({KGt8jCDHw+ApxI!md5bk=lXy9t{7}Fh7;a)VIPC5OtoiPg0?S=Q> zFrJuuWZt303kg=AV>uTZz(5X3;Wou``3CP$P(0>mZ_e9yE=cpHdrppNMs(a6ZK3khzK3kmhyk;7hN8=u@NdwR=AzFFz z^{{Lb`=^JJb^>I4oRNww#x%9|f!OzN1)}1|tS6x$JFP&;O2+QgH@LUpL*<2BSy&Pa zie)2w8n_tdjSqp7hXTEgj{4(8G++OBoB%^UxV|iU`6PDQV>mVUrxgkAqCNP? zi>}OQ7f!XNdFIj~z+kc)IPN6l^o}7CRxo7ANJwb_nE;S{1N`YIgo&=U71xDN?DTpe zPCk`<+=v8|W~;VS&)Ei@*x#m}kjj4m2|)J0j&P%~*uXG3*<89HFwV0*J8Cdvgge-W za_$PWkM%|_Tf1eiKZL^hr04zCzNd7O(1QyPn?~9O-TA>nYwN+sA{Zbz>5GjD{La{s z`VNrn{O(@=NZC_0g)}M?3o63n7a3>LC^8v3-k!N3&AKaxLNMnJUa1S}ED13Bk3_fq zU#;4|HVRe@zI5Z1=Q($8Eg>A;5qFz(={XJbdP3O}j{<${uSoWxItdO`>;mQ?y+5G4 zLRb0|ZAH~|RD((4ok+KqKR+o?vX(S2L+Hw=xQ>mV(%&|c`tMpn7wo|~4NAR+-tH}K zbYfnN5Pbtb{NUy7|6LL{*49!;b=Jo9BE;mqN5>}2*LucPxL zo53m3N&TjL4!VPPL4Q|d{{pp0#eWtlXCPETd`FHm^GcBgyw9!95c@1*>nE9<0lngdD{ZdL!k_Q*}1aIfwey)5tx4YD!Mu(;6atZd6vYT9kr(i)ne z>d=vJ2H2RLqOfs`vpQ6%2@Hw956+Y9^9ei9)V)gor|Y|1%|M1F6sYtQ->f_L>}kh~ zCQXEj*}1Enl%IN1hwYqFTdm-2cL*GAx@~5SMt1wZb))y-doK1I+^S$EDL*g@QEUjy zl$EWKi3JE+6T-aPhklPB8y%*yyu`o6rjXf1Mu;gBl4Z=>c$28k_wzkn&W!gQa+9l| z&Q?k@)+7hc4GM~TGQ)5Wo}n?0zqU;JPV@}ll5kigCsMmXPYMCJo7qE!c}m16K?Zb9 z$!Q1a$Q@2|#%lA+x&syLZoL z^v@}1{UR#BfQ9I`P8E?9r>k-?9*%^6OUYr4O9qWM_F01pNDBuRD4gwqoR( zX%YDU)48Qc%iRq1&=L9cmqI$spg?IyBq%hu`DWWJmV-sB7hQ%TJ^*`#dB+2}4qFrl zkJZ%GNdvEfn~@r6jv{ii&nqtpm^_2|gf1FTnL1hi@^|x38tm2P*nhRyy=`>S?i{gw z?^NS@LhNQSGo!AGA?v&H-Ql5sPt_B<)j^1aTd8-lbnvGi8;OQXPLlA5PHv zR$n1(=Dp6%=BB=QXh7N3faV9;t+bP}sV~Z#BVs_&?8cx$AlIs0ob5gy-ah|*RC7~< z&|Z;0I$tP1j)67LzF^gJ%ccc${Iwk|RJ+kUOQ!BHm#i zp~aCe_uw+~T^Y~`OeGQl?)p*fBH*qg8lAxn>wD5F1yzQscfA#_VMaX3<_+t*_> z>K^Phyob#`$Q>rOrjQ8~SuNL5i1Nm{VM{)Q#}#gQsT{{G&9Xb}0zeMYT8P#T zfv>EJ$P>5qA~T8}8OYlZz9uX)9>kgPD_w|#`w@VY$?b3{s9IJqqQ8O?Ms{{RthS0E z4Ndc(pmqS#h!(((J@6={-d@5j`=#;hbQ!~SN4?8hheMwB9RhHKm*vPwciqoOCNh48 z>oGY&P7MXU<-X>ve11mFqj~D>bhMF*=&RF3NawjP%5WRjfqz4b*T)0t;bt=$u0@K( zuFNVOTRidm1d$878|wdB8Aw0uknkHE1JO^x8BrxEMC!N;Tq1v?ZlvY6y%i5`P82Us za5_P7!%*Yt(xqS{WN1^9-(VIKppB(v-P;uG!o5ZyEIyUv|0E_OQ=AB(U0F=SvB4|;TDWl~LC0PA_CghoFipYx z*sryq1#yBch~7kkTDmDX!l+7^A4`pA5}>^FeEyI9x^*@(XRh6RC0Hx&C;Rqe*&D}@ zz{oAD3`+a1y@GI~ecdQY1z>Gvf+50UBWsuy(zzYMc@0ksf9Q*4Qk?@7bx2r*8j_IX z=N#Dc8Wt?txW8GMX~TW^zI94{sS_6{?Ev30IadTe8gxZM<27g7QDlu5u29DsDOmvS zPBhr}>{h*(YGP2az3xE0RsPe25At134Jc>pjZ~wn;WqpfA-;|P?o4V(ed{gJnuD3h z$MGpCr<~vrY)yuO1zO2bR~>1(7r-wIS}le1zO8iJ*M;!zQ%f^+aLJiN%U}1OAHN3z?c2l z^HJpUhFi0hHH)xPqCAogpJu)~0+6*G0u3>Yxpa_XgPCtGSVn`#_@TNDx9SZ;xRS92 z{Db;RfgCuiLJF;ij1({^QJ`@~XrvS~4?20lj8g6DpnH4kfA~n<_s(9dT9Wf-SuMj( zB~Z|Eq?lz#t0OGhC?jwDyv0nEH^|GzR@?!1X&STPE%vOOMA~GTCJ8)T_A#f>B|TP< zH6XsCK~YtZGRKCCkR#j@*BDFJybB`%ukV5d@gXbBwI>KUx&q8GeR4u&YYij)?@NF! z&+#n$-QI<2&ItDFTJTK!2pLzy_@#Lb;i+sBb$~S_E6I#&bFgKdV?A+P(FAdPvZSk; z<{%@`W}_i_mqfcB%7qo`O0Agv9Gm1P#V_QJ;;CzB^qFcELEC`OA~Z5jk09MG%&tuL zU@&;>tqcfqT@r~MCyOiq$g5J3oc|nNvpk4$d8MqazP5%gX{ahek~>y=Wso;wJnvwi zPzZ5@@*lR<7(SxHwhA^*t@u=a8Zd;mlHMISb?E}TQ0`-JB0y$;&;D?1qX@hD+o?@r z9kDB6%O)o^KUE8bL8uG9Uu& zLR(;V%1Mg+Ll`4{DiW#JP7?v;r0c)f=1yOar1Ij3=tb*lP>Q|9|BPaZ17325qz-k+ z1Uch-+%SC~9(|w1xRYp(Zdvps>Lm`j+@BMaEtP3`4f$eEjjuWVHFm6J#Zat6QpTzY zdA5{%g0ovA!B$J)dFy`&e;@86tEhnX!1NZeQ0wCD`qD(=@4ms_4#J-mAF29gn5sFB z-SMV??2G%s^|cw07De5Hm(Cda=PS@JuA|LRwW+hxuoAW$O?!<7Ry82V`vB)CHaZ7MYvy4#~<*3ePpPR+7 zOJ%iq-Coz+i)>O6VehVpS>RQ&DT-L5zorz%m}R-X{G|k#N{F2MjC?d(t~Tl5mY8<0 z+r7&@NoumHBUVEZ+ONnE&2Zk*Z38PlhHf}O?99^z_QI_g21J*fyMsew2}SO?jk(MTOA6ij^-LR(OPzVOF7SJ8OPzAHz@S?&|Fe^{52A>V&dfgWPFhy3^Lz1W$| z#!IBH2*w1x@4UJ->(sC(y8rM0H`z5WewRj)96I!k%+$}#RNzkq(@!}=L>*4!!{K>g zi!J2sJUYzJ|{u+upUsrx=KaC$^CR!nhiv_{g3Zd*_#{i7KJ+aFv za{?gDu8l=*X-~QDpyet7(ZxMN`5z_yiOedr8gVtss=da5p? z>?hs=ASMAsKI!JVe0P-=g2O_OI?kt&Ltc%TCI&ETz#mp5r!ntuhdbBmHoSSM z@fV#-6YAVyqs7ZqZLx59J*2A}!N~TX6XA* zL1~SIF0iL(PW_AKT6{p&H)p|AG>MWwSuKLOc;-7)nG7L-f_kuFUWoemTNWGMdllPbp5s(?E0$A+Fhi!T=OEGoQ+I4r(<7lxJG2 zu&O}hbngJ}>temDVXN0Ys2Q(_QVB>`Jx|1XZ@X+#EY>8gxvLvoH6q&g$1N869-< z>sWG{vRDn8UVg zzfWHsix9vRUzCuA3o4(H0i6FhppiD*;)u3PLWwn>7N3ALxUhKv1y=HgZvk3H_M>%|z? zl8PRLBTKbs=(!4i=WswZI}_WJ3!zy+>mcm0@ua9x0f$(Q@y)bMUFci%z=OF@N0!~? z8;*{aHv|#wZK_lgGl*{{5)#lgp^W!zW)!&^{oi_nBLcsJu|nSpjF5Zq8as=oW}Si` z=RaG;t|bsqyP%zHg1;@`T>lc1Fq8h(6Q}t0o>ZXzVSduo<~Rh=>B*@I4%EXgZwJs) zCk${Gkly~4 zNRPoh-P{zs7-8Vp#pjWv1}^m9B13K1gR3GmYzzUxP#iXlE&BL|2O`7eFABMA-2}ZXrqAeq&hC^>mO|Q~;ugn$#0x zbKEhYip8$j4mP5N^LHK)efFq>w_r4$l2)Rqw{e2KgheCK}tqoeUzB3Om}$$DZ9DDt9v2jpWuqKU#k0ITZ2Brp; z0B*ze0q|&HC=TWwZlS_Mxf>^PSqL0Dc1-1%F}DVl567@ zR^Y*go=x-zfNXtJkS;v5W!v^?+qP}necJxo-KTBawr$(CZQIuTbF1d*&Qo@FQmINR zN!3o)UMqLi8Q<}AeJ;scH+7#=qk)U18qWsGN5tv(r_6whXB?a}xBWgqTux@b!uNb~ zG3$9zIN3<*j@XBzA=)<(ROA7-kh*oOK{ZgOuFZjx-N3u2I@ASE$eIDVJ#?cq+LML* z?9|o#K8CJ+m5$cLm?Up?~PfP4y;*<}t zTkH#l6dVoCR8svcS`YDJD##5H3n^aW2rb9vACH#%%EV!4fCYi@L=9jl{0ZJPF0vt4 zvc#Yvr*iUDrBuf{ox%FCKJ!R8st9R7CvQ=vD8YrBW)Lgfa%hZ&%V1cfi&`fO9**3v zc`K+X*bw}8Hp|={5}_R4r$EE)C)ul#8KJsIWQi>Ey=QK7KD++pGg6*Ob`=2a#{+eMIRsvVT_D27#C1z2U05ZGfq(eC^r(0VLR*f_u8 zDdj7_Ek>m0JAGnbnU#j#}!n8v;Zvc z?iiG?&8>CVsiRk$pQtIm(0pcIny%WEG_1ht7_yeP(@+eRebvj*u8QJp1)0n!PVxckAzuoJ65 zdHWNDu{czr?&JOe?Ne;BjuRTP7DDFPIugO;M7oIQ-jRZ8?64Yc`Y32dYV?q3i~SKx zcr&aAbh*_|atxRf7UNW_}KX`1Fi&g z)60|%=^b(@u^^t{W_0O^$d^`#Yy`#h1Sqc>OeRdP6$-{IKH%G3N$!cIwaJRpnAUDHkOQ~g{448 z1k$F!x~ll47iYjVpI2mrjDtj^1VV+uLoWLSkkYBQt_|4snbTF=z2;UowdFLV;{Zvz zJD1YQidRy|W)$(xd;MK6&9wki-YthT*ePQrXo=#b>yr~N91d_A80j95Vr6vKq*5hX z{cetNJJdz%+q?PGLrrqQLM=0*HarYMjDYwke_7(ixj@{%XKo{l>$AN|r=G=um8T-K zATN+Gkfkv6WWOB89Eds|R#o2I`CBWmYqw2PQO6gm?81}-L-paS7(+b{`ylOg7WDqm z9dtQx*{-)2-qaHKwd8IEXDGk%*FnMlGQ7fo^1eU+wk@&@J=sm+ylf7wKXXIa z7MAHea#A0$$xj#HcN2hysMd}IbdnC5xtf_swQLiQG;9bx&+!)$S6);jW!~Ph7kl5` zcorGzMK@0fGI&OAqvVCV)Q!{p*RvE#rzN(Wsp7|BcaEd4Bu9`!j_R{Df#eK}G(8Lk zaXWfT9*N|Vm$35aP=m2OZ3$Hla_kj)+xBdW6_u-r8aB#aFPL<>l-7wwcZbQAO(p?C zL{06A*EtVzX+u;lih_udZn^IerjW2ASVVjki5kueCrWRrH2}U1vj1!bd{oUi&q<)Q zNgWxy&MW+3Zb&uwpPZYb z;wWuh7*DjVQmGe7Stjk>-JRR+`;BNh9N`8dmL#7N+s~$zRqlY{POFO#+9ge~oC%&G z?CzeFe^>Z%ufKs??FM2&NIa?IlK|(&Feok9r&NVQ5v$YP_@ziFNBPJa(1I$x6Ac5U!9mNDNVOw8r zbb*3ujbWk`u$av>r)dQm;Fbdc0llu{-9wxDo=5x!Y{S26CQyXC%7*T9yXaWAOsTv_ zI#3o;*RV9N@wcA!R_2^Hi@v_pv%-0)PVd5bgVzf3@bvo~9n%WR-$!|kAoQ{}Dnl&4OEn1TQfYlgMl7^b#12rbQ%Z@fa9>nut^T9iHm|RRLdT{6+;ZCk?08j=_A}AxFT&@4!lZzr&0}z5s zAQ{_EubKm+CAl$VCv%2dHC=h0$-ZcL-V64&wW|(6eycJkn`pkkl$rR6u`MI2$q`8Z z)B9q?iuK|gH+9k?k{WRs)RaGjgNp*=^&=_=iZ`>3Bc0Qu_AtED%BOO)4?`B(w?Zef z;WELfu(v(AoRD_AIE`^^73Z$Py)6COop1N6BpaE>%t+*#&)DKiaYFKJ{!j%WY@2ue z;~yLauJ%J{_|C&2O4c)b-U#zou`9nR3?7~$KAh+Lpu0p{m+F~3Wj#7M2h&w(c$Li& z`*Dx3R0N7I?dHmz@5*6i-PuvK3v(C&hxj`LW$4?TmdVY8e$ujuzQmM4m1SxC~JT z{y)s@Mq;b9LpKhYHZI>9_bPB(Z{#x=Jf z!sl@#rd7NeC9xdG#!5HBStW+0?CgneEX8ORCgPP;`R%oMqpxH>k4;S=H4nuJN(&=+1NL=JK6eZSTsXGR3X>IM0^OuDI z-|9r4xjDb-Qy!655S?I(aDMXIFN2R?mLxwsnEZy|R}Ss1Qxe#7Ws?oO#&)p{&8)ec znkMSK+lx%~LSHNYWUR^xN9T=rD@DBaAtHBEtb_yWPjH{B={;P zcw(y0PvZt{?4PEyTe&s^6)W&flQGhsc8o9 zk6By_`s5=#3cb=~X1VSjqRQMJAp8DX$%`;wdrOW7-+f81e5$0KA4aHxt);O$z@ouN z!&Jg!By7fv^M}UoVX0kgR5}8xa@m|`zrQC~aW1qxuYe&&fm>^&;B^AR764)yJojm| z@2Rt7s<8;>;*2@0)z>-o6S1e*)B_Ag+&OCl`U`X^_c>RSV%ZQXb&E)bqJ#YG4g*m> zEo4~b^Ot}s-WW)8=PLc^2UY&A0GAkP6Ci@J;#;}JFvD~_vWhqC@-TK>S(<($;ldAI%y$31+^;2at4WWM9?dn z2_^x0)3PW>a43ANtnxuE%ukb9RH&VKz{ls&mG6V3#il`Iq4pn}xFaTcNY!CB}uF1w~LD|DsN{|eoAz%cYg=J*L63;t8AN!cmYTE}i>2+u}Tc*_==)Cono{hjU9OPyXOJ;Pg5k6;-G;PtItpRXU5E z&e!a!5|DfpQXtg8_-e`iVYY1${%Fnj>iZHnMNbMAfjCR1noW&i~ z+s|^=@4;2?hWGR7D@qB>k{ZKGea4t<7E#ezR%eK=!;zKJ%T|AiGAgt#JOX~s zkeSvuaz5QR6m}9QL(0GlK;LhGeVw=t1Zmff`~$N1Zp6fxU102VZfL4!yK?c0k+AaMqO*;84M#RI>3qE8|D}-oV<|QJ`xX#2vgJduSU@f|6+IoM|2u@wR2;aQK=`%Tf z3Fs?RIoncf=|}(C;2ji)cp>o_yU7_x6X%oSzNMg6@PBK;J%UwJQn|D?$3zdEeq+~( ziwtOEMrTI;4AJF6CH*kNqFtJ28~R76?#p&1t(rS$w1t4U!?KAAEO0^l8--ut_#o4; zjqZ8fM~8w&u~7o36urD)d1nAnyyq*&6lICvCvjpA%ZudwcEeb_;!Yl8UzZY3wuhLK z`E}Q? zK)cc3{#RjngU96O8tFZ**A0?BaA5!Tr$NAH z1CRU77BxwxG^tfzB&*F+rfS?0cIE4rQ1J^=q99)w@RL@)b%>kv`W6Srhg!-}eUM(* z5L@0W6L4l1L=wkn-)rFCEA21x>{L(4(Mu~=E=aqat{jAWLA~A-2>H)?Mj(qViOkj@ zwzW(Xgjra5%>LCSTo=h1SbgZBx3A)#T@vS< z6?5Xatb(K#*Fn)O@aFfi7@|{nk_cbjP5d{{UXBVyqpsCb+2RxzT)<<~;oo&zDTHa! zJ8n6eShYFo;2cokXncAw_&kGdHV7%Q5Ka1M7K-ygS2p7f6Uso_{*%|I*t|CbtA2q*Znfhk5kMsOt{dxg2t0 zh^pq78kolL4ww=OzE0jO)~>3dTjvCn9m;gL{Hxa3Xe0iKDilRu_ z&bf@1rl*5xm?*C5PWjkQCk@^eXe0+ma&1CWSO6MefHpmF<^OOjC$UN8A<^UrmL(EY zOFIT^fdU)nhEnoXV^!Yj`(h-2+9p@H1!0TUa5pl<7(QH2F6=NcU2yC)*I;uq3KHg{ zqH?2WL2&-c{$p!~z{;;HOpc>6yq>E57+)8T?A_YZMb2NeB$9h?P}1c#>WzSR>8S}* zo%m@Mjjs@!lzw4}*!e0d$T>~eB;$yAlsHj&Lx9N7gyP47gJ5u$535U-+uJ|80bXDY zT|8hyktof(64S!OK4ppM8B#9dnfO%i@ROc`&;>4`z0vfn{)?Dl=Iia}oVD2Dcy(r` z#=dC5<7Djj(c9ecvK@vMdvy;CA3#0wj&lrAd@(4sLdBD?L7g=o1aG>pnbZ}B!AHec zi>SE?^+h4I_^brVpU#~@R=8gtbBO)WujrSMr8EcpIjydaktsG{#{8H;QNzbh!-~g; zp5Jm*d}ay;j&o4?+_0U)^y_3g{yYNNSh&{~>f>|!R2Y_CYryq<^ii5&VDNPBd4y=QXv3AFuicht zFcPfXdCRst)8E?X`7zgywVC$&vs=rEE(THwx^QeS`)@kzNmn6Ne_b zXrC7WMLqF4<;eFS>BfCbU;dhCZ!?O}BPn}y*$Td(Be(q#mqWS_WSJJ|qSvw_ z`Vu6s6dRv|>7n+y&JO?D5pj_dRb$@FPXqeOtm@$Xl@{Yst>TD37!iP9GhzaAbgZ~A z6(>=9+rwZC=NHm{rO2B*RFmG)tZ>^}*}XoQ?Yc-ywLNv_tPMq=dDFn})E2PBXem(4-DQ}&49nGESBcs$`tc@=K6 zbs^Rs9g~>SZy4sVil8H-7*0ZaJWRBF*=<56nn&l(>~IppNZpspJmh9eX_!!+ghi+J z+c|R|60)Uf2i&t5dN~yfQz}W7?5$ihRx#&huWndFF31LX<%?ii_O-5WOLeX~6x5YX z|0(5V$yqYId|Ehj=pL@Q*1c?(efZ3Ac~dN^_XReVwlDCz9R*U>;6`6jXCaYeI1sD9S>*6WNB#nf8F!<_~Zn|QpI^mQZVm_sq>l1Y8`5B#iE z51YXiF-9M6`)@|}Bn@C76M~DbQN)zpYEDszL=VP;Wnh;7cZX8@J*dRLS$&iEz)G5T zi|zx+MFB8J)myNgV-1Lfz$gL9O9X3k-((&EaD2_p-_U6YD|WmEwu_r^NU01T`^S20|vn$IC?@6yfdKzv75UD5h?NvlFcD`xKgT|Rrc5tEx@mJBam*W&h;#v2%i zg{>n+);F9)*bLjtIe*Q?QEU0DRASHG!Mc@1)PI}+QF&JgtvOaC>l76IIEN$&+N9m~ zMYZ47`YL`Z(M2~IYLG)zO#Tn($KKrOA=7{RE;Boqd&JePRB5LO^@!(!N)={UH`?Wf$8qHjD%Y$2WFl?el-Pip}Z~8epK)Vr%ZZ#CY?#=-mRl> zPHo0Qh5GLP&SGsD4Y?_Q9}R)b9Oc~d^^E-?ck#TdDV6Sl?aZ*U?m&&~d#YcUY_GPoa?oQtU&;98I+@3tP016$n<|Ir(doS+`O~XU zo^XchsAf`tlf%qXi!CQrTq&R?r98q~i-7Ma#=>UW25EFGZ0fE}np$w8Re;2;nrbnh z=DA-D73zH1_y_WED*;IgYp>B0o;R`(q1-`m5Dio=8+#_jXctuy_g*O0QO_4q4I!tN z)|nSXEBPS8)@Gczxq`%wYH`b|paZRN7r!cLEC05|82L-N2+@0k2;*%Pxg=U6I(utsYNkj8R%PO0oXk=2$11KIEBM#& zM~qsrMITQegbTB$JP1;!&KyK(-jH z4n_Lw&w%7yXBGfq;|jx!-4>#uBcu#BwACg!P{js5rZ?l)FO)gWb5GQLi(;@aO=C@t zQ6^f|Hp=i?#({li+yEO+ z5lqEU!BHh+_^+to)4u=Z8rG@+_{Lptbok+vVQ4Q6gJ5Sn=L)Wed7Bqo3K_@=CAjnq zr6D7Sq!=vonM2;=Ul#n}kR9uExRRM@8|q^o6Ey~NjqG-+ai?2RXz4ocEq-CAR$V<{ zMal^m!j))rNA22!iT11Ep)k3Ct~K+ALG+Q1aTd75&Z6-{?z8&HtH~3;cX9obIDzM0 zft#5jB9MCWz4J|8$9RonMci!fAqyC=BE)6t3z(|dm7#vSc0a&@7zzW2*l0D!G{FPE z_IUuk!?Jd6_Q7}bt4~h$E`z5XGt88%vrSIfl4>(ST9d8A1nMEHAXDS&i;F1SaIoM% zQ@h$aR4|_p_hsO4h%plAtN{smT#be1;lLZ3&ES&uribKkl+EaBy5n?C^5r!WT-P(k zGN0}7xE+YyyuJq$B5*WIWJh1JuacjdgeS_p5%jdJ7zji9iWC&K~ zwOImZ!B)!=@kvDs_w^*aPokqFS7l{oZ69>k$!?jOMOTPjRQA$rd2b=uT+cwL<~b-tbDJ zJ;S2u#v#WK`W?gT* zC?5WqZ4-m*rWxSiBE@Y(=t+G=vY()5|Mu)})+XwOzhNMxV+5;o=>#QA%IKTAAMv=v8nRPx-%q2;CC||ENXly{9i6QN?6i zm(j`-kp;o}7^6K8Id)NZUqnK8aS^stI0fX{?DwSA| z2S2-TDx_wG0sc?Q%oCFXy()2G3<`;Y=c5~=%wk?%G@;`=wGtk-@f%`HF-zXI3C?fR z+-X)WiW+?fYS9eoByY2K1h>&KupqHGIzK2K&7jEF)Pk+^I#BHbsS5>}mPzXgag%JG$ffy$ zo(n5vJK--qk!8FJw#AVHB!~ z7h#Akx&U0hW#9k}-P`+YS{U#cFbO6Vd$%aAQV_mITqA^NSv{|1iSqt|mAEouFo9%O zp`np|{Uy#4hJtHyA@?z_u$uclrPbd>$^v}srrLu|Jp^jfS!vUVd9dPq{BkBUa z%|+fRi>`9ak}g>`YM%9tvlAi*>Lvp$T{^YCVAih_`pbmlT#mA02axR?6{4W@%}2E_ zi>TujJwBhCVbOX`=G~t~9M_lsfTZHvx_pMU+g)az@t8gyu4?CSK^snklNcJll}k1z z@y!}I1TRzm!y@s|x^G){mpjx3<2Do%MfY!5;cR=WuqqWH%`ccZu+WJi9ohH06X0l) z4|Aezwfn$zefen@0LK`|(*}l+grf9cgY7~uho?Pc@{=%9&#7E<#ms?qj#CnDJ?jgGselA;B{0vtgjII@Pv4<$IdgwrlksBu*~& z0?wTGo=|`sKL9cogCMxP#G!v)yo1Fz%-TqF6?JEBK`uDz1I@&ls`(suE(wAtchvGu z1QkT~r5-zwi}7A!1!cY&L}C*!XZ0j{O)l_Lxh*C<94Ml#fLt1>#r+6HKZP-+SRh@U z!p*fVOca=TOzHkwTV}%U^H%`Ab>*jX1Y9G*MwE$Q%s}8NV4b8~=y-W?Bs=4hhik1;89*7Ccs8?JGG9Mgk?w6e|d zc!i#wI1Z!p13AzlG~gFjuw^Q7xc`g<2l0PW_ zvcw5@p-<-}g=~8>Y)?$cuQCc#Oet@~uP_c+)>loS{(EyX*Hy!88Ru7lL+WV)y(L-n zTtp$)npx@7=8yA>C%_3qKiX0SS`1&>b4Uw02+FlHxkVUfsJ2$|FDIsq1%};a8DPu3 zE3m)LOj*h#7I5skXrTd$Uu+r)OHk%er&(8iA#k#Y-3WziU;P13+{ z1CxCkVffHw^Ahl^{caF)MRp^&anDE#8X^Win;&`UUMNlF@IYtKV3)_$6g2n~RKq1DI)Cy_J(?x-eRiUYv1Y_b~qkJx!aX8$aI_Fd( z0y0=*ah^st(1&kpc+`(yoWiL4nDAtgP$9Jw>J^q^JC6_A2xyX>oH0xxD4AVCl7}ch z+sh6RNIp}%pgVMv@q~)5pHUNu*I0vKJSXgrO{=yaUA^W5l2RHF!g%T}X&lSofb^_< zna$>~fN%!UAWIIPybSeOYRI_C43LB(kl5s1EKlE5zQ8iu?9xXABvWP2^j~|Ab9aSGiCK$7mdn4?{@l!#4ZI(2$6&!bsG z&#fG_M96bOxIl+{rngL$l5DJNsezu(Gpp>b0FHs3M_x8qla!9YrDo)OLG`=iVcEs- z%R@rGj_DX;RYoZPed*-SfBk8Ht5IZ}j;0)c3;608_h? za)?%a@H*q3_B~V;dH_N>Vbuna_Z#!tw?>-#oy&8QmkCKKRmqw@)YS?E{zaMRj{&Sp z%GZ>V^-Zp;0MLz&Lx6ml0K-)g2_ni#bOWz~tthIymTv297JngO?2vJoR~hPW_Ro^R zWRWGMS`k%#jff%t1xs2F3jC!OHFKB4$!U`|=e#$QAf{!}2wlkV4w0u((fwuc?8+x_ zmCazy5Eq5%KS9;*5=am7Bsnwv(UkCux@a;qgikY($2fg`Qdt}-9fQQ^i%g(mY_jW@ zO?u%_CXPkw6S;b-nPw-|i4U2G>%L!ZOd&ua;#n=0tL(VtNJ%uZ4_{>#`chmQ)%HVs z99#v8Vk}vRgv~!_WOPrw(iNn_YE!OENxL9joog<({U53%d1cL7v5 zP@ubMAE5% z2UbPRSj*w3!u9yN=j~wc1Bl^XWLG8IG$;0g{ERip=4d%4J|^}U?$jA@R)s{FJ;0y6 zp5KPun8U;{2g!|aEzf`1y5Ph#i49>+(x5{gST{4#=%0f4S*ZhHH942nc97*GZd5|& z=Rd=yw}_KD7v?{j9Q@Tbx9>lmU+k|+o}T%482yW4Y4^FP;qtLq2LYEmk|Hw7~aY+$B$mD3k6uf;i{$CP?hhZSLsRX18gmj3a$sQx_%j_}}oN{?ktmGg`4Bn^=Y z1^8Apa#Po9I0Mq4t3IGU2&}y~kN_lDIEPRq7()Fl-nITM3Vo^iOimX!9y8M)b=TXt z8Mx>Tu9}WrJ5ur%dqFOxLU8DrUn^HlRhV8c622gw26H(!oEi}U1*wFD1+KnEoXATO zjo`RxH_#pi=Y7(lR_Mop;%P?2cY&12!>G*kzT>Ygi20P&UqEHH=wp(V>X$=pC)e6xDH`ho^j+V!Xu3p6A$-q<};|#3e`5rf3Gs{0L zVwb%7JjXK1m@P_0mOFBu`^#*ZVkHfNTLqZvx#;J%&Gvm80?GlIJ&4%$o9xt=4N{ZPtC7wHf zGE|ctle(p=RTU{$93VI}Q_kPWgPX|l1n|x6Fm$`Sa=Iqa$~_h7IIr9|dU-9)Rf-4; zJ?FZnu9syo&*tA0VAyJnwx~LJ;z@L@oL+m+{c~u8q?6gI&O97a<1B^(o~wrF>Q5=X zXl%*rC!;Ey_i54{Kk_iq+&_QJWd|t^@G5T=?)Xo$8-Aj|j)6TgH(nB<`^49Bf@5M5 z&nm7sq_~p^xHukV_{sKLat-&goAylRu>OKJQJ~!J#MXKtN&BEXhXkjDVyY&6)1^Q= z1m;yzhMr5b2)VP{ZG@W#$>oR_jvIs1Fd}&X$EBjK(Tap7yA%Fi8IawNyR^fg8Be;KaVPfqT4oiJaaC6XT$- z=H#^=UdwKJWlr<(&}?~*r%xPYCyb%Zu-@ti4&Sd@_AI|i`=$0qj9<|DbS*=8Wa9Qu z(^LxJZ6pC*@-8|J3R%2ImVTFJK@L@UFT=0uqC=XqUA5t&$Is98+mo|ui(VWbEN6U! zA+g!%gQxArjOoESW@YIG#?}10e%NM5IHq(4J@k}M;@{g4`Qx}FKqfo=Ii4)HQT^(8 z?oY=`LBUp(d7P)v3p!V;Z*mZC zm))bvNhg}ay_%H&y@E<=J)w2Yl8tkfe~WY=YQkG0?wBTSfQxiScMtpW2|iG+tQA1Z zzqlwtOOpS^@0OOjBG=kdc@j<6lUmM4q#8aYtY4)66OT^l0cl-zz{zyFA9Hk4OP_8) zsvr0Y^HY~^O2)C_CbkaEG-5kCxFWq=Qg%E3^rfuvpfs)g;{Xdh#TDW+&jNA(ksZRU z9oF^Vx{zT)$f+9@M{#31hPIEBrcdN56O;vXOry*BXfIZFgSGVzVUk} zMc3vT<_~rQiM&e6oQ_k9UU$K4&&it?M92xzww9~UZ{FVrsKfZG?GLUkw9E5_~+iV zz)JTJ7Z3kE2z9rGJ>Iw?iCyS)rVhbIB46&Ju;DXIjwHY$&dhXYLoX4L782dB9w5{z zWnF*#4WGH;Hsyt$H0hL?WhqB9tsW!2NEwkGOD~Tuttqi#@2*oe+eHC=Md%39KPiGk zuYFY*5A`xbKSr;24ky;2P0K#Fa+;dE+14~%;r2mPxLo}Pj=@O;{C)J zCQC=4DEuHVRlTc^c4lwuCzTo?^$$9cve(LvOVDV{h54}?7M`pf=aQY@2OW75DDv7b zd)+aaZyyLw?toW= zz_uQJzCJ6l)V;mJhBxC>nGWh=xd?|q8 zzjkj44+Ma034aOwg6!z<{ldV*nA(~+IXjvf+We1cXJiEr!$!zR_&)|OFFXu`tf{TJ zvjrgw3o9qre^qfyfU~J1p$;K~IKa@^RMgbi&cu{Z4<3e}A0FoajpX+Cs(boBEJ@0# z6oDNnq_9wyDIG|`-#k?qDl#z;Vf#51K?S)&|98!&f_XuX3M&uBZ*(=5z7Q{Dhdi~M5Ve6fx=`qQtUQ>^nMp7T{ZFUs1^OsV};Ru=5*FSn~TifFs< zLmk9jPlDH*&q4v?Sp}b0|InXpUmu#GPsHv1w+`Qo`(ORvVejZ&^S9~KyJ}yr%igZ% zeu`T@kXL>0r_J5)^G*Wqr+QD`uWgdYw^CoXOMTQ^U-wJ-`Eai*p$|Qm%~*o&SAW~V zLO3l>x0l{WtV0T!uil?c-)C2apC4b}xBX7vNB!~L%!&O%g`Ll9nv=U$JJwKw-rsvq zf?gv80gpzmuRRi~Wg5QY*j)gE@28TT@?UjC0r&s>XZtoDZ}k#sbd<5=EN}G`URLA1 zbRXqpzlRDtzNXdR+cMD3jtB(bH)_ow32m$pC56EEL^h&%sx z(D7!U8DbU7K)k<2SaVU%vjbm%4%y+yhSbw zU+XEn|I>lH61d6GLe2ku$aDWc)mH(}Y{kcnwElRq*K{@m4kU5!=8hm7xG`gzC>~Y=D zComy~B>5AY{k^U88``}4JKgL3`tACgQ~J9fO2F&!`kQ_8119$wD#8qN75X)Ha=>-JUJ`qO&T@&dNw+uiE@bl1J>@VadiIEvGAJ@_i%c8jV} zMQD5aSYr3JPjTzb+T(ENzQ`edze^CGf+`O<_b1c$t@HQe_4n?k*ZuA0^EZY6$oJ>_nts2iF|+6K>JVXwxnu z(u*W>%q*wROL8gm5OA=z!b%WrGt4w^$?nkQ_FwBT`Aom;qoo1rDO>6KQv5V4me+rQ z0*==*urMlQE4fvO}CK?W>3cyQFhgKC8FrY2T!aXnczbF3xT@57YEDHbD zS(eRS>6*w3jrM7+ouaB)hRrHjfhm`ju75%stGP$kvxhzbw0-kN8}&2;ChtAJler87 zIm`^X1G)PX3GEM7zdgYW4QsFRDJ(yb$cVf%DRPYr(p-atp6BQg=HucrvrwzW zPI>`IZMYcAM%iJK%U(;t9t&?b#>y~&V~PB7m4N@ zT?Ry6b}Z&w;0x^HdlNj8A|?&BN_8wD4Tsc6+4N7ZJ)r#xfKMi7Q9&fbEM~#9IEbLB zF8TgR$|wnQthDqeb$=_R;$%~B85F5|^pNq7n1v?=Bam6hb&_qH84w3Yi-rtC*vgE@ zfW${-S9*&GFBg1^e>tNjw4DY|tl#wwk4?e@eCoY0A5hVq!x+KX*(JmOBBhFKbZWth z_-{-8$D;uBFB4{SBBA*aTq9nw5ugvnrm-r0fKLOj<-}gXENQ0DXcK2N8giH%A=}Aj zIaH!c(p==k9*ilbf1VgTEiG6iRbW2KfA zqan4{W=uwWgHqc+7ANxvY3GSIZFxT<$|oq|9s24nLU z%v4>lIP4RrHR+!pI<3g+a8j0kun*rJnmFk;s?Yr+?K3KlVk8;HWVZOmmIO_svVbWa zN#kE%zD%o5FqjcI0x_=A0m%ZmB0udH4<35b0kA@GngxoFJp?$Nzb#oYB_pldpvJ{F+w$BdT&`9EWJHel>34v|}mn@7cL(%rEv9 z0xW2;Ct>nE$4p~V)KRshKW{RK+C50Ivo{IGU#y#4W3nI3sd4x3T%F6+s~Mkst+#d8 z|A+NSS4Pz7E(6YFP%ubjIWPr$wB#lr+6bWQ%G~F)ezPte2q#Tk`FA_8V+>BJZuoeL z0lbF7@%KqHbv;DkUT_s&DPfIF=M~HW)4> zboheD`TgZqe8`Z7Zr96>S*r$bUHzE};c&p%FR%z2`WeIIw(Es(svy0$F!UjCE}0+w z;$0Kq<#6Pb)kN4Y;9RmV^!SD;MOSatJ=og$#_h1(PIvt63#m#Q}39*4LW` za2nV+g_Fp>-_+7Miii_QWXGv%ayRaUnp`G8vlZDSfQYdX{3iJ7tMlo!Xt|>T>CSq( zMI4;o^Z#P!dZ}`=C-SIWB#&IY|B_mDPa1Mv04ZvtA@Ln4!9b7z?D<8kRErSiW@-Fq z;{x4dfMiSUAlurj7Nts%#-85F>!0We)p1I^!Twn}Wzw;WoM`d>dcIEP;D|hqy8C)( z0<2LL=gxZPMr9-8@f9=QD8p_jktv@DDuMzAr3(?1DqZS}R6!7FL3;1Kydg;MMVgc#y+uG;0BH$LsnV)&YAn`-d{U2+1Y!&d)~FP*0a`nmckq|66i---tLx@IuU@^{L3mRuXptC z`f#9Kd7ZV9zt?(J)Aq7EVVGwNzs~vfnP|06>TE6@m{_9N-(+Vf&-N3D3ssysX$T{! zWHw?^OJMZ`D-wDopr~D@y6`Y!6xC8LL~PcQ5cRVC4+EwQcKa`rmBJ&~1HCq4?X}qE z(cY$a1*%z1_W-M=S^WBjw?Er8w0MK7Q#)FFQsXGGvqD|vMN|EaMIP2BZu4q!RjyR- zW|gYES#t_=hd0W$4L4a-gVpIdalWsyWnB2jHhOpQG}a1a`i$dHGNYcQ>(CyGD}9SP z@rvCiOm@~8T9nzakv930Ez#qwW4?ipo|CXQj_@uodHSb7>9Wx6X!djtmo?{2H!2(s z7ICszYt^Lkry|z7+~43wMSU);!0GMXyIJp^eY8$*rG)-b6`wKo%fF>$3L_5>bJ6Spj5%>?`7=q+jg)7UkU4 z^;jD@;^T9ElB%&CqF4n4pWjlMU*>l1z&GpB$-1S3zf{$_-n;%FJu#<$tx56LG(xUg z>utY1Gnyf1os-nEp%BG#5C1h(3sP^uFx=bH7TRzBH*4u6t@=PBFFw4Z2=&>i~xyLa0r{>rL*-!U?O;1@E<^13k3 zuk(MIcCYnbr9U z=K>w_xOmk!C-s@B7z*UQO=vaE1FR6I@Bts5Lm?7r!ozx_qqHXP%Hh2nB+$JUSdQ>r zXJfwqu(K)$l6Oc+eEv4n^QGd`RS$vBXR6atLS!4TKJ+{dDgnkVmvr^fx+DnuCt=h; z)9*kmrQD$qxRYnVBNxU20D4hM7l)%$;6WiKaaT_4-htWbzf%b?DttVM?M3Jhgp>#$xf;B;&Z-ga`TP))y^)s+Gi*H7vcU zKHcxILDIhjMtWu4;o!RD)RmZ4pqhw~0&ob`?Vo!1Mf;P>c??8avX%58I|-S=-Ns1q zK@&ZNu#~;X#;5YiQs$lq`r1f8b(lw#i_umTVkDw@y@+cCMplXM9Y%U$xwRN9LOh1S zeg6)FX=thREEO=bbk$Ycio=AoqD9rUO4r5PI(n09mVV+0fAG=dm(P){zyaG{^%mCr zwaBV|MAEQyK|g0r)?>kkR7d}Fbnh_>_v2z=uaS7e6h2(l|jhd(;pQXr)Y|H zeLgw#ZJco>AAA-E$HBuudp70dcm9%snE0?)<-ldd;$0@c{{#J3R+_dT`OLxRn z^rbuST{R!@;pVmLLGK|Yy3um)1~=Yk49wkpbi(8JL+I@TK%a-&BK-T`5t6*Gc+5MB zCx#x6O=h|}4k5c~2xeTW6ksiO#qoDy+|f;C>wzKV5$xi8h#44vh^eUau4*&5&ncqA z2rYX9U!Ta-$Ao$d3vcS`(op00ZcyTG(%!GdGHLR>u`HBQMmV#I(_p+1c=RuKi$J3; z^y7Z(BGd=62aBDYHV;4M!qP~7*7k9#)E~xmlBv7NewrZAl!L>}4ji{mBHKaP^e{+T zpHvtm`p@gu0i%-!n?h%pYZTJO@>rd3kjG?gI9Y6QngRSbgT+=fk$x9!jfCX{0+!U9 zKe>SyOchPFjVcpf=KNf(55CG)pHn6N9T-a8*;>O78{L;c#OW!z|ApY(!scn9Z(8;T zVF+1R`W9b@%TSn^XWqj8V~6mbZT$LPDZjv5K}+h`J{lBA`(uUt(-Uvw{W-Icci;KG zcmrG^eZBE(X1M-!0!P;|WR?C`F6?y_NH^53BxgEIgsR#rrP5IS+jz0RI0=pIdoxJD zc~Zvk0UMI3IeiZOQSJz@&l@qd*e-1;M*+u}mevntXnxVj2ta6&e_EJwe{4CN_Q#qc z6?Dm^R-3HXzL8Yb%R>d6idJ{JyGkX#_NY8LFdKp{WN*N675LlJ_pB;Sd{(y?8@xg4 z)XCYCf#H_;;7B`Nw8#gD7RTI#zR)$Ox2eTNA>rZ<72+he{Yn#b$emC}Rs#iKx>TJ3 z$|`|UZJNZY7?)p5vHi-KpWF1$%hv%xfdieGGxX%?`?Im|9q_|7`sJNoI7S?U7nt@s zdAm9Ot2Uo$CoL;$Rm5rOKD65l@GE@D*D*+2IZH)GTz#?6qfUu4JW(De*@31$PwG~p zRP(oYw~rjEe)|f<(TLp&gKgxKHT6*dOPT|F>)blW-8nG$D{+@tlKf{x$y>xfZsmjGG}Y~6_22RDD9v0!aDg^x@8W- zp~%HY53!UHg9LHKZKcC_*kbLU!my0T851msr_E~=!2O9Hw4$GAcTJzYSPv)1ZW;Jy z$LgsrKigbTP?^$opQe)$TwNTp^)sPiI1$4CUIkFo{iX=CJq$`_gu0cgmYBXC4S1!* z04uZ2P4ZBp*sRgHoyKizs8J(7vZ)9FWsle^c1T+EUZ<8H+*gZ+qIE6?CJiRw7FAz44CXLnBG<`ZpWqDb&Q+>Z}B~^37jlSc#+yC+IIS z14Z!&I)LDP1^>dgX8+t{VdI*i)APMle~wQ6h-1EYFmJ;8Nah4LU06pmA;YY-J#^zF zGp}#7d!|yoPMlXgl4|m30Jp=8vo`U2lsPv3wVdc$EyeO8B9y1yL52(}{hsIA1-_rh zFiRVCd>e`|MlEs`n2Ffi48~ApDdkJ8b@$GYEGx6K__qqhbVr5%1g}~9+fd4IJkc?- z*}3nKQiV|yMSMK4DJqbUUb}+oAW^U2pGm8UfZeKVD(~)R70NSUJ_c;-6$6Y?)bl3T1{<(M$up zx^mfC;T?n?x+ML0*jHkp>6+ehMTNqF67cxWZK_{?n^q*(P&$DQqQzcA6y^Qh8d)P~ zP#8)bses4O!S>nE8lo(E(&9kHiCS3>63LnzYxEi`e-IBTPP-dZ)z;k0`smjKE)V3SXsR?Lt#^3r`&r=bMqFcP4Y=yY*7LQjNCZUIgaF0po3%)t8 z(Wp1nSE870;g-?)Ckt8kFQUaBOGFcBDYH}4U{?i3 zi8Z}9;55fmtgBX3Z?aX$Z`K`_J(|98DuZ%;@H2PP32YxQ4$3F0e0Dc^nQ~v$Kjiy$ zVF8{Qgxx-;AUC@RuPn>@7Wc%Nc!UfYWl!2v=!B+)K@2RheAu8sx;-_Eb@`2HOkw~9 zFsT7n%?C+7{^#IvefDSdNB_Z`u7ZlPz%NQ)jBWz^9t*B?@&r@y`$YyY(G6Yk7xe!b z%KN|DI{ym@Zl|U0=UvsVGqha89XTx)TXQ)z4{lN}!{(6i2!e8Il zF;ip_)f_hbGsC8<)1y*m$%ESbTx(?If<&M?4Tdv2G+lm{{t7$(toEa^&FIj>`c~el zW;2NzL6Zc&HGi8D8urR(8RQ{qOnE)twYfWGODL$mYAu9{cQZw)*=7YC=sPD>*&ISQ zDuLFg5^R4OWOFXK?CAGizdqtx+Yjg>T68Q_JFQS<=b1ye z_-D|{Jf3r!Du!+GyX?{SzPTiH#UnN7%hTyCZxGw0xGenBN#Drxk`lz^Q>XHU%rujV zdi!yNg`~+o9K#N@&20T3V?#6gL@+>e1n}Q>UW}rDFnSYAAI~*hZnWTO^lBOmig|S9 znpK{nl+x|mS8w4A?+fZPE7=IzIV8+neAzkEFDjvz3UsM`7JH0uLKPUlh3RM;Ur{i$ z+VHqHbi54aWj06GJnT`j!t+=JWHMM@?K9EUCjMv*Y#_A78PsNXPVQku&ReYzCut1? zj1Ps#PEvc+s|T7(5y46Ku&?8G@-%0RhM|IVN|otz-1HN50_E4CaF!3hd=s~`t~1!4 zL>ZF;Ez0Omf3XiieyuNs;k|l~)*)#r(RPH;uFi^Q#X15-oZ^x4h?`~K%(%@FdhLF- zMpcJYAK^=I<)X)JeGwv}t>4o|1VF5cmBJPCvUXv=i8vD!Nur&6$hi0c|5GJr_7_b5 ziJw@;rT;Ph(f3f~w8{tsVAjvRT(Hq`7QLrIj9AH$L6HErtys}Hq*1Bfa^epDliQtd zH>_kin?|D~H{EeXlidN;T_Nb*1MFcCpu6r*bWC*^wHXckidY=;CHGgTT?<8a z9zNf*%KEY3haE>%t(l_**)aJChCv!_ttecd!%wLOEwn$t+`DMQ%n6aOEgYupMz`Gq z7(J8rak(uD03+2lJ_3^ffn`#~hYJ_O@_rX=_%eWwmAVb}GtAIA;v8!maDMR+l;(?% zp};M#YpGalx#KJuj`1|ltl<8Dnam2fpC``T`=X9UVrNdgS1FAUxjt;2bDj=fL6HZ_ zu!#ODaW)`+2b5Nat~iFjBLebmbHB7&ZS@iXo>d!?19GTV2CNkr{Y0EAzG=vtW(g}4 zP+bYl5bRsBsK7`_ zgWw@)@y|ndJa`wMO8a93!|lBDV7hjEBNJj%mZ6PK-hoW}EFFuebwnA1O-BW}6VTqy z`=7KjH;@`7cvHFNr`&nQljtp%*x_MOl&KZ5P&9b){NXsI+P9`f)0@z2ULrtjKVT=| zgE&{LCmCQ=EiTEl0ZG!XM+oFsXQhfBaN_Hx&9fLWTA68O+`!Cn^KBq9yZsWEK7jD= zvi!vdC9gdmz77pU4s*nxbJzgF5161Y*)H$hdieZUxQ99Pw9HJphosPx1l5It;G zEl$^~lt?2N`CGh%qbuQEgZ4GEq@NLp4lME73dU)$_mFd;2vg>c^PIep0?2F#!~of( z_--a@=onWQzeN-H;+zV%*AE~01OT2LUn=9G{?fb(eud!Uv%pRbb%GwSoP`t5 z;(lT=JA~=wTGeqoGp2%0jrQGS*1H4!LAr2ZkEv zwEOo)!-BI19g3t@&Ngv)i?G zN#cbd;O1ya6j8t<4FA$G^71Tt;wlbcZ2PRC(tLRxZ~JWB>q9kR*sdXI_-niUbnPGQ zImCTvs~0JB=6Hoh;yA7I%l4Um79&m2JF}>2U%P}^-?(g_O-w)L zdp%u)51*|b0se`psn$rnoVmZte_KZbd)d9>pIAf62|j5zw)F!^{enaveI2 zV?rr`ojCnZUCx%_W>r|lhRF8fngO_@M|d2%;8pla$gQ6jO8<{O9fE;dJk=>+NPvWm*Y-Y!tG0e#g zUm9u)vS~Ii5MQ~=>mBz7`O)+5KPLyodq}{!nKa5YK=T16ze|O`I7sPwq0H%qsF-!s z$V~t>4(a-&+zmEN+p*is#yKtx1p$G!PW?*Fj^>Y1n~6x^@lOvqy)o!cfyBUS z!CcSnO1R)H|1MvBtqmz=B0zk0P$}RLg4b;bfq?twh$(*DB=q3(dK;SX=>VKE5;O^{ z1odmdy1q}JuH-l^Np~)95^$e?_pTCs4vMO8+YQRzgYW#f`oEafLJRn*r&8#UptR08 z9XuZZb%>}dSQP5bU~@s@VrEvgsChrr-+D=HRey|r)qI@=bKSa!8&#o#I4w6*tWDxy zZ7Q(J&2O;<0?ogE>aczEj=30{Pu(%QMTWywJpL)3<~{ykMn|pft&YP*{{yp+t>b}V z@bCfSFfUhd-9K0_ZFJ)mo*j)2)k=OHGPwG6BU}`SBr? zdf}H#EYiZK5j+ce!jLKyBtP|{dHP4_udbOyOUt|FSKHKI);Weo(q`twO+#rqPg>R8 zXPDqdA%!!{d2a^@qp0przj^PAO$%hVJz3RZ?SEdVk3WfU3xg;4g;7Xtotr!VT-CFe znzcPb)SZ@6fZ$+;nP`y3*OwIXKevn&P+8=A&I0#_m5Zp<*-BW(*%F?6w+hGz1lnE| z-Wv?BrdMvVqDsY6ZmwG~c^FiR`+41gc%6=a8={B@SM#0}ZuZT4Z4C7Qns&3`mJkAK8B`owrOVXCEl-zk*iMitVkg!t}yM z-qU!|W%9$~8?WXht1TmLz$f&QACm`HjHhTv^6Met>D`S@>G`$XdF2Lr4Rc@)jb78L zrg5@Pq}IUWA^1$ypiB98`t`mV_~66$Fcc!WW&}87pOSj=n|~d_KUZ+65Ks&f9&$)< zSx$CFz1bCZSyL}E6%JS!Zh&EfJi@gFC;a{$dMtaNup{e@|ZePc>*xF#FNw~h?^%|JI^U;uYZaE33i|FEwhUsZm zTS%Z%pVtZKJ9Ct8JeIw9h*w5v$5-PFmsDCK`q4Xsx`e;7HKh7pON)FxXfW_LLpj?5 zWwj%Mpb7#QY+3a4po4xiug=i%3tJHrwE4yB$r&xgw?ZZIfBq&djuscMq4>;I&!FKd z^^Vo({$BEF7S!=MKN0mf-NQ{tm(h~T80S?PP+-gFPvS|i(xSt)#NpXH5xa++I_ImB z=Q^aVs!elJt=uLsiSECthv+)LVQwI9b?`hp`_9@w7O2wOVwlR{dfu>?`PM1KvM#~8 zA8lQlX}&rce|>`I?$6*^+-#AY6RyQZCoT;q$jJkEG4#e&CnKxpHgRA@=)lc-C@lxF zcuu-YuO{hY>w~!3WudY=nYoPPD~leM8W(svuAfYSy`(UP z^2b{h%d7B9F}N+0c@=DFNoq0WFzV72B3GMnOCqDx;C4y=!Q*MizWkvSA#kt=l4t&*oV>vn%C*czFH{tyV%Y0jE(V zg9j;Q297x+?@fS+2hBUDodyo!B$3bSC(pFEB;M8d`LjZqjYfM7A6he$d&Wbgv?0P` zFEJ+}w7_;#=Wt!}bP5#v{r7`OsJVs2@inPdEh;DK!6_9mmznaA>D zYlEV-V@nJ>z*t)ycccPRKHSiMt zx>}rOwxYc2A0H?yV|##4@P5j86;@Qz|6H2V;ztU++}cZku>xNG9V%c#+Em6kYB_QE zdbZ3vCTP5TX=eqapik`LHpf$0rkag+udF=kXb)X#j4sqS(1+`}pX)Ym1_ptG2Y$54 zGS2|VR^D-_7119FpsMm?R|T^TUWoRZzs-*4oK4Dpy-S*W!z60Ve{!Qr3vt(S>Mbvi zi=gk^JM`nK()qW9U;W#6X=dCq7q83}{f#3fd{Iw_j5O>EQ5%_NA$3Xp)GGJ~Qy(!K zB=KXgz~52`dOW8cXJs@#kRRg$i=IlisFi1Jb{3dZ^5WR4nSQiVHI>I9?qAd^Xz(+C z0XQOY94>~*@5WTj2-6d)3!Z(q)cT@;TPr%`!h9d@U%u`mNAZfUsPn}Db&aBLhLBCI zDI8}1S7p6!hDb{TPZGzr_>Z+C6`DH0wx!4wxqQ7^%5Eq9D;L*vc?(6%Cu6$p++ss1 zfL4axOI|-t&oX7^n>kSTmG?zjso;4wM6Ab&m~Mwd#rW{_)L@)Nb%y+SszM4N7W%*y ztk|pmd@7j#EIZt;FnXW(cPdM75+9)U`)3m5!mzB;+P7YL)MS_xf@EY0k(aOC_mtWdR zcI1Xu*n$aj`ru*t`pD{ItX50A(mgM>{)lcmI8V63bt-5>fY@`}ulORzTv~y}QpNQO zD%Iooox`Z+!XJ5Esy~{XaZEEKN;25@_rlrzz!Nn)-##VP8%)^W22u?yK z4|Q2qWHiXU34G$*WmL-c26#yeVxYW$`|z6IVI`knLt$ON=Eh$GPltn-SbVZ}pFMd@ z@@H?F_n8zThEJY7qzXJMGYR= zH_G!LIG8vK3+tENe+z?unqc4&aM|(shGmJgOHJVKCEPIXeGj=?UE?|q`GN`i>M-cEfMsDkq2c|S+kGN+?L`@HsnS(X zmvK^d;96~z5{Y}`PqJ@izXh#z?8M$Jq6FF1zjt8tikzA5xRxxb{@XUk$n#4Axou=0 z_N%%Z2ZL!B@X8$hH=`!tLMs_RLXQMnwXB;8Yd*NY7n?v}S!|?$++YG1|7)s$2}q;B zG%>sMfc-$PTLYHMv%ZOrzweB%XsWeJ_L}|n67Ps|m!soZSuEP}khCn6lhIT0=XR-%AJ{TxCJU8uIk@qVF(l;iq)K>U0w)j3~FcagK&BH>V$C%@`>GlH0p8n%Y2I$KCMYg5WHK( z55Xzufc2-b$*;UP!(JYT6oWsB!#0ypQfb@5=&Nkg-EUyOWmC3gc!sbGg-p*`{2-0d zDK4Z=5Ih(4tpi_sC+fi{jGzUw1F!fyB{9k zL}gPs+Qn)%TE;au50Z0)L8j+JhdD3N@?o?U^I@5}CWSA_p?|dZE8Xiunr1U0l*39) z80`A!6=z+V{hN45R{DLS0Gs^zJH%ng2!DG9DN7r(%M#sRgJrc=Q2T|*Eg!H+>M8UM zUrXsdGXc!TF3*$lb<4t{P8&`-qf9G>ncc5wObj&G;vsbV8iafn>eWWwV9;QnTASYy zAPMC@5kRHc=(5}Qyn@WmhK$&8vodInb5xDp90p58hC)rg<^Mp zzc)p{-9AbQ{)N7Juhi8?qvCgP$}7YwtqNXj(=u&RP{o%nEw8|%{4`sMT6U}W0-IWy z&Q+y>_ajP4jagIaO9pl}4CJ7)AzB;!@O(HdUIsO?_`X0KP?CQb_#Dw-xSfnKvk++< zcxEA!!>tqVzYvLJ{c-~;(;9DW>tA~m55bqZIhD#IMM>>Frq!Vv)c#JN(BF9m>9Fdy(9(xfBPAFa4)V$3cyo#w< z?cfCORZXO|u|w;x$NCpgtOcjxl<6e{3i&D=uC#D%1OCjbiwpB?KwzD|V{gfOcD&{3Geiz z2kZ@ZnjZCLLh?0Bb>XqF;p$H-SDq|GGdUEmS8OLB4j`#^2UBau-TstV@h$Xf$+r~C zhC=REJXBjN2r^Mme_L*4FTGQ+gRGq$fPaTBM{c;Zg>;OK3>N;G9!w_O$~z=YgtlB z8elgiP{ubl;u2_k-E#DR=uQKsAxdYpah8aSrh^aY*#L!#yG>`dFF3 zGrXw}2K!}E#*=lV&&pd^-<azEGy-~Q}TUNpVu>lFdK6@h8IGPa)YP`_O7?L!qR#W|0{+VHg`!Q+d{5oz5*9*4_ zW7j#T{sDY>3PrYZCp|x_y`Y{jv=yszyD&bixzw@LNgPjrm8rkOrQV}QJqP>qMJF@w zqXtiJzYRUeH&e+uV2|?GNhHoDZQ^B^WKtERt)ya=!Iq`o44kbJFDeys_pv_6T(58Y zp{AcnJCnw))O4o`KU^m44558C?X`1;C3Y8K>wxQT-kt>b8zC_`LeYwG5#K&?LG??l zdEJr|Oe49aa7E!&*ZCc3>dKheAqb05a(y;+(8}(Q`@(3APuQ}(l_zrF%-u_WNA$G!Xmf0lfao%UOB@MKAnY8WYt#xjk#sAD`eoe~IjI4XhBE_$%G(EY1Bc z&t0h`(o=MWT4!@F@&vF0Mo08?jxh4`S^d1%V)dngD&0ISE5@TZ)?YX-NxTWAxXRz> z1HY&^t#_z{ZxmN z%;&>wsmaE1k;V;#NvHO^li$m-S7D()YM+@VJ9^N6ZfP{$9@(w>IPpHWy-Wj4kWft? zxI8s1+U@P;e%BMwgHZt{ohWcmn^oRS&K|erEl_F1Bw8<#1CHOzcD*pa<%?{5bc^La z(-umc@NNvx?>xTn0ZlvSR;1OtNrv7@WqmW5x2sV>nRNI1=ZHgRKgcsQ>wOcranxIx zpn6E>lXujs)=Rqbla8Sz98t|&l`$-e&Hoj2#Uwab_HR*OVC&uMf4EY+Un7#YH?=Ra z=09Bbt3#gh+E+W|(@Ew~o?m)=e%Xv-hTpoB*r)r&@ZZ87E!;QqG}tSy57!Zh`3^@e zNL>*#%Q@5njRC1vQO!&O4%+xUQQ4-+8AV3w@KS)(Deg(Q3E)&Kg?h$lu22yuyUH7J zMh$5KTg(Q;=Bei`)*

c>OQ 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

k$Sp(`I!vjd*fMfV*Pig?>XZwM)iR-nKU+z8 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

q*C26+` zs+-BVIqj+!6k<_r09Br$@5LIe>7(Pv{%=k!c-z2{u-U+?u^&p)}0A2<76d+oJ`)26AWbNrYG(^=wzsG#q z&YXLv@JCO2?kd33EVQuZ{ik}tRFZ!(&XdSLhC&yEy*IwWZfk%30moPK8)a{Ul{>dU z{cDSQzxb2kP2W>Z@SMlY@L&+>+Hl^b@DBagCqHICZF9e;z^D9S!yevz=Ba7}=aVY& zk99LR72K8D5Lq_-{UidIzv7PmL_Ny$`8VJH;GduQeNW+^KJ=Ska36f5hKq7SLx-ZC zwCw->DgSp3-$?%dOL8zj9Ti+tt`SMrQgs=-ua}qMzxs3)2OLxT##wDV^2R!?e5~j4 zXv5Q%zrw-v3r-B~f2=?X_}PB<+o=UGt^u-f)Z9;E{v#`jt`_;?KVRj;RX>F^3z*cefBHRp^F%ETuMKzL{zC9y zb;e1qkCnU#B^4{>-tK~=T9;7!X>iX|jsAhxG!>VWr>|VR5Yk({3eozCg4Qz`N)7&>++x-qD9-X+* zq@Gu$tn>Y$J!a~Ti%=Dq5J_aD&?DG!DSsp}6_?z{Qk)qmMc{*PcK`YH9Q z^@zF}TH89AasQFp&RI;M6t1~e8*IIgtBn4M0e`ukkT%L&%dc$ozk9&D*MH-TB4wQw zOmRz)D?!TTW~xx?v)q4@qwSA=yv$gy)_j(0rM&OM|1@BC;aCMu5e6fc%e^x-@4w-r zCy=5VdG-5sE9uYNY=Hir|8%CRH*axId5spnNW9FhPG>F3-oG!m z%cr!L>|F2i;_8URG)qsYe|za%aqR@Z829Z`QL7R}w1?N zIji^Q>4hJ!UqBELYsbv=L9Pr*lK1Ir1M+8Dshn2NO8K~N;%^e|vqkkc2mFTLi!FN? zd7<)2>mFT&8vX@hL%E*&Rsk#_`!lWKb*9veTGu8&uTllQT?t}5hn+6BX4WK_n4ux& zphQrz=GkO&VeD#R!8Dz0U%TMTTz|{5ISOuKem@xc#{KY!p%6GopZQqN7&yt_F7{Ri z#K&JbfZsJw)g9*2&7;RZ!=X>D=wOFx9u7}LP-x7tSkK1@R^P2LPj0B&J!}#JBH5klWzpm9)LK%89@3ZItt+?^Klrbj14(n7*%22fuj<$WZp+7g%pP9k?;ult?TD8nMNFemt4HI>t~?hLg=^O27b4=zoA_Wbwl(M`ZfuXfj{Y-FMPFu1^v z&taVl_Q7((-4w4PXS*KtJQ8x$q3@R94U$!bWSBqhU-caWscLq8F5WnP&xuV`PoWm- z6UWax%E-VEARz6<`K+BO8~MXW?v;*ORE9j&>N|#LYh~{nZ-Zr>TIsOdtHL|yI^oaj zzC7gRsV?h1UshMPdw1-q@SQJnXJQg&RA0u9i_-w=Cg@s>FqTOOGS9mz4pp!YL}lqb zUD~lXlO$q0PRPim5eDpuirfc1U2Bu3~!&|a}9c=-M|0BG&a`_1WZ)~vV`>$=Ua zuP{<(No(zE{t%o@|Fd15F23-9YuCB_heF?o&Gi3LY^L=J=j71wQlkV&PoS-mf>{)Y zU|L>E{a>|t(%uPpZ)z7z$3MfSgK5{=JT3}8?V ziA$wYt`U8Yzo;YX`aO@k8;L_YIDh%THr;+%ML$wHqLRL(DHZ2I?yW^GR}^)qq94x! zBV9OJtgo(F`_`~{?!wOnsuu1a^7>-%TPpP6@e5^yeJS4RYhHdF#toMosZb8RZj@m2 zD5ICAHq^+7V^CU^FVwQO>xlqiY>|ICI0E z1=qWjqTC^?2dk@W=jkf31%44}pVNmxB6qSlp04U^N_0HU1&1;5`+KkVY6Svnu?CAz z!RzJ3re@&78g^3kIRrE5PV7XV{E)p1K`6kBCv~24tEnJhK`*w#{Q=%isq364*UQf^ z6hM@5ily(iqsYu9MpvjDpLz`lm_{$pgTwJHNN>qH58B6>2g`%$27|*MsWwJVw#QWr z5tNdpJD zN|!N+uH2$|EOf*Pn{Q0@5%e-4FG#LYigFx+! zsAes()5UX;VdSG3tF4ISo@YRLI6A$I%bqOL?gR78UJtr@o0K zOfPloTX78FZJ+f=zc=k(N!f1BfsT?A(`hNtyLY`~-Ym@0&n{}ID=3WlxCV4zFV;f| z2a^#6u^AZzO`bqc6e6BS)ThcATt!S8^?5#e=b<)yc=L&31D(s^_Zm}ryK=l$5R1AWT?Q4Yrkk*oC`R#-S2CoygL*8@cNnk8 zwaX~VVRpR~DG|1G;3*Ud)8KHH^P`B=a>^`IdsM0&&XrpF90%tqXxH%-3f>ZhRI_Ok zDh^El3A`oMQl<6>vvN?N(1+Az%ojb_@jZ9r2S2-yYG7gNPpV`U4p9K**C3dSYXEdR7BBs+I*w}`rY&N}9B(wFr{XarcO8_} z>&Tq{!%nlrz!Q$K3yRQ5aO^ea$Y`Xb=L~IpX41pNj~u&>r#M@$_jMJ7DhsZopO3G< zp1qFR?28j?En0=`L&vDf@zT6#aZEfYc!)@Bsv(i}*fgA>uI3S6$#c6VUG)C6_^ZXA zJ|Rl@i`@VLg{qG<8Wt9%u0V)E%GLFAlzT9CL;*tQIW`aZ^YzZ^>sr^xlw&N;nmoRqnUKJD7Cug*#sP>oT1 z`37%9fHMz#Jt7Lqh|DynGhZHvHSu-!x7+zESCB~(ElYNLQM1~mvhf4C#K!zBnn>N? z;1GyZJdS!=#`)7vts}NnU^DL0_a(!2&WnxFFHAd%H<8k`G zoRF|FrV9~zvWJ3=Ln6Gz$xk35{WqKRR;YtZYr;QPudnxvgb>ASccYg@t6JefT^^V1 zYi1rk@z7ZIDSIFK3_20_BSiY_bqg-vgdI7$1|eP|7+;59B34zcHG1Fv;9NVE!!x!h z;b2gS>dq8MEvnsx8h{*`2n<41P1D_Q00D>sXZ^2y6*|^2112%qOEA5cwP#9d#xR_*I zO48lI_uej~I8Co@z1@2`&rkEcCay!G^7KMzsJJ`5tX`99j6fEE`~-{Ek%5OY__WmB z+}Funq;3Nu#mn61q)iHrp-z$T-EA_0?<-{^zUJL}sGgOY(q_Td*wbXU-`!SvP<+|> zm-dIpr#VCu;+knN*x4fH4T0*j&I=CbX}-f&oxv%U);L_2eD@b`E;77l<|Ze+51(M$ z&enuytua)#P6Oo0RePOm>Hf7HzBYCeKOk_O!1{}b7R!f+ifn&pk#w&7cAb`$c)J54 z&dvGB6g%4D6C^-yHxwm@j`4y#-RHM{1G$ECyfb^xTfcVCE>`d72P!>c_#UtonMHWDnN<$$O=gh*kT%%ixeyav)Ml9%oF#6CZtgwdaE|Nf$Xmk@wUH$rJL=ZElra>&1Uxdw%E=cG z(geKO8QJ)`HIdv2)5~PNJbs$9b7Dacf9DC<;E$U(#9oXc&>X|F0aihz(Xvb&tEUGNNVS5TOJYkQzPM^m zo6l5s5&f1%7XP4sSoW|@VrKqsr?1kTn?cOdc?H8ciEK3+QlyN>>PW*>xq_%{HiQkG zo>s6Ra=r7TEM)^8Z+rU#799@TRk*L&r=+>G6hQ3`Cy?`Kgf|j@Zhv`X%-8q9g=`U^=mPFY?Loao_8B8 z8^}wy`*X(bs{JFnpB=(1n3()Iv^AVJEVyp*O|m2jML29tKXJH9W$BaJ7qLCG`2yfY z6O7SUhmIcg>x#S9>g=tig`TC0k~+-Y8(p^n6OvWU&q(Yg)_@XqXD(eD@T5}I zk@2yksm}N2N)U{!t@A~Yd7wdaB6R83L)ZPUXF4X>r-8d*5 zNm!#Tr4V_j^)mXM47^kX7*UQ0{Uzks`BW)4ZQMNu$E8TJ#StV`iyGLQ?13B;YJs`U z$2S-@v80LA9vCc@Y!?lq$$$_R+bl&tFYa|d&>Wx%nZFY&S-B9e79@7SQ9WugVEg%P zEO})y7e{mtJ1^Y%Tgn7$I}U6|uV=>e%=7N#*}Z&`3zIK3uu`~mFbgaq4P>97ve7BVUOAwH@?#+qhwO@ zLE2fOBH6*_xvR9y$O?k>bv_kEGO*Pj`^Z!~+T}ZmFURku?PlT)epe}QZYB@ALk7J!tl8~Sdm-VJFh`UIdb=9Q^w>uHo*Um)q&=R}6SDv~gpmym{* z`DfpMwb}JiH@2dmfZsiM!--+SuYcsx;fgSK@Fin}F^iyVPyT^6U`fzq-$jR<%yXmI z-c63HtUSn{8aH28vvioelws_4C3ld2gVZC1r-!L49I?1OGdzn zJWZKKK%LJc6&*~%omz3TDR70CR9{AhUFgfkVXC`Kf(mmwubWc-C9{-^>@R@u5^O;z<~f*7P%$q6d1Q1RJ4M1z z{u}6d&PH|RMuj!Q*_Q{100u0unDU^$qSxip%bmD+jN=@5*?I74D*MorXr{^EoP-#u zHgahTI10K0Nx6AMe(`GZ=+O}1vy7@-V~lQb+r{b_<+DSx#8-@sSY>~mQG3BPuh^+D zy4q<}fU5&(ao#lZGrvVpK>1NtrcXR}iDUDZnWtv2c{e2g<^NprMfw>IAI9Sc z;tsF**Y}f$UCSgg`iqhe%FP2Xg`BD(l2n1XN^z3CG{p|rb=SVD7gS7M_iHf_VC6~V$cgm$hfFL)QL z=kp{>t3d5X;k{=H5b{Edjp>6!DYH_q#cWc;vNb(ZEX}d`0t&mZcRy!(8wK*}K%3FHO7iFel0h4*5};Hl(n#R~(WXi;cATUkL!D z#F6Wdkp1%IjAY2|&`|7IADAtX@&uj0+BfujaUU3OH9~dInuEDSIHilpr^j-k9+xMP zWxrCi6Sqava_1g&hUV|8Mx1Kmj*91Af6#1>cj}(wlJr50pJ#PVZt|M_$M-=GHx2&v z`m*B_{3owFaPi#-lrPm5{j(R{rYBJ&E2w}%R* z6K#7=?XPw0(e)AZju3wvK?@%}$u4ITmRKutS5?w^i}2RV@*&5kD*`$%ne{j7^BR_E zFJY;UdExBRo;uv#Lwtti5^c)J(ho)PG{`!s|JZ z<&xPm%sxbJHUavgXGRrS;QKrQ&2C7-Q!uV9I_N}>uA4boTj;~-l`nc()q`V$ryp)= z3PXkOfzZ@-=&YU41%S^%C$v_g<6W(B&Fm3U(TNt2)EUry@S-n zfw8fzGG;8hk#^#+FO8)vG~C0a#sW(M&rXk@_}Kq(N3HZwl0;Op=OWZj%bnR%w^U{u6rDThW&lxHu8+LH? zroG~d73#Qya%c431xZQm{>`im2Cl;AO>88_HfuLnUvjCPz=D(*<@A1?%X5*9y<&H? zTB0XVdcG*v$zYADP#Anpuc1i{wWqPmTcPfzdM$=9G&D%m>n0>}{?tpQu}X(o>HkRU zp6f0i>&@nKv}Nf$Qcs@sK_ulK2(GJY|Kz7+D?im{5J3!QKh((>Yk4zi+}a7HhIbAJictb&g0L8)cSZI0KGP72Tpa z`1Jv@4#9I88Wk@}eqAx2Q-HK<4#I^Ih|v(>1RWS1!H&oJdsYQB0iMd$u6-Fj&W9sQ z;Ovn!>Jv`P>i%ya61jWL{Sh%5oSI=025w7r>qmp$Thle`>li%}FBOwA#Nz@(K9;p2 zTt%OM>EL@O`khtDi=s9CawofmS$%_D961du<+Yo$hM<&7Nb7+rc4C5-@#5!cn|b>MS~RJ!0!5g$F>M$ja5Q{7q;}!~0wtGWVCb?oD=gN}0#P|szMb8~1?iiuo58|zNRA49e!RY3_Ru*iF!=;Bv3G|&SC3~(t$lCy z98y*q1*qnQ0-wXQaISi>oOPH<-tTppd6cpAq0SJ?K8tui?!2$scA=5buk+l{j>!in zJh{3t<0yac!~3Vb3e?W&^R81xi)7vsuUyNoxUyf?YsYAqh@H9&7|D|Xhabz?UUdCG z=Sly=34fy=a1{OCByP8>&o>6P@nlz9Bq*F(5sjB*fLKjZ2F5)-xiAvP4#$vl=@{FK zHH3rS`7z7dX^SsAo}jw*IT(g5BSu44vO{}>?AZ&AooD*b9fb0vwvQ6g@hRsOQvB%; z6?pMO$?Y)jk%K7oMwte1*$ zm8}%5+*Os7MFQdB#pmWIw(o=qaKj-=1evIXM6+e#`mxzgPsw>0%T3a1}?=H_~e6C18$ zb+SMSTFHx(v5823Ia<|#!?I2FX9NhOm^OwCqRq@Kp`l3)wM#$@=4U%AdZ@VLVhWrl zG|dQFChi>oRdo-Kml|M0`%})ZUQ3?OUtmfib+N&_?2@&&*>jt)1;oxY9*I15iLoRI zq7~$%XnS0|Gj8gSzwS^V6AI=DJyLhkJN2w%GDx_mCKiJ~h-eG7aj8PYJ|K0!V$UhR zmRUS3qb!Ed_0Q;GL=q~$mlxOgkM6`as9ari>r)`go=#i?XhrQ z6ua4RZQSz?@Er8`u|~RKlG?L@Z*jYwX;Z_adH$n_O3`KKmAe!9%J9WfRH8w-ey*9V zo6EGQMD@jk( zu}=N@FaUm|`A-a6rG4Z(G1jl2UiQab{VDeeHws`rAT~Ib{>hD~ENETIStbUOyzbQ3 z%AW=9?o&Su9Ttvp-iuEFYVSt=sV1Gej(_X7-;({(8h)_O_AzxAzh6@oCS{s`GUM(p z3zbs_{#W?Fte*^X^y=*PxS{A`t?R9wAc(Q|sS$TC!+50cXW+ezPlFmEvG;TEga3ew z)j$2=8p4^!{-yu>_%Y0!LT=Cx)yUsH_3euOQ>>JyoNinz)c@i?p0>I-{4|Jz*#Cr( zDA<{2!mFiIcQU^H_f)!NRsg2IJae`s-a#hUqV>cjW1TCI?Iey^49zU@;FS(B#p@PsEZmx3==t?qcZ z(lXG^Q2+gxVaDEL`P0j$1$P>){M)WHH?dDmS@|(_UaNZ9|M|0f62-gUq3=|u7-h)y zO+r#MW?CfUPpzLC|8@=5C4X(O^_6$%HAu5*-Y-MB4M$ElR{%FV$(YM;dV&uRY8Zd{ zcscp+-Xw%Htpu*@cMfgNPf{6M7pjj44O{9f zMg{4dh?=#Y;AxKT<(t6;mEBi*GJTJmj@)D)eVVbN)c4UcXn_d2Z0B5B=$XqqpRykK zB*+}o*Sxf++$(xI?E$?rB13sQoBneB|6pzM{rc24i|^e{Pg>aA3stMBU=IPDsA2?$ zmm@R*9oJgB$~p2U{}f&49{rk;YYDPaA{Ny}Z@m^Q(UWC;F3v8}c&#;gdh#OnQp*Se4p%V`_8+M|;Yh9wNl0 zg;anz8d^X2zaPgxQ|%1~MRN1BJeXG1n=1GJ@dR@edgvR9T6ui9MVq zzbd-cTMDS17QjK}Fm@hbyjM5#74Ug+2i{0OugLXwWP%bKO~;;mGI=n1ym0Ecs{b;5Je#?_B`)voF9-if5%+ah6m9(d^xS8d z9^LqsBH*fvTfWq_)PK!c8eCo6t5-0!4qbj$g{E+JQE)kZoX?QBv?X;eMf029qqHv5 zh|V*&T+GIa%zfE$2~qGk*V6FEMRX_jsDB5($pH7J#-ye2;oSub$2hlN+ug#?&07&l z&RJcpcKV>s)0q|>zx_#-JFOr=qgtyzf*0y4R@3_zB!6B&;xnLPhc8{iGO^2Q%va~T z11%Hd1Qr&jhY|23vV)vZ1j7}0$&#{S5O>j!4*gt1gP}J$<2*PTrnt7g8TRm{B6uUd zzrW>%_S&l4UzaL;Zfba93k9p3iO7}jsRul~kCsFX6s!0{+cnGM8y=pz@igoFB2Fwf z4!(D5V(>VNB2Ten=xzAEsZ*MxcxwNvwPiwkkL$z5@u4Mj7az~;CFWTjOwIL-CC=)_6YL2v2Zy}BpagYjSEZ`hOKXZxy11~mTyf7551oW7&?$36g7K^Qx@P>+YW{sdAAK(u`rP$^;^<4dI^UbBkbHRv|MID6i{m9gjwmT#y0$Ws{d~OI5m$qh zurnwzUV}yNMMaGuWRz?6cT8=NEA@6{jky_7pvRDNp%1^vrJ9}77b+!~fogq*T|8Mj z%qz&jxbUSfgHW7rW^!V%n+C<#_O{8QTY6Jd{5zSj^$syqS2h%V5Ab8{VJiI1-#-=T zo6^fhM^QR`g^(Y`-|O*Gxl41)B};X+5a+aIfjM4R0DMx-C$Mq1!C~y{P1?>PNq(lZ zV|*SPLdAAFrb>BsZh|nFfD{*K=H|zleudxye630MI{d-)D1AO#3pXOnG6z4!+y+9E z+K#<^Vg3l#hWG7BKV(eiSLJSV9`=X-vByZKVcHnUrMsSspagNcv`AX%s3?t#XGzM2 zhCs_5ZnXi?#3dn-_)-b&0^?EdQVfn=KVh&#jKD7TTGekn;G-elf*nokv6Y3j zuAU_a7LZjVaWbO8F+Uq)cO;b&L_9bv%b#mfu%HC-nR6a0LMiDb4AY?QR2x%jyqA|^ zHZ63olKs5qKuL`Ol~1xvSs$DzC9P+=!u*bv#Jn8$a(%>5w({kr7D`#Hs_CGv%gpQb z9Bqk}z1na`J6+bbv!e_pOFg0Sju#}(TR5fwfoizqbsDredufILYF$iff7Qj9+M%3%Jm|OMc zww`J^)rUgP>tsC187iniZRFeeSU%&$A?;orw}pTE9fYv;J6zidS@0{u2eC4qaTu$| zR5rB}i*Iz>#4`#S27!;#=OxQ?eW@YK(U4G~4;kk4aw@xJU^JX^dgJ~Uzytg}&!1*A z&H*kU{~D7Rd8&KJK{`XIi`;6u;QBlPlbBDA)bV<$#n4U__#Jhd*JkuOv@T0s#TCg^ z+qn8&QS!AQR>}7oBvj1SXjhrpKl(-Sj;=Kq9aAtg^>@?cB}x%Aw$|zI4&XEq8qT}N zm3HLgceX~S3I$ttnU(w-Hi0Bt_gkX+GPZGEp)QtwQH3{~>QvW+B|QHzr6PFdTj2X0 z7w#qi%GKN&RdIsQ{kCE)?)Yk77dJst7Q=4ZJ<%3=o5AXwLrfFqbJ_lM26yQ%J!dfH z22F|j)qJJ zr$79-brL$qNf>Z7&q~!q`$_N+W^7AxbE%Xw%~!m{-{vg0Fl~#Kdb0y^So9&ieN>O~ zTPf>nohsrC?A z0hwlwksuVvS3%V&X1LKs3g3H`%BXJc}c0awaOK=Kz*4!|B9=5Svyh6$Hzg8h7Z5F&@$K)$PEo*oAx;K;4v_`DOQDMpYDO>f#7>$ zHpnCD-Ie*Kf{_vtFnp2#+1Kd570HIjRo>#TUe=Qrg@<QtW00Egnj0gPHw z;{rqz#(t;P42QufzD=0a7zwylx*Wi7q}ge0-Z&%N{iye2v$SSE2kbiq>TJzp7_fI@ z@6Az*iI^bTHcSlXm4Eb7gdpt19-l0HGYV%L$e^JiEy zMRJL%`QNX~$E{`>Y44EPmp;GW&lekTnNMnsunY%PC~i=0_lYlmfXpa=hn2-Lm{`E* z^sa&=VFjg5g3+PKt`mbm@cs5NN>R;$HVWX>Y8K~9;8=3C90p?51x}u^lvV6mRc;8k ze0fgm(v~h|elVy7OLffU*<;UHUS2UDmHE8f)6FrR_JwJZ!4cdPU2X)`D7fTViQ zoM00Vl5nTyXId!$5>WY>;oQSOH!#O;Rwo9XmzGjkDv*@ybzpJcxT`~f+tK&lQof40 z&b44c7Ym~bgD08+NnhHG)aj8y3EEsvZ!Rzz<XDD0b4_UAy&pum^^(V~5OBSH@v zh)8?0eY_!1heQJQWRLEgd$w;-%aVsJs2mS!;3VT7eFP|x3FDanxtkRSSDBfByMYx# z^Pa&~e#nK>2x;9r^>PU-Szjz|#@KV3ed6~-R1CSpSgy1bAg)|Qfo$)#p*)>v`7KEn z5>`neDPX4zR*h^*4x5_J77Kc+EAQTWFWd?6KI$9u@ z73jdv<8g^N%j3&O8CvKL)LU z+^azT?Y{iiQql=WyFxV9P}l4xF?y$-6y)vnMY6XP#11v~4W1-pV#D@*k8Y3|0GYQu z{GN;KFfy5)7$JAfEtByv;nFfCp&3I$ewGL8&<=6!a^h_~)RVvkEouDxgxnB>P$X+y zvo^|S#&D+~{hL8_KCn`86$tsm%|PunpBozc&b50Kwe3^a``Sz$+%&zwa_sL&BB<*V z<{r8o?qP8j^WqF+HwiRK963BDfB&p&yRF4+uwE69FQ@=l-vnW$ z_**g^J}6K@O$$4S(1{&vT)UZt)e3foIYq8VY4g-4N+aEmm zR5rXHbc_O(1!5lGmOS4pH&PFx;wzt!Drx<9P_+)?NBf1klPeX?3&gWN&N_P4KcF41 zk+1sKwF%Xj{GMnhhRiGOCxX&}S%K{%$6Vih_zqxPF*=L_EpqoFCM)CcKF{&FSp#{^>? zvdH$!^Mh&5a&XJ?uia1>CHeIi^1}K*35S8$!^DCk4ErmJ(vu_s5Xh61*PT;cyK&|K z)OTAFSOa`ax>IDp8pBM%*!L4|ByO?JU~}0RZ49M-efAhP#M_YqiKy3}(7^4FoSRef za66`M3se^kF%EtXo4Wp?0>smX0tPL>?Ke^dl5^rDuK#hOfzm{b4%;4K>j>5;z9t4p z6O>nA=@_N!yrV>P_4wTEh9Ne0^2CnCG=tWK{riO1@d#CKHob~BdjFC(NPMV`P7o!h zP?FRr$osQ;fKCgiZ)nNx9h!OD`BeN;7+;!9(`XZ)4e-g~wTFmyXhYs#fpVq`bB!s0frw!CgZPPSrPSAalqvq?Tfu5^H ztf8gikombS)^m5q)kK3yKZ5RRUE+Mq zuX(h^_dx+@#D)gfozKF=vH?mckinUNzb8J{C39i`FSjL33IkqH=;ICEDF0z6Y@`m@ zUY0r13TREA;o%H8jOf;$1bg8A!Yj)TNnJLl0^%Km5@rwvYQK2Hh`6+0G>Cy?hqCUB zRKu+q@MIokQTYzQFdgw50T}sDzA+x~t0QY2eE)ozG2gUFa~%*H1JC{xIKv%)zXRA- z6qSKEOC?v$SH%+Cd)cA}F+ViK+S0_k!S01>>&SNIVS}sy2Cm0g7;kn`caO(uBp@WI zyWiIjd1qbO91tFXy!?9GybUbu1X2_bvXEO;uo>`jX97Qua2rtCj(rklDQ8S|RAl+$b%!+f0v3K=uPS0B1U zk8uf2V{ZmW(vTAi-CrN|&rqo*8)ZY!UuGMWdq9L<25X$$a?$1pYdMz&_q&&Q1{w|* zg}|hPbqBO-n;QChyO2pOSf|J`h(L@@@Q`zoYNO<2?Gjw4xyLJL(!E=vnOn|H^9rWI z&F@BtH;!5wrGpBInzmm4BYKmWzJ-3EEqSBU@8maF6O&%6-yd+t`sO|#K^O#O#ll>D zX&94iQI@5WQ7n(o<(^Gdx_Xyqu%vcgb`6LvZ%*BVHn;|vw)4d)(a``RaE>TjOL50nydWDp?g&n zU-^i|G{IabuEi8_xt%AnF7{u$tr^Wt7Q1>=g`mGFgh?EMVMAjCs9B0s#%U&N4)CF` z7sl`pKq#@rd{2Pq)qjz5hP9ZdRM2M9+~t=y86b_NT4UK32?|*O*%c2vx5ab(#{{Wte4}!@6K~k0KQ?fZ zGRrLfN@V~fT$+CY1e-OVNsB*J=nFveI|`Pzi(X`04A+DJU&x#1#j$YH=iWK8 zG>29egFbkmPNN-|WhE$VbyXjL^u%K0a~9TJ3W_h|WA*WaUl8Mm#9i4*5{pk_+h~*d z-b+7p!-fOH=u@v`1NOLHcKLW2kKL5%?>Go>Jm4;(FrC6`C-%;+dmZXB;6AV-^djkW zBL1!mt8>{D*x05P$7SoRLY;xK6pc(&EasN_^=egYM}R zJi14_I>xJ~Rsx_(vL)klj6$K=goXOQvOeguy;Gy<2(fYzaA~i2>Ub$s4HXN_BSe(4 zmxyp{Pf+I}$Ey{O3N;4;9nd|3>qe?l@@k&Jo7zv=x81kPD&_4V_qiiiy-bMnA10*ALL zN#e3tW(tg_aSSr_C)iFF=9CTi4+e9S?b!-nuj8bBE>B`$a*c=-K5#3BI{?B?hi5;} z*QWBSd1-Irr;qAHb2;v~W``ujdp^MIy>mYsd#sP|i~8sb*UTNHkhe?sji^xI+QE|DB4%PeDlZ5~P$>jf=Wcne16h?Dr4JrW8A1}pzAg31 z+gGs4S9NogJ^{-_bS88zm!>HjmXx{nu5s_e7juCkBB4feLQ}-th!p-4@#eh`05xvK zn`G`zliVTSVC?=QYmaG7xpd07z81lmPS(XeuLsp&e8!kLLQgOky<2n-W~%Ud7l{Nl$R{;rv|E{-C;o5|r8`N8A0$vtNC54& zEwnYZ!UET=3L_27Ks~h|?iu(xH#nxdcN7l?5I5`+h8*zuM>i52SQ|W$(k7)|P_ePn zK$SE}&ekOBDGXxbpFONF|Hh8KxODIor3#PE)B`g71zR=?<7_2~aTD@kZmpQ@cyV4r9l<^lDzh?hIPt?#`rg5>C+1lNCOgHk(ipj=INIOYjB=mo zs$QHsC)SFwxw`FazfQys1EZRY{akZ12f-NMyes}`FshTwKv$Q! z)RaN1ywU$Re_CGocbos8MZSC!YCuwRgV^*3$<|8?n{*-W&0jvjiwm!A4agLa0gX&X zwxQjJ{=|W++>(Efc-nFidQc8H`+i(K{9<8B zWBA1$ec}^)DbpdJ{XWA68VBeLHs{RMo zBPuu3anbO9*n9W5w9mVLcy6(6kDep^{9{J4zVkl>_P1ttsTL}s_F0Li z;PDH}SK#i<{uD$M*-(@dUQvGTA58r|d1}XsuN5Ky=x1n6`~P6!r+xy=sFj~apLr35 z-t!0jFTM-(7d$i+s29Y%_p@Ilj^DfZe|_gU`EUJ@&Pn-Sf}{WS!xxJ7_kP#^zY$-# z6aVjS#PZ&Ay=Yx|lJCUTMm@Y@+skkN&;nhkH7$=ZE)yn}F!omYvhl<57c0TFpML(f zAA8%TJNR9=-z@ZHj^RJVf6op_Fzh$}d5iyFpV+TOQKy3V_01kxp-nt3nMBeSwT4tX z>Gptc+e?#BDz0JC_>{FC;NxE`{-0Z3iIZu`vgrdADAB9ezPm8bhL7diGcH5d4Q~PM z&6m7EnUnHEiP#l3K`BO3_{yaZJtL^{^~H?j-x}<)J-kN8Mdo|od)JacDpKSrJBq4E zR`oAy>;VzhR&RA3#;#md7Tu2%tk6h%BiQzVMyOfm8lqN+sp(Q>YfpOlJ<&s@<(|^To$J>Uaa}LZ%TW*?f&?jfNDcWR zrToeQB;0hGOYn5blYM<;oQ5x9%IrD+=mD^JGF9ujuCkSRzx(=M?%O#iNMpO{{88>4 z9m78?M;)7_rydOiapKdKF4}bL+2Q*#^81Y~1nE-VG z^zZ`GzF41~UuMKRA>GdmA;!d#oAsjoBg3uS6&g%UBI6zA&aH&Jb*K0Cg1(!ZUB=M| zi7V>*DE=4*G%+eNDb~+`Dx1 z2{FCN7aVj_x{OXiZv~|d{)UGPC~b*1kDva;m-Ld{yRsk@gDIV%Xo`^$dwT`*a;a)n z7}5v*9tnL0AP$KOWs2PuBa=t`j^?R;fP&w z^X{ukhxO?W`yoYrx~V_1#y*fM&D1%Rq@B2aPfm=^lS7tZY<$D&Zd)t?cD@jayC*;R zMPTdt4=Gs&iSa|izyyc0`p{2g9b*`Xqt{WgXUQhki?CPttbYtLmrys0c zv~vbO3D)dl{VyVAA5>Dqw{(Y0C$2QzR$l1P?7k|?%6=sG5svllR!f6v-FRRRl8iA z{O$wl8*u%#97WgC7}@;xT8BsJ%RA%wym{8@1*rVj<$a0hlkv{<_$NhG!liXT?(ZG5 zAF%a>v9*2HnS#Z$j6^gqI^6Lv=rFr}Lv~jfp%1NWTW;5NFuO`_Wm{tJUJj+hvCYX_ z3aY$?&`W53bBbYxm=P3=UOZ5OV6c+ViIfz@IKsyb)Ix%#2*EyLmVzO9Fm|`kv@WI5 z%9Ls(S5tGMY)XcV2E!Q5REU!W)xX|_B_QTseDLKUe+&84h(WUE0$-jdvwsbHS8lPJ z__jaIrB_6yMg?R;2~%g?SJ+MoRY9h1q7_EEC80!DKykBbID;C2c1aGSMw@RA`nW-7 z_#vN{5TPZs7S*3uPR%*Sl9$OZ&r9cazEs^=m&fIk$%_bG&o*%Ao>xxB^LOk(@~5Ty z9P}u@=bq}YOFtT7PALzsj7v~hApiI+n(=Y^+?xTk!0vPvj~^|FRhhN=)_=u%k2$bFcuNYOFr{!eXO~DCNu{x&+l$SAxh;tj3DBBJbyWOu z-T60P=)eB}sH+M(|Bt_)guGH=XR%frKej6z5~%M!8Corw!nlso(zEH;`hR1F?Ls{0 zyRlTebQ7puj?ncgaZ&F3MJLD@mjap!WBTm|H-7TI+!8f^m61NYr6!?79i+}}Q*J5N zoKWv#90L8jXXsc>v;`@jW>eWoP}bbVOh}MgN02m)Coi;~kLI%kUZM6fe;!UhrwnvP zMxVfJ4mG;KwKoo=LvN0&gX=|_n=meJ@`8A3ll7EI&^T4=I*D@)%nNuFBnO~p-30)e zu)>46xc9oo12E;E(uAB|7N)4DnwbA$MNhp9Y6eX}=D2f#k<*^^>T(oqyW)aGDr*U0 zN&Bz^7v1|Z#b>T*EmM4(brCt0yNDcBI~rp8MNRg6Z6=Z-On%F_m_vDE@Dw($*?6g^ zK6@^EX@{@nD7V?7WCV>d^@B&$ytyLA)KzQ7=zeIzHdn=%?R5ynLJj&4j3Hm6RK(r| z1G-4Qdesx<6;rh z>dHrJ|48d(rN`?~mI$6%Le&M6VEQBcM1tj6NA#G1Rj?WWrc|(c#J)>OMiLSuBlnJE z>to{`LB1N9IeRcYl3>kO@Sa}3s7@XHHLAb2Ki#KYxzOaTcvPRGHl3z3l<%!_cwX~1 z*IO@W0rxxFuLGg20x>kVhw$E;hD=5IN2>vrRaq>cD7v6qn~V**4VE1INtUr=f6+`WjidPbr9~+@zcWIAw*Ly#VyaQiw%3{^IdWQqfZnIvqzJ{f(^JujYnIl@qDq3kg* z(S}P8*603V`!_@5e+fEhm@F-0%$F(pqp1IRb&gi!QK=W{_WOx?F{OrS%q?KYs3OE{ zGs7fV%rvxQOOaFnBfZ*FPyFY&qr%-X5|(W5q(3C-OAy!ujZsG$!=fvNcg;;W%twV? zbF(w^6T0|X*X`3!oj265;1H)me^X=+;#>+85^$X z4Wb3hg7UVN@#Iz zj~bF!PS8AKyVG!+-rl6BCL%~UQ6Qfa!X^-&d0STl(8x@vLzCram?~+fb9hVeCxDQS zo?i<{4NeqyOyebCszK}`uk%y_9I*;^P>lt{XD{_QG{?Hp>ipH#JMF!Vo2@Ny4gFFYLn8I->O|^j zGG}ZcSC-=2ZFqOsQE9vAzTypAr#W?4>rw}bOFGIcl1aGf(lHz(Kbb8j_rEH&4bJ%o z*ql(acC*>kdqJ4P;%Sy($7*2J;0Y_-J&KAB@%^>TOAkxfaxCkHP@?4nWcJ@)lO9PqJ zTLzI?m!Gf&338)+(n?HsAf|InY8_tU-$%%mQtP0%l0h2S=eSfzM_sos;5w?aubXD8 z@LUbv9Vb1Ud;Zd`E`%DB`^XB=b~+LjQ>Ed1E2u7xqr)4C7!B`A_TeY{f~v&;+)W3Y zo`6-6+Pl0PzL~K4M$+cbz7|K>HtTX6xZo=4aSc^;{C-~D-+8FxVeHMBR91L1M zi{Xtokz87@a-BKmxC=}Lma{w`w_-!+5Hxi3bY_lEOtRX0V(s(f9pj0{Z11H!tHq4w zyRDzyC!PIB-=OB3gOf&WP0{1wY(yL@Aoq9v@o8TK0)60-Nbw{AU1(FN%cfhsTkP}c zq_l|R*dK?k?*5TxH zI#ee*9}gugailEdh6Ypi94r5YH zr|8#RMK|{jAM3ON7>e^ko+|5J*l{ZnH76iRW7Ix2hcil&Gus>%JsjF^($&ar4$8pd zROVPzUF8ZSYIv#7d1nZttC`w)B(#2`2o0dv$|6mrp8U`H+$olm-SzGX5Ada&JHx?o0^sxDYf zG9;-QvrXLm`O45an?wi0Y6IoKU=tx%BwFKCFux^lF|+f2Qx@9`$7v>7qFI^9>It3^ z+|X1t`(}2OhI5s@kdGCG3?)X<#62mfG-q5WbW?>9rGpO9>bEOCbEAxfzP_YPEL@wD z&m{J*bLdxbrIw;v)jCtW3|PpA)4n{H2zS})=+NH{Qc zc70vy>9;DElK@gB&8**5jZ~K+Bluo+@m_wc*3pI+oP`%zh33p8G!VRmr7mb4jBQ!o zf~I6r7SbXEb8->MC3{ev?3*#gOUfLzZiFntYMHTo)-V*mNHC_)Z&KJ~7M(h#Z>RZk z;jr;~f@g={_Rg*Y*S|oIgh*4WH24!(l!7hSaPN#Y#fEFP(0L6AR46UM&ynlaO`rhub9)(vUbBWb!VS|)drM6U9MtSwuN0D0#CL|vk>wq+1;ges%Jl1 zJM8ajSrDJi`G%cQe9gk9$a%)c$>k^;>8;`?0%h8E`yx3uR9=!QVzT5*n&NWY=G;xLgF%u{3*7(I>x;{`{hGwvs%;8J~4qhG^{H3^}o0Fr|`^K`NaBJ4MYu0I!q}jV;nE`CWm`D>QZ_y5s^>-6p5IxZI+Q19nO4NRxKl}_Z z&&q*k&%sKrSV+WStMn~PnUChLZAu zzsL>1GQ#*JkxDPb#UdOeJaH>+`?E*;9TV16z|(t>{NelEt9>hh`sy6s#Mo$aNeRJz z1F;$^&P1-6;fX(f;wVuy$cMMO4n$$khc42H5CD)Hi=S*A^j0sm>q7-Ve2)@(ADdh= z%5f{CGqGcTniGG)L0CGv+ICkbkU;nY6{Mzm(cv0{Yrxw9JC5C~CUrflqt8C7v$zf{ z9f(qe_uEV1q@DGrM9(_YN!*oAgb;<(=OC$8e*Rhg6@i{pvyqT@og*-HE>6w3L@>ga(rUX0bH>OWd~$KxSjWztkf!wYV42DNag>DV{igP{d9X2o7v#ZODmJ;ZADjA zoE#mqE4AZr$9_QCB#sR=Zx^0oa^hKu`q7zCSqip!8U$4&C32ORzEnlbkn&$RV22Srso*%8P@A%^(uUd z?*f4o#<*|Ec})W4mgV-cIbFUSA4yw{oDxh{yV6Q6K`D)j%OoKj82%CMB?wGBa8sr% z!<2`LEW|S^+qxRqSfc&5H@&GC+%SS$ox|DJAQ~4;iXr`G!5M-rjj}tP27vq4i5g(K zbXUJGXArt(y0ilY%RkBT25JMcox#4AOepQxQ`B7NSbW}rAOU=|+21@c%_XG3zQ@7_vv_D9pZsWl#D$-W1_$GRj0_q;?}wl~`%h5>_Y`Ay5h zGw8Q;D{%H1Cp#iA%--=)r^7*4RWBaFw z_{=7nKtSgpJAW4ip#!xjKXD#+%Zr)N@t0;oy|lpj$|(IDdp<345Gla-G5>kHy-I{| zQ94SJn?WDZlHUoYuC3#{X6k1dV9+0mB+E;hL_8d_-vQRjiR-DR+|;KGXTlqaX_PQK z?bz+)r*$sd2oBl3pRC`INUo%`cZr-JMiNbn^;fByoh7InZFpLVFwdGgn2-9G(zIYq z+D1`tt3rbkF0!oG9P*eoJ&1}Emg7BhbCy-BxxLU~4c|ylhj!=xfv@E<8U6^x1 zZPQwzPPZ>+YVgrY3U{ zbeb@6@7;RxTWITF%r*Jp7#kal@(A1)-Ha%#k%vOqp}|;2-!9G3yZoVX-Rj>~?s0>9 zZ3-5Df^euwaM5pFB_I5D3SBSKCSjWsqk`S|Hy3qs1gj)WH;_qAcc&z~2E942T}Qci ze~88oZk_KrbZqXuqq)(T+fye@*Xs&L68)w;MR8#lzb@NV!<*a;qUEUmv3JG|4%0w@ zkLAg;nK^;t7>rvD<&JZufCCp`)JkFz7Wjm<^;!C4F=L5C(xpf{in^c2vmsro-w4x`)-dgW>WC;VaaZON=0nL8o z+ekd=YoY@Fq^72e?$+PLMD;r_x}Bt?X`F0|8&IJQ;&O|%<3m-)rdtCrA^qb+ipJ*E zzct$82o8ruxv4_G78>RlvsHLR6Q!#^fbFi#Fsim7_2W0#qK{=>x2tC35^8R|u6*-d zT22=<2cQtLWO}m1Sq3QAhSJ;z*Jyo;*8JFY5Glwmrk}tf!ci{Q*&05x!oe)-d96RR z|Dc#C8jkQ?U_)8#9?cOxub7{ zCu<)d+;fqG+xX1CSCu8lCF^eN;g5q@ffry=jxlkeJaOCgQ11rU$78CYI~Z)=RZpO##`D1v zSzO%^TmLKpG=U>9HP|Qw?W##bBosg*Vj*ezkU9eg(TTv_jUF}^>7g}MT1){%hAH10 z%(m=idERVIqHr?Ed8Z1*F<8}4LUo}HI`#T^YYdTmo3Fub=3+RcTrSS4y~Aes#t8p? zgJk9b;W3$ek62@h*;5!DGe!sIa4Qwl&n61v%Gg(KMR**Ubqv=NkiCLbI#Rg60c0i$GdTj_ z^F`bm!>f@NKTDdSD?A=^P`Co9v~DFbwwz1x%$)snc3b&(a&ZHL|f2 z1(67A3a!VC=?2Gruq_H5!i-2NZ82V818%bF25Q!DOlFSje_J=-TfQ&P>UZBSYhOuG z#j#v{oJ(&vAm*Os-z3%~e`+5IvmfF`+#Sv;i8~#FU93FT3qI@Vw;K?4Aqtan%rvZn z%Uky1HdWaC(wxO;QwFvHglUatxIh-MpDZnPaq>Sx;<{=z+=k#9HT5uokc6$Ueb%9& zve@~+eV2P)i#z=mYBZbT7w|?VC0LWw1zHgS(Wh|uor?W6kU`a=>jdn#wt^i zb`htXQ4c1tpHVN?A-Y4HEgImQ*PlXm1NAYT3A-vw6-d~f%57>=M4D(LSsyH)j3(J; zM{+b8^`$ zu|l)t$Y#X=iD1zjQS}emp2n>f${^0&hPK3Ru^8J;=p8m^dQ|37E?i!l8mlK;Bw;AfD&d}uqzOmLi zttKo3Ig)ngmzGAKby#-mx9OrAxFifC6%f_-n+9gqsm{j%VfrfW1BK;>t36ANiYG^9 zIQzm*7XR(fm!7Hb)x9{9nLQ1x?+qxb1Y3b3s=O3^PKkDlW>vNa0eZDZnzq^pu8_`B zKZT}SBX(kFP0YvHcGDlY&LuBg@P{IGfGr9vM2>nO`&lS>hFT$e)Pa2S`$d zd7N@<@R+oqM=XeoS6HMFXV`jd<#baiy7oR+bj!nqWo<1cBz2!C6zB> z!-*Hm?f(F?2Tt@TttT@c=f~;*Fq6S)h?&fmhBPGqdH#=LiI+$nvNAdj8)M2WdfHZ| zyS7O8c>nruY%KQY3q7kzD?PMwr_MEsaKgMZ#=H1$tmzvc8U8lhF=v!$a3SLM$)AGM z;pSI42IuM%->4##F(;4k(Ok)6Q%cA#dvcfW8on)q*ooDRi$nTWhqxPl{H=UR#;awM zCYtNu#4}b?Sa;CUDw_7-x#%f&hXZ6R=P4IK+%hRi`pIlke7s!^FGmo*QsHx$i)eg$er}AQBUrx<*ZIRFx z@?v3pF2jCJ^RF}pKzsn4md$%(jbiVd_Gb&%4Yk>xQpFS_!vEFRJqL`hQUdNOZ8_j= z#&SOh`kvD1H;(7|$Beb_zD>IS<=W9d`&b^~v7LtHRuTTP&@mo=ngQDOduXAA%z9Lp zx{L9B$-!?d_xZh{F3`)*0Jq1R=IrgEhAPD#3pa?=?b zvBNrF5jnC_``f84pF7DQt!!L`YCn7D+Y10(`~Ue;m5Qa(N)CPxtPocHgVpG#T4){i zecvv!%=WB~WkbkIb0uE#*$((nxf{FT_k7+*fP>H8n-3v?}3mi8V6 zLvML7=T;XaF0@3Rer>MLY#@11x&{CgV1yC=tsi*-`PCc$cG51rqWG?+VkG}{b*sZd z9~6DIQUgVKp02F?7oE6r<^Ags-XHy^YHlliXr+=#2RU{&AGwdh_M$ZD^dH8_je&n6 z(hViAH~c#U>vI%1W)3*!?8q16N54pYb+&vzRd;Ri4UM7QXrWIS822JnjCZe`Nicl! zMGWX>0}#A)@ObuDckGHv)`OX*2jgvzT zcy7D0*$#Q7v9!E#c41xCV$HSgciv|D96x>U$fdA6coHS@c3Jvl_o#$NKrpOA z@0UoWu3mstqCEl`?hIc9cgiq|E!@Sp>NG4|}`3*K@sgDiz=&Y!Df|s`|29 zFh5AILEIAMWxz6(jxC)W6)PKAV=J`vZ3DQfTu2raJS?rrwSk>?uck<$pdX30Xs+~a zQ^nU~6^^ob#85PRNl!Mc{&HL#cN)Yz?nn%5th>wLyi(S|oP?0n z*}j_@WWheiP`z==1ip@LulJC&%MaPSC)@znh2vJ&ll%LzvvGMV*FkJBc5n%@M3kAg zbelK$;ZK;Ef+&0URl@nf+4!mSxd)MYDQ4wwiBq<|-KixWfjVc$k68XMz?k2))QgV0 zE*)p1N>b#aT6g1YTGbZD$GN&2vXmKX-V_9;K?0KY-=hyo+2_q8F91$~s`#2lY-G>T zmX7%v%Y>`S@mXs8xsCQJ_5SeK$9y_tn?<^zVW#pLa+CuxcdZ6S*xVyq^JWyndAhs7 zLDHIZ;uV%1Ry({j`L(D@%srh4} z5kl>yCTSSxo-Q<)k!tNikWNNc1G^)SE zNX5XXxw!t|{?=Z#4k|yjo?S%DT!Zk@N&t#P;Ny0Y1|ALJ&j7Foq3o8%2{BD6O0~*C z7>zc9K0i9vMAhuB=^4rum%{2*WuOvY(CEs>xiU_u*?ZZE$T3WJirn_3+iWpK@+s9B z(7a=&iby|lgp#?-@h|!L+A}HrPoRgiMvQW3K^Zs?3O5?{iY;#5kobj}e9|i7F>q|R z_DtWN6B~8qL!tF0h@&1kMoE*2qmL171iio_?Y|L=)uNUXW)zKC{G{i88W^eaP<{fs zH(mD(aeB&rTHVsCmX2U6c3}^%uA@bjOtXMF@~7BH1ig+rygE<6%GXC8$H>e(>xIVM z6txJ<&BGV57P9IKd5%*bAr3O@Q$1h|v0d1?zxsSszeP=E$6^Vz(~G8o96qbc%z_Xn z)Zt?&V&jl`o#v=!MyN8Ups)s35@BD=u;bDhHI3aBbJ#VwE`@7p@`AEt21(tTUqpTXwX(!d?$4>qSqx7&Z>urz1X-SAAaXxnHff2UlY`aro7l1XxoI z)BE_6=>B4vmC{qRh7U0$P+t`KEFFEaxuKeC*f5O^bkCR1xP1EU%?eE8+%U-<$CB6`>Lm_(YXRP)ifig>ztEAwoxD~cq?$Vsi!yU3t?MxH zpz0kqP7<3%8#hT0vmu!(in6jpvt+&};7&*j+XKZoTKSV(oga`A#p%Mj-E8{|{q^e4*3bZUa!Fk> z-0p3q-W$EbkpW5tOu_VSP&;PdI+F-ksPaH@17d!?sT`y;M|WrXisWW1!J&HdBrZ2i zTF|SlS1WQ$1YJ@5q13?^Pf`^r?a8SmIDg>d`cz~N1Hg~CTiMWbT2ydfdRb@y?W!Nh zc=-trfheD%AZY38gWD3gmSHs_FD(vn6rUwpW8{!l{P zHsv+~8j8&ERJ@rb)U60r4(`OKl&;GJfm`v&vYp5`rXh*XcB^9$l(RfACi(uyS+Kzw z8Z;~(!>ewP0=RNfj!WET8=Ml588(acU0jxSg*}(PdPv^eH=Y9(``Gq(!uxy24Sn{B zht|&ars%^UogEwF+FHyk&qoO{gzz=Xr~ln=%XwLlv`9E(dIzKB7A!*6WL&3e!*(O0 zFr3%Y#<>W>r7}pATDecW-!oqp$ym(8x%%CA%+X$M9cFjKRrRh_VWI`$lQiJVa3b2i zh6Xjau9|+KZ7K$2gZZLss_B!iYXTM$0y(Jqb1&a}1uu>R) z82)B79l4$OowlFPbH1|T{JETx^LAjxX;d|-cnZlUC=g}v3KHJSF2Q}Y2{B!0xEQ2L zbq4bW#C>pMRzzt1C^IYk_VkrTrpQ6>RWHZ(kF`GGFX78NqAwBfbIb7XRj!9$X*2RlaXBYPd z50eBQse{R^40tLQX=U8R7%i7Cs8}8`2fQB8t)&gFHf{M>#qwgUm>?0T9i{$%K?# zZ<}J*zuP;UyJ*YF0iEubn1#Fv&XJL93$oG0#i{Q0p((V^Am*u$goqk;X`UDz0g}9p z;9w6zQ;t$JrJ``hr_a5gukXm6-+wWe=~}E03P8;%NqlM&&&}R_St=F4*fwGT(hpXw zhN;tzWA*pH1t|txHXV80o1`}M;*~~odjFB z=KeD^RW1oM=iXiO19zKw({_x}l@P!vlhyI6G3M?I*)Dfp_=22n*CpXhPK=wyUq3fD@Xc zaB@Hml)hSBwl|uc?XQ>?5i2J^mC`uX6a#+ibTB1&%1v3zv@VsBAl45~K+uUx3Bpq- zuAPKi>hj`Lhp-2mMA^muXi0)*(OJWfy7+$|cU|<}%(|VbArqkEDmI#IBLBk~bJcF! zGhf|#6`OWhLRi|7{H?qe5I3OLL%+H(H|93kIUcj|>7nw25$~J*r?k&r*fS9!FW^c2~jaXe63- z-gcr}NB;v~s9V?+Z7O=Bf!65FYg4`_)o}M&9++#4_pR<$hWF&$7(dHpyT_D_prc{M zOy%v;w8(0hYw!*j-4eNZF(JzJ;J9n7LR_-Pm!+j~^p|=-`5qk5b|b!P-9{tqwEJiq=FqXk(f{LL~Nj1TPj zI2};J=%f&OI@YzVcs{Nx%2nlMk6kKK9{_`S<}XAx!AC=!7XTy;tCF+*idm*%OPlY$Z%Yx&W_zHZJ|LOyvCWk=)N6ms}+3%S*b#Fphl9Abw3;8lmb(jdm!97n!~F0{p~Th%)$^*C-wAh(Uc{kX54$!aygTbJbh^oH!luGq zfU%DbY+NP>2`S!tVni((iioP#Ujn?Qe%qgM7MgDFu3idVBEn(`>Vr`#zIQpo&UT%W zw*)DW81U+;tA(eCg?vyZ8QG{FL09~5U!_&n1NWS{ItBwsR>vE3w*`p+?2u9e;1LKp zZQo=RlyJ7GcdXT%>%x~1BIb))mC`ZPlQ7}p%%?||Y*yP~(JB>bcl~f+(qD$Q1XoUHcy$xiG5+IdC;L^} zZwzx+^xKE|XUcQqRUzOpL}~=XrO#2hFPrs6NEirsNmnwW(m&eIq|&wZRiv9)Po?9V ziE9es+u7J-fF%rMiH@$X;FqGMz$Zg^5l3%VA@~D>dR?bF6X=zVR;X79djcsV#Bp^u zkKqzrqv^{mG09szq4toxs~pWxyocA6O8y}E1mSKdg&xHC}0iu7NGmkj}`h{wBi0r zP=@^hb$6a?-B!?Ih2BhSre=wraF}3WLOR9_6#^n11;A5) z6y^I)<2ET5>bL!iYe%uIQwOuUmeH{Kjp{upF2fN!C9sJsnI?8V2Yq8XlD7bl3^WAB zyF^8SGP>;mRVSWAm>}Jsf~!#_2GVmghCD-vR# z?L4w`1(;nvhrcJA0v^hvLW*+}4o0969jq;LN?UahE!||whnHLX^H3&rCTM+omy|AW z9vKN9`y)DUEVC-_fbf1f@H{43bIB)hnCYY{SOd-T-@^X-aUI*7GKWwoY3xLNNt(gc zI&Y%sgX$1)QCZU{5PQ~BJbs%j(-0_z+kUr(e*mFC;Xq1q-YB^>wFLm15RtLL zmeI}#=g5m-sRVEkAWE6uR$*@}ca@w0sLO!FXnY4-Rb-fLndb#yRxh1bBkJUnG!QCb z0kPoST~3~j6I&sOQG0V_CDePn8z{{pQu&k=qq`}t+Skwuy((+U@p~-z-rZM?NxR15 z+1U{U(nqQyhVX-G$m8vPcWb-4;FJ|s5@^kVRR<>J?+nsZ0Q8wa(mt_C&WUED#VP(2 z>8$Db#{aYVN$TK0X5eX|ab0q5Q$!vo7Hd2b?>+m`6rk&+Ad7naA>Xs4HBB0(pIgJh z(RH7=0_8yEHHkBd{oHmgU7*dO)1j^X_;vwhRx?vzw)V=bFDEoDiDOIscK?zZX!RrKUfmszIs^N0n^|&a%x>Z=Nis8GPkyG* zj>RTom``Tj;94dC{PeQG-vcBF+a6B%XT0M=p(TmsJZ@R1&Z<9TyOazXd$~9a+G?l> zc55b*k_fS*4+|xwAuofYVNQUXEUYV zV`sI`k`A-UXT1^e0G1;F8Xn-#fh$H|%z6J){R=cy4oFclRoWSCsa7-;4cp3JO(VgN zicl`(HpMLIW|@a~0}+o6Q9;ZeQXb5rFxQl8uBmsaXvZQ$SeXKzSy}S7IRJo7fSGtsK8LrACVF!(zYtJSx?zxMI3Va30e~c=z1Fcu>iP*f1XML z6ZAM1J}DfDO{u`4-y(D~#~MsKYBWo~^X+VFe;C9iOomcHuY}!p$)CIXJmlvs%bZlj z6)8E4a!_12a@Vqb5fGXWZmAAZU&)|w0--c_)=CN%fwkU(3_NnUJIojpAX#crjisuy zV`;R-EK)yVdPltLQdyXMkl{+pYkAvA={?$Y0#8Wem$v5hfVmai>|!ArVYC)nhlnT> zY;fCQivlIAnZAzbMbB)o<`OF=)IJ=~xX3c*>6&74Z{RGqp7Ab_wTE4rB4m=?f#;d0 zx2efaKx+rI8D8Vtq)MOErOmaGgxH>RZnKkq4JYruKb)CG<9qV`iM;vcNIv;MbOC=8 z8+CA)SX0B8#^c|s+QLS3u#LZap11tE^aaSCdeI|B3<*=#JCLh6T;7|Gtz)QM2KH`N ztKq?;2FnxI+4 z7N*z4sSnP?j@=I-+0&LjvQ<*TP?sA#M{ujOKmv&)#nrOsY)C?T7Iw&&x2*tQ_l#4S z%p|Bugi-;dByPQe;g&q9b>-ot6>G*m`sWWBINH80(PV^>&2SU)GRG7<1DuESBc@jN#vw!h?Q93`rJ4BiZ z3eBw~{{bc9bdTz-Q(gK^ZU{ZZBaq=fQBxM{O!58s6zK653QG-o+Mt<~Qr4}XXNxmBFV!;JmLrX>1R_XSTT@TNt0W!T zOE~&w44=sce)z`hhz!2fLK(^=^EHK46Dn>=IDyH#P3WGS zU-|-05VSlR6I|V0YfHjX-TpKph4=9 z8f|*>Mnss744(3l6=l+N)ml8V0}8*YT9G6zTc>igpE2|2 z#+sr+>0TimWJ4pF&JMi}=RF8(x>X|B=e%sL^Ry)THhfUXXzq7+#UgyT^BkCqb@@1L zL$^7iqh9dj{xB;us9xZW1by4Cf#fA^2DvGNvg5Sy79AcZZI=o~?fU^@Fd&<}?&w!( zr|0GIFH-`LSL0v|7^>u>9)dDRKk1xXW)Uwq%+Mg-CUjr2 zy(t975WPa{it6vnr9+@}=2Y&KWaTH5EuueVd*8p_<(W#l!4j0(v>0|Z655Teyh7WpP9 z(v($#QFen1M#`}k;L};6d_zFCH;OP-IY8F%2Ri@$n5FNk+Qe`;%G#wJSX~OHt`=t)z)5zFwYCmiiOgazkf2>6 z^UgLBp!JZm+JJ|P(5>U=C*ki0>pz`vc=Y! zXpm;a>WlPasnVUV`Ggx31?;>_eqkz^M1@$2Hf{n71(aa6RFNN{1f+@1~ zM#4_MK)bKuhO`bg`I{yCtZt4oFs)XJ{u(vHqf6v6`3m`k(HJ~o#XMLy zRe%dg7VWuDYA5Y&%GMIo6D-@nYFgsL!I*JkL;_&xm2k4EuiCEa_};)CL5Sl|C`*F6 zG#X(nCFdSFyIv=Rpq3IPmiON^k#fD9BAuY*n$i@v8T(^}LA$$aZs}#7mO7+_m*;%@SWc*~Mp9I%xJMyniar;}J8(j7&)!A3d zHvSMW$qf%5*Md>Q@#l?xXme6uKBuYhHbN&05Y7ghw0SZiA{uZWS6i{H>#)O)C2p*dRe)heY@`7 z9Sd>zr-pS!m&~`;7IM1^!x()@W-heGJ|-|ngmV!fEt(&4*lx8fW(3v1anznOoF3yjhlHMIdt210zE#9;4p*o=BSZ#R6SvX&da<$m@p%bsD`^QC~yU~7| zr97_Dy$XGfiQ&KXGhg(DqM=3XOIANS0k!I{D+3GAmyW%5&a?3g)#F9XyVe&=Kt` z93E(;^8&>&0}Hi^@M%ZiLQ-~;lAD%*GS8H_6SHU$PXMoE4JwL>4CcA>JP9z(gl_bW zc$!tw?=TNvREvk%V*`gRDIC2nLn=gBGC4j-apZnq7`Jd|+f>AvYNR>?$!fhoprR^<%whJP{0WF^xPad6fk^)k{m&Ni zURsWcTbloZSQAq8-5Q%ePQDEY<&RaMfX!6>Pq$jPhasdB@sf}BI@u$*yyo7ama0wJ z6u8nXJR?A0%ysJY@*SGGVB12WT+8nI_3gMFAc^0o?sudd{RQ85wP*w{Y*IOH2fjJGH?Z;$nw`O`ZL z<`w$xv0pW8bro9whM0b=#?{&cTV*wg*9G_#X>(`&@D}*7x*L@0ps#Ox?O#`XITsD$ zcZYxVgLBwleiDCJ_C6Z_x6e_*pEK?XlFv>NHCv*;bLBxdG5~Fkg4rp8NNV@G*b_e4 zKfDGOzo$kEm`UKef_UtCTqV;4cqt*iE&rhkJwa1L4WWzdQxHh@1mA73)-i0K_);d` zR}WU!jp|Fnb>;WEO4Jxy_MAF~MvIk#uIgCq?P}3JP7J%ZFB8V{r*6!~?yk$t{dwte zVTQV4Dqy1lY4p`Giy{cjUqLvRKIH^LeEXMJIb!mc zxJV$ezYO`aPxOOwk#XWZaGUr3kV<`Y?Edco-_b%zY0cg^mE+!X`S{v%ojvr`b#I*u zCA_bZzdB&gnU=3|fB7Hhg3h_1YRiGw0V4EsMuUOkKK5d&zi;Qf{-sA?{wdG_a%{xg z>t9-~47GnS{PF_DG<;xg=|5ju?p*wkIZ*K(0sMMh-}zET!WvUv^0-Iqe!NQff)AZr zvQ2rK?I$if*A^&WI@Rf)s`uTS{0+{5Z+!g1xi*}6d2#cy?)60-==eQlC>||~m!8-g z@hfm;7D}AlNZIS5fBwo8OW5}gu7K%lO_Hf>HW$&A%-XloOrfV3hKMZ~U+#sfSx5hyB< zMg;}ri6Rg|;Jq=2PMdzOeXsrA_x)YhFIWC~g3sY|f6n*kaDM_|wlz4EF!;}tCi>T2 zOudQzbHK48_f}a7uMV9#H|g2?&x`*) zV(vXX2O9hRcLT|S4)$oWYycaxmJ8Et%Y-sJFyJZUh(-+;s&lSSX;vFMPA0V~= z4nAQpY`ezA{@I}wUmbk#xuB^3;9SrR|Noy0x?uw{7WJcZL5Gg#u91Ja_*+IGSiMYo z_K_{VsU4qx-gGEt(R**5PQ7yTjJdt~;0T``aC(*CaM0(yE5pKu9Wi@jpsTn2`@1^XbD8M#82tYF`ibQVU+!C*MimE`&#>6(9Z4F z*?N16jjug&@7Ft6xLs0eb!KW><+-y5okN9rmXfk}p+T$zY0(GJ*(msGR+l32tKZLu z>OKbFei<}|`D}$mVjR5cy&v!z`o`=pOPvwozD82=T57)~mBHTx2^<$7(qp$<4bHaR z97OPmy6I-)rEAWpMKwR*Vm@xGz|mF{VqGOSUvzx^J*wSV!7WUwj6dEo|m3a)&K4b^d2d`G{Kwp%dV32_7zr_C~u! z^x1TYTENNDSZ1Cd|B07{8`u0DY9!9`b``Fje~agF4)mThSxve^&lk8`nldVw3}yk= zmY%O&k&h5dwa6Y`+ModAY+!A=p2N!H+0WAC`EEr=IZy1ia`opWp0;VPPzb3@nsmub z@kJClhT3SfQiP(-W%0`tfo2}^6rJcmsoQk&6V`MreFoz7)tM?KvHZgM$hrsE?I^%$ ziY&2n`h=1M4p^g?Jjo1r)o7026JF0(XiP!uOR)iRSU^6jGv<5lEJ&HSiroaA9}WCY zJ+LNfG|Q7N6-jfHYs9HpVD{BuT>>RTlIa@>TzZ+}j2HR$W;DO9lLvTWjkwOH&F7lno7u1=uxQ9>65+8BSnHN^5G-f5K8GL z>pNxhIqDv@;_+alA*{1;UKxg~;*`e&^=MX4bB!gh8N$G)!76TZCF9#~$QMsRUsIvs zlDnvAKh|z1RSv;dL`X)n!i6i_YtxwN+Q@wK?wd*c9Wa?W+PXtM#=&KRKGmp16M=7} zlh5hX1v(+I$z+|W^X${gr3vR{QWGG7w17kw+Y7M*oo6p!g&Kg2m6$b^X;$oW7~?vdMb32;QZk}`nrBdG zJbMLhsMTKSdr3@4CNpb-J9dprhc#A)aFioJPJ7*2fo1fNh@~MwBU~xO;ZxHl^z@Xe zWYJ8z#XW^9aN4ycB9@|+;HcYWe96-5N4A+=1;SsR~+qf!q`j&I70R<++5tP(bG&Vx+b*WN``b&U|&1y?Nh2-9cBRDAoL&Cd-4PrxqYB zXSozDFAbG9s!&v05Oy)eUGh_aLcb|4Svl+4l6Pj(5ZlU1FnIk2=j=IWa*wHiPc^Pd zpu%x)=7l9}Z|9fs-KQ!m?jZc~W4qbsYRz1Qcm{qdtCFk*Y@^rkw}}alX1vF6L&b0DZmP78c)#$Q@1a0s!hie zdDPF{!{U5qpIr*hHTVih>ZS-2vuBp&eQu>v$%wM}v5WZ4N)Jz-p9x@WDSzt@ci(V^ z&!JQOyxFubi|H(<;R+B=cpBq%^oz8;Qzn0#uoXf`qMFN%65dSwZaQ&$;W;hopmdW( zFq9`XM`Ew9Ct0sZ(uh8cxtv$dY29_<;u*<+X8=jQ@?iCUivhape!*6#pU*DwYrpGmAk=XX$zBe!4n zdTkqbQ4|{o_2P>2q^SHD&z>w5>>8N3E>CgyP#A@k75Q$%_;p*p&_WXx7ZC+)K}z9E zzEs;bngr9BlNevkLI*EFt|0W77C{8gk85IDssd*1og(c=O?oHr#pY=8Op#4&hXI@cr*PC zwS7p>B7cykI;7M%_sHe-s7}W(B{Nj7I)~^J`BY}1ozKLp`J-w#gIe1Q_Vqi@q9e+P zO^Npn_PmP(Fg(N%(xaO|i$lIY%1d_?`foD}FA_5AJvaM)DXQw;D{9$mbB&LVdY>*M z!mgE?M)g%nL!S7elqV%|fEMk=3=>R!boX|+)A;eV~q8==GB~8HR2r)-?2Q``fFIW*~oGhc@ za<)-K(`bq$%l)iMW~(6WzR97ys=H(oc=tjFTpZEp3CV1CAPGv#b%;AeG)dq7x$H@7*6x7*3mRGr#SNG9^wszbl}#hlQW+u5CNyWk6;g3=)~TqMzTWo|)YGbG znUw<4g*@^(k~Q656sL}_9_S;GPj!QX?b;gP?imS?B517K)6ARfrl|?lnD5rybC2d( zw^Ha=#U-6S*Or=|+x4{&TvZl4%%vIN(fyg)-BuiVV*+XO%_Q}eV3ux{thDcHhPr3; z%EAikfS!CV0fY1)sOl>HFPnphm~PB)l8Kxwg%EEQG$ldhj8qE312;FSKOS}1Yc$Da zoI>rsBBBFtQgT~_m8#r(hW^%{!ZiHsIvRr7!_)Bfr;rUz)LgI=Fr}L&ns>?4B~@9? zCWr5um6>^7wFQu#ujzGXV9TU(+d9g0LAp&hLt$HTLp-4VYloyo&yqr}*(B(67W{H2 z$iWm8xlOf|uFZ7fsgED5E8{bOl5hYev2j>_F`;c=JX@-6b*xn8jgAaNq9jP74}lcB zTUu)j79zf&K#TuIf>F6MkoNw)zWvO#xvIYO9zr!G!__$eP8(MxL)hKd*IDz2xmG|()$YVA^0cBh|A_K_xb8 z_rrYzv->7~`qFf~dVEwtXPV;%VU=W`l!428#CF%%mSXNWNH~&dLcUXWCZm!qGlh&~ z4hwF>FmYt!4EUJ6yecW#ZLCEz;&%Ctp@|mAP5EF=egE!)1`kk)%6)|Kw5~M8o0|NZ zJZRdZ!2n9vQRT)9I*Bas*ikN; zWWl*f)T#-Y`n%eQnUH>~s+MW%vL?Y?XLNJ?oc-cyekaCLIGBMRe|H3}f*Ylv;EXkd zGOnw2m;2)hQs8O0KW>+<>Z^M$(2d+uE3{S9YMU+RW2oLJlCVEJH@n^$B^t8hnNSg+ z`??tsW;AjglP9X=ZWx4|0{(GLTV>W{kG>(%L5kb5?*cf@@67coIK9HB@!U+Wpfvt+ zV@;vMs!zCJq3OC?Uy?Ugfg+`=yuUnH?_Ev-z3qVC<2DRqUPQOO8P7fm@Gvn_M$d96 zr-S|~WG3|N#7W|~#-&YEoB|~#huGR+rC+ZH)X-y4;$l;}WLjI$K^_vIb&{fUS+#@X z&ATYQ8wEZ769|v0>I4G2(Xt%dKtl1j*ugxmWY;cQFrAckk1Qp}wz^24nc+D}18M>1Szze4AZAV2wy*i7gn0OWg_zDHK(`87C!qT1((S2YKRmc``8Uy#wLj z)@&hwy0GS~j}oI2nY`66KG-I}U<1JhsEF>mZCDm%TAAP^znbNa93?n{JD|%1lCc@u zksvrffgjo!&A<((@rUxR&~OM+qx+EmlBcYH zi~HdrjBhVRLUnhA+@-TK5i)aJK{^SqZ3zC3m8wkRbKW_}wu`m-Zo|%+KA7b)bTeRml_@<}o zZ30yFY#$-}T(5p27N7z!>t+{V-j$VNg)XBL(KPp(+p%vPsTlD0IL^RvEcCt#fD%p*Ep_O5d-tR#vhnDi{%vnm0jG zo_h^ZBWpFC`Uaio?hkhboysuSCHpW2Mo4x3py=35u09(iRr+da#g90XzNj2Ik zG1#JU&*voYS58+the;Ecw)C zTe>2nkaU>P5U_qw19NupTRD=t$BG3-VjI3Qz( z!Tz!U+4h%H-K`4BI%#6EAf8O3@`3sxa3qaWL{cWB(JK0P5&Oce;$H*Ann4@(>Z3m^ z^@Z0%Pev(~@c!t3^9}EY9-6Auo`BDP^QZ77yTjv#(|4SC{lT{B$I_CJxr%>Kb-Ts{ z&4#nizf0Q79>iGVe|+DAfBE*AtE6;ft_HZyH+L(zW zTh>z#mj$HaA+_cin} zZ+>rpAMtT&Q^mR3WkP2p>?oR zzBxG`l-S2cl<&bEO4W;ztU>=ePa0~EO5D53!e_6mFX!OXjZ7oj7tQz8=^G$0@0D>$ z2mR_Q)M+Wxh(gO4&ka&Ra_=%5`tPnRe2zT>E$aY0Y559UNqR zsU9-&{k^`PHnz)A4sBg)5qq0s=lhl5;Gr^jQ5(Uc*cdqMDO^xR_V+Nh-*gr7)%0Y2 zgf|5>v&x&d?br|yB+F&3iD{&{saysp!3TeZATr)4!?!_nCa+z>KTWbFq>NCa)1~zz z_=0%+H~Ym;T`GBG9a{YH8&BR-)psGe;R9tNKQB?J|Fkg>cy#-GB83|fH%wPeHs82m z4uBM8u%;KEFB)l`il_3a>OiIiXD4hJM9_B=%bk?PJpYNfj38yy!7u6breCirt|1A^ zqN3HLNS!L4H?31le9=nw+{94QDoYa?_nM?Np%h ztPd36wCdA&h2Kc33?MfHrZHMU%DJtuEGbz~FFWT~-wy5P`C7Ubw;~-Sl4@y+O0lcD zMF@|Y;}osnclS-)M4>1(R?y{_B<3k({25Yfm2#Iy&G0x1g?NXyr>im%q_m1`*QBw! z1E=DAABOh)`ep%1XqFMTXbBpN-m}hfl}7T3+ur2Kyga4XpImm@V-;2#B@`T#)2tS% zBO01e)V0wzP&<&~)_;T`!RqT)1+x0N1vsw-`X^K|G_x_#->iCLz9}QD{d@4`*|$t~ z%`vJkiy@kRRx?^s-j;U#7=yV{RzVetM~Hz-aC3z}aZ;LP7P%RkL*?s)vSp29Wh5sRea@2_DW>%%r;%60t2U z)*5_EsTm-!)Pu(u(sD*wj#G%sjfvKkT~0Nn_YC0F2M*W7lhY^1dMPnBx~-Dhp+nNq zIv2Mxorz$kqeJOnvZTt$0)+>0;@^0z_!3Dc4F~>bJk)FyWL2UVO*gyIAP7<9a#Y8o z6K$ahf#e~Vc zuk_W=h}B#y!UeLV0oMr-cS7&ejs(V9cR0SJPGEafvmA0i`5zhj=T*2`h_gf4M{w7E zqZfnX3jOd21UPer5HzColwXz6%dB(;s3EDag>oApv_-P)rhu@Ylx76;uVV5VdD!}V z?MdSEF0?1zPuNkxL`;qi30IER4~aCfI`!oOqRoFvE9y1$OsH6yD^HTyRKI@h^>_V<*k1=X9aZ>|b*i(MRH!cAOR4ng4FD|bIT zn(CxnBtX3a;|5ef-{j`kUI7M$p+tM;72D>Hq z@=bSxY^=Wl&S}pQvwzOw960jevg%F$L0R?2{{zaZUx|I?)d!VTk6b;y_*++y-I%%l z{41Ud>=DfAh#1~89S2Zf25)yN6M`N-#QsBYfym8HhKUm%3p%}!_2=S# z@ko<XZ1IPJMi zcZ8}gJ|nv(DLJn~$c?~z2weiRxn4n{dl{E{MI*aCSjI^(;xUzi6i-QB8TitxATUOj z>e)rgYY2AoItK#PY)dJ2ct;(2%cGWKiH;3|u34?IoKp@rqlPzURPItiJY-ppsk}AE zkvHI~g}=~QayE6>es_^9Fy$l*I`Q1mT>dO_HuVwjf_m@h#RPT}i>>BGB%t4nS)iRi z3hOjsvVv*){F-(W_p~Ya{C!5erze1r?>~H{=8W_A%!F(m7rXRpL(6p5NfL$R z(HKBRnc8|bOP}DwgHK_Yl5GoeeDT|FxJWlWmLbG&%AjsRnDoZMQm!&4p88#_p|&~R zDP`^7(Iv3&?CQd9lOX&XExF1ev4z$fF&af}9$c^7Ns*DVk0MDVZBh`In{D2O7R}5= zP8Uqg3W}cd$64yj`CUWu-#|Q4QLsO^94!YU&=6?s*L^f8ygskUH1O%pU0q$qxjF~# z6}>ZesHy^+fu`YVYe($U3T-d3*Fgz9okdRfC?r;4FXpBki+^h>BGHNWnkg>c!3&mU za-91+?yd=J_xWa(Lm-C(d&`Q%LleDBkhW4LnS@U-a4u4o75iu0ezd3i_I0=P$@%_Z zarzCl$xk5T-2);Fakod*duh6Ex{Jhjab0mR)CQ8DnGVe{lAH)iHAXRmv=6x0f{KzR z@iBxvzWh4u*Ehy08l6j#DPb%-Q7D;A#yJ>A|)H3+IHA-WFJ3M`{+=vth<8qmXZCsSe_GI3F}c^k4;PhOq#h>dxb) zI_SPkC{f;M#XCtRPqH!%(i-I`1p#3xCzY(Lk>W3Sk_|PkIdn9^_CPKFQ!x)|OOW%? zryK}{7`O*J`6yDHfNPL>L((BKR!ihql1t*l$S0-=qKMHlha(Oz-egI=Nf2A10ztfm z2znKr;>k-zM|3u{pwa-lRV@azo)pbf@eC`G2(+j*$DpQ2&8fa#ca@>cJX9O$DqIkT zZhI35!l1{(shFfryt8yZBi#OdsX^&6h%h{7^5F}C0rtq2!8I^-cxbh6FPtHlsn;z< z%a)fF(OzITk<_M>8FF))TkSJ!_Ni}bIYPZ^M%^+*i&b+aDMrst;rT1z{4i(WLjYNe zE$u?$+8S`67e)@dL>!22QmmY~wOm2M^1YQ;Ep@%Bs&f997(YoW@o9~rgnR4Y$qYu5 z8t0W+Ge~*~sICL<4AU*|0M&1qVvF!a0GM&s8Rt_^;T;msdbP2V?@8R-b#OG>5FsPl zIoZLSvNVI8^{OR#;*uD%fCDn`azN_|CHYCpyujMK?J1Ai0}43TFv+3jAY8h@8l66h zrd;MRdy3*9kkB%1>1j#hK+{J8c3<}lX7Z558PCAm=rq0fIhi+mB3Dh-f@u+x%Y2Sr zY!0YN>+-FsA8EAKlggvYIYv&}guP8CqsLp>3bN~YP16*9FO?orT@r&ckPD^x?eU(O zaEo>6%puI=*o^aKpT(ctdYytp%2!UH>mm&kLffQ88`46bM13R*)3%Fb!4zxa#t)@k=by4Q|;et~BGvE0cCPT|G z8t&&M>!R>-Bdv$p)M;B;*mnnenJ zw|+vg3$Jh1P>Y(b#ZussC-nj;X>Cm^6)Tv&G%{`O%^`UdZ5k)=G-v9z=ar=e^-Mt? zDA2xc#cq)gQg8`!rDQM}4pkbALDG^2}MLIA6=3ymYYuc%!Iti+&iBDm5BuFcoe}o&J z7c*SW6eIE0`ep?f_v4{+C`6B3zOoRAsv(0al4!W;j1zRB*~4>TPB_s;MNpJT!9a_K z_8rBsvSmr?T$tNpV5UpzNeHI6nd-xtaRm-XpSQWvWuK8+dBq>#Ova_1t;6-+%v5K= z(KH~uAs%S9t#2EY>`ZW4CpHTNz3Mq>=*v_yUkDrn(=`z&30!a4P$%eBg-T(W?!l9M z9cdy`mJc&%8j0Pr-*9ZQ(2<*2NL`Tnx*-S|eL#M61lv{OpT9$H zPkDTA(CE4CDQALGk{wiT-+;Vu(}3WN(s!b|xf8UL(6n``*&26un@ErJ$WbZSoQCrtZBpy&i&u-eMRxX2z^y7-_lARLUMzHwp@6A~N`7%5> z&oe7j6k%A2NiA3>PcR^S*ygVt(3SsS*+n_j96BbG5s8lQSk=z%m&-YNj*;n(AFi2V zfNXd3*Funu9*YHP7%EC{X8%Q-Q;pl?8*V)E)8zh6F=ERN! z1%GA%rwbN40tPtApOib=EHR;swRxIGV&hagDethn9`@sgba~af&%zfS{CF>ddK6tn;r!E8tIBI;E^^0!mgD z%Q&THs?oz~hJ3!Xx+(`0{d%yGE)f>zYod?n4LprE$JkA6xF#WSqaq;U2osj~v{@)k zY6b}{sE`%3U6+8;C(KLrGa}NSajF)dvk`E)GlPU^)>vBA2VD>|gOOc!`tXIUwU&}L zFht$zY-<@ztC)Fdn2@U`m{p1b5;Tr zRC+$l@C#_;CY!G6OG;CN?&>9(B`KJbi-6#K*1tcs++|rjcK45SHyv*h1&fDC>z9QIeIz%EKQNg4=hcj)MG}C&3VRqWiv(@ zT~(0ok;E(fbVa=d1HCeZWspp3awm3yrEgh?x)*PGDGq?T^2wSB@`4cJt;Vf^$Xm%l z`;L#O=Ej_KNjgm=5gs1pkSa4yCSuFvcIT0RFpGTDmYk++$rG^Mal`h^lMMehi^hmO z&h<(zO7ZSN)j^HH6*<9_QS(gGw@<;VNlit9Is6E)86a3zf`4tvP%3G^!^F9&(OX*|Rqzzix*q+(6I2(0{RF|8*$gE9j*=Qs4K%^`7Zd?5SzA+HQK-NIQeufDQM{2@ZRpOrB39fod!{nfgjh}7#63s9U? zcbvqx4-lHI`nGDxsb80T$BaXc1@LL zcAriwnV9afus-WthNXHAG>^oCk!Ox%6`pl;rsSow!|R=(*)^U*dPL$AB)W62h`2;# z!$pmZzR8A?uT*t~I!NUUh_4K7Hw|FBi5WJzHM(b-S3%x|5qky9Al}Pi^6&qJ6fqNQ>Gw?@{LEP zTkyziTG&i7xr42}PG1nwy$e-|Xlt8fT6+D+-0Er;tAnTDX;tuvJwPecF6d-tx7>j& zFw1*zk8H|gdrc&IgP0IP9_W{%7i;J5VJ=69a8)9f=R6Qqv&=AKn%CDx zNdXap(sS)&OdYNbx!~3t!N*51q6p`LqZmc;5ma`bX7!^SJhBAqe;V z;lF+L{09Ib+cH*}KvkREv*E#P@KbLKLAYV{0x|*uo1$-dBcTMgNxSK%%iCu0p^tvN zd_E(A)wRRVY&Pa$gEN`u2hTlFU_$WR%9>j#Za!=`QkLC*A{cy${q-sK0Ca^v9cRq< zpKVhqNRy_&V`Ee2-+hloZru?ozEpI0K9Snn+Fc4|3NvVnwO>+^$0 zchLeCbd{Qp3|!~wob%|`ZbIC8-stx}fe9!QUQ-TtDTck6wi@xkHTLUmNw};ZQDyFh zw;!G3VE%VqcN>21qhNWM@_U2W^u;i~B$gh(=7z-*(PkmG`$YQesA6Q%`f`}W+)j{&j|Mg&+vcz)?4>LEOpO1-B zHqZ-Mipy3_omlIhO2=l9bY5qh&WS02B1D;GlI~mtIz@HRm8KuQ%AFCb_o(tF7!!Rh zN}klL;vLjFt!MlQX}KTgn=VQpmkjT$tsMRQ`=>qb+|edA-KCzt4Z9Crd-P+iES*2V zk!R0-gcB&XOp);>y;>3>RBHLO*0;skYdDz zJm~_w-d8fWYQw}P3UGl~5p1i`y+B{4mTEBsk%XYcIqX86fEsV38u_kDla0XvSv!_E z&n^5$L8x{nnR*YpdN@f#RthiGnus2c>&7~^$s3ETqma4L!BC`wZaa|#2jPr%p@yV! zb9PK8Nc2Yu;#@oJmusm(Oadt6583f))Br-5!m{=esxbUgSFOm*}(<=n^ zRk}I_FPl$bq2NoyEOuF9C8f@T;5I<=D^?wdJwWfwE_wVPjnPMB&^oTGk5F@&t4vUzwC z-pQ+qwVhomfiE<$!G^M~f4};W&ML_^4Q*c#6Tc4}>ukHtV+1=yN{13O04Cj-i( z7AAmMBJ)ZKHK!gU?#F}k2~IGQ!TuuIO&*QQclUF+@u5KO79r^0h1z68*}ukv#z`XO zl&{8XcUP(S1{v?mA41;C=gZW6rCXY^yx4E_ff#kq?OmRx-`xMh+{K>ddzcXV*1&nO{H9MHNPLthpa4W0Bh=9JBrIBIT!z)2d_ z8w&P`{5W#mjILEXq)l`4uISe|oo&x0Xe=L7YjmNIHbXrJMJNFFA7eyL7CY*?1>t2$s5Jv&%Cs@mf$GitXv+V)kf<}$N!9WlEP>-HWMQpq z8>Sk*Pv(b0z}a7dovFBl+8GaexInPG02#v=WujPhDcP33%Q{r=G@Rg`KrIV95aVTJKlV$*Yb5`-60pfJ%l2l2#c^*Sl z8nr`%mduj*9L@QB-pUyTM{g*^i8~LeyW2EFImS#`pHpoA;ta#SS0y%MXCk>i7b^-^ zR5yYHlS-XCOaq0|JQqVhJ~#kH{FHhNzpLIVP9(gOh`G;2a~Gx2;YCJ&cNK{G>;zFC z0@MJl54J)rNQXvjE-SKEu0ZL~%{^l;lkq&#tEB##>@y1WW=beK2O7x&y)o1(m#uPT zAviAM&ngwGc`%o6M2@t=-5~F`Q3-N5E#=d zo;{$EHVdZU5NZ}8UyucTc1;GtD-~!_d}o?Dlv*>eBycqKITf7d$!YK$svxYi+=pfU z#f=)^NeqYL8XE)S{<$stzhF4DKXv8!eFt!e1ZbN}Bez%Pi&IdrFiQnBrzIRifJ%}< zO6Vjd4UY<{mn115!yRgQ*ZDXa;ASCmn>}7>0XQ5*uFerKaqcSYV1AZC5GzBi0g7Qt z2%3K*NdLXfy8Kf%3llb@);*2)8EQr9%~M5Y4oZU-%qZGKnWT%lDuM}|We!rPhb7P{ zL(cXXcBi9--81=-#im!YeqG=`%cLvPLAranOp*x8URFRxrj$iyv(w|sRR!bONX&KQ>)VO6BY|F3UY39k)~ig zc=K`J)-Sk7ncMd#U{ezQXU{$S+yn6S5Sjm?AMWdthph6DRp#&a=3C%@;hBf5@{m;? zvdWw_cXGAtMZR|S?;l*Z8v7sAts;M_ZWUCL#%w!y=ty?Ks+etu-Z_%}$LxK1`?JBX ze>ixA^5^V=*YghlH7_?i_sFWv;K$eV4&@c>`s+LUvRB3YF}vvCzUBnh zc~!=$4GaEdfO+PMM9a#O$A6|Rv_17*3FFbuqh1vSlb#l{Z8#P;C zk4M3Rf5W_QQU0w9bC{uV6ZGWH|C%4%nZH+D$ZUTld~#lEc5eOIe}CJ*IBuagJp9ys zggivx56t~I{582`eZg{9I?sLQai-+3c2mW}dE&gv{i)i0ZXAOVgh5Nc<$!x}r2w%Xr z)c>GA{$%JrJgW4`OS0@29vrUR{2zoXLs3cm!Tlg=7`tf`xc;x~gQNpTRv}TL{`>!L z!j&5~Z`cGPp7HTdJVrTEkp0f#Cmt&%OmH&lM>n52MEM)42IFjdD(nxAw|AaVj{gJq zbN}jV2Gya{TQYW>tY-(lXRo?Dj&CgaMlfJX2>Sdc2WxWv#M-Nmo-p}_B_+?4-y4Ou zBD}+NO+Y&E+RwtskM32RH|V7OjkHE*?a@0k1Y1krb$d3-15dow^|R9Q@CH+#btYxK zh{ZEEJb7ns-`HF2UZ0GTWpTDYA71yUefDJ&O*vewqspkUXR&u?)oqOqqbf;RM%$5X z#id(OrLs03b%m%BCN|uKZ_l6Fy@PI7TRG{2P2eT1E~fJ4n2Ld_D7^cEwToal!p{zR zZu_S$#U(bb`tut%Cg9l<)v?Y)FOu)9ru3~aqv>U@SUI`&&_?K-{;5kZtZKGlbiJGD z&R$}}BX{8a@V7VoqR&hoZt$C!DPiT}(xk8yDnsW-d|-^jQ_}9Pd(V<$cEuRv@2I#X z!+k;67CE{^MPb?8AV|&O6SN9F^3ly7v@65w9nvGrazEVcepTJ75SZ| zWB6BL>?H>r9$^ux^ZNCim1A>L8@J|#NldS3Z>!5L|6Gw5?^ty!W)aLhy7mstpCAEQ zR`_QJw^DwwMfrH~d+(ZGhH_Rfxyu>b-gYytJZFM6)K3N(r7M>dn@Tm|DM5XFLt(vo zHAc4~nB?0d{??PTcgCZ>urlna?~b=?Okvs?V;1ulZu;53`iNmh>N|_iM?*V!ydy%> zl{3v$6t9FzS<8r;_>k~XXHC_TmAzn=qW7s{xdA-o|R}dR8lThq3bKiw4k?z05i{>ZSWF0J`?JTHuJJNEU_$V-f#KYO2B1Y_%Oj80y1S^B&= z;&YS2wl(s~6z!^?l|C018GP}^M|nXj=FiTiPp8&~88Lgm>K@)0`qkn$1lo4i>GZU~x9eAYu&LdzXIFkIb7w~;# zse}Fa7Vq_^9chNsWKs$?03tln6Nxbk)AanGro6#aJ1}1rM6@mEYcJHnMoI` zmPg-iGsN=VIdaj%-SSc0l4AHT??Xvt1d-UC;dm`v5N&wuWb~7Ez?zh>r(w(Uq~3!} zs_P_a#p!W*?B7PB07#a;b8Z}cI)^FEqMuV15^&F{l3qF)le7BP8(~Jz(7n7 zdGeq0;t1!a*~j0t)JH0oH?G6dr93a2hSh9?%Sg-7Y>t20u3=Rr40;Zz&0hlLF}9@G z_?2wh`r(e3*4{ej`@U;+_8SJ-qs5Nz`Z8VYv5ubR z8a9XY>FoA)XZ?h>M-RX8w#+v=Dc5z~X!_f`miS0To^$N`@3X(}JGJ@vWB$iZ$|<+T zOsecB!=AeRdb{(~M1KzrPIMxin+w$6~*;3XY zA0cl21hEM6N#D%FyKhfD{oQDQR^naK=l^vW5A&-@(eJ+pr%_a|?JB?z&wYzo))9#r zH|8*FQ>?4LShfgaNMDDONu~G%u%6F5tNBkYD|+!pGbSWnd*=ObL_0#^+cRlLV{g*;dG~7C{Qeki@X0}W- zBCbDKYIyWW@srhYcGj9R!(Lc!{N>#j{=o_1;hgG^yO+6p8 zme}9=kA~i)$`jMinClVpU^h_ z`rEN#kw%Q*sA12rhZ!!U%66H2$?yNs=u3U=i@P{xP8VrCMBBIU=$i@QMXSI4p6M+9 z?tNsu^0jtK1!kHx{ExP?*BCYH{wtL}eSnr$+*oE*dyR)8y^50YqwPz>x3rRRPhxIe z83xu2F05#Sc|-Cu40zY#lXq!O-LL>gJe3xrJZxWQh9~!HhkI;3MY!@4ox~R+rqYk?jAxhS$E-vKPqH zC>9I2RsLREbam`X|5LZO013n!d@jig3E@k_G%y!mw#%0C_EF@WS2uxI8(w1a%FN|I$A6Y#4@<7vfUSAL9lR;iX;yk{;3bWNGB1#U^=O zAX0xbA}lq$&iM5b?z$Jp#vUz(@Zw8wND!_?`{Z8(CUtxQtDZf5z2~D4=2zY1_VB)3 z2FV!Z9M@pP5p^`0|1ye;X6es+Si8Rv+{Zp z=i}C53fN8wTb%fcde-}fu9QAI@Mfcz+<5YEAk1>bCExRDyvW;;~sI}mYmLj8X7p%|N7gDOV#kV-ydFl zHWDT04?o7n@P;3Q5bAA$=D$5&6@2Dfo^DUpR|Wn3@#MH1Qcz1iLX?IS^rl@BoCwwk z9J(()|8!mtfUi4V(?c zdE=wI6~Fj3w|58wHGT29g&$NsYcF|nqXODfnBLQ?wv&OE@K-E4w` zh{j~Z>LQZFxI9o|Osz-cWJu{p4exxJ$ zLT5eo;+d~>QX%z|GZ_~WkK=xOyxfbBvLn(<_D}zjhmfp#>a|tFJO*jo$N=qwij{uI zO*yRD|*qyjH+g&9!Kl9u5g|1l6p@MbP6?IQk1Cds`tRf-uJeK zmtMt0p%5?V)X2{^Z>%v725+=Ffl)BdsNXQ}*K*!<&sugB;1SrI#?N+<80T)OhAQ=e|lCa2i zMpQNd0RtqAB7$sD0S-8z5 zd|W&RsE^34^V6R!FvAd63l`(QiC|PUxtRU7>mQw{&?w#psr7V|3j?K^K55n8K>{YodLzpmVZ(_hRJxlpGp;o+G_gmuSr%iSow; z+(3L--Oe3MaAOpr?0$DEpRN)qmL&BwRc!sM?ukji`IWc&6_H-w1aLTR=S&+TE)KkO zF%uoEFO79T_h0Y>4;s+4@4nmgfsgL`cC@w}xja$)%gZN8Zq3s1KlipdISDmLRngu; zuc2e#e1to{>-@ZL+sKn>L6N~VXfuJD-%RGD?x2yPY!cUU{KC>zo3JaZBYR*uc|%`) z-daS^AUx_b+L)t_qfX1`dJ<~83KL(jX{T&8BCXMPa0OTH$l=@+QdNXL+R3Du@*quX zrEt3%JU-2<{FrFW4D~H1l;svfp#@Nwqykp4crmoHW8Qb(VQ#GHkIVu$zuoLyOv-M%7mm2kkCh=}`<5^g=nFNPXpmS0_cryIf@EGao zvHW$u3woNKoUvCC-}!S9!|i%p-1k9a5Y^btxenH`hllCa){s%dXDQIlg~@3-%u_D0i{j@rP>ud z(3@S|x1`xYlg|#mDE!U!n5*N{TLeFI4;`8Ywjm%x#eZ$bKZqEnz` zdygdd(M*4lH??Y3nLX25DHWato(-Fad&Gm|lD7u0zCi;^Pt=whO6mwf+O%bAs$?uy zPhk;IY6V=Nx4q8WH0Y;5o_8a8e7fq!)THc?oGkz6JJ}!`cFGazCnSnoMxF8hss{Nkpc2jP9r;4G_R{f-H+n?xZAhgD_yE+ zWZW(rOFbS*e-@MN@ydW2Camc5R{I9^aCMoOJo{O}(Y8hl($(LO9^-6>#T%b~326_C zNm(X9U+gQ3+9u~OlJfl~%9cDyHVv~YE}c4Mo>$FM)0UEp#ayhO*aXo*iuZybrZ~%0 zZ%zm&pZRADRyJi$hgBj_zZ<0OrL7nPn|SGN9H56y=k6mK(?NtK^&50U9@gJ>qame* zKDnq@ef_yhRZYgIE!ASQQprpfrR8SCe88l8{DQE|TWQ z>SSAvk>RS!5D}l%#qQtP&K*uQyfgBH-`f2)kLU5d36to5P1Qo z*OI3+RNaUyGYIkj4Pm%Uh)Ud%PA|vCEx_ZV{FB~p24BKt&!z2Bk1QxhUpzH#{qmJ@ zDcP|8Moe$$rd$l@fa-YlWMk!<%xHSq6Pzu=dm(;da#0(s&7VMW!d7@%_(4tMri%Oe#Q$}Af}V8^8M>;YsoJziX~R65ynE7WT* zqM#Wq@-xXPSz;$oJx#UmQdKcwISpx5zxxEZ@7%m>H7)E6m_a%(7}_|SJ&1#LIWKaM zUeVfM1f5;;B&t|MJ(odCh3%muz}i*J7;Lwfa0VxN!^jXl8c6?yA%9JNS>K zc(h{Xb^d**ORxXCQRky$k%0rJulFpSU=+)l-SxcZ1>6_D2U|&=7F755s@lDMX%Tc@ z?E}A3ZC``wr#`M`dTosZci&;Oziw0A8iD21rG=|GaguHImyS#aSmKKayQ}p<58_g- zS{q@k%%<|XZ#hvc*kH|Q7wTt zf`}o>#;eTX>9&&F?zzJy;@eJx&{Na{nSb@Ag3F?p#wJ^g`zXS5RkVnF^1CgtzVw$r zxTl}2p?D3^I=hrR#S(Y{{*t>K{j|7vzGwcv&~ErAMPWn*+R<*15*e0AKb$mc`R4-B zOTOq~{V$I7rP-lax$=n|AB!2Ut-3KTZYg?oTEDrcymUud1e{>V^BSIb=<{58qHs%+ zVOmF|^VZSwl7^G+89h!Z25sc)2=-~RSsP4YW`bXCMLms^FBZoP#{E`sML1r6Li9TI z^$hdwu%aB>7>$FFtQEMs4zp44%y-8BCLkOgA96tun{rwi2-99WlQf3^@jK@YKTyg_m*{E^C~;R3D?;K*{b6X*+e%2 zkzytqP!~4!Pz)_9B*)?Dlxj<>Zl~~c_87CUBkvB>(KnE7U2!86BTa);G+Da$VR&}) zPog`R+3cLT#mA&_UXl z)@ykxp2`ijbl^#vPKYfsJmp50pQg%sk}HLnfG2-;Y82d(XvCI+b6V32-wFqDr7%q1$sag3%Fk@7Hz8s?4Y&lZFY8V@ zN0<_lVadz&FqHO;wfE%^f`>y*wz)6A>hI~*Iar3L^aODHpPN{Bx=Eo^c3|sYXM~Kl z^MqJ7W%fj!w}?M{t_H!{{mu+NgVa_HGFuR7jI}#;V%O&#AZl(&lZW!_goNcjYj#Ck z>Z^N%)5IsI++XZ!cxsBs@-i#Tl9t{L965t-Yk4eYBIOL6_Fb%05crt6L`00*;qF5q ztj5l^e#(sHf*Ie&TT44+0vWFp%TmpZob4gS_VkkGwXXYZz^M4^cuUsq))E-jVRnK! z@d~e&lM1SwiSqM*{sc&qj53@n$mPPEASn42zJwAbKjPA7av}FHde&DK`a$}spcINJ z3A!L1*-6{HS3}F))<(w^;i74aof^l#Ss7VW1+Fd{M@6?QrH|h{g0=-l#)A8}Sn4QL zy3F-q{h6nF#fX|b;sgLAiIzC=R46N49&8$2ZDz&mWcwzxe@6l5d6LIuNGF>6exXCqs* zho8T=py2Pju7NIvK?8bS3zh5KXh7C{0)lT0DirSM?V-S>W!*-}@p!X1$cmmXe;41Q zQzdeFgZP9ALN?MXRGP2`X7vhYtIoR@FW$M*HW^V6XQXU4WpHr}G{^OM*_MYD_L+i^ z?0ZB=h`HTGSM*M!WUw?|8eP4+&W1Gt$a)PCm&j*=Y-S)VPOtwA5M)+bWl|Hc!ir__jH5kzBhNUV< zv=B2AYvn_3E}n-i_zAL?%8j&z-qF!`t06gV$}}3y$hmwhe$VnP8*1>GnPskbYir(o zH#Lyw8P!%!LF5M$!R#kCJ~f~PGfNxWmHyhWWD1FfV@6j{ImPpu3x1sJrQ{vH@DD<2OL zmBTNl$dxg<1y3Zh@(E7M>%fQE#~fmF#=UlKT1Pj3@v7lIdB*6#Ohk9d5Cj={9)#<# zU4~E1vd;#IRJ;OdIS3v{;+1=IW8E!n5LVXTq>!HSUbvM-dKQd62T@%l8nx&Fu{1cY ziQY|lYNvNJhv2<+lgziuC&poDc?@_hDJ7MH9=+;>72lGTblz+oab1XkKau-BdCgv^ zsKr?!&S4vT6mu2hw6;T&*qD{MXZ=wv_n_fIzkt_*pfcqEm!Ng2nREAP z5>s-=GBog=V=HUaF8Csz#>95_D`RP(^Bf zC5dKB7Q!p>06GX%PBIQuht*n9Jnb^RrYy}1o-KTNw_B-KkyVpOg#y=1&288 zb)^Z3o$Qp7?tG8m{A9_cF~IbzNF;iq$5+M)?LHXCgAaTIA@v3m^o*J zxzbHKQCaAPfERX;BlahS?i`GHL@o>)udxZ4WqT*FQE85yg+=X8cu`Y1z&KeLsR^$b z?*kWhD|~_3r{Rt10m;1rl3z2=KWD}-gO*d{^~%@=@8c#972Xn^EVeEnh?wC0X(u;Q zdQSN}4V3#+9=0nhxIs)LxPcNkn(Nr?Z74G>qX0^$^mNo*;f=$rLcA>Ux-VZA`cR%8 zNNXy580ASi;k!QVM(?Xo5ARL&glUDvQnFJQ_85zRWu8r%>BGAH!(x=lKIew&F!G4h z+Ut>4EYr^HT`zOVDP|zS9gP3;iK)i+Mu&|Gk&?2 zQ-LF*TsDHNfp`~6l0_d4R|v;?Fqs6O%;$(>$Kx-`uB#5C<Gn3NAyt{|x z;gOS$GND=^jVVu^T!67S@xibzwTA@yaBK0lg@oX% z&1hQwx%Cw96y90uykgjP(Eubwm|C-9xEx(s(t|o?1bB^yB}K@z3E@@61PhUiY$Vv5 z+RdIplux|cf9-b!+}tUxb_7V?)G^;)Unz7}ji13})gWUHyb`J)@+TlTOoLIBMq?vcbORev?{S|^gTY4$m^Inj_A&&lg80(g^30Z`K zYNMqZh`UZyU$-!=Qjh}W3U(Ogj7SNr&geW@2+z#>QU&0Lw`NoEB$-S1q|kA~nZ_K8 znmHsT`zF1z&O_q}6Of8vbh6A{3LQ_=X%=aatb%|9t|aS#n&_7I_lP0WI_-rrg2&Eu zy^D^HPp`m#;~WGvg>pH*N6y9sP^zM>a8W$SY3OK@xw-) z6oKD1=9g=GZT_+0VH1f#qaZ6UFm zee|@TG?m^+TFRS=ds&8&3(6L0;`XkQvmw@VWixNv2{I&s1MjbJ7719l$DJcfd|d3q zvp0c5PWN`{h5I1h?C6ewfv^k6j)Agh&~c?id;E!ED*;CNt_Yt)h)L~Hj47xD{$!Sj znjRKoZ`Ua7B7-729U~N%bo)v!v~;TrC;^r0Q@i&8p~(RL^5N&mQlwZ7BG93 zUBhYbr>{W3Va3-N$c;L*F~3%4JjB_o1P1J_H03VUILpRzL(^+;#bT@7Xct6<%YqYZ ztn+lORiTq0)4H^Kkl};+XXceu3(*miv7SN0S4W3;xcUJx8mTo;|Awr`{SDc%RI~r` zSVw4jq?@p3;4MkENgTc z2{e^AgW83!XDaooI6_=^BfU|{RpmD7pgz8@8QMgfmEnpIV=_JNy|DFPOXiWvZvE;q zWYsZl??9y_`Jyg?VtaXfnauSRZmO?1MEy z0X-EJMHZff_?cOC@wQCmS3In>CHQ+}n%w6}qE)}G-O!;~)_EcpH|B-t8o`G<%8-iy z*2|InEm_Nk^!sRU&hs(7vBm=7S(SFIJEdsBYh%Z}d!(0YoNgdsEO?n{tw(mNKPFW? zMY&oPl$saT@L!ZsM;`-4Q_00K2AtxC9{R8m z98KaGS@B2)CY0DRo~PjCVDJPoJ5uFLMlw1Wo=J48H3Je~?VF6O(z<-BvT*o_*ORuX zN&+nX^dQ3X^0$cwDV{yh5!)xxy_}iF2ZlYIslDy8u4GaTr75nJ;x$;3!%Qh1eM`QU zc&+%QQ$U*Nq_M3HZdSPEasHzk13TApAo8uqgg37Y-ue$7DJ!^w1dcV7I#+{XRmeTI zf-{4|cU%7)H16y^+&6fchabjx0l9s_qA*n$KU5Ot#p5%Zx!%_k4J*oI>j3{AIfBB| zn+c*F3o_Nqxhg+dA*o`<|}egc+bx@3K^>3ksFV1ghRt1(DJ336sC zg}SoHu1I-Q)?lmDQ?Rn2Y>mrG{j06~;Wfqv9Y^!c?%BB>24k@Idrl--)~o3wG(9r& zcE{ly;G@aW3dr6QQoPvfp$wNZOJ-tx;*s8# z9Z<@Bh!c}K<6W15WO*5==Ig%n|wNh;MU_UUD)&#qmFXHr?YDwX|}#G}F=3 zE8hgv^sn)mWC&JnE&iGEhy=~llQ%YpLfrjQD ztul^Q?1v4BtIybK`ivTWuJ3#_+C_;8ER-2vxKPoKyIEPQu28 zJHAR--rTZCv_&jKYnD#{x+t`}c_dNufPUSeDwEh&Eu_@_z1M>@NNbdW>~zJm^C_-dAe;<5vX}^N+lKo$tjg|7?{Z zUK|>O>H)jFrEZbKg*cj(1@2Qw%#gMj4t`P&)EvL8+Gi z=7wFL0yyXP{4%{j)4NhPM9NJ>Re}a0+&8$A*;zF2!TnSo>ECW2mGG6CoU57LQTnH`xRYp3deDy8O%H=JHLLffx@gvA1YkrMe z1QJ6plt-k7ay|U?gl{&#F506DF`PIzR`7k}JBu01VTOi(TiJ!9#%c$?KfXMPA3Gp* zKw?c@@OmoKGSb!Ad|D)-wUK{+0Yr(znv1HJX7?Z-^8@p*k%v?Cn)TNXZMxlze{qp4{zE8hFR`zJjQN$HD6SpF4{$u?V)FvpGrj#j}@Ngbk9UxOxw2B zX47kWLAKIhqp!jkRs->+47xblNFS4<}Q33KTOj4PXb zWzpM@<@?80AiC%*-~BRYELkV^vX=|3c_&T0_AI-%V+-;1`&|?RD*;p(NOJyboSgsS zw3}gDalNmCkzFgceEZ`Xs9L$C#h>4<2kI++ib8nxmS-!8^D$iNaK15QQ;cy#4`fq4 z-CS?sq^U4|A{mZ_oI^+($g##Kh4k4@wKyPv$~{;z`B#x8B$5hJ-jC;CLvXZEu(xLo z|D^vo*(xuHXhP!N?RgQAU-LrRJu~_1-ss<+IX{!eoxlS|i#1x&N9@d5#B;nmCGSex zAC=06=8-6FPryiwj2VZ<*G;xaLa-PcJ)8KPt0L7M`J@{(x6`NAy4Yl1L8_@1yf{

$$UO;DgFSSRX2DZw8W()urs-SQcd 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 literal 0 HcmV?d00001 diff --git a/www/assets/images/logo.png b/web_db/www/.tmp/public/filestorage/2e847f21-925d-48dc-ae39-1df681992bcd.png similarity index 100% rename from www/assets/images/logo.png rename to web_db/www/.tmp/public/filestorage/2e847f21-925d-48dc-ae39-1df681992bcd.png diff --git a/web_db/www/.tmp/public/filestorage/467b4b28-442c-474f-8a18-41efae4bad43.pdf b/web_db/www/.tmp/public/filestorage/467b4b28-442c-474f-8a18-41efae4bad43.pdf new file mode 100644 index 0000000000000000000000000000000000000000..158a8cd162c092c9dbec955fc2eb241776fbd7c4 GIT binary patch literal 755204 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 z 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

H^kNtXr){@VxhZl-O=SKoOGYu zITT}c0%xMNqL8l76)JelnK-E6CT%F)q-pos!AiMZG;8hSm`oIa-!#Hscmarv0`|Sw?-f@)?Ti1%`YM;M_u;t#YrYs-Y zbICIwg+Ke^?*{PNUCT^o7b z2IkA&iSGnS{XZU+&~VSHE*mCGeA_HcY*v(|@5-#wJZ^}t*x;JGiK2>@2g~{llXUZU zkdZat!Xeo?(MB2BA33^I9WVbh3@rGj`k4E}qV{3pcXAY!kea=7^%>1Rtl3#A9S<>x z2hZT}V(G|s_e$d_Nl;r8@GXzn(E zFS8tKtTK@oeU^0UK3ubu$jFE1&R9LphgVh4PH`^Hy6m;}-pGaTmGORcp$8-Mc)yVx z%@deFC1(oT{+7YT=TO6T_Q|Wy#oV>d0-~;5HY2UQS;(DWlEjoe96R1@pIFwsKf1SV zP3`R0DABm@Dd`3Tt)8{~$)v%U3%5S?LD+oGKz7dI;;9*Qc-&ys{jl59&aHC09cJ$0 z#7n{J72~~f8F{oVs~SJ3QNfeRbb6dzRyy0Pl%t@w(y_lZ)5-R3I$Fn{GxKgsh+k3{VJk6x1F53ekF1xpUl7MM> z09UfSz`tT#6zfK3d54d2ZF<9rqKCq(=*<|^R(Cy^_>)Q^VS|a89@)JK8_5r*w_xo{ zPx}UEt|9Q&`Qn}P>{jkQY!YH!kW4uw0|NL1BWu`7nThl|5* zQVr3Q(94ip_0djkY+v`C5Mq^qZTmsg_{wVRTx-1g#?9O^7|QH&*E6oN69@wMGppWN zDzEpjUwUZ1&?>1WHSM+)A9d^wG6v?%2%bH4-Eh=n-Cyr1TuWIiDNpuZzExNDy;LhH z&okR=eHlP)Snxx;ZhtN1DjCZuG5N?beJ66w%B!u``E8>t+V)ICdtFlOE0^F!8;%Wt z_%gKZUIteft!b&&Vl549Qvld=i&wU?T+o~w`4)PoTgV(hm9CD^G=`#!^g8*LPv z<%U|wVHm)vxb~jL>N^+xdU9i^a3(4xlYi}M*uAe>$xUTtAnKqOTxX82DHq(5A{IJxOi(mMYuTsq z#LUiZefF!xF-bC8=|Qiv+OpD7H*d*j8e9h>*QI(=1?f_|$AKngUK?WM$!e-~X>X5D zCB?pM57)29n7El2l=5wm^11BwPx^WvYe}5BQ6AQOFbK}stucHZBRHfcx$@pK!-IZ9 zw2yZZ>v>Yzv`}I16S8D3yyu?|`0Oa_@YF(y@bh!ypWJD%D=1|hp}3qqjaUvkXwEyv zt*p^daD#p%Y!T*OVVrX8e#DoSRUM`9xU7c5{4H$9kE)*p%84e4~EHXI(F>YQxl!jB)lId zVsql^N^%!X9F%o2)}nY|&>ia%RbY71kxbjep1bdy&{LArjWcD&M-3dTs9)CU&Jnyqo&~X?BhI za$(S0X2f^KThCikDI4XN!^QuFAs zBWHsqpXgM+W(oW(WbOl3^H=FOE(@e4b?|9IvamUo_)>~G%z^D!Lk{>6nGhPT$40ReCZ4uC609_ zQaUtOQ$6kMA28xu=i_H^)shL-HZ7zcg>}!?D{M>+7MRz{pUa{wBz3rY64Wt>hF3v< zj8O&oo!>XFPVBqyjsWw(o%yj_+q3Yp`wiB)7#iKo-dQ zW~rEKc!i5E@ zCgS7{@q1?DGhLD|2ZD@8G+|kG$L<^}rZB5*3z+H5;FZPl^u%Co=4H)z+sqhTLjXbJ z=`R|onQH_F%%PMdJ>qPzU|xDQ)0bWu<>3PAaQuKuZRk9$;d}@EaAocwFfq7zQ=*j7 z4(3W3Z`?DTn8}BjNe_mZYUi#DN3LGFUgeXQbl36@OC4mN-T>>#kt! z>7`maOo?rxyQwdpI!gjLwJP|$S@yZ2PL1{rPVsQ`J2-et9s)+(pI=u_jq=_#AO zG`oY4{q(-^>V|zUzToP%naZOC^QnmCv~6Ov*7LC43zcx9JTTjACxkxc?Ut%p$xAj> zQP7X%j>w}N?ka=IBi2#pJrh&=0yDm|hC0>#Hiys|&W-i)G@Apho~Q!1gA{PkUn9_H_j|Vo{bc*AhsoMm!3JFnJU#(6Myhb5%$TaT@j%kYPIY6~ z`e>#HKD}?EY(jFC4xIB9M`T=bhkW6Ta6fY*S31utsL?qEFh)s8P>kcY#;L2FDVOKR znXbqyPGG9ty_H3t2)a18(oeGA7UnmjTzCHkXPn4*zp(cGhCZyaj}4f_xxfe5BHI>& z(L@#0$fD!(((xPDn_{lEn9rvwNQ_}A>$-&>6*Kl1I~EpJJ>tE#-R!wdr(D#MYz`b( zjPsU=P%wOIcnGSF9Vf!_YD;E%)x-O`b}TRPjfRE*{py#6%%&{^AmslI#9H$1fm4hR zA22Dsxb%1{GJ_;%eWv%EPMdHx$-dxaaecDjH$L?gJpl}|?f6nee`N|YQjV9IZuN;ovO4})n2dBL_8<6(M@^}w@Pz& z)irTmW#^6&ARpyQl}HI8BM(2-4_1P1E)W5qQ|V5f8crGTXa}a0?yCysKtg^P-)w?Fj&^v&Lrf*yfa*axJGw9S1I~H_mJK&62E{n| zr!VYzm@ZacKhIsmOot`qbi0sWZ^Um?G!`Y8; zT8eYrEK2!PS*7LmROJrGj1j_(sN|VX9xc&_mjK-ZNwm)w3ll%;ZtZ6LfmroeU`d}G zg&tF>?mqpO{Ev1=0P>S15Q+PeygO4+1Wt*uY?3AjNadGKE_`M?;x* zc+f-4yvI6qqZ9SYrz#s}Tng}dsB=$TL4D!sC~p5$VD7}j%w0NFm)ea6**YNqaQjWM z>V6(Tf>~*sddEeY(dHnp6d1hUs@~yl2HJt3EVzZAUO>u?XQV%Od$u(Y)Sp?oL!5@( zYA70%$N8!s_WtPzKp$Wgjg#acoT@-y@Fh{SKBVI2R$iD`1!6<2}ORUwA}ef zx11g92ompPmwW^;F+o#T;{l*wwrU+re!gJZI#~bQ_aUZxaO0pGK^YuUpg;2@q}!#f z;b!Z3(|!f89H@;)Vc+P;;Lya}KG&WynXcBr+<6%oQI#DM{JGd9>NDKj!q^2;o8{5Q zaRuY*-9|H?rNBM3f<5nz7*8mXtdU#^^lxh$I0wV0j#tIOy!#L?O06uPMh#$*7QGBy zBi6;vBv#=(1nLD#`Uv+x`!us<#@bL1nMkgEn51SIW}#XxTzc~ykOb%YWfO@`Y^;O0B6_! zMfzbW6R_OIu0s2x&8n0`mTzMW=2Tt6fSdLYx{ilEF)n;p9w06^GZ5}+z0p9VtNZtu z-ne1D9?yxCp2z~eo~!AYpN_n3W?TX>cPeS)>zOKcOmsNpJyJ_9G%CUIDa0?T6&pz| zWUcSAG?dT|gEaoGSyLFtGh$}H zZPr#bu~IX>kPOT}zx?%5InwGeB1O@r!rj%9Fm{jHRkWfNSa z?w*mMS>aqWSk%qqw!JKQlvA2(U%={iz?jG9s!C+EK}IT75a&NW(LI_M0>QMWV6Lf& zGY1wa??rSZjTgg>R_&oXUzmK}AAc8aURaSGWjkK2OYo>r&DO|<7#*3VTrN!27>6$Z ze0%N#qyJ_6z(k1Nj5~nuCU4s;dKwmxmOWNu3xZyf&iWL(6gbNj#)_J0o04p3CDn|p zx@q;K!Oe~=_@2q-5;Ywi@O9Z&EO)qZIF+vqJajYOPZ??}GDRWWmnN^aNg{gTNPoM6X z%plenX#%g7%JK@SWm0#O@fWc3R)NzkYmS{0G8CvY6edeSFfuBy`%2&QxQT#DN&7~b04LG__W;i)r6=$U8f`<3ig zv`hk&S59umCi-YRO>-c(N0<*y1ux5)+!La*5m0d1^>zrg;CvsP6h@9M1_gfDG zh!(nYSAZEmb@bEYu6{Fv@8hgmCnD|~Jt`vbdGEAnx-9EnzkIm1NqMfVFRF!DiQz&6 zGjrUt+I5YZX5Gj!{%oV{R>7ZOSK-J(?*?6_*HGm4T9&Dy9{z-b!h_#me`n^5lxUs^ z$QCv}MeA)Cs5xn&`I$Kz!rSp|(>UAs{t@lhWayu1RbPUui<*jf$FzJA2nR zzcPJ-jL0yK+KdMFM`nN2doR`SeZu&ATb}@!^Va(bzpS52f&WF@1oSA&^>6f+p?#`f zg4mf6e7as6ea)Ro{V0X`qwDqE*LA@6<3;jlcaBWp!@qKh2x97G1o!jF)Xpu})2~-f zBc_ad3-bB2!(4ju&eH!7#as;dK zo>?Yq9?P7i|CI~>sZdg%O{i zg8W`@hH2o{XTCg2DT;obvH$69vy`c)?0p57%UB;C{$78I_N8H|Y=561?K)-t%cY?B z{hkTNqh9-W#c%)Stv>F+E;D-*r>B7m*S7rAL>oDW?~!FOa(CSZH-&Y;O?*}vC+kV^fb zG4m-bA%5+5Up^s2?s9Sw={uHv{q6Vqb_)63+tA^5sUCyhP1-%w`>>`q2j)ieOz-#l zMck~jw-xJ)=|*(Fi??2^@k~Z*__&VX5zFuOwwOvD&2IL#;cSGzi+7e{?(}Kl`sGaa zhX=pc@1o_@&(?A8cEnvT@V^#25F;a054|>&#DDE8@QVRp$2?_V85H;K+Mmr~xB(~B zg^9aK5szqpCq@rT$+JStv;|-1Pfrp8t-ICQ_HxL+jr?6Q0aWs*J!IL0Qa+}?S33&; zfoFGJ4JJT}|9cPyMGGEsxJ7C)pnv|u^Dco9*rM9)0$=-p`#Y~TXe#a{VrH#jI)8Y_ zj0|Xx$9*`@DFt`!_qdHKrZddpR%%6pNBsx*B(zTrO{#rvE3{$Qzk~Ng$!!>BJGfMe z{lkKt@Y_$Wwwd>nGDYZq*XtOT{fTVffewxEuh-JGVa|wv_G@aoHl30lnEpd)sP%*2XOTcTeyR7Oa5nTL`dA+W$_xju+rJ6GC zkAAPelF}K4!K~`xQqhFJ%iw^be~ZV}Sm09jzS!?vog_5&&Q4C(+Ex560$|-$1$0&O z(q6#$;&-OzKt&tJjvTX7)W5^t6il6TItcM}&vjZj4sqh4 z-1=Ys2tSlX%@xiWVpcbPm(`4P>fU5^$w)$9ti>NPq3S=a;hiMrK>pq6v?)JaCQVyj z-S3O-{#)xUV!q}(G&sLSO<*4ZDbPZK+o5#t^?J8!ORc0XI&3^meIWIu`*Q0sm+nW+;-6 zqz^>jUU^B=l>j8@jf9MXhKUQZzIPIa+Dm*w^{*PiRH-=;vek*{S3ev4s^3GYkp7U8 ziu$Y5|Fr!J%>SPndD{OF4fUZ0hCh$m zVFn?N*ZH?|dJu4ao&ogpOdfk%2ScDj+R(}vIQ@qm{CBDA>pVa&#X-Izw*#lm zH;QC;mclVODy{?)PvKsu?}NWxG~(RPNDQ3DrsM!s-P$ftxG^k@gjBOeUiZ)P;QY_! z0nm4CnEw@dKmhswX@$S!;RA=yv!^l>&wbr2)t!L*CuoG~Jg%BY{koxKsCT^Vm1mXe zuo`Nxk1X^JwDiwH;QG&n0QoNq;on^GS_s&F=mJHo0-)z>T^De2t9>~9HZwc^J}TR* z$h*{z%^#j`;N2VKJ`nqIiqykRvHp*8fH42(azJc6_A5&LSBwD+oQ(BP#(;e8Wlg*e zZ;pe*IU2{v$NY&1I-ugxlzkNFSoy+UlnHl`!g8Oq{xkb5|2g}JgSxKSN5q5w*RcWo zZ=0w>8wY{CNr0GrNrqVf)V|0UVt6-;@OV{}L6EPk{hHU&OYA z`!tnK@rry(=M*k3U1|4VEW7=}n|V{guIQCQ}X2YH@rM@q;cbWvH#5b z|7Byw|Jj-GzY-Mxw=V{tGlVT%5$I7DH4n3X=vWks1%>X!lfG6%HD}cDn=6)>S?^7bR``fQDJ=k44)!gUhw<7 zqmM^K#~WNoxPF4~nZY7)1(Ft}H~6Oc_&nU%d}9f4%s@{v?lphv8iYE+T~7eYPY>LhjGZX?d=^0btK2RqoiPokk zf_?FvYD_%QR(Q+cQo?Yns(V@B^QHKCDKEUb{3S!~V3c$ih_rC6z{ny~k&^0d1OJuy zZl58P!fyx+GL!sHAf+RSUzkj(rI7^{#BWHZte^abBT|snz`f-fUaC==rb30xs6C#) zA0aCv!QIMRt|1p50`1l}FOVH&SuU<~WncR=MYk70^DQF2rjn+4cyGq$4KWkOlmnT0 z#X1ps;9=ECp5?x%u>*yGu8&2{XSK}&mWup1cX{mFQR7RRI?@-@MP&w{?1bD?5o zEjyOig|M{c6IohnkBHsKd!ZUxZrKer5Bd&Su7Gq=6UU85PL7mGsyg1g;ojnC);g)R zG5$@%z*y1Y>qLJF2#m9_{)o`CFyRe88TBLe%lXF!%{pZF4m;V~NOFZAS=Kf-vClC0 zqmI~Wv1A&ai*(at!48pxUT8qWb~IaR$a{QQZc>xvdEdyr;8T%tCP%s_Cvp#~F98K` zuT@;vY3MMw0P?;=|1kd829nv^4lew03K@KC`AHJPX*O@|)3-M@8pr%DmY-}SHwjBd z&xfTgiY=xnl1cKkhYdPS+u@*D5uy9webCe?q)d9I&sEw&YkA?f`4+9OtARjvbeM(xO3>`;1J-cWSTHxIMwo?|GPt$S5U4=#!%KZ1ts~ zhqNu=RV&q-Yg#p#@=oJ)#!ZuJdbUKZTuNWiQwI4D#haKco8&uo?U3>FHcD*-e|(9C zG52lRPs^gv#0Ys2?rWI6m!8uAh~ehY*bx__+6YnG`6|EOs=WI;M;YtF!Z4{nIag9>7N*chQ0sNE zYe8~@EwS}|+W_CjOF{m(P0jB$MOcX6E)0w^d+IdVw{N3p-O7)~!xFoeN zt~c#z>KB-rH7RR?h$=%v3O)J5RWd@0Wj*;P~#oALTPMqmkx=vjpW&V!|26S zB~_W}UAe4M1@axqmR3u&oIsI`9wuaQY~>rD_FhCf^nLn%kN2dwDzCI8GSdG+m{%(# z@HuM>g`C=P;?kqiX3e0)`i*2&I!m&v?I1bi6z8p`8|9K(l-nBeGFeZSnfOgo`guG# z4tF_#)s3>e#wA=2H`?%}GR$w((+>ugfp7LVCx;DMD&faj_eRX!GBv|}%z>lEoHpl) z?;*l==}e)mfG3w&p)TtvyP+UMw?uV+{*87>(L|lr4KmIv=WqPvi76yWCC$DZB8F)4Tda-XRml+95xYDY)Z zE?j@_#=60ZIQ>|p{;)0aZ4lGVe5w$>8vTlVJvSu=KE6bHn}c?BI=w;JbQ)%~E$Y~b??B~U7%Dgc%8Bj%r*Fcdsa=np zmBU5)t6!ufcYF#DM-+ovv1B&2yDV>Pjo;D^+(#31C94q;V368rl>Ttoia;*0Ij2DwF35Ye^Sd3tNyKUC+it zwn+vnfKF%<(nkauL9dO9^e?q}B_ZKG2H+F4=oCgSUQdGbsWEd5h}2P(b#0`0Y1vpr zRM-$Wzd(9p;D)YyMzWXYovI^?%!&QZ``Kxg`i%ewOXQp1A0U6L?jSVygo&w$l&W_t zb8aL~o#ON!P90X~U42X|2hGODKwfu8`MckqQhl4&YY{U;e)k$mg?sZInmHkE!bfos zyN48VF|9HBx6dW?AoeJEN z$UyD$a`ax~Q-!;W3@UMXIXb2yEVsX@FsQk|I$xF_vF&)AraIpgsd=g+IekmxYgaUZ z$KJRQqxEPTktSj6Z3Wad)XpCxxt!p%mmcE6R=SIegKz%obIa zmF09f_13&pA=G#u)o+!}ok3 zVTR%4v>G95vV+!WSB2DzQFMo`IAM-nuniq)Rfqo}l83v_Jh`2CU^2Ezzgbi^qeP6; z#*1)MaDz|IsLg|J#pXG0@LPMCkp`^K6<{WR5+-3*<;JtLK&*(lMV>0MORj*-4-3qd zB&frYNbZkTUuGLV-=L?{l=DORxRqJ6!HMK9S+s>d9;a`yFkk@ocUbAi=G!3D84+MP zB1lBLfkl(nl3qW+_s-hv6nR2VXvKo8xXWfo`^y?(*+m@k#w&AFOO1KM?#T2Al~{%d%Y|@(WNyJ1 zS=U;Moh!L15w0H~zN!yvZulXM+#V4S7<0!fN8o-U|CXtM%&<`!;hfF=vsu4Q#r;nm z6&V|NS9~p*bo1}gS*`+u1Cfsvc%NF#9e(u*^`#|y;QZhQj5bkEfs)WAV6X?%R|F&! za?i&8{tZRcXrblBQ8DpoImJbas&gX)!qh3@mjQW5EHnd4m_EB9_4#p4|9F^UphO1uYo%Qa;5*oU@`x?KJ6--Gjg5l@5Hp3) zcq8W|7QO*@5-tIFrz_GNDLdkZgfPJC_i!f+tsSzZwBQ%}k_)9+ucn(>>PqWOpcWG2 zXpiMB6KKdssu&Nr&7dBXP*G9{0r?o;Wf%9eAziZ^y^;%$A(pz#HeV%^Qg#W!%9r1K z6F~Ji<^jOLW0-X!GKyb`@QQX`Bozb>SY*VkzZNh^uf{f)U?}u_X%)>A?tD9ow-`$7 z#>!PJpF(f7+$wc8uQpCIyJqZU>5dt1ut+oOl5IZ=VxxT&lJg{rX5g5`Ojm&b{fBSw zczr+U7gc<=W!lQ9ARj`x9;^r|1tJ`Ume7X43{c5%6*LMG|T*?e`RYtrN*qj3X3$ z@fs5I0hH5&!i98*j#{64jn!3x1Dnjt;ma7qy zrVyV-R6#0P?)R-cn?OzG|Jhpe?Inou~tks-RmmU3N5#s>YdIQE2wyV zgOCAIldN=OAxh{zqoJXEQ+`YCYeMOD(MU7#a4CrI_-vNq?(5rUidx<3mWjo?Ub|AC zF)sHPnvXXZ<|hXue4XG=a#rb+Dl<22YGX?2e~cEpb8>q1Jw4l;%Y(1N>bTD`}^KJJEYD1UXkN*>P`Jz^L{(?(@JvXfie4T`u9nM_J>Y2CfX5_-J1)3l%~a+ z6^12!n->RNO&CY>exxbz{gcI{3lG+O$EK)ym9m?wYdPiCe))-_>>sTkIofvi_E{eU z1Vx-s5~nN{6P)@BrIX=cCOW#(OCQhpZ9A7RCR%i^qVm^ke>X7d@XDc<3sG7$EGFML zO&)qQaiVq8ky@7o$!UoE9(#Ovz?g7&SA!B8Ef`Pf6kf)dZV)z+`n7a?Gv$G`faOSB zdSG;nIdrkx(XAUiCGIAtg>kugY}pz!vRMx6%IHL?d~ppmJwGs{{$JELg5#a<$+=|qHA5u zt*q+xDSYnX`g)v^&%(29V%z_HHqqQfCKuv--(V{InFec5^ylgDu;alTTNfHo5Og7t zSO#ZV$$31{QPhL1ao3uTo#;$>jERf}yK@>>rp1q_ z+QMtp>Yw``UU-=18a~W#THdU@IcU~VS=FS$S{?mt*#O*@E$u@Z3^%09H;9JncSM<% z8B9&h!8F_$Yqno!cXybCL_~*`-AIVo<+Ae99^rNHaX2vy{n|EX<0grYN1!oT-FD8(na5S0}9rt+k}jnw=ovoyPB9Zh0>gn zRt4q`T_lOP$+~&Du3e?aeep8A_w5?YF|L9j>AHd)#Bz=9 zx`G45f?(`_x^RM6exdxU3l|7L^E(iLO%_Bt@?U*eSwJj^9Nqs^u!2~wnf!%@l?}x5 zlhS`t!U_hl{6Q-#1jO=_*q^-0+d}mf4edeTzt{&l$`~4$>OO-y1EYBe9@qgofvppM zj_L{9LaqP#$qT5xuDu}$kpdM4^Z=;I4(R`j+FvAI=YxP8^v}feKV{$%8Uz3+I_TNE zSQ~r#24%iNa9YD&?3G@SGh5*LJ%=N1i zf+`L+fE8wdY>uD5T+F~P1OfsBW(!783p@vNBH97S0Wq)vmWTibK_uZ>0hU05&1ah{6uY7sxw;fiyWQnEj{B z*w_K=2v(Q@;R3%b000CMTmxnRjEyh@3?pboU<35e3aAEh4S)lX zG#HS>Pxbx64gxa+LIZ%au>oWvkOJ<=1~@2C_lq)wa1h3VXv7Mr6oTLt&_6pDJBWjg z3lI=MC13|XZ2(~he=A&UfC;byHv7{i5O#505H|69VFFPlKv!|w(BmyK`$!v1L+ zzb*i^0TcmN3E})@0|-0#djSqV`ehe@O(5*zukyd#&P7$G}- z#9M>wXG&gJ*ZO)~h7&ks8k-3LAMuoh9T6EsEp(0TK!_NFfb#5DsAFUS?3|GW5HSl2 zz#SJ5VgI7;S77?*DD*2F30WCi7y_Xl0I6tiXsH6?M1;tf*EB#_0eAX|3&^1xf__H( zKRNt!JnA~{4mcbbLFBJnz!140h%ou<_Gd(3Ma)?Ebr0y^XVm-088m-n=o2ks9bPGE zj=l|x47UpVSi_T1BlN-1Tj=e!C^zB~M<_jP`^CfO)##?_^9j2i4HyR=i+8+^xz9K4 z^2^3M5e6@Tn`_(>%MwPIXym@scH#IcA4KJ+nCLwtwhthv}ymo-p zULs>@nKy;}8N_CMbhoAtjx3oplK4Fk22y*^ zx6X0AO%xQt7s%tBuaRWS;kQ_e(c8yki;5)2)HQrbq#Fh4y+7BG2B3qC4AHHT8rYp| z{dh<47Uxh{4NnsUC&oJ^iA-+mdf&ahQ)7l?GK>VLorK@QQ1{KBf^WTT5W8COWJwrR z0U@#Rw0XVO5i>0!ZdW4QG|wf%>A%0Zn-HhV9MtIWMh2Fh;`5 z32zcoFL9`6BH})hULEt^d z{d#&Ef(Gbk&ztbeRbHw9HuCuWmzIrpgicbqG{*TW1If9AAt!xL?x2lfPn5&aK;J-a z#&ehJ`+@=5!WC5geBe7Y_J@KY4ch)*uW_yC_z3R!X>4i<#kRl*{ZxNw3F%P52+@?* z$y;tBN7k$2a>u!$KZ>YR#ig!tL-z@5P{qCX21t)7)B+b7hzp?2y(q7{} zwh8@2E`bX$;$k1T(3+yh3>v9>U1Ty#kJ;4)bQw4m+ZBFk58!JVLpIUFvOQasnHl&tGGE_u;*y$#?A~8l- z!>CvvtK}k-NS_(*3qH%T0P3QqQL#L3k^vXZzy%ahGYGV@^#naqdJ2H*Jk+uk%$h

Qn)4pCsR#6WDi7I4j{i+kIp@D|4q%0#2WNX>tZE3^aw#)28LN-i{;d zI~+H-`5*LP>4HnXI3NjRQ4jfC&Az&Nc-!GIJ$+FU#feZys*wS<`{h|vYctN_C-^rq z?z=ogL05yNMk=Wo8E1u$xZ)@|GXj0&D|s_nEht$lh7Nk>-+H5;=#_2rICO9t@g9R2kApz z`Q$?;i6q{iLFTE=zQ^+w(-+E^SxXm+0S#HH%lhZm>Z|1j*f)e^ZSIV2SA<^hYs5}e z^T$41r}iSbGxkvn<{59IN zx5d^JToQAgxg6)S5iazi`PukKBh>uYgzXbYeU?$A>rZh$=z}AP4^nee`SovuPt#)M zD_GF$Je@Ih{Ht#*CN}<9y*TgQ1(9bhT=278bV0J zp|A7vRX#~D0Ss!p)M4Lg(sjcIyDQiZhWQOhIb6WxVq9F_oZx)WW9(xq^^xkE)MV-- zs0QlL(6=jBvD6UiqlP5ZG6;*mz!|~1rQRKOw5%G53r!WAtPY7wtPW%c?recaT&a#U zhfE(xK&)(J-uk{JRbGnR$%(iI3>LTagx?KZ}cy!M3*y2MJ$ ztkQ?~S{KBGLk8LxOvpnP4p;H0>y`1#a!Q9R|B6(~auhpyfwWZ~yoUS;ivkH0O zu>FrS+gHaVulh9)L#f}KRiBeP!B6S^=x{9-&@Mf0G&;gdzCn9D3!}V0^vv8&#nAD+ zGCMeL%bfM{dgAMK>LL7UYUK7@$E|6ZxQ{%HJO`yceZBLSD=!I*G1~p>2Vp6>Ah9I) zsF4mmE)tq8YFsMR1B3fyB1Tr4J+# zxpg_@aLgDb7G8{=FW-w}$dkDH^gZ78i$S9cznOH@j7q_T&YUHXt|(Snz{ z@PK+IXUW-I&7jksugv>}KRQ0vVHb_#gcE9H1KZV;xXb+`8`9e>`zwz9YKG#RA3?b* zSoq~_1EEQ*7)yaYW{jFyLYFLTMav%a&;IUH}`tJ!MAyad2(tM%DOHX7KVz^8|9Z1 ztJA`&esfK^J@6ZnR}rLj@y=G%tB4zCzDxNm+_hrtGtf^Pl3DE@RJhdfXNjCyn-w%k zu!oq=(1<%!$#Y#tLvOX$O!CFg?_NIO+IyiIar9Z3%yVX&5_FF@i8lxyu>ktZdwpLT8e9i)v(f$<A4_$itqsZ~4J1pF#Q z)235pM_2Q+EWtL(M`2UB?p5R7o?s_cO{-L`AIo{7mJNn4y|k;2YL2ViO^ujdH-~;( z^7AFqP=ENs$F@}zODkm9j__()uR1oq-fv{&hsv;1a0H9?zKTmen6|pASy;D^zQqW- z5bkMZ9{w7O!zfJd%z)VqLnj%jxX&jtaX@Lv~d1j!?*JHVC`LJEa5~=hO`%0o5Z&UG_$;yJh-6-K7&Fl` zraN8Z!2{X+!#6j@HB4_&=VgfMEomoZF7^=-?%`R2#GLPkZs7%IeRdgp{%Q5A`TS5x zU11c>$6ZXRxsIL#U7TY~Q~uCmf#dDPgeAp;5ruaSFI#OeD`XYi!{=D3yZ3#~9`Fw` z#|C@W4Lo7f?{hi*{EV9{B=_@zqdozdUuP#a__Y%W4x zw;`pDmInD`&>b%NVXFHF`8l=SYaftF9}t9H>H5H(im^i4lfGv6g@DWNhc$?ojd^uO{AA&=q`GgbJ zbYN#uI`lmht;RNtdVMz~TaYqNPPWevd){P$HBFLPV3X*FFAR!j`P!80@GA3W zP-$DJ#IQzTo=%CQ3$icUD)ES0=DesQ2gU_=gE%B7AE=F~y}I!VC$=)~zAWeQ(|A-E z;{*5U5Y;Nsn@I-P%FJ4-#hztTkIAbY7U2N5b4VmLH747a&?dOlXmyNm_~nO*&uVvb zu_d$gZs;AYbTW57HhXMN+IS{l+|yVKe!9zVfoa7J z{_~1uO~>y`)z`kd<)H_8DXI-_t&;Q(T#o9!0vh8(6qwjKB8f$LU*)Ks;`Y zh}m!2;}X`~x+o3d(w{|&qE1Tb#8dVM-ELcb_RYXwmJF2A$XnFfXOWB#Fx8XH(NTL08Axw2WO|*^ z9aoTSc+}@D$u{|Flxfq})!!}hp@Mpq=k5S~2h|U=Z5Ergw3ViF597PkR#>F%)+vz* ziQ#Jb`P2SMv}$5oP?O1}uYNpGl@B-p_pxZVx)j{hF}{~RoNXIv5Rb5!br(gJ3w9)m zt@4ntN<)>}qCvgcfX(DKc{FD892NIR;F7{O(f2uJP->35`#FU4SmFiz0{r#0r}G~+ zX+(DKVgDH0S+-ja@pFo2I@WD7JO)ReIAgzk?!lk$m50q1f#uOm`Es1wT}%%5g!PMG zp7&hB8+~xa9*A5R6)r19k-y#u?xUIs^+-qq6S{u3IMhm4C1m0kX^`WrlIM0vnH9r6 zn{c{;-Sokb=y~l;`cE;r=ZAMm_CD)N1{^<4>y%KQ4D@H-O5a8`p}=l_zj8By$C!6- zftJEuJN|ppt@Q4a58O4eD;UCAa-nCJYGF^d_FpQ*y!3hE;(tG$kg3^p??%c7iS-Gs zN)Y467QfF4GdolfqEBsiq}HOTG+|W-kW35g?&sj>mCR8Y>GGBfrRDL`g>;2{)2sVZly?gdy z$DJxHUL-2P-GDT0crnIZOxFKV!Lo_o5%~RxtVR*zVT@~K_Epb&OG`rjCG;tg0a%TQ zm@1EBH73@2erWLefP|#QtY>_SF&frY%aN&(KN-p=BiUgS*P5fS%Y9MqpU zlbCC4=@NUsy9=&iIn+~H#M{?0%C0r7Le0WAxr_G0l5J>?^L*?i+6!V(Sw~MV+Q2pU zJbh4rJzxAox&t;fz1s%|ov9Uj0m1e=MfpN31hX^37igJ%xP-cH@KsjmvAieeEsAX~v}To>xk}Fp{ivk$pzXMs#zuIHdyVFKw4uHIuFC@tpN>Mx z8eiXpmu`9tdJGrt;j4?-j#gNaDTXiQ6_1Xe(n(9~E%7!or+nQKV-7C5l>K3f%3Z(2 zHow72M|Z2%&}>V0xvR>`YrqwMqn`IQN3D@bSjG$d4VQ;bY{ahB+d3MSmP>SQ=1Auc zdh^?sO0o$^8UD zD59QNa&E! z{??ircg2zPZkB;#kd=JRXoT(EGhUo+ad|jetIvz*H0xPCf6aBB>bgUW#!k4fTDn`5vlMh&&qWEt52uXMo$s`=e zICx(5Y&=%6 zUixE#xV?B}g7nBP+;%dZwRRkQ71^UMet}^tdjB5)JwU?0C)5;9DKAQcp7+!Ao6I9S zl5bUvQpvi5rR_Fk{wqr*LY znIpqAzE*&^gq?libWX}q89)-FNaE90?lU`HvQ)+y2~OLg=uDfDX>%6Pq<|gf8s|BC znh94vj&e8K0JLkCR9H6IkZNEScoIa;b57Z>j%YlGZ9N*#{<`L?o|qGQ+tce}98s%i z8nIYza0{Q)Yq4t|rDKms5Xx4BR}T{426udd2!`1skYfO)8e0SgCtvNo{k&9P9gSI? z8IV0~sW;yN_wJjkUq&a{D{9r#U(bZ|xRUgO)6z@Hd5+x)daS&?+L680**0gUCB9%k z_a|Gm7bhSllAF-D`mQ}!lWb~}<%x~2k$E{-&y?^QgiO!6`Ut7}jyRPO?{*GZ=E`|N zEwIZZG-&9(|LU6Wu?>b+C#SW0l3$Ej3->d^>cJW=ZRAnVxG^YpcvGFj`nu0}b3hzj=j=RGR$PJaAh;krD zC5kT#dqb)qyh*eo*3Vh2Xx+eX9yHe+2ix>1(doFPm~uu9~z)b~rCdf=VG zElSSv)_(DaLif~F#b0)-rZmsa8y{hAFkY~Z1B$Qm>8}bD=pKtk-wJw--cw@_+?Mqz4SgQmaq zn4Z~uBB)4h?v>OhjqZ$Nf20%oL@y;(Au1I|6jIt8@doVRIr-|RWCk!Cyo8M3iurwB z=MPMD8K?slExvv->qYS8eOEM)wDin()PB16343{GpQYp@T4!7Tm`NBhL zM_{soSQ9CO(1=tilUsb5p77J)t_k@I%t#+UFZ=PU)IOT z$fcd1=@}yS)We&p%gN&;0H3xBI5WK@NLVO|eH_!WRHw(mjLJd*f=3U52a z)E0$l&CEr&>0rw**-8G%GlrFc`T9srk3{<#^ywGhiwLYZYAT)xg>kczH<%p$Z1%*8GDuFD7ZYR#+O#J=6po` z`tu9H0xKJdX*~7Z!tRPH^biVEij*k(XD8wKRr4r|=aP-b@+y%)1T}mP zk1)2>9$hu;@;Q$(wP$C@D7zoxhb}Cyo73CV_8)EAf4~v8`urg(`$H`!Q?sPyyobjN zFp=Q-&ry;?+0CperY}ATrRAv6MAZ&3qOWCZQCt#7#MGnN?SM~9J%b6-)d;_Q{V*(r zMf4>tEm1+@b6{LwO*eqT+r_Y6PG8(f(5%xggsDQg^DPOIqU$Ahg)jA&gX7WVYf=k0 z&UeTv?1;VLFH*_SQUlLfIy%Ih%ybNNNNf{b1?a;9b39#vc|xN+MkP4I+9T?xonMrz z1*Q=~;M%pzRxWCJr#tN{^TsP4%ZCR(+%Gscx2x?b|ID7GVFpaC zwER@35;FMr-LRn|i_yxF`az^4jj+0XYoY35Qwpw^<-;pe%_X~Y9AaJ|>7P8Kj z@=sx$o$q?BvB zChyM^`pLbd{FPN>y?`%9Z^NiE%%eV@%}VKrx)KJZPS<07(Ik!=N6Zwnxj~6NQ^==(FPXFG|PtUtM}Cm!8~g zd#FXsT6P(sn-f|JKe=Nx$4M$BzGv}dIMbNrOu8)4a+rcU@BjTz&`}}wvLly~a?I=n zd>#s!Us+ghg7BvuY>no*F_+=+$ZOz^uQm3kck?pwwfbxbE}FedH4MB%%B7R|nu)JJ zV#*_$j3gxypz+XQ$6C5Bj>pXrY97KjA3RZwt>8!^DCq0;qXkR!Hlg{CyQ$d>n~{3g z2-VYYWq$3U5CR`4b;ZuYQV>(8TtLegsgwxr#klADd*S7y^ttkWarA^Q+qP zlL<5T#~MB7wieasJ?V*eecPOWZcxxPd7;Q{nP&2w3GCpKOC|hmHU2AAkku*Iu8qlL zvtZb_337Z_*MTMnmsiZQ7D*w*VbUwv7|IsI+7f*DKdpTSj)o4uX@rN17@R#xq@#Rl z=8oMP7rkTKJ_B;?<%pwJdXiDL#l%^9i8)g2$Rlo`J72yg~~8#|5_QOw~36s^eY2j9FRV zg`(bhS$}w$rU`SAQT)>sJ9g9J=})>KHbT#xNp0aE&I9gCp`+A9;Jo|M$eBI;`Zk8( zEaUMEvSP6v*)^%oV_*G<^VM3Ny~&16A5ZxN%;we!xi=BP1pkMb(X-3;80{_~_9{t`|m!cU{kB znYQ1_v^jc}sS&aBYMsORMSiX-?&W-7ll0=Op;`m|I=VXzctP3PVfvEH`5KMeKgmy) ziPC?jb8GwKI^N5rar2s???gkq(}b&v=vz}uZ2Gw17KVyzZhHJdAIcv-jGbND3KTSi z&6Tp1l?r>nR_PAIz}q-rjVe!4N!V@#2ZsJ#T_h1I*LpvJL=a5#`w|$q)+az6P+!E% zT~rAR#{wWIiE9;Qx^l;Sb7!+Psec;JnjvbL^Ywf{Wr-WsIyxs4(D-@z?WMQ=Fy&?M zcu`9XYgI_9P^)3r=X!QY1S-2*J(_~cr7=UxZIh>QOGv9`+@uZSzr5zGCPW<-M7l}m ze&$%Sk7$RKNB*E+yj+9{<=!b4=)))3){P>r84-~|aBJJg2TGMo+D)%`W(Q(`lhR=DMtYCIwCSDh;*%JxyJuusDTZmHQBr9IpxPE zxN`^5bbMv-`(Xz!G;Q5f4FKBduF_r!GqljI|8(-r*m5b7rqg zNZ_?z-UrLi5bYAZZi37AaXA4Febj3azQ^G!_DBO!F80+YhxN?1mmgiWK7E-C*G~d4 z2E7rlz8oSJ@9Nej5_DVi;tv>Z>Bl%asDryzQrliQ-4qkheVSut^Te@mFPY>Uj9b!a zhUA9EA@!hh=^3{TRnCM@SJGSf63e%%X_*GZI$;-ag{($jsn^os))2V2)02#aVY4`5 z^!P|U2vABWvyf((W@0^Q;Uvv9U|tcBV#1oSFnwHneCIvf)F#Gp-b#hFcy4MF_&rZ7 z!$caV45>pfmP8Hj#5cmG=Wv6uXRRa~f13)k=my5V;S$%49`hp3FBQh5c${LTqELJ< zk|O%a+=+70Oo!{!FLPU?ads~+a~-luoot1Xue{ECO$e8|z9uTOOs)5;DNW&?i#87D zbzzZyz?W=?JExligCp0+HoxZ**ywEx1TYl_OPM2Zi_{!)G1faM7roT$ax}1obGaMV zxrR+x_bkY3yxZoX%Kes@N{X%o+rzU#ggf%0#egh_j9~{KUdiM;HU8V($c&gSii=b1 z#{(P*k9)b4`%2vNzuFGCUgj!96(|Jy)Q#(%h%YmJ{{Uca$cLw1PDK9B6hSnEL;r1# zUwQ8GqX65gJEF2LDiqa~()Q#sj)`K}O zql2Fs7@?l%*NCQAeaK}`8N2PAJlInS2QAfUC`%pq4J{s%0Phz2&M~Ll91%2r|3F0pSOzgt zjv{QYcx%wP5N{;l?2!}j9Wbo2Xg@P%-1t_nw}KmXDQ7!=+20=d7S?`J_9Lf$>O|Gr zkknBb?qG#=GJF0vzcWc5?IO455y+Zcl$(bkl7dBjd#-c=tJ*3|x3Ge*x>OE6dth%a z^7q7wjqkF*q!H4$Ez-{=UwfT_tuSd7@LkxYOWt%rMz#cXVC0E)VAZ6dzzM*g;9Cwp zxE0aVsgtnfvJ$Icy|nA)%6s>b#nrdZ@YcUjWE!I+IuPy>VGrhHn%NK#tQpB=Jxl2T zaUXvZ(vCh=ny8a%Uf)>!(W+0O{so=xN`{bxY)#rstx&l{aj_+*blfCvsywK)Q#MjzD=g%jee6X2FFbI}6~BhPU&@#xpjokB zY3j8xHBfJ3mWM^P&Dd7h4)!}$DKM6oI@N=z^M*xh)0a|<-%?_9i}@kHABdnlWt=ny zTeb!lydP5J7d$zVIi8Zf6v5Wog^JI|RaaQ|I3SGQgR6_QNLz`z{xaH()j9&>LvP@0 z;PcvW*>j})M=#MzgljxvJN8X)KebCTDxanqS|dK&ZdL-=d&tjQoXKCTY37g~GBNh8 zW^E%sih3s^$}Xh+Mr@PMdZQ&NBY{v#_e$FZ4a=)bUO+>694M0S>^iSZoZ{lA8+q_$ z{@Zl--OmpOR`P8@JZ;GVNKSqQx=ssap#0&Q=;p~c@dBFxldPF=$sIM+${OxzNSW8B zwaq=rPS`)=n`>7v>$4T87*N6#IRq+8OZjs5SZEa)W)XG5ch-$D!Nv8vk0Rq!Uq*0I zrE6$OswA|jH+yaJ)M_oM9nCng*2QM2`-X`4kQjnbIj?x&)LgNnbh%Rl_?`AXND?sbZue4ksn(9nigc+=r40enFP0d7n`#Hrg$-gz0YKGfx zBUl@iht$_{7h7LP0L$e)kFV?D9+MdEU=$rQ>%gSEp-ab;igH8!p^^n2c&Z}e&?fS< zZH&y{w#_m6*O|51 zj{!CAMnM>~l&E8FMxQI|UP#QMer;zm<>$olcRR&4oKM{!iu(}q3`>x5>!hsOa%H9nc>A(c|Z*)n7CSI6Yf#r^~6+R z8gk`Iu@Zq9L0C2RE#J{P`E{k*DTjqRr#mN=8v+SJqU&h*@BSQBIwo`1mp1)CPr;4!{ zT45jd$+z4g$2s20j|F1DUQ2#FpG*rIxwVPYGp40EtJxeDHId*VAOZzpJbu!hY(}B< zF}0A@KWd>`K{|yXxY_q-y$_dTtXY5W%I#@~7ouZ>E&`gp3Fx|z#HtB(e{ajLM8#8D zDm`qErx5UyygSmZ2jD|OMm0}1U z_$J3RQpd{jLc$X^?Fcr`TpWRNv(27HC)ppKYF8(kdgEP?JQ*#d*3>bcFM8Xbi>sYO z@p|3jGMg0HsUku$ekm@q>f5r)Fe26g$z-~cknr6KOsqk~^VCk?E*^b9z0UY~A0M0pa({^@M>?u- z?H#eO2|v|M)uqSK3P`l zm~|L?Q+ZSOJR_HO$xTV9lkiLIGRu^Ou*~%#M`P}-Q#T!ae}11issZoa{^}ay9ENbG zMVa_cQfKp~6h0&Nr2?3*C_3ie)XBxAqE@`w>d9tN<20X{PKoo3Ook)61-W%T8|{{2 zAfJx?6u^zB4qmnr<&j@HFUhz;Hj!AQ;tsE{+5(9#MzZS*&KQVLu%g*#(E2w&MG-`P zPJ@0Jx#R!(=ERCJqY*~(NES|<_w<4{d5e_Rxa}$|-NbibVqG7Nnb-gm9x>pZt>SE; z%;^eRC{lF3=xe&d<-w5=nn#;2_oVYV+Iz5XUt_R;bVW9nef+p`n<6LUrF^{F&jE75 z;%Co8zzU6XA0wuf`r`r(u;d$SpRE}&VmH#hs**Y7eTx{bWTHX&y}zHKZ*5oY+pl39 zpUGBqZMInack%~TUME!q2b}LFSILiwm&n-*aA2u%Nc^muB=?d~CU0`+=BWmGKEWu$ zT|X_A1s7Kv^}BV@ujEaz9J5HrO7X-TtY0m@?UhOz^X^YG%!#wl*Rn>AY0YB3H51p*&>8bp*u_W+_u;%ij- zw;@SaX_$sGe3Sl)-E7TxaOj@)G_m&2e@XZtS-G5Wq-uFASqlJ+O$O06Zt1>wc=F<8 zSaRQF-eROiH)80CZ--gL@J{(0e(FbL+IVr3#+t)|^IlHLF>H)~B<)eq39Q!k_l|13 zI#!}p%TA>y%iINT=o;sHu<(0z?46`hVdGEFO3nRK9zsgv(VVV!ez@WPk zSg2sN=l?`*(f;FtK4&JzlYxjTCh|;LXRXU~C0}JsK@Ydw5ODQ_3B1xCO}*O09J}~T zGDA1^0F`t#w%tapbr$YzEys{C2S#8+xUbn;nlD*xW^a%hb-g$9es28#SKR=n>y?1a z^x@3gRUW*d%8m@zI=(FawJkkmO7J<$Qj)d7W|az36LQV|-N{cYT`Ae1WJRiER#TDE zP?+R}?G{fNW)x*t_(izLZxF@w*$J8{!!cpwj6kCazU&21j!4uE9;! zw@H3^?Z)t%TFUcRUhFO04Wmw%J#}lEb*HZg5V8g&-)~Y3VY+{4#}nTFc>Yu9m57G< zfO1Zotll6$36;g|fUEoIBTds-Rbsk+)K{jTs!J6PI6rZVRy^kQZ8c8~AXnV9j@tUt z>{Ve3f1XKehSe}#RX4hZwc67kl)vabdM*Sz65}?nrZeo5WU{#WDOIlR0PE4%Rp=)T zxE~uF7io^X^ZuV+)(TrM-!fvtRF)!eJsT7W;M-NZ)SHj9{;4{v+lWWm92tvPY7>`T6jLU6`qPQ$pp8of+%fH`?w@WhD}Fd%grQ1NZ-J&S zA<&*H3wXPE;C%N3O<`HHtB-`Fep<=knc0x$6c-gypzVk41CcK<{f1-F?`HY}1mZAK z-`ccM$4dtF&hsPlO;5dJ!Il;AcEo@6{sThD#Men-Puki;)U)wt=fSyjdT_-xO@c^B z0c0#3!C$wKtY{ME-qJqeewS&3O8e`Gov?N!5#7*@QS)WRj3zHfhv5?_1;b&?s6;a}8EzxOme{X)b3#$x@>^+nj28vigmFP*h@7{1Albk1tKdP9Q^ zMv&U7x8Bplwm75jay>LBJ{EGPO$W9IvENB|*!HHZ>l1pZ;7agDZm^EjbbL?=!JgCs zz*6HU%O+7BUsHYW>U~4cRSU(sK9@J5(p<;|J$LQ`ci4UTY3pMYnQh5u<`m{tnTykTgO>M_vLwTNGq_Rz;Df&Qkx|Tq{Yvn8pV#Sx_N2eO~ z)D7-Po}ckBaD2!!N*|AEzO-IsZ|cv^F7bf7ls+GT@5?!Uqs~;l*~#8aS-rOZg@BuM zF2IoI6ecfmJ*%=i?`vCf?M~u*k%Mz8y!fIZSZrSb8_;4V zzh)sn3Vpz}p6;tH|NJoY&I`jFJrT5KS`qPR<4^_p8cpq6&qJ20156@gt z)Zy!PO+N3GKCH3LtFH70a`p^%#2)|A$IRYu(DesYSxS#5g3R3Rn*Cc9i=tZu7T!Gx zZl7;3IVIn_s;0x{iTM*kp6X2rT-&+@!k^jh0_>Mz z)9)iXk(CZA%~cw{TyL_%QOewPBd`=oeQD&i;SrgscL&F%x)D^%DoKTJzLuh>J$At` ziUUtyg^=>H$#I{EW~EP=M~2l^nBy3kDCTc#!PkrLbtvp_gWRl_vm{jg>0eZf%n=>P4Fbkx1DzhogzXn ze7_jxEd=%7(bJn+w>s~UF1samA20IO5y01JpOlPp%81};&G5HSyF4$!8TL~n{$>S7 z5<}5H81<&rH>H6p98O#l^DL_t|5oG^Rf~9xhb_yCL>7(h&;{P(9IR1~?rHrZi28ME1<$J2)jG%^=3ihDAlrx)tG#5L zJ>gMJdD#WnYP?f7)*BMk6~pplJAC^Q)m^fDf0Mb_x#-7;G)ax27J=Bz>%eor67c4&2Hi0gCde zlXl89f8@99=eEZCtUYh-Ty-50=>)_4-Hb=CW13^SrD66$75ouaZ3ehG+?CUVx_+GI zn2AQaMGzFf=H>y5A)v?IvRiy`har?M0uI$|dX3XO8f>~6KJ=>ajjZ|O zKGVyYVR^~iV{S*;rB7;QDYdwJ9^diSKOD2hk*3JGZ)^1qEJ+j!-4(T?G0sudW;p%Q z^{v`EEU~s2UJlX1T6%MN6ZK0nkWr>K>xwPc-u{~;@I1XaXtJsQQFo{eI@zb3v?E@F z7J{`fRM;2Km}(2)C`lBs_xuZx*z2d4>38Oz?qC?w?a_8@7|;BA8!rTN2%97hXatl%cj0oBmv<)H7UH;IZ!a5m{JuL}gKPwG3Y> zgVdn(jjMF;a-XW~uWz15e0?5#6d)wYmd7H2fVaA+tK02nAvjDsaD!(O5o5|<@i-;l zpLhJ|^)FXJn`ZT4W0Dcj@?Pv0qV!XmZ9fKF$XB#7!UQS3{s0VLd`d41<8zeY7Ap{@ zhtTvY@3qY)srzBDdfRC&m`8rs8Pg0k1QjrA(3j2U?X$h9hz-~I7Ht*FGwG%^jqB&8 z8K%I6$eJO~X!!irQN;>pRkD!>O7h^+@{Fl5Ebl!Y4JG^Wj$?0D zxm-X0(N9-ReCgWZug9KnFZ&IvdjfOeDhm}EjTZICaF@CHz>TLrUs1m>eTM43ARu78 zhjxw#dYqHYgfKK00lU|peR9TPYrov7!{>bHJxhn;4}QS|3cO?ZWJ{I@BeyJ9bI>g(ivhu-WaCmCl9iBMiUl+u?r2quB!n@MogR3j1K`cuWSC4D_W; zBbm<3zTulyl5bvJdR(7f`6e`$pxdQW#L3_ozaU^2RfK3;5wAEd0=;oo0H6946G^(3 z@Y2Lh`;@zWa!1GEE=hp+anL&w%u+ZS2Bh2xWDFbRmtKlI^4D$??~{azhc)|(&P-Wt zbb&wJ3uk`qnYdFF_h4u$KBpe}X*0+%shc-FG&|kXu2JJMI#E0JL5t{=$W$b*skQBx zGS&3+6`FyWv!uJ~#2Ac<1ngvm<-2$5cmd?Ab2V2MF(Xu=;e5nn1+GY6fhaem)tPRz zu65CDxFibE^DNjwK4vb9{j>cSy=A0D=*^fQ^mwP@U!9!7kGO&TR9P;ZaX+N7k)PIm z#nL4G)JF1l;m4N){vQM8w0rSX7V1_SPq6&)tE`Y$Mervps?a!s(zE65qcgQ~^he1O z6JmyWn&Zs#aL#P>(L{QqG`+u1*$5)cZY%l|E5KIukdR9Y-M01Du`sWb{jZAC+%+mxf?RUB*}7 zx>NqB^wCPjrOz+ntygB0C0hY9`=bXKMI4sCOFiUsMoV{+EqRrG<%L}gQXKQ*?9%(`61DMx;rqfIJ)bYDj|wi#sYwy)UMV&4+``D=oGx9bzO zoApt3=G>KC+U*H;vSlK*a6}QbmfF`BBY|@gZ@?quE?vTONn7&)dfPX(`kFyZ;#XOF zgqSa2^~KFu4oKbuAvLI!e{uPij>SjO!I)NKR@1qp(Ft@RgQL zDhHWwkmCJa;Oh!PKf`ZFR`wJYV1r3?D)?FEm z{Dt=%bXxkCI;07|E;g~g=S8bE)I>K{VmvY%YyyM4BW9ena(9mHDXu1EDaNG^fB+!L1t78R|#p0=`C9=*lk2rsh{G7^reTi0C2 z^rH0%Zg|dV8l#Brznc1jOWL4&fiuitFzm_6d_1+o#b-BO^6$!`OAHzf7Yky*Y7as6B)nn^#w(GJS+UN&!MIOE)qxt#K{cmw5>ebG~+A*bfy9ma4# zOj2;*uNPo4BJ{h=kH`TFDI7SHKdL1Iroj11Ws8{QFR@Eh9ij`8Zcs&zaRZQOUQjJ; zbGa32D&Q4yadjlJ@DzSxp@!S+R`Jm451ZNxBJ6Jbq2#VE<(?X^Ni68`Od$sLJ^us` zyjoKTcY~AUQzO>A7P}Fbi4QwZKWDKVHS29Bc_!|+{-Qm+xmX!p5GY@s_$8-qV9j8o z;(+r}i2tVaL_j>o26d3hv{Q5Ik=OW|-Z_aD7vVcJlH&7kl9rvp3GsbRYO3vLjN5Zr zUkqV2aCLWZHc&KnQ=(Z(B&6Fc4p_){rj)z*PLt^|f}PYnZJsyq7ZYCpG^)mHh{D?F z+IX(%J5TqM!t!9u-@MD2FNCI*fzB@RHmK2I_n?EikXn(~W1XY4B6)b;@1qL8y$dd- zU9S!L9^qD8C$I&b>`iQC%HeW}Q%#?*xst~P?a*DoVVI>+T)lwz)i;>3pl>)B@x%3} zpWxoK?+#ygnR(Z$nP`M%v{JtaKM5VHrZz~hyD%0T%j>MG?{=${P8*qx_(CZO=`J7Wm8)s^I=DmPTKl33eH;+m^Tz%fshX>xkA&|qqo_SWkqu5YA znA&b5xH{@tfq79P{~b6~!lDKfx09CLpVwvOmO-J)w*TnjME@wbEK5o4*wcIcT{L0Y zjJoM;voEK4r_WQPrw6^N8v9Kb+&KC{nV$&+6UAenEn3vU>S* zcZ9Zk8-K3^Wys2t)Uv>aCWzoyE-;C3e%c)=}B{==1&Qa4HnPqI60IW1?v5 zmpso_K-VR*Xu_}Jg66Yc=9F)Bq|SApo>Hyv?j854Yacc{zkkb8{In@#?oHKxo?){1 z_l-A`2|BaJ{-LXnZl`TD{O5)jRyLQDVEc6=730;!L3Nuu!$YXmith0SZCYQL;CMI}C7rWQ15d_gQPuYUL zg>1!L8c`B~MRp{!F717BQeqK~P5UXp)vz!#x5JB}G=lpb_2FVNZ`HX-lTWl$I~F)a zBeB-&x5K4HD2X(x&3;BOpy?+VPMeq>SW<3W1`=Nh$}>qetBFmA1*16hbB{TusJY?+H(}_*B7Aux&j_r6O!BB$6fvOBI+^zo z31@e`on{Tf&@i~A-hGBNg+YPmoBV9oFEu#_uiN)_+CwvBxt3lvw;f+R_}~sd9(#Z<4Ssf)o;Pm(uT!IP=Ce!W0H(z6|Nb*u{5sfBp!q{!m0fRy z*8WpD=)o`hw55l-Q_D&Fji5$u3a8xv90}BtvfFzf5mMY>*Sf{E(<`Ms7>@nO-^YB7 zzUtRhD-l^01Q5K5{fjDRu+iAbMp0XtNKIipNKU|B{=s*9(%r2nt*x%~pJ&$K#1aokH>5-BF zzS76>gToiU7Fcs^Oxs9&rDzZly=Z#Ab=8`Q*C@tu*?m$Zx>^SKpPUuic*@{Ku;U7BuxX-=B7V^ zTg?{8`So{L2``i%HL;nvR>V1}=ox-Gl}hE3Z}0@c-h=)ngbv>YN5m#*K7|F(d`);S zaDnPT z1|-+fD(BCMK#e8l_iOD@N^FjjSIY-0ZWkE&1OY)LW1Hf7f@3O{feD^v072+jU8txJ z2}7nBzEMI~#$q2l)XS74MT-@DHS(PE%PrIU*YqF0KIA8SZ~vAR9A%66@92l^WQHcwLWEad1G~Jk%Db9C!E=fHovBSamOR&tdHF6 zkys1sz}aOtw+eA`xeuMqbahraoQdTv+SOJGe>v$^$oT-A3>i3pbrTmBD#tSqebH&xZHF#R3YULD;esYnGckggU$ z`pjEj?k*V0x7b1K&HHF!2gvv6CewqV1t^C}mGB7=e_K-^>QCjdtai%Ax+}CZGF*u7 z$yC$s!@j;L-GhX3POJaD(_Ye##?f!>vlg1b;X5ahs6LiTLT>I*m12Tp##8-3SV<#) zt@a!%JT5(UzikCN89E#_&|4H*n@+kdesylukM4-_zSX0DRpkraf4%2#s}pRLqZ*b( zeNP7K@XP8$Ko`AqL0LV+BC}|+)ur^*zXy9k{@Tbi3olQAKYmJ-~l-!}Zh8Q;ss zIYMRtL`x-B-P$&Evq{O9&}@eEpb=uz%IknY2d!H^mbZA(dpqYOLosTTE9*k7dYxYt z^S0j=;~smkB86%6T)g>58d5otl6Uoz9wV~1#G_rZv$B3S-1dbNvse{6yvvwe6^}Dc zwk{DnqgC2qNMCv460&&R9RdPK!QS5YiMvc2lq9GxM>zWOJSD*jLgM&crmCxJ=Mk-7 zoA43skWq~r?9}j6v<-}694v~2K-74x+02t$-IrnEEAV#jXRTvUZ5t_*@3T9r@GTP5VuW{p|VzYxZ5PLb>Gx4=XlNtGA}yNvQK9B7W=r#02w#QP76vLqPeu zlTco%!q6y}C>Ct_ACYH8|9M2*7;H zD{IB$c3-(pX?R)|^}P)T5tHHztx}xjFC@`IOm#7l8n2F5Og)BY(fQ){=k(*&Cv2R> zmbA07#`HyZ2p%Bh=l>AIm{39a*}-Nb-G;7LIAD7Nq+b#-<_jnkD{Xy-Y`l_yM-oMg zjGvOf@a=b&z`P!R52^&d54GYk_aNhiDv8Ajdh*5_40rr-vaJQxUG_QnY!2NBaIt*UOPEz`E zqhc%YM3eOktf$--6xBhD!FUi~H(uIP+GE;e!KleeniKUAE-R}VIP2Cdz`8(B&ma?T zdzBSvhxXC8r*Siz^ampNel`Tdd0304?w04B;g!qU^iM=OAf?((M~I()V*$PWO;}tN-OuQXJV$*4Uo6FW z6pZk3JmhWstV*>oS%SFOW|T4(90f@( zehtH{6$>d&0mdTy5hrgk_d>Glc+!-H%x~VQQ;r`_;W^m% zgUCYy2)1;p5#y(HLQJwD@t5ScemNQ=?U5`n?=sX z9#@h|-#j7l_Kb0na3??b)e}Oh$=6;M&Ux>^)Cd=K^qujOLm%=;#{zj1M*C?a`mPPK5ec;yJAqS9IA?TAdT)$@`;`KFtk zt5NjDD|P8LXb@}|=k0cQD(Rqk%q3KI41{25$bsx|?_DF4MR1BN+LgTuYTHI)l{_g( zeK{e}+e6E*DFbGOq;HKW!@7i*3WNdY z;zU4RC=EHd0rQM8Zi8EDOhX$&(gO@-iybb_22mTnQGWhmWWRP1XZ_m;893&%l5k!W zW>AsOuW7RT8K&8r|HT|yG|hL585Y$pG2Qn4-{N3Smj<`;>ADPhb6_FJ+b5i!-;^GYVZ6Fa#JFP^qa|p1taGkRgapMq>z_7#MHrW-4E&S9V1~cM>g**< zy{H?ne0^lJKAw3^??esIaqopN_r_#D;cUl()Of@@3BaI#SX&+ zn`IEu_4$rv$xq-)M^B)1dK4;=#qkL_Ng83jj2t%J%}ubl*PgVMd^&+^a*F>?IxE#B z(G?=a(4u-`u~j;Fxt9UC$WN0<>Q6#>QL0rpZzEzquD**YC?`87ExYoB&%A96e^CK-)Y(ZgX*?Yx z?I*}l%X%)u+$+}Cq4^WrwOD!=;TW<+c72Gad~M?4m9Pde z)bca&ktr0`xXkCuQtmKqJ%dBvpm_je!Z=jebmqKBLlM#oWp{FRQ4(0R&r}Cd{uJIw z96+|6n@8ytf#qNx@k~Wg7cPFVN%|=xaG{@pWr;W$JFF#l7y5@1Fme~;l@-Y5f>}$^ zx3=b~v#sST0pp>ca`1`xL*A(7(+AndehAGjNLzHMk?XaySi?FDiSc$#=KIC1OD^3e zPvF@?v4s}oV}SlNwk^7hIqrxeRVp=UOqJqS0g}$J&oA|dgDRGIbX#3J5D0|{&rH5Y$4%LIzJT4MRmr|u}QFj1_-3BqP_0mfVxL?3J~CF)#h z5VQF!FP%G6ag3>1(-I5BVDCcxIm&8IFWM=8b|q3Iwa_zmg90I3i;R5ZuqR7<3c-e()k2`rXXSQ3-z`gfm?ZDq%c|>z5k)b7sDMmG~xBrT{lU z$iFQ(mu_xxl5mqfy2&Zc2c$97g0xLFm#$M^iFl(Cu~Tj^rO;B6qS^s3ta~77tmx6Q zys7kwRzl`|N|35;R`QOJ+G``A13G>(BH|CejpF8-QbWJ>(0}Wwtyvb_$=`EuC{W`# z0lIdHN(iPrw#E4H9tWM(U5ejPYgos_vKoP6q-{k-S_K&nWD&Kp{86xR%E#HonIuL# zREwlz+UM&4**CWm!h=v@tU#COoZI7Kn^Y87)Z)1N4aZ_upgY^w9he|cj<3S0m>&Uv zn7z1plhtswqkD~tHh6nt?MOW~7DDkv)86IiE!D^n5vt{@{vJT4wR({~X2w~aSitxd#QMo|c;~M_t+fhsXQdKvL z!6Y&OQC<1Bo*i3-F&CfxR9m?lWfEkZX;%&J2%7T7{qJCjrulDO8}>ho79yqDs6#+| zIjp5*5d&c!6<;QT#@8@AmaKcK=~3RX;2)RaBtL;{fg|*P4wq|tA>b3xHqWS8hNFUH zgZDdHX5qo*PWXNS@@A8y9A`Pa^P;-z^;n7qcHv0nGCu-&*|FirPE3C8=cgn`v$4s! z4Efq}tlP99>gEWrz+;s;#W(RgbaMeDtnbGFK+;8DMidZa6zgV%YhM!q@{qwjgYQ(C(5`#@^@dalFW39sHNny16KFh#0u>?ZgkA(Iy6NLbc!AjqoM-tCoS+o1B{?P=1*Y zYeU~gW4^P6db(MB!hdhIgl%h8_WC(~@JoPJC>Jd7>CM;9u5uKMi>CtJ2Msj}xy5o1 zMqoXhqAXX|)fsoq$@Fs>9esI!k&6)wG_fi$c*IUb1gR6DG5-;OEOJf`^W9*KUx!P| zEOybozmrpbo=2 zNeK!qWIZa$7_hxa$eO>mFH{AjH2n@n&aBtQ2%L$=sgJi|u`^YBP2!M|i!VH64r%e4 zz@}s@^qxB+#&mA}ZAuQo1CvOpzS5B0$$iDopXNLI=xAkY@)j6^5hWhhNhBbiVTL(F zWV{;yrz`T^wx?+|z{+hf{iB&u*?^St!an&cH{=tV`%v!0+b$#lw3xzxwY!Wk*@y;6 zeqh3;@E5^T`)e8E8}2w;!;z@|bdKJlvGZI;gw9pYHB9kq1W^Tf_$1DsL<_Vr!{AuA z0(S%)l^`CdnK$^u=H^#N{sJiW8o~wm$vaVM-KQ>BXT=Rs4A`5xCG055I1I`yb&OMW z*vfwMJu;ONTrDUF5^2)W15Bkm@H{xMVqvt7<&t{{#yn@a^%m}whaDZVfWQ!$)9mZ= zfQmV1Uk0BVz#j%`%Fu|PjgqCTjFFIw1J)@q7)@UT6{zM>Gi${op^%QIoZ5>6jFvCOulg*wnbu%?z zi-6>)UIgufpwdECu7SEnP@_O#Dfub#cIT24n!0@iP^EY|BHD!?cX7dijQD4L>e8*` zx492`jh&^=#yZXt)+XN?uFqOFaDh8qg!F5mU}YnCLy0g-nX3GB#l{rOVpG0p+FNOJ zK5X-9+W&vo@b&6c`?MV>jUC&zJ3qEycJ;b|jHgr{gO@xlNZ`F_e>eX08!S>6GH^?Ja!l!r*-$IJu588vxg#eNKpHP&wR+-0I}g%C^=Dolk3zxh&lF1+ zid{7aAMLm56cG1w2o>6~zD>so1}f}>SBE%bZPf0V4(9L;D!ts4V@pn}yI?RkHRCe7 z8{S5&fZEdlF#tn8<>f@Uv-|2q-YIIu2`FdYlK0C1_g_7!xbmse_Sy#4tukC~h2AJO zv7e5_22D)4<>nKf-I{=Lvh4#F>o*5);aReYv#VMS5hPjId$Sz$PQ#=#aDQ`45Red< zuC=C8ZT@?@*7N=o!?aCPp#oMnX>}__s?+*2Th>ij+2vXKdvEfc^BOLEXaB11Lv=0! zlVVlMe6faZDm+1LD^Z>w)(3xZBm zoh;nHPi66SBgm}68s?-p2ME7Uz@i47jm%P{)=#K=p5{}JdHB0kAOlhpbFpbWVPfRC zFnhdJDO0++-0WUABf)KA~-Ti=+&0?ySt@gmx1`OuOGYmj5AoI2i zpx^J<$Vp-4i{c28*srr@y>Ju)xRz+p#aYZLmy#Bo?LCt+)U&&*D`-EwJfv3*=h@Oi z`Mz{CUhg3VlhRK8cUPSX(|AUW+cSIFwKg!BJl|2guxRx>Rp@0cfYgQfrOg!9?#>B6&K+WNr}ADBnUo_y zE6G029#XK3+90KpeTx201BO00lBJc+ao0D|9h`H4RQu^k; zo%DivPvRttDTDp#n=3*pz#~y>BQG&`ih5(%A-k5R!Mglmi8DC0&|wG#>}FsQ>;J@0 z34bx|vY%E~@VxOK{i@>A&#i-MNlhvKNnikW-VPm{2!Z zLwbYopVm9-@_VBRuCtHwo>R8FC@N55TNIQQG-P;*ERZ5t>a;JAvI#%?Xg!Ei!))gy z6VNufb5%pF6UWI}%n%P7!6NOi&A%c)mT^C$mWr`Q28jpAcTKXh907q+T8vS~aVBG8 zOtKcL#>Bxtexia6eBz{jpf#w`^Mb_|uJ2qRV^TWi#G-f7q=i6jnPltzjx1Tz$U>^A zHqJkTgHiCRq}iA51Qg^;UE>fK6G~fiDTGtcl!E|5Dj5&gOyXUAWBrPH$5)1frmVo- zz*ERg*SLfCz-f@af6mvVK&Y?jJeVvw>KNZ(ukH{1TE)qBoO(;DKTE&+OuDtNC($v5 z(u&&!&0T^ElgdH z>r@#IXX2WcIrEh8^K8YzoV#SF8tbfe&txx=kVjZNACQsS-QxAaEL>S<=8Bb!$a3cn zE}%fiq$aArxZh+7NDG@+W4@VMYjwyaQWP}%x_d-1OOR*an{6Tq-z)@rW*9JXIT?Ig zQVD`;9h|yTODjHj-ZL#@%Eu;uv+O8X{Xx-dxUP6#j-}V0U273I(xnv?XQpHjB;m9i z(C;n9BQ#u9kRv+t_ImLBI4+@%R%BN_m|f|27W!x08WChdx;T*uRN60e?1}Mce~gz` z>lRD0}h+ygk*oN2?ZOJR3lDlz( z)Xv;BT2x+VZU^t9jMXf>LX73ea&*A1>2!W1av#I>Se*G`lHr5lWv2ZYU}f_#`K>yq zrYq0}syvxWkMs{k)wF}k*40cc5km%>8o+FpvpA^S=9UJ8L~$fPk+D+{2@LWL5ytCn zlq3n@bAe}Z1fd=bkyxs=e2~?nuyDr>neRi*Srbz88&FVX_DRnkd*pu}+)<1a;;Mo1 zx|$Z_%2)CsC~r$mch`MO9y%nqMnmNY))+}D@w(bEfJo}O#4pt`Uq(5Vzu~q!%oJ9` ztiD?1QxfzBSHnJUYw*f#@#Q@}QqGcGCK7yHU2!oOmtKlaTDAj-IR79DRE@u#NH@Ci-hwKv0F@ zwKFxRNCj_S{qsy?`Q~Rs;>e40IOW)7#T9~;8G{~cXvkuQn*QJ__VlMTNW{4@2z&J! zqQ2-vqjueorLlK9W6hW03LnU61-7|Wj<&vD?t9^h{owDMvn&arHAQb{S}Z&)?jy^}bq6QMJo?qdlVTQyN%Z3?Sn1TJWZQwFOJ5n)|@;d;MvGfB8G)q@W~ z9r53&cWpmF1c!|BdjjJ{pis=D34<*|5g%4oV5*kmJF7giy@O0CAqB8EPi{aF_zm;NX3*m$UX*z07iU+g;oqo;QM7hc>r4F zYtF({+OiAk~5C!hqU&2-J$VaJ5U<6F4%C?T1RLSMu#_ceRU>saN51y>)3 zp-eb_A$_0u2K2kZ2k7f!#0 z`@P=eI4n_W{njRu1{Kf9F3>=+ax+wxxnfzJv z$FL_4cnfTt-Avf;h3s<8DaG@9=<`a+^Z{N zZWMBBBzHPb;ImwBkK=OW!x(kG4t6|A8#U%B-hQK;=A6j;sH3S3aRxS4IAx$F@t!{F z0$0+dHmyKa{AxPFzR5e_#*-HvPF2}(8E^X2IrCXjVIjJ;xwMnlGwLx#3KWJ`?$+Vt zas#P@gfIn3y?%}C#kYDP^Kdau>PhUhFZlCqN8)dZO(n~A99PDXkz**k`xn|X**bT* zrS-0Rdw|jcd6Sysb&)-hqrMB1j9~b}&6c00{6r1hC)i6vMWlpySIh*6HCgoP($OB* zEvz}_%QVV#n{f2b4@urc=s-GYBiYPc1qNpeL9ils^`)O-YNfXTIlD}OSw={kaO=Hu z`Sj#j;bU|BBohFwOB>Qo?C3tka5IK_G|#sKz#pWM9CUm~yf`NoAWKKtuLSW5rL8bE zs=YvHL``;4y@X@y{nLSD7VW@NV`()i3e2qEJ{;d7I{%B3UF6$$khQx_g7idJmA7Kr zZW}6~1|!%|35WDBFm}bR@3-;YfaMnph|u)!Ey1BuS!05ki3C9Ur#te=!RHbupb`Za zj^@&A2eptfVvoei6;O}y0eAnY>Z>A_cu}rkP{v)@vFivRtQuhY(=eqM%M%u*BWOYl zoUAP*gs#81VLpSk6>}vi+MFiZUM{EavJ~0sNB!^siVogzydwP-2~4!VPNH^fc+c2A zDJ$zPuVUzfHam7xbo!vHd1R&XAaVmpja%6`pF8mP7&Wu+av6#%j9@Pv2%U)ZpRi~{ z{|}x0B09nbB5%qqQG{uJesD|qK?mB6w^}hlQ5DDJOI?y67^!@}R#1m8bd3ovlTngwm%(aa_ZUv^!$nJhMsX4DbY<*r17_T?Wn_ar2xhOeO=tR@sPBo*& z#OJ2|dM6h0(G~a}XSxj8ac;IAkd&Zo#;>LBj9G!p33c~4!_#jm7kF5qO<7I6toH=! zrChqi&16<|1SRqP%-5Ku@LlXeC&Q4sBM~es0og!(8hK#EV5xP?KoGpb6J|M{gJ$kT zMZ~wcLy17_5}|s(*3{rVk5*4DVioZ!W5*vr4%906*iAP?NiGZESB3$E zfxR&oIlR&d8zJoXOs9EHs-YOrPdMiZYJQ`jP=Vc;66*nJ4Ov~r2RR9SqL=vceNGIl ze>_5cOi5V<7%D?gutPhsuW(e>rezU1P05pM1)Cb8aP2mnK`3W#o%?MeEPtCp-@s9NFZvt6H(JdX6VT1Qz z*I2+(isKP{l8NvL9wg4vO1^Ue?|#jzvF;?pqCIR4LxA1ioV5*u=y){?xzw6dq7pR1 zrqnlNj?Wz&tR>k7WlrgzVYeMZO56I+yO;Tk2cAG9ZjgZB`_6Gpa`l;`jk3zpvaQy;hL^h-}{ap0(4VegU)TIep`DAuwxYVW?0r4cOg4S|fLIT?!xD~|QV}*5e zwK4)Uz6i{vA2upZuK|-{t(sdx!i5tt!?yx9!9P5uf=|k4kctuo56S%untq4J#>?0h zh#|{oraDV2nRw3)O(2eu-%ccsRyCGYfRt=LRgE>Y8jNh~i>a{wVgQ zx4~iYQ4${a11RI>n~sLfNpcO(6VPq*;2c4Pnwj3jVtC2C%@l@)&|t(y`p^5qp{Jf) z_&1zl$xm5qcpF{lyx$x+DeCYmX0YkkoiZ7NKq)C*$LV`#Qy$H5s>-N9Eal&opfQbbrpxHCFJfpL)>A#mN zHU@^%#Vx#uFO6EBKXDG*^N!I%a=5`h7~sMzK^L4t3E^^v`g?wJ%}AB+nOHE@#JbIDw|9 zy(=!RTamEygOV0ODWWOJZ0W7!xvP4m!9EA9y-q9?sMp3`k;+dsV5jg&QX^^lM}z+P{vaEQux|!xi?+`^a%sE2esvtvn;O~pvE8zs zK@hTJRXcHw0Hed`^xt=B3pwC4yHNPH1mF=b;=f6A{?3jC5S2m1+&0%rT}+Y4`rKEmEyqb7D7pBB=E7-ASKT^WK_#Fv1ahb z)&{LG&btp0OEfX`QR!p`4H^YEr_=wcJP>AHnEFt$>nl`0i%Bd)zGvy$MUeUnf!|CI z5&OyytnI*KM#pAjViw-ECqXL!QNpvx;h&1Xi40^~gMYgWYM!3EhVKu8kfOq}WVO80 zYIOaW8>?UYm`Br|myqbSBl226#{D)G3Jr$lAPeVQ$^mee(NDmUc6qoPQn<<92ZX1S zS=`#6XSuT-z8E0#%56vk>46)7HKO2#?vxniI#>8}yy8YF*6Qa0+p*p+e;;?6%xcbs zQV4IojEaNb}b&!gg% zM4=zW2NLrauX0Ogd<{_A=G4shy}ggU5;5OxTnf8Wo?L2-VcYE51slh}JRE1n;8>%& zS*H?bC4tXrJaVYblB?CJFH2F*`xGb^)j`<0C&6tl^|XP!QmVXGiX5SVz( z9|SnHW~aMi1+1_C@67-L?xT_RW&aZw;_=-<4^Ec69Lu#jE*5mV?umB;61Yzh8e2A;ExyXbb(o2TA;oY&wh6wQxzga-S0K9aS`bGjSjw zi3_gDj#H+rTS7XjWsg}9J zDr`1)`dO88j?1l?lmd4VcQN!@o`$G%E~o>FY)$!u#t^b14`!XlO`-g^&oyX|EjB2SlsR7Dx61KFWcMHv6`AwA__ERVovxWZx>dxpit(GMjhXcC))^h1;^0oG zUW(YGZs?_wYNPC?mCmtnI!GY?wiLmWAq0V?5B=b{(F9cFd99KkoZ*r5Q4|yj#p%#~ zD5BUqOa+okAec$G?jhq?c`#KyUC?f=TwFZ0Xd724ZN0#w=u?A<4NY!*;oDyo{u6IU zASX)7*5%{P60?1Ob}*Ye;UBhkw?Kp>9#0XOQ{UUsYnEd=q$?nzm zO-mks_zlDQtzN;L3pMu7x$2+j_e^mxpDsSa$zcCOR2cI$!irxaEi9>xYh2rW`h0+8 zJw+<}WRCLZ7t`T-Dd@FcK`dGUB2C6AddBk1?DW4fxFi2b7+< zV7;i9+X5W&%TwXe1z}C>tsIwt_H8;RC9~rm#C_2;__LNYJ&5P}`V+cD-c5*LmQeI3 zJ$)U|lJ$+AU<``iN)5nLoUIkHI7+*xoDDH&rBmYwR_uq#+;^SMj4X z54c@H$)D;*;T~RmB(XVcS|ka@D4CI0+JWH{6;gZPa6C%>vxB301P=6|OehBi7VtC6 zJPLoS|!M@Pe9z53yt4tQOmHo23?-NwQEEGr64u3Y*yf>8%--id%C zd23Mc4%enKDHOL!abi()MAV-e+Y^hPj}p1x;a;j=3qk}gP@I zPSLVWX8sAui_bQ@(VG@2K6-HY?*5&Bj!bP(oNzO#^TB2gne;Z%E1?^ucC(;~<2&o2 z&BOi%r4>0AkPC_82gm^2C~@ClTb}CV0OB#VRPkQ<%k(}UAfaf>gp0^?3)Ec^E0ny7 zM+4O9;Sd5B*M&gP1gxIfV|sJu5Cu?@41W#-zeVYI&;iS|r*;}he@0H~_ z($a0Cte=l}G8phea!M`T5k?kHI7>4FT^XyUh4wGW_IR0Pj37nRn|F`C4CFV-`t>gS zC?gEhuV{ybW>1l;y*>R)bI^gRq~LcoDDE*==<(|c+W+|U`l`IU(-XD? zg?w&;QO_B7!t1~fKC`w$P7;|v9^g~K+7p~L0R{E}^r}sL>SDk0CWtDc!j=cqp``p& z9Dr`vGFwAxS7>{ye~b1l347913tjgSmgo#v2XZ2_!A~7qw0)#O?JB&QFBxMJ_E8eR>j$-x59nxHxJ|w{)DR&%P`@7j8Q8%gHSbX-!ng$=d zMq;R9*P402XZxY5WavMdNVU;-QRVBlDNV!0R1sB zu%Cgbjv!dJH6LnvglmpV8;IdWZLOdB;SylB&j4g7SB(tOX~-Y3LIDdqWWnmQ!w75H zLv_&PY8w3p66t{WpW$Jr!@#GqJT(`0zJ8Q)iWsv;&IBvBhFNF`mou@p+j2oH_BUQG z3{+Uw9wM?$c2Ntvyo1={S_NAI54xfPP(4L90I=9%e6zniAZ1bbOhJ)Q+B*rqB7Y#3 zRbFD%g{Kxp!qeX(xN6%qF^A()$%3xOeQIXABTy2vyq|jxM>rQ7v?&9@Lp9KwAVT3+ zPFQh~5NhjFW6S{rv&5iD(@ZG+&-jQ1ZjE*gPS~*-8W)g(R|ov+k=6dQ^9W84-Qzj3fDyv{c3fv%59$tr((9~;mi76e_w)VFZot!4E>H$*qM`|!-tK`j#G zT-JKkKMHsh#?LvUlkZFyXLES~21~Of)G~Xok*7gCX(H=Q(XYNLad2v7jRQG|NhXY1 z0=81dQ(`to)kJfgJb%sU)^H(zXBJbunI|=!IJ&yV%P(K~R4R}rk^gyK2#=ZB@^*|= zQ0)T8|EyVBUzeukptoyWB+Jle+H#0RtjCarP1rYuIoRkp-Rqn9qe@jgb$dl)QtIQ> zVGYXwqjuB1AP0XuVj7rRQc%I)k)8Ca@l1w;Lq!+p?#P2T?Lc}XTy z9qxLdn6YvPVN9A{w|zOV@C$25z>qW7-UXw&L^MWBc56qz_|u^S8TTW2Z(W)dxGUS! zF%4QdC#WImxwHiWJZp`b0EHEJuNTjp4>Wuq0n}y?Ynvpz;sG70w7RgPXxW$uRT=-2 zQ`mwKkQTtwxL5v(PbChQ+U~nb_}TUfO8(9#2c$&aQ$qLQnS7ua zhC_R-D;`_!qM??)1)L}-Q=*V!#;&zv)vX|6=L0V2R`&I|>R(LOMDeABQ_>cH8mt$;+d)w*jIj8h3q z{0mcM>?BV6F0SGw1VDzeAVbTlwrqq$`7&0(`}rTt53FJxZ=U$=3K;qBy?hI(-Wg_v zoZX16XPow>vs~nt;V6U!Q$6*oKu+=zG39JQ;vxme$Nia(`dqG)mvz?){;Hd)NN7f^ zXtCmMHH2Frr3we6Tv+Ufn`f?p4ALeIVq)n<1UxEyz{1YmIW}ov<3FBAnxsc!n|5$O zh{FxKP{0Yi38Ks$7O&2h;)kAl8i~(X%NQ6pjuNN(SQUD!9dEA-hRBJwqrCjE#-4u2 zR^#h28z}SQqKB4%_)4&WBy<`DHR9>ww@<-YahyDi3uu_JuWD>N<+F@283fF&GAtRQ z_8I^QRwlR5bP9@iSv{$lI9w=x(-+!-2Z3v$Rtqe>`UZs_Jf|)SMy9?XW3e#KiFFFD zzp%06vYBS|_?F*;(ukd!gk|_MUR}03?ew+Jl-r-=W!Mp0Y7yr5BC9lyw)bv@IBNf@ z#zA1R;kS(zl7cg@66NOZnlaCOIDzPU4IxcGRJ8t@3k$uMe+ZIVo70+;kM=5o>j=9hog{vpF zBXH(TpBN-fo&NQah!_F)a$aJ)erZ352LH82gY-R_$L*i)*9MC|CH<80GM=H@DxXpQ z#y88k;A~9wuI?1e$R~#H?BK+uII!PP+8NiL-&fu96bnF&aFfYi#&|13AM2`Pv!ad! zRr4bxyt0N=xObMPr^84Gd3&3ZJ!bp?T2%CPJ6}vHh>p2dKe!!{7(e+=KGn`ut&~*; zu=dhh?>WZZdbayPs)+V@v%x1NLI};gJKx^3RQO^(*V;`+ z^(0@RVj%4}4+<{{#c7n|OPxusmX0=QyVn_~j*!M-x#K#;vW~w&S z(WtZjxxtAVM)bhxWniG#c$b*Q_Mxxm!b9qG4p$JEg~3!h2bA{PwuUc)+;HX{J&>1nSQh zNwA|w{(Y~i%(f2-aze3s?bOvDG)2Pc)qP*~6WB3Hp#7^S^!mR^_3> zGv;HlRJqo|ky(K<6b;TfyJQV#dY`OdoX8xt@sEV)5j*K|ci=jh#b0dT5B-js?>Sam zSoOVsWkx?Sx*L@ICpkXqkDqvVHvvVdfb0aB&oEDJdY~|PNC6(5OU}aQyx!rREqc|0 zIUU2t_%{j|7&^B9RLyXvdN-pL#6LLs%e{S=FsgBmltXkM#6P4v!7b)7%jG8B+3d3u zzClp>DMV=*O`$$Csx#Xa8hJQa#XrqGKICyBC*Ac{0=7vHg?Exq4F%&vrLTF#KM!uykW=KRzY1W+6jUcE@uaQ8e2-Kpdt29G5efVbTP5fL#O>*)N}5}E+`d>JF>SZ)p&zb?(~fR( zm(#4)FrPK~-suqkqo%0h%W-daD^hPJYGhANfJ8U8w*}hEC8cXG=<^^e$%hE&j|!Wb z`F@&*QQ(n}_6+S^(ufM8|C{xm8+}7*|GN4*PV1W%jOyCv1$+@?aN&73c@|rcdHMYN z%ug+=@^Tvve5SMIRa(CK2(0ii7J<54UF2=Ghq>gZWOo;=WMu=)ZBKb-oTvUO!GokV z4}+5Ncdu`nuyg}TBX%B93!@49J$Yw2i<02Rp`{gq0IClJQvi$J7j;}z=?)d4&We%o zSq1M{$hcyzH_Utj(P-JzN#8o{)kkE9Q(u_GwtzKN`xobl9PL%9=bIjvwEgFGNoRL+ zBl?19;R-}L-}=}~Jc$awJ#CJV-zW0xer7J=r}xqi;mW95OIwA8I7eGIdeyOPJ7_ic z4oyLrYh0l*8Umk^Vg?%~t`G>GwrBi8^!1t{G>T#P+l=krUlI+gra5GpBs=)H1R{q4HQCvTUrGdPN0q3f5_ zys(tSizB#VwKl(7fn!+s#hvOF{z|Und2Vfy098mFi(e-+5nQql`oq>lvEn~jmnc>K z%oZ{HPuBSqF_vsGalQ0RqE(-NW2P|6hI?uchDW*pCoWIfmk+#6y2OlnGyI>=i7Q^i zBQRXoZ{_HVj3n2heVUuZywZa3x(EWd{tID#k}<^wzhCge+4?6-4-!KnI4kkQA3%>1 zjPF`JwTO=QAyRa0%WCzCc{Cj_HcO zD2&sAh80~t5l(m1Ao{aBb|}6;>;QN}-K3ZjIH1s|evdgJP2VizzXO2Zjzi4GKjM1N z%t&+zigCz6M2CZ&sN4JhyBA-o@^m=;N|?BsAQI(rFV}R_Xnfs^Ske=)-G9H+LtFcK zjlV{boGfhaEp{yL?r$SJMM4=7Bi7xOFc}ca6GiJykZ3k6V`acU@G?%ir6v3aqvrJJ zcbaW4S{`7+W;o@Ajzvej?^zbsfyz8K(`+_B;cQt2OZ$o=+EFGst7)s-)81>Z%Udtt zQrV{gjIM2!ua@Rp2+Ly46vI_G&bPCZMLa;peZ$t(aK`Cif0qI<3PH0;k?tQKzsY{n z75};E3Y6c*_I5%06vy3slDhD4YLZc?QrvDO_BFEN2U-N^(xu%9nu~~PK%Z45KnUhr z+m{1=qBv1sS20zHS|;4qFOdWED{ASI0p~z~p6}yGUR#$R*d*$wGaMd^!^3ak=RI`G zbgr3sTmOqj%P+vgz%7n+8@bH8&TE~+0acf~fQqxO{P&H!v=XPE3eDX3mDdoIJI6TD zy>C|Njj1yS-zdq^by_`F14=p0yyrakK4$K#tiq`!A7O+j-0trf*6k0}q+?-FAHh0G z2$JIrhF!_ODd1^W`4ASLvS5HjdrVjFhaOXWBEJ=?bv}gB;T^6bhRGM$?iwKnIxeJk z{n&kH@BMEO027>TN&yz2dMHej7~5^X*3#p!EVMJBF?l2G4t>RHk|#qq(H{OIa&AOX znaeBTXGPfMRl+6V#;K4i;0n(;YeE(h(hOjH0D9nn9YB;u8%Cqg^WQbEM=oq2M%k0XI5E#j1&jwxE#HuJ1qO z6Gjx5?l2i`cWu{21Xplqh7f>V=^_Z5{NY?mjh%YeanJ`m2>=X*3E*|c09$BSs|JEB z2+i)=6B{o9L>edb(bJSxwo&-;z;r+;d_@3{t38afdhnw)y+tbhj{-czqiZ0gR`qDb znd1|<$Sl08_ZWSmtn7M+Em^?qWCFWAxFcr685!`PQ40#ebbI-Px(gw$u`5fxjmxt8 zgyF|~wWQ>HQW%}>H8ghxg(AfjVf4^o$x?3%8{DbHID#qv+lT|SyVVxh{fQ3rxW#BD zo3G~DF7cxWvgXxKqkKW=nJQyI%?1oqy1Y=#kOtVv?~#f77_J99BegQ z=7|b~Ip#?Ov8KeQ@>r5LsqVC;K66Z^6Tj-4QQNgVHpt7cO`g%hH%6fx0J36;-CI6W z{1B}!Ic1@*^Ht?ua8r#r<8|NAAX1O$9AuAm@p!HVgPI%YPa|548F7GLAW^bJS0G~d zRIeCWr)%NV@{6nt{wA6Eg}G~*^d62`;ncQT_ls{Vcg;mlTFY4@?%-bnRdnhIoQ}ue zkBNp(LE3$kt;pa4-vC)zA`WWiv4@E@v(M%zuG$otuOj@e%Ipj&u`%mB>-g zdpZ2~iCWi^G~&m%aBh7?XEb!R5GY+@oCA4YN$fMe`3Nz)(sqyIoQ-SPJ7WcZ- zX!TvV8IxkgM26RwMQgTYUi3%M!nlkPof59^dfk~2YbLqtv6y#vVy7o(CpOnRFwZti zXa?egV?Xy2jX0Ml`APr&yUl*T55R&=gUYxiiyUO?Iy8OGCq%@@(>M0_-08r4-5x!R zUa(pU$evKpEeUw&nEKmX^bHC(i-RjudM~fIwHtIWk%(E|$5y$1{ z9XQRX7zD>JMq*|`&JV>!Um=s(?Rj`dfM0saai#07Nb4%6J|^%M+c)fUizwn!76WqH z^+d*0v5{NF!qi1(o=LXGLp0&Jb%Hga!$_L0%SW(m$$b$~AJiCbyK!}>F?H@Do-ySE zTe+~F@dDjhik3!^a@?qv51`A|8i?d)zKBTsj3gt!uL6~103@mIkvUBq=o2(q(aUw~ z&XL_mzIZSm3;_*)>yu!+#!27-E7JszG#>Dw5GDCABHhTtPob)Ifid~9YJRBqJpB;R zd02#&5M{uOnS#kkw-H;RSv|$K49PTnxL$GFEiV$XGHGBe?-eCcZIwhz~$ zG~Mp*%lFL_+e^x2K|g-$w|i0SC)OE$(Jf$Mj7 zl!*a&kM)^~+TE2vSV&fnEABd32i#IB^_#?O#wdA#Z4wP1Zc8+j037Lnsc z9&G+_jb-m(IMZZYFG_1UYm9%E0O(RYf{tVLRa)ff*jS$XHNh_e0Le1p3bFkfzM;#X zNBxz^Jai_wbK>S9j32!ZS6A5Jn9a3n69a=8s9Ci618O5+WuZ+IiJRqe_QjFMx{I6|n36lf2tV_WsKcZqU$i zLPo}mX9lhopAl)rTQKos-tar{`Bknx4I z;bqYYO&Gd#2=_VDlTST~A8d^d7IJk7p2Z}Wme|n>fQNpkEofAJ$mhrbPz0c=Plc|T zEgXM#BF>?cbWMagd8O{kTXSEqwd67wxpJ>M1bU;P3V#Tj_5 z#;RzV7{}2dIjp%wt>%OEM1HLUF9(py;I2sMkmkk^1!KROv32TpWUkznOn^&YI(c+2 zi?>TG+?nL7AGwGB@a5JblBw=I+q}`;{$mn z9rQ1;RuLTe>2MWeuN4B#T^CoRR1a2uHfGsX89IWM7-KWCA4pSz5^VvGZ%}P8$r>!h zd$r5`fOaq1J!W5MyXQ9xF?2vnUo+RZ0Ve8Els9&rB;Ml7^Seg`e&iop=*0MmVbV~6 z>@5u4R6*KvR$=yfD}ba^ooM_tCT8SqKMv!?0_@O7Y46<=RY}$FiF4f6)XntxGN?SF89fS8TC5g~uV$ySd9Gtf?x|2$Imun|y+!x({L}LL>$1q8VSf z?-vNvis@Q_dm5>4dOqERb;t-H{UzXu$>l4Dj>!75G?MAU_i2J`m3H1M*!PmFh;&2o zWeP3ZnokHf=agwp)~(O_H@mQH6^>dV_r~^}rOjj+eh1^@w$E24tD#wEBojHB+=1|I z^kyT;!BPwkGvYxvsZt%v^-1e}9#SfzzkaFqwrEhspUN^lcll*1MOH{YHbmaU-Rrhb z1xry8#bIc<&H#0Q8P}2^lYX$|92fM^XsXUlh8$wtEou~t+NDLf7hH6?lLcJ>k>AI+ z%g%_88#1fsXlp!$N&YB}CW6)Xh=%($_RxIFdS5Gi)IOvQf zmPA5TWCV@8URn!jOB8!_wKOjt1sFkJxsDd(Z8#T|ztrU{u-_~+N`?V6>R ziDz4L&$|Iu2+jx?gF^t8mtD6V#){f7>=3*(Vrm5s+M;x_F`tJ zzkrZ~rfvN2l-6YqtD;(P*2GvC75&fD*pj=DMc!;Ro>n=4bZOiwo>VF}7u-ov=`7Kj+~cMC3GANkZdHG3CbUZ)3JCe=0<$7&RRlT%Q_)InFT=s^IV(s3P9;LGAsIC!ceMM3 zUtxklse;u$VC8h+g&+$XAgMRFCz>P!#?R8mXNE2(0- z-*(VMhIGYkpjpFRb43lMF|)PJTA}tzMqe{yIGsS*f5J$pifjTq2_dM7TN5;j9Y(^{ z1a0>}$#=)SBwUdfpLqL-RY~|z%Z|7!%f~wrzKh5ili^cyYU)pP{+O=mH9)CXtzTN_ zTKk=N5{6TzrY4u(O-U z!5a47Q#vObOv|dDJDNT@Tay-wvEqczP$@zPFIjWtzl#7cZpOLx84!mUf;w$~W7;1c zr_?QL{6FXn(n6@r42u(#XGcjBe>XXfK&{!xcOn*OwQ6EE&Z|#xdAR_Q9t?*i#8da| zLfKUE2dAd^4r2av@hzsz)bg7MP9-iZdjf}E)vJda2QwxYG~jjjWqk7vy1|2|SaoM4l#sb{y2w2D6lE1A^^+p@!5G<{OTH$gH~t(pxoKn8u{S zl80aNZFH$f_K)YxFs0+U(V!ST3?jMfWGx6ld@bk|=3$#Gh|e-LgXRLvJd zn_oXFL{2y0g!T1h@7ktVy;N{)FjB$6&nQkveooEDnF8XUk$OnGYhl;k@j-0M;u6cxtz{D4laV_O(HieGlo>z zl)6}4r>zfJtY^QEnFhju14$o6c+?v^D$Y*GEFE%++S|g}EmE3){>O>O_ooS8SAC(I zKUD&Arc8^JSRo48p-WFZ?lWI|x|Tzj#hLFI1dxeg(h7SVY%i}-7~odb^cqy9dqJDp z{O30i@T!@Ts&8WtOf78D;k;eLNum9siD5ZcM9&Bvr{k`<6#E7Kf5VmLkMFJK4kfnbvo`| ztpp1)XN{z{em^lGHT3X}xywGnu9*wjX;wZyqT@m~FndpFzhy~JI*x>oL2r7CG{wB@ z3i6i-I);IfZ*;u#`OW?iMnm#Xp8-@T|q~xPIuIX~D>Na580j=c;PV%9w zEc?p*qvJ5{K+_;TNlQ|w(gH54#98#7{>sM~@#h1-qQM|hn=oIW_UL5y<_c3cK z`jQ+n=C>7y0uOO&564NzFznrk>#J_OP<>tQBVq4L9DfVLh{YRUQ>ooRjGF(h@~C2N zVcQX7>Xchh1|YH|RPIALD}6^|q<~qVcR^W$R=t5gYHn|{BT-W&-CxNejhg=mRk~ML z$NveMXKt}6|385LO8}w7G#aBJXOW$TnIVTr!1!%IhZcJ=viI(6x4n4Q=qpNvhaI|3 zX@{cbt|Ger72ZtA4a4X7>)0_mj74d&LYSM~<=mJg?^4KtRmqltbsi}Vo+hR8TC0ZH z2uXKF9Psds@wQ(^>Ec^o>36mugVc&&>6eYLoduZ=(6HYTi9;BM_*m|W$5#b9{I`A$ z53q=6i0H^)5^cL`2HObn(O(4j=&Osqv;$omKbuk;rkGh!UWx7!M>1ietCqJ+^So!L zey}(~Xm6^O>p+ei9O-Ttv)2#=SQqg+($RvN%vlW7ljTNV*eldyN%Oo&9A_op}i{kuMG8EqbT8jbX@?F`6UMSu$8!lBxi|J;*1P$PM3C#Pd7v1lZI=!MSd7@5$%R@xEYj>Jrf4%{ysj`_9=) zVE7yU`a%ZP<~xxqYp=ReJqGI|%INSs`do*ucZ?HMlSCPar-xG2P{OeRb4<6DX;w+2 zUwRZiNR6W3XJ%Fj;5rAS;W$GZnpTMAX>r_j)P1L5Lupi5sYJo#o9VID5^?$w5y~+R zj;e>k1L5?(6Uu{3jk*m_F|(jC);g{3VI;$*!#Ljo@lb49r*guPb%&bZ6q;`}Qa0Ri zn26ZYyVtLT1UYMXe|`Exy)Y5^^tz@e*0|G}kYy3P$>VFX(=mg<8s&06~DLVEInXikXwR zCkzqVDr0u=i}H)SHLrtOaS}RfZvf$@&=8AxM#7h7R`VpbXiE-HKfI24iN>Vl_HZ9L zrHM71b7dxBa4;y=bu+gQZRGpsnh#axSvG{U0EZ!a)TY|kw zSLy~Z(=KkUrP=1{Lc=i>Ut)i0%bRY}=!wQ_{~Bk&YIXRDip~lIEp!3JF*{TO4Ykp-lqz2dxt;eH{$%0CWgx(oQ!nltz!!UEAs4nXF83l z(%JID<`ueDgigxWeXOd&2%|6q23n7Mni!?r+vUAI6;c;QG|!+x6}!TCe0z=UflITy6$A1?4~sTZG=}FwW+>;)}Qtj zrZaVt-iH~|i&iiFDnBF%Wf{8!WIhiwMTvLG%;SVV;E|=PmYP;mW09 zv+1;{0@Lx9)S%QgLq*F|#C2y>{*FkcY}_>`uQcbI zv{6YtlQl(|s?4s0u@apTNaZBcG4i+F*@A|wpQDLx3Lsa}gi@8?%aM>O_R@*y4Fl*a zfz~x)|JP!Pb}(hulA4=PW&n!Vg>ziU$;!KA)ZGChU{*}1n89d1k$-%Xz#c*KSBaZxgqdw`%sDNd>${4R~ncF z$mc5#R@!|Ix2}%Ey4=S4EXl2zCUd>pEi##IUrN7UmQ32V3T0gqGEHMzRBnLnsT$FH ztz}|&qDn^yBL~pO@!y2$vjLe7iM+UbrV$PHBRKj{r+m6$u(XFt>%_F*p+S7xCsebX z=osbcQPhGw?`Op4DFLWbm8EAy6VWNKdeM05gCd!{CVu|J@BkCPs0O3J>nZZT$G>u_ zrBL98!=Y8RTl7M&`R7o(L5-gXlj!8pVdxVI`FZp8LqJj4y>i@>2zKoc17NaJKFufV z$8a<&G&1(1wX5WM5TG1J7aVfND_vod{ngjEduba?HEqw7=%?l^jV!bdyHy-N+Xet!#XF%qj)%E)LBI ziF2{hwvU1t^Tmj3ht<>sAH6cxlU?e9JBTc;7V>+JNYW&NcZ&x zh5}YX)+vE+>+`Ji9aFLeH@9{JZqyX5U25NNB}gr%WEM){8tmG0LGmZ_CDERxvZ4OM zL9s}{EWbzn6kHBhOW{#7q>9o_-4hyX-}&Yok4{I~wr?FVtL>@RvEf)}lQ{e!16%8K z_6C7b{G-NWoDAebvkni;-C#fV8sfiFt4henq!J6rVxP+~1Gbe$-P~B^MEdmFRPJ~z z$zCUlf_XVaF*`+b0ITWmsEB#GkyA8c^ldXWMgPr$#V~$rOKcd`nV+#Fb%mya^7q#* zxoxEcq;+>7d{?S8)g~8?E{xb&&SssaHHz&@T<_Bo+H9QyOsAm=7c@o`c6QyBezQ}v zBOz)qls$;Bw_VKbXhK5Q^-STN@4^kHUtgi0u2-lPl2aX43D7MyLrrNCS3Z(7P)YN? zZLW+$dt(=lKkloN@s~-@>!$53+pyArgXf<~V-WN9T)^63*7&@o_>>KwEtuZNKT`G= zE3nunhzCPj_U}zq)(M?9q&8V-0=njI@%`M+R6c*1WxPhnUg>6@v#U&hOy<7D`7?5Y zvM;VEcXngwy$tCUVzK8V!~NZQ|M(A;Pe*9u3}S|Ra%sR_WxMiHM(E5B#G9Q?aon@fx4W*aw5y#IC19A z8dPs9S3$K{Ri{X%J=v-#|LlWgyG~KpsJMMhem0Xw3U;yK*<| z0PRl%GB9BcETPEbZ>YwxU=?kUWaJ{FlOr!MdC7rQ06X|_OOfFSlH99y_SOq=TbkD` z_Pxi`_J$=dsffD7aXj`f_* zQwD5O!`+>jcthSV!bIfR#!NwErERCSe`|Ag+Qv>voAS%?SWRirf&S zfU)bZ&t+5R*k)7FBo26`*)6`{@E9%QD;7@0BY_Rec!SgzLF)y`!WG=%We>`tU2Z^5r(n*h;?DyeW4skL|=Ua(H zMMR3LG~lNlH3GMfg^xEkCe%+o0OnB0q}UfCxoJM6!A>2PgHQ<~*D5ggaFl!6bY{Z5 zVW8)J9#b8x_9sD{=Pxpp_4jjiIqd#5{N-r@SQpq9Lp$K5+2Vo;{Q0C(l(lz^w_EM$ zTglv-(o>+Cpc$K-@9<9}ql?2RT>~!0!+7e3v$xKy_m5w!#enHJ zBB0SHws|epZLc_$_+Z!9QD~dSBM3kwY|fL zb@-#n6KlMAHZQ7@ljZ-5@~riVN;*oM&N*fyAr<3y;u*{q(C?B3A_ z_mRlT(>mx~Wfq9HZ^R>Cg}lT~VT)>5n`RFGLw&Mj0ue>GA-n|5sVpDywrk;iX0t!_ z*40%4>P5Yb5DkKlqe=Et_C5L6T%&Xv+o4ib58g;k@{SzioFIx5t%`$>RQB- z1wvJE2uD4T5AM^VUb>M8U!9~5sgP?WmjpC_Wg;7aOs`EYTBI1`J|x%m&KiQs>vesM zefov<4JiggJI8;3%++uM`alwn4o;ysBr-?h;>K8}0 zlb51LK3Lm6w$bIL+qqGG!CG*>h>iqKQ@$v9bbL5^H8~gn2Wc!8L{iWIWM+_XZ&|v{xE1KR~;(_8Tk1*t^>Uh`F z@6+^{F+RcRA()MZ+7Z0sInno948 zOi_O$L)wEM9cG7Dk%{fY zwg?r)2q=&rUj*6n?hF4&?0xsW(XTmi^7A z8+&?B0{#ARMp5o=;LlIA$6Qrz+tlK6dXHzmcZ1C|*PVfzLIrVo$=P^IyI|>fP%O?_ zUww4{@i|a}1t#&3+%mb@T$cLUgD~jZLK4+37QkGksKOsZ$!$9QAHiVY>S; z_$OctfLf(uSuK6MgyCcoeGI~5V*~PP#6_FxBnlo4aJm}A4N|22Hl^#m;}G*P5-S>g zzF_u5Mr@#s>M$iDTTkJIkHt zJ!fZ+{j!TN4E*YpT{Z_2^00DZGyORNwQV_iq^M{+t;$5qNf-MgUwc^z9gvE zF6jRV+WB7A0O@EOA7xn%#JaT+W%4x{qd2fCC9_VSy*n%CF`U-b5$Ule*9u2J8fKc2C#i)@a!0Lk1F?*qZtn>Ceo!eU z*;*zn!N`q=EVunS9SP9kKb#VTQ9)cA=gK9AnoK{NrKFziF!;BVc76+CG?_)BDpjuJ zAKD1n{QL+$_UUx&(6%f1Y=B?XoRcqnhE%wb+lICenmPj3RNKH#4v!DDxQENTQK#1Kkjq^9L3spR@26Nn7y5k%By12?ph)e?+Zek?Dk92|x!;631!|0K(`s zU`%*Urh-j{5+jl-gX(SgC(S)690m#Vt$ahUtnlXrM-6AzdXA2+(c~E)_~8nU$rHpI z@<~DLp%Wg8Q9S5WPH8r7Oj=e#p{MT%nV-u9J!>n9!vveg=5+~Z@#pT2or5g^K)3R%B%5gpxe5)Iui>SDhp1zm9z` z&`aR#z#ic-IXd4_QQz8E;>iCb2p+m6a54N)y%^-;Z-of;yb!*elf;o$b;M%<06yRv z#z;9Wi~~WRH48}bypb6971g~kiAUct?LPZ5vo|Xc8tucifX%+ju4WdeF;a!&*`3f4 z*2zP#K~P8Cs#9)p<^7s%6*_uMi`;Q_r3qoW7{^Gw4IG-+rG2fL`{Rz!iEe!{PKuiK z>*L06+@q-l%ouc2kdcckuMHM~%scKheJ}?v958c1$Lp*TT|Wy}LVvG>s{uA(M8PJw z-bh82G{nP!c$JO#C&aXXa+>HhDmkZBNP0p7oJ}oqt~es+?mNlW+Wv@xV#w&FoPY)7 zfE6p@3g?yT5I7M1JCp>-8f9JuWV#GLDS27e{XZ&~Elb{yqf=I!28t zlgB;tc|z9<^*vRn(`P?mGE=5%r^M~P5!vuf3s^CAF|)rU3Y@+tK?-|xhAqeY2D$LJ zuG`Dbf|b^)rZs&joEh`xyYr3TmR9IvuSeuIOQ494T|e}6;j1nAFQu*ILjQyiq)!_k zXGDR5AK!-Z`5}<-<2rZfYK=in!LN!hJ|iOP8<-1>nn{wj8e{qk;(Hq{fZjzYvmIl~ zpFz)AASfb4U&|#94wlXl}42Yh)G!2vbxpDMkMCei+cil`z!ePjFaOt{`>nLblia%@ZCf5ULL3RO``a zU9rGgDoHs%_U(*S*>xtsRbWT3nM6|zmf^fdIU`90e0GAIw1 zp6(i-Rvgc2l{MMT>1lUNQp8Gcuk2bMLyj$sFO%ly`y+m3-oLMKF4yTzI0iX$544|g zx}p0g4=uM%5pHh82}PF-H!koTxu3{W->d*X9E)<}>VGNNtdq{9qpif$cy7N0S$ZdM z!VA0y`n4kZcA9GR`(KGA7!(zg_zlZBNM_JPIt7H1T%dB-G8DO~6Nhl&J62{SCFdH!K<;$^)ay0; zTaOwysK5vA2Bk%Q>y71)gG&~|_^xX;a0%;_!VC4@I+VH5jVGNnsP@D49s5K$zLKM& z$H>asC=0dnF4PQ!M+c#*?yAZij;Kz<{4E6PI-$O*V0lsqKGlQSE};1dlPjEk#UhY`+f0 z`z+aK-mzN8BzNPCj`(U3)-E?60qQVl+6Y0z$}&`^>ChR0I0;{VC0RacMC56m4&D@) zo-NHv^jkbSuH{KTc_Or94?$fS;jKmMaSykZW!81dm?^65oc<^~zXh&qm0U*`hHk)p zWoq(3C++0(Lo@id9+VVCsy$$ssqM-Ig60K_5;NGGOvpeOr7J?63qUBY3G_B?*>p+I zWPSV~>Zhsos-=<#054tajB-gttUvhKH+{H7B z&qw_C;-Db7`)Ay>{a#cqfVcfPydFs_|;sQZ!q1XNmN3FjMBF6`_ zY`@&OxSM08AFIC1H$+0A@Y4Ikl>IxPPLxO*e3i!?KMJIbm0>KRCqo(6VhG`1fO{-% z-A-ZDe_5dfU)Z$U|4;(u-`Br3+FSG}wbh4fWnpkq?65v2jM(hiIjd2xvwTkf5(_cp z#YvGzimjWmG#nX@6xXLjBAF_7k#<#H9*`Sz6S|}3wqZ|dVG{`zWkEfxkY&TS%Un5^ z3%jSZ^k@m(Z!Gz@h3hB+;vDh7(WOILx)`RA!06Rz)L(i97-Xo2*&Fdg`oQw~Y;v1`cNn_G+5hQ;2~S;cE=L!6_334YIgYL@d;OC_KKxRMu1hDwjR0*@%&nQb z_7eP7`q6e#nK1*uQK-xQjhkhTckjvyn z`GVul$jSdXYUFtVq1ap8ze&5{k>C(~j)%%Q0gLJfL=&O6j;eRaV>r!7sUhB(!<8i-6DPhMU+k_L7JYWFhR;Zj6iP9dU$PjNmiXx zzM{_P$VZPnP?oGi=qo6S^Nu3UJ0^=ud^$!lH7sm%*SjLQtogSno9<}lAdjEVW|K4c zzsBTqHqAKIz1JCuKX+mlxB_!qDc1gt#hE$~-ITxGfM%%NZ30|Ex$q0PAqhXGL_7`p zt)MCYj_81!p2MAdw5$=mf9Z$1kh?3@k0&DUvIIEYvg2G_vGdkYLmF-!pC`j8pB-H> zIY-ZgwJjleVGm+t-P@?VF^bU1s+RCJuf-Uw2~QyyaN0)UK)1Z%LRi@hG?=fE)%` zjbQXe{v~L*n;ngVLOj*}tVe!%le^@`ZWVIQ!lAAD8s6icY)4d9hB#tU$!7+N z1o48f9WgxB_HcZl>gsCAj{z$hW5F?gUyr+Kk+4{o@#ubw7)p=Pib@2OB`agTTs?`$ z*X3WBLn2f4m4w`p)zp1c#QN)qj4Ou@DBmgsWGgSJEI*WR@^ET_aiW4S%EFXRfA3J+ z1WD-TNn*HfcPk14Hz(`W{kn1O9NLI;KypJx=HtWvXPz}XBlU{+D3jhp^_MtL%(*=w zv6m`~5oWyKUk}~8EO#CJXN)l(oHm)F7#mx><@X55;rj#(1BbUzziF~e(zFBh?drLC z)hjj3qXpLuPb3IG#wtgO09$hF(Z(N6#HGni`696bNQ*d1;48^_NTgUm>dS$jnIO=> z@OdAX3<=<%uJ6lrmCzA?$5LUOU*9Y@%kLBAK^S6dT*q&?b#nx-K# zQL*;FF3%pK$d(3ao+A(s#axe|j8me4D6jwSYM}9YQvA+V7jPvBuKm;f|L%wk=vlv{ z0;2o+oZ2BA3|kq`Ig@WB=8kP9B*F+<+@SgOCpHt}=TbADL0obE`SHw@xsPgtSe3N@KewysFJ}X{~YV)-J95_9>K&Hjuzo&ESHFYL=~`JupmS z-`e;;%A2so6k(a%I~28)zVl7SqlAd*T@g>j%r4~~ z|E7Nf+8?z#AM%Wn%4uN;qF#MVboHLuK)uf?sTuT!=wjWv@+p`OMPLKM`( zGido_KH=R`4YI~6!J-alNsS{Et4}Rz4StHuyA~9wF3B$pG2c_?N~MBkJx-3S=!v~v zXN(OWgbc+VWczeW-9wfd0>dO2XI8n5I@#0TeevjPRLiue#-nX5eFK>WWG-y7>^ocy+CyQ&7qf2Y#CSCSauD0EmWrAoFAl+ObyL{NG8I7&pX zw?Q%SAyxT;)ln6GQ48kUMX&`~aQgV3>g4^nceH>4K1zH2eacQ^ZQC2E-a*TdGte|O z!JG2M;gTgEU?gVv;`weWxD|4*r_vi>E0~rZMfaM}{|jw?LI_X#Qgg>oGnP4HqVtC^Q?>1nX6Ov++SlI^MHj-tfSZ;kyeme#&IlF_t{no zH}Km6-SQlO#N(Z-0<)quPY$4e5Xt{X=uoPsRUM=oI?|mnMZnfq(&I1@N zq&EU+eR?0c4g!_FCM2m=1Eb%01HO{2;;{rzY|8K$DT(igbO^-((H!X4JV*opZahKr zYTV$&cWr<-e>b&`xpO~46@T@st^aEZY(OVC(a0e`B>Kc%ruYd6OBFD&(hhx7r8E;- z6QHb4~C&nWZl?icUY7Scw7@kZ&l}BP8*0vAT_{ zCnIt7+EgKjWLi0NV5$I6agn%m5nxxQhg0 z384rC9;q~440Qbv)uC$YW$L|-Ua)(=Q*ekgg5p$olrd`8j6J zd#0qcnDJ`?hX?)Xd(WoI5<9x@Ny_Tl)YqDZe`r zh)3OU)N8K54iQd}wuDllm|ZCyrX^5LGiuvaD6a4X%v1?|B`_;%;_)ZMARF@RbSqb^ zJ{0GE!DB%wh(`mwMu-tJBLmr{zmm=@eUxb<;7#hT@9Hqa;K&3F=v9C+yyzBxg|Azhy_YW3A&>aA#3EHUBGliKgX?7f z9@Ou62`8uV3utHWJWuy_zJNg2UIMp#9l~cq+gpX7##7=5o(G(tF@P{uKtw+rb$fUX z*JoR>#Zy6YRmi)u!hX7BC{_KXh$b8c?1|LQ4vXR+`PgP1pqbbQ*tp|3G>yym0|w=7 zKgW(wX6R4}QXp`)8AxpJccJGbS>ul4{gc(}?3a}HBok3(e4ZHkgk)XI%p4xJ_YR== zaq&qj*^f~zMYlAv=H~i$`*Wi}bD%FwoT2+gYW&BeXt8#%kSR_?(9oUmv%$ zml-yvOd$6**KlAmUhgB~U73;U%0Tx}Uu&Ygfmyk9aiHm#Ur^+fTtn=mGU#ugoN5}q ztCzts0PcVGF%SaJtFVTA!P3$Oc1%SL*#(-Ui?eN=7CT|Jd9C{fNacgO#z}+*!S}r(F9Q` z0orV?P(k>nZJ>JEC`^o#(Ibllv3B9^y0t}+2a{Q!(hu~h<%KO4ZCy-emz!!c=w=%P zjVNpH8Q7QT!6mDQ(8<@k2v-MV*8LGnfHD06 z1+yx`4~Pe(Zk1&th0Mva3ENU`y@9YM3Q&JXWRj?D zp#3eT9+XB+D1^-2bdnm<*O9DyPWxink}_9>^ij}Q87$zx(^wOjS z?0-u#Fb@VnoFEqns`(TT?bZ0=C+(|Vo8tmFlMbr_dC-fl_SYACrhQu zMu#R$XVR*vtg3o4OZ8|?2!NoD>A#tlJXTa^p{PW zp_{H2<082zD(W}(!}jlpPd69oD9+k7lHDAq%9P-puam4v#N*@24%Dp!W24LFp;rMr zvv&@ZrTX2(3z8!29egeID0sx!T<1!Wvp5puFkAPQS=NnJ(%OA^;3nU=6l&6kLBr75 zUS2{B>t|qE)_$M{jCIRpQAYPT#yrES-+V&fWsePlhib?A9MZ; zk5SuA7i!aeu&vA`{pvTz=2e>Ay~qD1RG$R@7J~=Aw8nnQ>GkI#y5t|Fjt{KcL&$5& zVsCTk0pM!D5+~Ulp!|t-YI#+pc;hwJHpKcfTvy5zRzBNpq+`21*xm@TS_mBtd`;g$ zuPKc)&)`4@S{_ntztb@&;Rb*?=;h794WCq|I4zLu^OqFmv;5v}(eZL(0nwc^Hoo;a zlZ%iHv&dY%hYkg*_>ZsGW(A1pA)|W=wr-F$9@?PmD=eLx+F)CQ%~qf6+>%Dk@ti*% zmg-cWMXr&V0M&WjxgA)bXmY3@gY6(0+}fB!vNXS4;x6XPk$FqkFCK3*`^+_Hbs>9@ z+eC>4>hXkPrbpZe;u2Q8R&{c{d>izMhF4Y$2)Fg#9$Tr8@U7+HfM)cnF_@qlT=Gd`@?HBkoM<1KaK%i%`}>C^~7-HUQbK_g8wO^fU(mrLVZo)hkCV z8f*tyKG52D&J@gAVN^)P7Vs9=pbA7GxY5x+Xn1_p%NZe^;dCbH%Wu)Wy>(9twN*5*PA^5n;GiwVt-Q59U}L!%)!c0~dQG5g zUzaDq$;%8pc`ax+SQL_#$CQvz-;mZxOdGouw|jgLlL<8kg3W)bt7HltGey+8l8xCZ!; zv<_8W7_sE6dzk`W;^<4*=RQV}Bm#=mxO_x)1sd^qyejAWrzI8)g1_Dbyhq+h9sqg# zj?Di06yTrreC6H79AYGR4d{sU5_alpnT6 zjjpf{2~+dQ9ON`X*Dhq^JRSFyvtmdaf^D^Nf{0(t?lOZgM0CAjJM$!uh&t&IQ;LAQ zN%Z@j3AF~KqJN6h>;gZx8ep|YvkK%$vTPxex7dE1#-{Rg?aE2Ug5BRRsi($4p73*! z@<|unc81KCuVc?^UrZ0g%(cJqYDm8yawNn*TX#%M!)!wR-H{U(_S}=OEf4f`07KNv zV~s{)3KnCZ_vjNoLo(I@-rXyZ|0Ycn;$T!9m3=ctJ;fk_m{M3|p3OFDqGu9SK$|+H zvj!eh5Zz#AIjU)H2P;-U6hy>WJdNOWBAjx7ceU6M-j8OmiTv;>X3Xv=Ws@_sUjU#o ztYPf-o>M?{Zj1|2i9 zgsq+QI#dKw_*Nc*h#&WvH@0Rnz24l6$cReSeLkzTPIc*~6AOW_qu9z1n}L-KJV_GA_Uy6qg-sU>)|uU#B3*wOdO;Z?dw^==FR>bnW(lVW@oqA zKY8g3)rRQHq$QrQrtBA3qIu-8F$`B4SeTFT;3^$sPZHt|$UM(RTuHPZ*z@u|Rpz@Fip}>E(3Yl=*rvm@>AZGd%=9 znq(JP&A>>WkK%i|^$CkM8{Z&SxKZns@bJMA?KOUFmclwFe!?EuvxMniYz zi>z)DMn2yZ%YDAs62s`R4gufMGo+a_xIaJ`_Q{&QjHp_&ULkmcDRDKFIQ)>B-hJ=(R3 z!wNZh56UC5(exu|9>*=ve0tNt(kCOv|3m)OZ!71X*On{N(tE3M$qWpM8itTW`GH!ci>k{&MDGxQpPcDg2{|^b z9hWHVL+sBL{a^SnIW6l)fQuj}R*T&MT1pPD3nuN^mr;*ir18&p7tjeRU4O@SUGe3^ zoVpbotc;mJK>g$Rh3!+gghj7HCi?d~A}0E<>7tzhlq+bvp!?5LzIhsm(Ilc?)8euP zw6m?OsA`y|9!gukjbNbPav8R7a&0)i&~+}-*~_BMooTjg%LIKoY{*M&x?*Vbi_ly7 zle01P%Qi%X9Z0@YnxKzf;ny!8jFwAgroY6mJ(E~r@%0)o0E=g2IfN)cbGUH$s%fUc zN3kqvj4RZozJ^r&G|BA9(&b1OcBj6qx%E^8h5aB#0GR|TA@PJtqWE6ryOi0)g&NJo zWmWu3(tnPSbZaj@R;6AaCr8$x;%#C}Sp)65q4+;fqsIF$lV_s`mU0|aqJI1)O7!3( zJw6OcZ}Z9FRtYo`z+TB65nH18-X!pS9Rn}m&BRHN^qP7^W;bmC@S`&qKvqgs z)R1lE+4X!Ss$o!oW+$e31zU(;&)Bw(Q80v8dIz$*P6@4i-rkGyrQ~#&x9NcG<+5p~YS0O%n zm4R!(5q7b6uQNH&-*lMc9WYZXqOi1sK$myTERolg`Ib3-cPfTgobbNqRH_DdX~?Wl z%--ZXFER*@9|t0>Ib4NU4=~qPZmnf_rF_SK5=847(6}{r?o*fH^Rv(#v*s-EZu#|p zT+HZk>>&CsB;Mg^f2iSqe+@lY^4*~kVCjg(?ez093#A9qgP7(5b#hk(H)rnomFftH zHKygTko2ufoz8Sy!h^ z#Q2BOXwHdYMVs8~)nGhuGjN@Kk!3n*I98<6TNu4U_^Q_D&s3H!YYeKTdFi(vwh~Qv zFT@e1t*7S1-QK6B0L6^=Xp);lM`f+L*yi8ZAkH#7gmMb!C*GBNm*J!U*Rz81OPF_n zFs2cR`9&FgBct1STcNg!m@H#zR-c+cEHCdXia<%EdybUM}nz)hlcno zO|6iHHCtq3O`+RF)Q&Wb=lD>%uCuy80NJD9NvHD%)NnmAD%T3&INA+-CukjPGNWUi7`CnjN^;Vefqgk|1qnj2vy zwB{1au?xnjf&t}RnIFH>d2j>}V{KB>gmoM=j6AbCwvg;TuGj|wz~vMq*sL4-B!$Ba ziwC8hl5<)bW)9s~O9ccCDxH#QLsL);RV_W|yVr@CsGa(M-94xB)XB^0CNGl-jhf7K zWOwQG-4B>xRLSheBt*0~yh;6g*Mu-QL6R1~t0I_vnm>d?#1ulq%!0eKtq&0Lh8|5z z=3l}pqY!ycphG0;8>$>OjH#BC8AL~>FQD`}5x~~?Q9NCpEM+`_1<7WzzbV8m1a;`` z$4u7Iu_aRoIuB2HJK(v?>JiLu+Sp5S=bfU~F)yp_0!6{?dF8x^aky6*= z2OOAjxUX#pfF!hFV)XDpoT*oDaX}M|IUX+JTRP?rk#F7IAYlX zm9QhRGq>cse737*_RU!c*LZ+FkB+arvxh-EU`HkwD6v^SV>d$~=FUGdg{<=z%J*^3=!YeVWBb;34& zL@HJ+GSwdSjn@umPSRYiFR==QLwEbyXxQQEyZ*3s!rK==`8$`-r zi5u6H_d~LpV}EnHv~X@mtq$#0jLT!`EtMu_uHCR^paT+AR9J}nQGQZ`QC`hW?av$OAuL163VXPWd42N7b1&=1?d(iw1A ziwgWy5o=--KTnyM6%mi1XH*I7fTm?2a~5(akJg40YNv_FO{wQzhFDFe3n zQhk$9HfsQMr>DH1q_yG9miwP4DzsrCehD6ylsK>)YNQ;6)fgmt_PHH~H+U)w1HZG) z7}n{cOzU6naLKd2|Vv{^vu;%c* zL7DO^3?WI%6*XDbaX&R@buLHkd4FRe`GwdJLWG@1&i9Fw;{bmS%!IqI<%+EREHE~7+aoop=u<>hpiu@LxfAuR7q z?VL?=0Z_LNH&rdOGKFMZprG;{X}dhCqL4*^7rT8{trUz@qQ6c(2dq}nui#CRr+MMZ z|KZ#{l~m7q0a`Kc2SE`Tx>>Zl*w6MGhbCxv)vL%Bhd2Xk3d^^eeR@^QGGh)wMl|ds zHxZ^%(yW`d6uZYYXscP2l^9Oqtcf0?;p

AL@=AZX`9=gP=JSzPK2GFb@fF(cmL0 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

c>OQ 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

k$Sp(`I!vjd*fMfV*Pig?>XZwM)iR-nKU+z8 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

q*C26+` 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

$$UO;DgFSSRX2DZw8W()urs-SQcd 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 literal 0 HcmV?d00001 diff --git a/web_db/www/.tmp/public/filestorage/85b96b93-8cdb-4655-b620-e5971db09f4c.xlsx b/web_db/www/.tmp/public/filestorage/85b96b93-8cdb-4655-b620-e5971db09f4c.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..ac71cf1b95255eeb15e0707d13f20ab1cb8005eb GIT binary patch literal 10633 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

3v6f%Dqw5kpjj=NCWv}#2eQaJD(u1A? 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πcUiWu4??6qMM%k}qsgxX<)xyZDFq|jj^Yg* zdq(HQ;$ONYFUiB7JjzQHO&z0O!iX_j%?1D=kcAI4_YIMh$QoogjB6-=MDGCa7hAhL z{|>$MHk0&zTRS?vWUhT@OQtuf*Ty5R*7!p~OGFK7V z-8e&qRTZymt5A4ipCwtO*-@wiF7gz{SnS*nyHF|leJ;D({<|vg*GwXo|JILCR0NTO zZ+0Tdh@9lSOfX4`Ja$&1dtPQecY>Fs5jZUKWPYBC}*fFCdOqmh(`mwRs zI1)FkK|n?w4z8ye!-t-_Jx6{6Rp(3?uiN5c#kFO?>&8Z(b!0w7uR(BtWZ{&_0Xuuf z2nw^I(mZyH&O7rr`2@LX$_d(X*_Xd|eSc;o>V0OfaC@ufR!o(2bOi>QGq$TfdEfYI zkTe`$kHZhhjB?_urdWVEnAkW)qW9cqNh-L9}`T2GC!r6QAk?als$>g+zivZax6}J{gbJprG@u)SE z<*LV}x%1_5u$k~aZJwwOdpCwd(kHqcqyZX%(SwBm^K?082s9fO?yqb*tkv*HR+LL) z9&t;pLG}WviaARE0S^^pgq+1CCU?Xsn8narU{RQ}A1rO1UYx*@xvrN=O-fCh>1=Ry zizba$s}1;kC|D-FB9i@K22oy!^m&uDRA&|wr_(V72Bz_j)C*%?)$BzY60cm;k4$)n z16(h9lp=+AqL2h3tdw5mB7+Or{0A+m--qGmDggh16hM(DhBtFu1Z-PuqXIBiX2hwIgC$8UIh;a+{SxPrSF zNItzxBoptpn~IuFiT`O zRpl`YOQ3sd1>ALjk{F>Dhbm>F*0y>HO0*cf4wS&^`Uf#keu4vI_v!s$06hX;pt{1= zy#h}5IB9wX*dVV&amheIO|j}Am#&HEdS9Vuo@Q(#i*1c+DvGere_Tq<5JH)-ntl8J z>OQyWGjJvRN=n;QDc*X`m&*?QV#j7)x3Fo>E7uY*e_ZLG4;v;Xp|gpUrs}J#A@8R9H6`I(`-Xq2V31un{22d4^`A+E4!=4+{#FQk_ z#piYVF1k}y5oJBmp~bQ+#2R7Nm2Eusta+~PY@Ob*y49sMI(xIBG_3JV zY8SZ*Y8GmdVWZW>mtP#nypu9~zr2Od6Vg2&GGp~9NFWplA(<_k z|09szw{{SikXPl;M#WKqimLkIrvaiE4mXnV<=ZER%l{Tz3;e#w!z95zZKTR0wkijA$2It&HoDp`CK_!f}}Z3E?Tk1bd;P`_kMEucsGW zO4AKVRy^DWkDAp|zumfKpA$itt#1IXAqk+n@qjCp-kHy{N24xONzsWe$<9YOb9drZ z$3gLVJBCX6 z_CvgNW;@YJs=MDo(sd&#R3Gzx4nR>xLHJ|nxM0iiy0u5JLXXVU$aK7O>T!GL{r=X@ zEv>0BDcY$53PNR{AMet`6eiPtc={Zd^#dYLR||q^!jl_1kgVJtOydAgftbhzLVyby zs__9v-PxMoz{HzLc7Vo`rQJM_gY6b>RZwb6@&aXRR}iD#pn;mRk*ph4Tj5B))qtT#{<%FU+b6cx%fJtaF#m`$}8%jDK6 z>?-t;__Nr3&!OMdP6OvMh5EtIJ@$1EP`X<#G3Q+^Zd=#8hfuF!vZ3SVGjg#XzZPn~ zp6~MK0(r-R&?y>ZCjucSr(MZl_ebO#T*_&Rholy~U_O=Fko06~&*EjIOCJ!Vt3El?uT1bgk-biBEj++% z5$*KnxSS80VLgkba+|l@cg0d58c^sfMwb)ChQu^7{UHz4!`Fo9jPz{jb!HGE@hxzP z+1TnOF@c#M5+{x`p%MM8jbn&>^p;Kz^Q7AObmf+uHH&eNwMmSvW5pu#!Dl`Wf+0<8 zNmj76Rolirr750-Z4zwqY47oaAx;g*$@cnl^=g4rUEQwU?u%K3xt;>?T#;@iYTgM( zhMOYu@3`5j*lgu^} zG+k{UZm5`<6Ol>JzdaISr2}t%P;oROj=KQy#n~9>#^#2YMLIm>=Km~NlFgPZ#8_{4 z%d>4#G7I^AFy4EJIXlxl(|07gJ?E~smSs-Y*O6)|78L9rwWX)`rG_H@g3|76cu`%F zwPtQ3N>+-N+~w}oP(Dh(_k1S#5ni3qG=9TbEj4+sx8x|MBaPmh*%^yu(|;(W*jyw( zRr@a*KLjIreq0m1b*$=idbVFum_(zO{B1yLd`HZehcY$K1LYR(W{8^OIH90!`D0}44?RU zP`b9L{86q*%2~=(-=E0kE;bhKDvbJu3S`iW;Hp`2z9LQuo-D&a`6O zMOlIL4!vg(WKwXTR1u+R$;wlH)eGLyT7Q07Q zt?2QHGHqDBl#m>zQq^4v!icJo@L!L-N>@PgK0(gaMJO`jZe%37Srv8Jc@?uf3L7#l zrOXA!jFsz;xkUg1MGK_XZsJmg)E_Xhd+!n|`V`U~aLs=6fcAJL9I#~;G14RA3Ma;W z`l_fZqL46%d(r4d3CW~Czm(n?Q;Urg;&Ntdv~1yq1{h3oBYBI+DBYZs^BVK+dPY&B zIZYv(zFV6cg+WVK5jzXGc>6S#pNvIDjlvgV`K9%YdLoy`N<*I#_T)XV4nD`kW`YI> za;^xz4p2~2J84^IW?0m|uhed9R0-I^fhbf(ga(6zZ%)pp_J&}iNa>8bJK}CP2Jv|k_C`G&a5a8v^LBo{ zpVvR@3XV_n*cD~MulWs-j!xQt#7k>j5u?6(X~VRi_PTEZ|KmJK72u0I z<>?ySc5Ot-sDiD31!?d#tB&PYT<@*_G4pYjkmhl|;uh1PYa9xenQM28|j(-?*H1FNHzwss(UTC^^l?I|F-TLWfAN^Q)OSUa_buv%@S|<2KzMTcF zJAQJMj+*gedF@Y|o|F)^SK8od>9k;5o1N7k@gB-Y;{Cm>C7-rLJHsasQIZ(M`ax+2 z#_4iHhpt!DG?~jma14yNa)$e*9z}^f+B3xlp<~@2-VVpJ4L5gA7ByX$eRtd=V@+173y}L z({-`3RyH0M6o;M7wWWf`8aRG4?Mi(xv!8PP&;%Yn%gmY*U;ff_Ms99LOUpAB=JOU# z4ZClBo%_j@gkj0HC${BYTL_&KFH&L?j$;YgrDkWTR87?*$-1{lKX+{UEWPZ<56zQH zC)75u7#r4xp`iihkg`h@#g9?GIA4NBUMr6_CGu-wI$^PuVJ|5vf*h;>B0|5*(|M5v321k6KoX6${W&RWm`UWA|pYSf0fahFhU$7#WL@n|E8g3Wf6 z;jUqc9pf(U)TPQAfX9Q8#DGQ$WD(=_Sh7FJ4~&EfeL!}|we*!d+NJ1gwsk$C)3)AO zF)P(2!lu7!rgoS9DaxZgQfWYX7G-&}t*!=|N^5d>kWw62y~>dh(4X9BrM33Ra4`VC4tuz7?Rf`o4skbt6N1$c2@Hh zQ$P?on;MA0!t3o+Q%7seVO&1Uy=Rc>gWb@+TDs7478w+jxr3)%o-cJ)^{6<7#uy;z zr#_N9;6`Y6fPkYFWER!#NKQrY#O8Js2X5PMtnoBwL&LBt5a1H)t@r- z_f}Z~2-B?w)~}KXQ5BsJ8R|ge`T^l(5j*0ol;oF<=QH>IU8?C^%AQ8g ztwsR$27Nr!)E$k~9E3h7RvrOU+W|+}{|Z*jRh@HYUQ%0q73GVQnu7ujH>XGdA}xu! z&K-o}G6HaL=$uNl7teJl0kA$Jl|P~-X>3QIi#X%J`iaDsqRB49bd8wYUo!kf&Go_F zy|#7hx}=X^Vj?pg3vGw5fUA8Bn0=yR)~4(a1`lwk&VQNFsa9L;q_(_Ttpylh7Lp0> z3^FA0zj0tm%9pE_ijDik(b7kr8TP*~&IE4w-^DWlQ%? z)=8;J!sd$^d{R=1mQyk1HHVsyOeClzB2kQonf%x{+7hmJr9-JZwoMzxq;FvMPIWE- z)jE9$67Vl4{wbzL7^b(>PHbVjfEQkzg-8Hjgu!zi!Wq~o3qt%Etc;MOa%G4YdVeyX z%TJjOU^=Dc2;Z$Iu^F$+2&>1~TDWKw6i5FNZUFd=8C<9q+oV>*Usb4iEFL1{fzZ3a z!B%Qht=^6wyvHv*46B|o*(=lYU9Vi@9_V}OxzdZ*fYSx@JJa0YHWvbO?iGIK#mnM- zffi+s;ZU-kQ0E`8ge~S>$(+~VBbkf`FU*c*3e)97h zDd;mj+lx?Mu&|I|Qy2rxZ@`L<=6A(S`-f{l$3FU@SPmWm>s}nZ1k#Pq0UtNsj zpJS(SQ5TfWcicN=>Nu>xB}tKU2{96s+@RkCd;SRkME66w@+CdJyO!;!_OP~K*JK7( zc-Dua!i`Q#Op}r_QprpR*B|&4&{1^}=HiY1$~3GL101w;_n=};!xL?p-$9b)KseFx z01{UO1PIWF0YWCFyZid#ocqI-2Dc;=zSDHRb*`=m_uP5ze^&6sjNPC;I~9MGfUiDR zG@)=J3jcld2L26tT0?C_Y%6L=MH%i$nRPBP!14g~A5|wn2&HY~^)(s)6~L!cFkwUy z8Q=4HRCWY{E`s3o=f}fS8_XN_lau4~yOjw}zZ*|?d;GC4Yzc9|twMDzYXO3AH5#^? zx5){<{mg5tKjUP%#|^708zcr#F^qejFM)$1q!eeto{?Ziov5q1V2_*@y|^#CY58e3 zy|C9`2+$_$r~k8Upa=!K*8I-`3D?5_iRfMke7I2@Wx zm~ByAZdT$7C(kWJbqbhVLKML0W(@BtM5!2=M9nkbpL8XfCE?x#mO3R369Y<{wj_Xb zUk1udlM|QW3@bU66<48_2KL|Nfdqcmb#8JYCSaxdPlQ8XuuvH0?0ZC2WW%@~;LZMR zjwe@^LN>p&@LzEx;Jbzb66|&T-M=*egc>9$WGj@&0TC=keXEvOoxAW~HQzdt<(KBm;`cxKO zlu!sqpWhGI)7MvxEcb^D^Ebi&Bo91oKJ3QU+>3JlovMId1@adFrfAp9$pVl8pqJeK z4k{?9E8lfq)>O{JC#%D;Z_OO`^Uck)+HQaKAE2N-+)1&qX%e{C*Se@5&IE}*PU9&P zu-j$wX>tebx&QZePmd=O^mzdv=KJ~!WSO9lqFyD#|3I;Je#MvnmE~FL5&F&QlG{Rs zh+bx}K~Ca*a_axi?W}YEy5;6^LCQ)Tl+HG_Z0tCwU<{% zOAG%1lTVtY(S3ZmC)#k(oy%=Bh9r6{t3_>VW3x!Yxe?g4atxJj-3pT?1w72FP39R& zwJz}E8UDW4({;r)_H_iW*n0vK!4wYeTc0CX8Gt*@s(uiaBiO%1@1S>Q*Vm%mc4WG} zLpED)KdZkt{ZH+P&jwJ4`kkPjiDxO5=tjmy zF5=@rV}?SG2l1DZLF%KE^UayO|9+ie1pK-H0>FL(kl2J^>tp_y#6lDZY3p>pR3<#s zJ})d?kP{GDfqbsHNw87HEJ~f1Ti-jbX}1*0aH6WUho`29vI0KeWEu#$YVGf^@bnPK z;%9i)%!&gvv)~T+)?q1$04XP-G&%i-9`mq6kO=4V#jilAIDnYcA$Wv=&4bHr5m-A< zsaB+ZXhvC49E_ZQsYEK)_@6}5E+7k{K;Lvp<6eE&$_0^f*~Y2mjPw-%on#v*;ZHcC z{nK4i1k|By$Y`m+m-6vi?*ZK@#bH(#5J~cYpTdSc%^%+Ju)pgG-z4EEp~#C{M5n0h zOHFg2NT1-;dJjgB`knB=f;#TMWjaF~cr{GW%8?2DIsU0HAWcPfd7=Q%n40x}VmSYm zh(A7jvuQN$yV6i~TdD zzONw6@c&pm2cH$O5=*}ythyFJpxys#idlrw@+j<<#V8iYL&%6X-dQJt2GQ*n`0PN86 zl?|XZ()%F+z}dh8UiNcYvT&lzR-!SHg?j+MBh~>|mMhB4ss*Kh^c_N_(SJK(MlVn= zQ2-m(mWVzC5b2@%A~%F1&HmOU0_g)1?z`OlJ>tHMgoyv|OB!MpELXhLXrLW`BK2TQ zSpWY1laCinSb@>1M3rjJmV%YUdPAI;s3Ws3IQ#Z7^=1o9UK@? z0JfT60g^s->)0r zPaE-*BU%%c)oBV zFKhMwE_Ao3Ei)-LHq!f_PF5P^XO+@))>XR8-b#DuJe#37a0zTC?+Pq6=_JS2}onYxfjAnP-y_l*?cx#gZ&A4gjwJcjv)jeA<*Yyz4u*UQJL9FA(5 zfKet{Y!H$2a@MTg0UUj#-&U-7x77l6TYf9AA=hnH*s#fdDGV89Kx?1NA}m9FY!CO} z-eapL6KX624479H652dh_H|;QM5l=mzkZ;Y)%BRDB9gvWG+=Ig>o$;)(cWo0*`7Cz z%M|}=Uuaw&Sb6jQ*@_F06!QYoS=VD>UP1j2E@dDV<3G$v3}2be_oom1TkxG8zt5HG zmtEl}2{7T4dHaVn`$056A)l52L7x~p2fL>)oN&f0H@0Gq#Z$CRKp;dml%ZoQ>R?=` z1^Q}}o>P<)-}ss2d8ZIi47l>o5A!Vo^WM)g^J)$VHbbcGVtuCGnHdngcP}8~x50mf zLANBsi7!UtajnSmao?Ofn<^H6^q+WH8szDSas{9_`9IWXavl`&T5f&>JI1% zZjBn}t-J9p|M9T=&k&cO6ZOBofUJvOGAl7sGVlbfee3J{G|M!Z4TbN=UgFAQwGVqOiqO=XZWEop1$JGFubZ`e>|2Ev{OIGG9fM|`J zk0-!CmCAvuI7#A@(6PyacQ^coq(y=fs@ll*x@D9FqKDNXKEN{h${96!m<7QJTj%dgA_X6??P*DA3kSwYB+{QSBEcfBnOD7=6BXhL9^j#0ae*%|7Llr~; zR~9Vv0E#!tmCWw?CB<0U$9I54nDC4jF_Uo*;ikh~5$gdaDu3-eUKnkWEj=K4Av0y6 z75?m-HbBTJKm^?)?Wr2&s>3C6uw9mIb8puxuIf7slq?zmn|ye9>oaTBbdn zJ&SrW4H!5ANd5?O!j*FN_@H+p4)G1NuA1nd(x<6ERm$u$ zG2NYUZCQI(PTwM+Y?U;v+LuUd^f}oqo8lT>hi3RuzmPSB5-l!TuTErq#5BS47QCyI z_Hb*kv88ROkbhqtHxi43f5~~^f5-Ce6DA^@K*S0D@X?ubY1{3dvGHBrn%p?#TSh5Z zEbM|J-2w0Y$`k>nYU_*@Ht`S5j)EZQPh(3W#W$6oTGrm3O9s7uz_#fi-j_3Ng%l@@ zc^o2%-LqG>BeZeLOaG#?^SHnm5zgmhs5?9X+?g{Sg*A0yky5vpzcz)07>fW1dZf+1 zO?U$PWuk+$!duq{XIokmJQhD8@R&&vdx8CP6^RRCrhlPbYuc{rpGW1^#Pt-8__Tfd zlqD+q-9g)ZNZXZqodlWrzP$ly&N6!n%81S7Rtr)hvV`Uo!^e?#&Bi^0?uKFD%qcJ6 zG0c#RRlHa(|0NcJvC{^*Ojt-+jnIsvRv9Z839_sVf40IHOpw|=7cS0}>GOtz`3gT? zx#iG`KLK{}X?w-Npz4QyU)rXR0{I_(q!=0=`;j-Lp2K(oyOV@u#s&bw7udgop*oP_ z&6x6pyb;kK(`jSURR*Sb%ZjvM#2fP6Vw;!$lgyt&+XgvPOuMb0q`)gXTL%uCv-?T8O(_3W4%B^wjT}!c?S~Gj$uTm}XphyhB`v?PmV^XMkM2C+5#5W20L>YWaeiJ!UXsxeC2L2wGxH_9?XD;$Hx3p=Hqd~RsXt!Q6YdV5AGK^CVr_RsjH za5cSajFw@t_{g2e0~G$V?ucmL!`C;g7a19E*1IF}+9|j5Dh$#{yGN})7}1G8JxJr@{{)`*aUprO5OG3a(8}{$-U|W)fgEj?7g6pOBR;O^ z%MJmgDnKU&1y;9WAps314qWDg`K~w!7W&u0a2_sAElneST`6q@gLD%q$0`ROmPR2aSs@6@ zrTqE5#o=wr9`@L=eKI9Vn7x(eFS#$m^&fKSzm1j1eAqRO z$Vuf|B_BC#w{Nn~0uq_S;SQ}@lv{y$wzCd=cx@+O@2Wtv3@=TsOxy~+i*fJmgvEmD z2r00_lkqZCIBh(whAD?`KmSD1%lB6qUoqI8WT;VWB*0@EOqIX0CWGQfC0a+1x%E{G zqtGr>!%A=`My2G`DnjUJA>+2~71eiItDTp?Um1eyFOd4Qc!nZfkn6Ii_%TL%hH#+* zyweV^_#I2tAUD;XaeSQXz5$ztTe5c@$eP}u$@-TsTs=5gd6wyukQUX3?>4(FL=4@% zm*{vNCXvg3M{98JOYE%hboO^17gN|19I|q0k@}|@;cmIURd%rtpx{(A#Pc;d)9)|d zW<~W#w;ZoJ>(i{%Dse}WweXdku)vmMWX&C7hGpLlo*SVpC6_!A=!bkgG~VfFn1 zGq(9f{H_Dc_++zP?lgW}3M@hG&$EE^b2c>42_rA=()zFYI`Vyb!pIj-G{)`|vn00r zk=}N7c77IcJ51=^sgmRe1(;m&-2K*B^Ko>M-OGp?eB1H#Ld4X*YvKy0$9`HdqE7(y z`ngN%+qkhIHK+YF?g15o#H`nZfR9sS5RCzBPcPyJ&^$OyzE{Ll$hV2|T52+&OKguF z^`y9OJ{&9jgfYRhi&B%FQZt?0&^Z45t&75?;S!{kG3EO_8#Mp3^&838IG)yC{=4@t z7RWn#a;@2MaYOwxYH}18isQ{glXAP}yyAymb&((!bEmy0kUy&jHUsQC;%4aOrQ%BS zRD*NICV#cJ&+}7}n9QH)xxS>Ijyj-(VX?h2K zz0NaPr28`2=;rGiA_;49fcdDSqD+b2)p<$r7&lYLOxe{~S|VAU_xr1lf;u_vM{0$S z7iX5VprWW^Bco%f(O(xT7ejagUu`P%3+#12HG2MM>dr1$itJ2^OVg`(={N0i*XZ^? zQ9f`w+1D02BEF3=gHD7KAfs>52ZQTwR>crV81_yF27)bN(`h()RNhykBQilF>9#DL zXhdChS~@!k$GuLhK|8hQFxslhg9y+;=dD75&Y(MG|v9@NqUWEsuS+@>dY!Q>cCFea(m8mW} zJrAj|-lDUFg}+vl)M#9^>y8n?L#LnV^=-{7h`4(6SpaUL36FD?Ipm8Chb*Maua+wI zIIh+DW+?K`z#9_Gp!&wFesZ`D>c7*!SAZ~2nhTGC2gFFOk}jQ|(Cx%NuwlNpA^^Ze z=hp@Em!gW)^kX+Lf_Kg-e}>pzomGt}0hC~KB7HU-OauAEhmPZedXOXkC8jvuH_4M) zYPKma7+27EOSt89XmP4O^F*cG?g!zhCf5|+Lt9Qi6J|SO`3j+kfr|L$@UK5ro7uSd`|`m`RjQw!g0Ri7RuZkpmw=c zW7{1ivEx0`HQsPIE>5waDUu$HkJS-V%%1YejJr~I(3El6+VH%X4*X&hT&p$OsiZldn~~#V0q0br2X9mj#h1FxU@u1u~1Ry@~uEixx!kTF87_+ zmGj{oLm{jlm^9C6)g3jNJ4hPuk%zR*MbM;F$%Nm@bcEu1+IBscl$v9^$gSKg7o9t= zGV;nw!iW4<;V*BfAtR%t^DG3nqk?sYqbOVFW~u(23+}S>aD6*@njp2xI4Wypf3^4D zQZC=UapOf(rOaHSz_ywpKel&`8$9AG5dh??|6&1_wArc#9^G_ZN<}ioFcV$rmM>ES zJH=W&JQ6i~bVbP3=tVMvkhNR~t6Z)ryFN0ql$i=!`)L`-2^I4;8P-}Bo>qIPr)Kb& z+bxFtV*U|w%8^#SMq9VS5eB3R3>n?DDi<-*q z+ha({UR_Z{weIaDgYgXWDd$;lj{>qsaOW&jo}tSzb+FXEOSN)e!p*>&F4!d9a$o(P0RT z>Pw1(0=en0PLwU>=>#q(PFSC34u@!7Gn6}XR7Vc3ZCAZl$M-+FO-NhvOSfO)j8+0=qMmgIiSc+*>@mAW8*L|gCnRkS67YoVjL={GP z5y^h-YSW)!wIcYBaJuvE`0<6W1=*FwP-S}m2Mk?>jc5}R4X&i7!VRmsRYJ_R3#*ko zr=XjFJa5F7cAJxLZ@@=bFWI*=oa|4;XKE7_Z=j%c)!EWpB+yh>SIw?=9yB*EjXk`m zJfON+d|qacHQoV|v%g-xLQbaLfo!UDM1fTpEWi2QIXd)6En~LpJjoP$qg32A%`MNM z00RtHzmIbB5yepWjXI^8l0_PRuRBaO6TFL7Pqu}}%0**W+l^fMUDgyoTy?I#2~Q0% z0^c{|YZRIJ%EI>+zT}e0wxq{IGje%zY`+7|D{l;lesJZA%&AXr%}8Njn0}N^U&HyeV8$p>K#OW3oE#?KEN2BSnc!Q+ZMAA@~{c|odsSPq^REg9=CVsd<7V$=mK@RueP zCD_xnl3EVd!EsBCbXD5%T^?=@S#J{vmyn# zvSO+xYMjUTzAm4uj83f6=XP@L7T?J2WxROz^@Yb)jRHCT&TpF&@d@VyJ|)d2vlgGl zHbN!z>Nq$HKXOUv0N>wV-LCzux$Ciw1jj&L0~;+^ITQ>hB~J_fIIek6-DW=7(P_8& z;p${|?|t0~$LU@kvlLAaK8=gx8ZD=fdocuGvwNg&%{@pWGoSOGe|lxMoC(~uvVne3 zGk*(*zm&#nbV@=U&8atwZrT=6h%$fcj7}H-&NUEd8yQSxA6?-@q_$0S)@mnLnyD+p zcHq3*F%8}tW#Y^2rFV{(V^fjP&1&-f;;;o5BVz7)F@t-s5->pXe0-A~RXjTmyZuV3 z4#4h$Ab8mFS)t7ZhovW3O%-|{H3{7b+utAfh=1Jc?F6oL(441dO_B7Ys!SGDEx0m$ zY-vmyTT~N-Zo+G=CfwdS)}PBkmK+L!CKW7T`S$n*WuTPWbk=5b?x-^lJ*HY1l*>St ze%6A7OfapJ-M5|Ho?sB6#SOoDtM(C^bq0zDN-18OChH4|KUXVGZpdEU?ykZamWws@ z?gTo9=`A>XNC*UjmcjLsxrhbR#G~>~TOEs2%109aEnc!xs&^~8PjXkia~O#U?fs|w>oxM_CAPip%W~GKyha&BNhZ;m1-86s6)lkQ z?-gf+>w9649|0dP{A-M>TL&=JQuAR-h{W2b7ZTx3S}R8iHj!b-Tks!?7KjswT23tE=-dMzr8V zjFYz443Rsvo2ucek;x)1X}+0k7B83UE?&Qx=wjhr_ie^Oudo|L0gg9OcRXY0FMszm zzm7oJq$Ih}DD|Bx8mRMb_5m9{`LO+DjMBfcsAS0@>BM5uM0B_c?ZdRJPmD>?Ht|)1 zf8V@;S_>138ZL9#VAt1*Ob+;v-+sVK-p*bxFW^sbe1mEd31M9ng-aAFpCeD~nBhws zUFNhB1aM&F9ruldMWEOl=M!+=rLDof#o>HbznT)R-aD>Vi=?rNH@Uezn^c)o-ZudO z4*_u%)YNEld*41>u&`7tlTBRi&f*ts9xP=~36KE`i#w&1cnu%OhtiXhBvqMKbJ3vx zS{FDnA))N;1j#CE=2J9nn++C(`8V^F3WzAI_{@E&a$%;a$8x>>vxk|vJ6Un=(0hXB zxP;rs$)&EKB#mI$`W;ik2}zybddDeqoAVW8Fki;oyn7^L;f}o<39ae4*up3siFXkZ zaiyy^pI4s)Noobc((2Ty@q{olnR4pZ@58B4WLvwkhLVbBXW>%?>GYGuehpB^5FleJ zhp53vJMB~vYJ9~OvYEYz`ZfkN+)@&#<5v=yJA}7v;KUO;MwfoM??UszXT^oE8JVoeRci@Ue79UOmu1}@YY7@?% z5|(CxQCYSiL&TOj#m|~?KgcKbk=FjmF3m-f5XUm{N*Nc<~E^!Ze}%h3Xb`aAOlUpgzHofOw7L zW7a2EhX2McsBPUAy7owrMEVQJ2f0c`yHC|f*Lw4O!rj$AjvR+S!Da*%vI}y1e@}%h zDn7&6QyM=|*lJtNYh+~<+h3t0NYKalP$C!D%L=LK)Iq;OHr!9ooE8^qo+bPobrSdO z>R_Q8uQqUoFEq=`y>X+$&(z-RmWN~@&qh63CT;-3OV_^RYV1KvGKkyOLIrYQP<1ab zkPPINq5mYiCIjqX+`c3RR}0&C&4$AX_&9Q=?@6P$3F-w8xm|%7#=k1E-H<6GA|;Bo z=`#GT8r@y2(cS}VrW`nVzJr>L(hJkb!x^!{IB(|%`AG96J^8U|Z%w5n$@D)Z&v`$E z!12SyFnZGnOmJ+!Jg0_c<34G~OQ@NYm*xY(6W8mZt5l7tJJP~bBiBPcO>a2hh2tk0 zHDwi^K~AK;FOa;GR*Ur}I7+t`@uFkEm?GmF3Lb$Av{s%yxnh*)M^ola>PaatCL?^1 zY2tsE#79JynjLaM4%FUL3=Qn9jmJD>v`gE?lsS7;1BN>k1NwV~RC>K)(hCqx%ICMrJ-`4e=su;Gir@Uo^t@)q@tP8d-4y@b?O+a+hKG zX;S}ras<`LF$orRXdb$y4^@TS;CVq1EV1*vbNXlf-5aP#mqR?a6Q?>y#nXg!?s05$ z)&Z~mj#qd_KUl`Gib|kJ(StWFH*=SuCMmFRx)Fg~)KRzg{{@TAsiP21N%NTU0Uxw+ zjXpcxU373yIDo8ZdrIxBgDwDHy*KGKvV0`+wGfCK?Yb)#(WPL!ZhB910n1P()qcHiY2r?(XjHBshePTL|v%?iSpg;1ZnR z?h+tCaCe8>obSFrQ$?zJukK!J&M}`cde(c6&n4GufgM>Yra-V;H7j-Fa5;?@A-A5- zO0fVsr<}tTCGD-_cmm)52)>$xQQK$Tvip~;7L{vhEow%^j~_FxtbhnM3}Y%aYS+aJ zi)X6387oJD?J?&ds3$>ZnymCykm)q6%f-|A%KU3aL2;?f(eSy$L0^vBA+U@%{*Hht zLrC&Yv`T#H;?Pug`~Eb!FfHfDVYim5BY1}?ZR_VS=bn`xiUp_VF`VJsI z#YpP_kN#zQXL+^3tws&pMzqc&^0hH*bG0! z#PYkk(_0btN&uzy`qjnkHta^1U5L);ncsH=0x$_`O*Zt=K!-2mG}QM$Sehz=Z8Ld^ zn|-78w&rC+a%fDtnhEg?Yi#+eOn_F}qgZ$}{#QL!tZRa*`nt<6(&Xd5J$&yK^q)C| zo*|2Gokag2?bgfcglqLHJ}>SrP5dod)^!|`lha_VZxn!y2|4r6R?7X8PSF z--V9f?)}MRG>SDqxp^&{SOk|t^EP$aSzwo|$73g_?!*1>x@4W}yo-*{fzV!Aak?`u zBM*MMVDr?Y%GLzJHoHn^dy|vekhAHO>GQ9LKVn&8_WNzt$MkoZ9APfW40JRp7fJWi z)l?PqVpBO%OZ>8tANyd}EKUXD5M@J&@-1kF{!u@3HZtO3n}UrN)F_#3H?F%%+!(s> zJur@`@)qU@fFi72ICdOIU`g+c*NU+hpt0KyR-JXv@&L^*si?5=&FOsULdiOXQL?JY zpLuZYZaW+K-}draakeaoti-_0Au)m^uSzmkaCF4QO8a4x~eHP*6?;nVKWGj`_mA1AMLu7e<(ER16uf}Z;3|L z1$gpJCmWE_1wE>|lks?7*V9*v7usClmDo`xwj;;xr}4~2lW)0L;(RImr&7MdbjKo1 zYou6@KC!9D#H6HDTFUR&5Uozm6;lrtn=?>|itl|{hML(&DxmraqE28!;izk>sOw>4 z=Y;?T2&Yp_M*_*>e$^< z^xnMlU3Wu`V0WHm%qWFW_AC_}zbhGVgDx9kC;UW`HsVz!v>^nZ|3c+yWCBJp?;L+f z9e|+GM0~LVHv?_;EbAa+1qH>y8 zvEsMHd-v7;7!AYHSA>s0-s)_(Hn2A$?O=0Y)hUMRs@iw0v^v_^4`{mrV3%x2_=l#H zba!-*V}^IZ$3HG3lY-oA|CUcfcbn94tBG~J)e?ChrYnoP(7=krLZdu=NFW3+am`o_ z-l}S?4mS+b=Pv54rNbmhCO4Lo9Q|r&(+V#g59SV-@Bw8R-!D*sg+3KW- z@AX*|MH(8HK0a2G);IfDQ(Mi&ZSH5nOWr~rk46{GK}>UHJ6Vep@`nE1wDJbk7|F0K zue@&4h`t)HZ$T{-6$?w#J$>NI7Ief%4}sXY3VPTx+; z@ZuE~-0BbE@XDAcxi8NOD)mY!f||SsWakF-w4?^oDT-u2vRCZUcv9Bg9iRJ0Eqccv zL>?J4`%EupEpW=60(!=k~J|HgO$A%(j1uYNB~KA1-}CyL-N2c;_xJ3+=!uk@1fvm|XbKaid@NE)_rp zvTt|$4Sg}1bDSS`OzVz2Hh8MrHLb_t>yG1xFJ!$_0>oWU<{9#5;RVPO2UO?dS|N*5 zl)Of1ExGTk{=(E92Uil#Vn=OLjS{8n<(P025**SqWBQ>yN}Ob&hG%kjq#ihDHu2RA zPlci>8u*Mhyc}JGj)Rw=C|6oT%`JhXQ-tC#e#bx2YdRUUJ^26epy_VXwhAh6t=*&4 zr|gOJQ8y>rv7nSn6xn7fyEHSgH6;bw@YU#US_v2*TfT)W84fj!%0tVrc$AgaNhK?E zfu~fJU#?0R(fNR81=c7OPJ;C1>ue~p;O#xGm0%b9`r4TgQ=T6=HG>!Yh^(MmM1n0`o%n+dEMYXSOw2M@r2bCFBDo(b$oS@TjqcB6-;cX>Ip1lPdvOky^bN)yqBeHHco0nQTQEgCT&TUp3AX49!wOF3v~scQWFD$@cG&Ia zt*=_uC+ovXX24zA?BDVyR2pFxGK7>`>|LQPE4OX>^{RZ1Vd2(w!#t2ok;Xr{Y{%uh zfC6+6Qo~Cuu*Wm*H#pt9-+2n>crRxlKJ9qz4YUX?+C4T9*=Ei&Ss=46-fg?Jgvm1s z=*nxUW7l;nrvHW4uEUf4E2Cym?R0OV44o3-g@E`Lfy3O2>m9*M`H|JIc=06r$nEO3w)u(=Ee=$tEON|z@+0G{rK#DoB`=a}Hq*cN zW2(Fl*Yqh0vE1iA5sp%Cdo6oH_qK3Z&&wYr@u5!BXV>wfzKaNvEHRt@mD0BbmsSz-9AQg8+kMu{TO9{H z1-g{`;V?C_GMGpInZ-&#+9T$cjZSUH<~;l^LwZ3eeE(7CcjCoqsZJ2%{za-o zid)z7??g2bg9cZ8|9+E0;vR zJt&H2FOC0W65exc1%}6Im=+M@$VZ2~2@)rTCz-~%HFP;jAyjRUige57KeTO||H#RV zFwVG=BHB$h=O70pEzaAP3J(8e4h8c}ai+_}=r(*VxIF&W5lrXMwpkLqBXPL9@DW%nW#gJvijXXW| z>Wmk4*Yg7nAihz>YpRtYW#E2l>~nE7LzrQ*GNCxmm~jahyz;yQHpRY`A%<#;8y-H} zet7x7L9kUHJoUONtw}yRz(p+8TG!l>8U2>=tmDXoimFgvVIN;|+Xm^t3UJ^9J=1R| z_|0JB*i+n*#yKTG`IlWX5L_kyHj&Q_lhgI(s^fO0)y#UJ>eh{|m{pTn@J3lxmnuv_ zIR=)X9mn1K4_lsms{Wl&{sI&Pr-3RiOcwu9nRMPluM-s2WHBcVB3qIh0#Ux%y?Tw- zFsj#{^r?_r3W_gDQP-ukk~N*Ma5v59$_!gCXwpqmN?g#hzaFju#@dJ_i`QA0hv>Sg zYIE*q(f;{^SAaTlGA@Gz^MuGsRc*8@hsI|G$g<;cMci{;uJ7PqBZk(U; zmjeI5lp70>t5((`(k6yLETdMbFTXyM* z=7_)P#R1(RsBv5 z$G2@~=uty)N~0u-7Ce;WH&4Lad#pVO=6VPz7P!?=1MNW=}Rl@Cj0$UoB5zRjF2PV0& zgnuyemJ>}kwor>{Y-GIwNwEeD-u+TbEPPhmKVZnZ;mkkfM-5@RFy?C;`L1nL`Tb5X z`>gD8dLRGGjQ3fv2Ja5s_JzsBKB%cZS|^l*gHp`sMU&XKFnQ9v8;xOES=i zDRg|S@q3u!89EmhfmYxni~9vZ6%T);grq8T{6~4^$8~Ys|3MbgBvL;(gT-rew%$b- zPDx1}jmL0a?^9+vC{TFw88hYTZVt}PRy-^Yv0NxK-PD2kiM8vCS2OnPo~pt6mCaoL zzr0RYz!p8H?MRt9^mvJWMT1(1Kp(JDkk=Q}9wZfCa+Z_Fj4X(oLGHBn#d=&b_3Co8 zA}=HJZu#vms1vK_Ih-rgo~pMR_^JfMQ;WM7HrovgTE#*J8o!k5M$`D7AY~!}K8VBX z&z?&LV(2qTLG^9H=wouE%F#y(kwJUqidRLc%T)zD*L+^!n?2^1xy5lQWFd(i;D zu~gCmaZXyA!<1GPmBmV|&6S9J@V8C}VaAtg3_5Z_EN^~oPEZPIVZ(F{e)_&vR>GeJ zG2P`1$rZ@X&KVS0&0Y7qmgk!zyTb7<`BvVH}R!3*0H0)Qu4=;CA&Q1{w8JsXv9j%KWRBgqY&Dp%9J#wCL_ zi%zqY4nUzKvwbS`&npD&xa>@wEg@>sXWpp2<;vssT!B(aVZ7ckmn-fml{OEx(sx0p zH>_iK*`)KP7(aofAZMS7!@M@*&~Cyr`8PQ!W(?29K~hi_&wIbFi8R#`FDI-V!fO`g z{gm(xT`uruF;ChVg=^7QXih9gb+-Kj$PVe19Zw~;`2#tD@gklz4JBjUPm#`LX>N%} zmGNKKmxutI>0>(IG1XUVEos@N553{4%t`v`*g8rW7BApOYA4w$T33|M!xzFvSkYig z=FcncH#4THzNPpnY8p1TU!8Y4RJP*-%m2p$a9br^pb+IO3Cwynb@)*Hy^46(SxY(Q zYLAL44i8ODDJgNLxdRZqI^1l@=Y>SdAm@ctAYbjrO-<2ujvnZBS0*!CBTKVT`S0{8 z#Ff>T+z5zis;X}Tt%RMRrBrmPL9qL5Cc6yk|GV=GKpMyTYEqtlJzO3}GH-ZMe zYZQI{u*lsHkJhDT4MvC~^UF<2;3G7QC{B#Tw#J2Lk=_2Dw-0z~-Z>Lwqddq)3cAfz zN3=EeSTG`ZmuLKebY>@H89L~h`e3E1^5S&x{4NU4PMBI?uBx|{e^k`bvX#cGXb!AK zXS&pResWR_&#~w8-*2ob5`@V@X%P3qx30ow`2XsTDK&*g)YQf?K)QoH)sw|7U?^~o zvrb1+9salCDa-kU9oqHST{TUnzUs;k%fd#|1cw9YPK}}3a7+t2bi;`HREUU18KU{e z)8_(Q9m}9B;k+`M%ur9FMhnOR&48cDEY_mS_HRvmqG0P@c$9aLvA0@rnSU)#f)+}) zf51TtY-jXJJ@v75k7OoZf;?NepC5u^#(S_h{jB+<6N(6s4{q~YuWZ-6XxnS|f>*Cj zWOKZkj%Dimtz+Itfd?mX+oc?Tr4-)Y5mWhO+xN-R%7S2ynrV)u1)zNv<<_LCWM@yO zAU^p!Vg*N$spMlfnK>pVdWNwb&YN)3ovZX{WAUp6;QO7{}>4-gmt0VMb%W7alfo;&H=Y8xC*k zsA8lfu}b>m^3IgWXiDg2P`wc38v@6-!=<5_?>o8&RPocKcvr&6Qpl}%t#?!D00h!X z)ZV0EfBO7mMh;Bu#50bOO$p8a@)9#__QOwz&W5@g2UnOO8Ngw=~ovx7Ca30T_WVpKXGSHNX_aBf643_l7Sz~j* zn747fpvYkNTNd{Z2@1%|d;czi!sz7HtL8!MQXu<&M>#SlTog>b zet0ec1izUAzK49+>gNgrMgm&;>9WP0|;Ad7oQ?M$)*@)K_9uq?JtW&<+l<+Tql_^m5j!VXqd1*0<^V*i_RvTYwL`J}pO z<^c|G%xx~+)JNCX5v(*3=;U!EX#woDpA!X8M3!8f8R_u$T9tRW@0CQ&o^sdy7GG2j z!kWTqPh}qmip5lj4m9%*w;NN0F}_i)!)f5>zyd@38KUC1xkP5mKEUQ+EOc69qGz=5 z`!p@8L6{I-+j3(%`dS29riR+;BUaj@Eb`g4P{ZoaR!5N$TtXcm^TGYoRh4^8sdYe) zft$xbj5DJw_YY|p^ht82ZR$8)kEB}-5PM^nJ`TjHh6m={RvIf!4-`za+5nS4*KJ`o z6G5aB@B$gK z->dqkt*na#&%FSKwc#vwU^^=vak_NSp9X%i{o>k_{MZVLiWp#`+OB`RvIyW=-yqy?^}}a)7=n1^M~9|H3&Zk1Y1})JptG682cmgjDwm`F zY-sP@xV-f^bS$XkA@nKS3O=HCx2#>heuU!9*#0O(Um?>SBa)@a z>n%vO@0>@_(aj zz?UBH8)H3^v5zCcp1;Z$qOQKd;2E{ECHeycF(qx$vDlfB6q;wEEQ=0;U_;}Q=ASNK zfEm@vL7Gv2F%2wUX|K_eQ7NB;alg~<+>6Esyn9C6O8OcVDqU!!skI71;9A3$)>@`+ z9_|kuz^ja5F`Ea14tI$|iY&L1-j^tvBBmTuf0j;i4Kd~vPgY2?@EJdz<45gzp2m_Ur!}@{u)Zj)0=SfsUL9zt5&uJjIay#N z#RF?-UOvzNl$|W@?uK40@L!(^XRk5AnmJHT;yL3mB1)s^Ipbsb38he-EAlDCSYx3s z&jZ;Yjn{~2StlqO^Oi97BML`SKQ&ne5@$BcE(hI4ny=ql2kD4+YEKYelo1|W>_J}a zeFZnI?BsE$H4;EaO1>WQW~IilIP;b%=R#UtaNMP1t|YDX7DX9ehA;C-C^Y zC>Z=F`d$bP4o?C)33MU}`7zF)5dXo1=xt7PIA;s##r=TI_M&_gwt7zKFz5*?&n;==iPnzAfK z0OqY)Z35NfKeZYvJbuJ!rvvPq=jAMlJ=ako4ZYu?)0|HllDp!oB)_mOsL08UFmvvj zE1Ee-(wAQwrTtE{c(o5uY}DK;n<9(y8+ZX|2tAb0Gu%e-l+U`t4<@?&V;obMc|xo{ z;_~k^l9I`s4GRrj%EKp0CBnx2UavL;Vb&iCeilqn0#J6W4xIM>b-hoJ4zxNNI(7~9 z(<4wdbEj{i;9GR7gtqX!`NNXw&phnxG%M(~d4a_rcvwN~X01bbO!)}p7UY+yFRB0C@Bta;<7eelQKjoB**^OZ3<&LJPli9%I`Xwj@MG z;58Ywun^VF-PHfCr0lcUFs-IkC>B{8Fsi@;o~=8bNiEgaK?M$~ke2eU{GBtBI^VJmAzTyk#I@`wS}mb50a|X@ z)k;LHv)Ex13DPN*?39T+7^;wT4X`OLC#D5W#FLd|2@$e0#vrwe8mIkRHiIWtn-wc~ zx%U~n_|Bqq@7u#E`Pb?KEcy3~kfmo}x2P!kA(H$ubI3LPuUnStRWwkJ^K=}jvN+Ci{aCq;->HX`_h_(nh$vWE+t5WksTlFQQ;gOX3 zigJvh25tQ>OW@qRroyD_NZe!>TOdUieO6%pA((Nvp@fN9U8GoWtSkPbxeKtN0I(WQ zt^)LLO-?$E6*%tJki!UCjmM8vh;&vo@EjW3BG8})jfCLCs<1$0935O^OTYGCGst%N z5`^H5V^VAaaIGv^$Jt=X0ZQKKsuSJ@gmqShAmf45TUW9BX$@6pZ zMBnak?ARJ*?LCI=F#ri=$?)M;<|RTR>e;fU*sd$G@#R-iiD z@=^KiC^o#f*E^{HNLq6l+*3ys*f2PXP;OdH(t;sboo6=3Ilbn_oee6ATT)QP`%z zZH%!#+(U$YL;x1MqErK@6^h-#92|Hcj%)i0e5V)vXD7ZJqYPN80{;mjkUlbp&?Wx+ z?sMVHLj1=khbP^Nn8fIsRj><5*t#^^iqxk2+5%#+M#JJFN`WX88Z+jN0`S*A|6oD`{E2{Dfs6;{ zn8)w<21B0akn69_B3O`TkDnFi*yC_@a7i8U2U$5yt})jCM7Lv$d&(~_I}ht|vb5Hd z^Eh+1DSpjG#Tfqz^=}87EU-gVD!{xy;}5E8;m{y5F$3*nsx_gb*8Ex%am8FxpmGsW ztYE4st!3QTP@NNb_qz_~;$)`;K}6VL>z_S{|E|^ELS(o3IzBU}tO%JVkD&OMA`*>Gyrgu8nIIyrEvMu8zHn54 zHx<|$aXf~Y$|#)e1ej^$w#^D^|Lbl5Yje7NYE2DL*BaDll3}`7M@DiMX=K<*(3XQ? zLU^W5&~Lr1AF{ZmJFr27;!Q-z05`=~KaNqTtrGq94rota2lU!4!ACvMeM?MIr~s!Q z*4jxNm80%&sF%8|Llme@FZTl!qYqI(@eXP2PNct!Zl|7Ngqg%4Z!q;JA2#AY;K`wP z>E@qDK5)POJZSMx4vW)N%Zt2xl8Ehi(%EQD*YVrOY>Gg0z5{{XT^7Yk zfF(BSqll@8-Ao5u^#J-ncK%2wiJGWtT-#0QW~w`{vVvH^cvTJcjUzg@bTPK()$Lg( zzxmn}(-ZbOJYQeU$t=)T0HQAss04WyXKQPWDGQsnP=bgau446avM1%;196kV{1mmlmnSy1t*8fS1@G`%GRonFc|fjKv>T8Y7dce4z5@_N}F{mkA@_Vb*@J+J$y6|K1x0NJwH&0d=??MDxEajT?MR#9r*HX)B zS4Zr+z3Gm*RP;0}^2z8m6^c+*p@F^bbOymP#SL`4^1pJ5?FJr6eG=|ZkhZInTFws3 zkxto=d2eOk_YIeS*>n%HY6vXTv}O8b-eh2 zuTi^Jje++l!O&UTJFwSjley%NsF;taAO*cvgzh)-h^MN0@R0SOzi7F)rabIfjH{X_ z8%JAFre3+%9X(9NX7@?2VgQV(bKZ{fr`8~w^BY#Bp|NSt&7wf6@N-0UgcsJb&g+LE zpI*o;u!RMcX6m@hutS93aB2~`N$= z=nd~K!i|9ti!F`V@D2}o8_a{UT=7^Yt?pjneHJ$d3Va8=Rp&Ajs zFS?(DURd`d->PdNS`o;`vZ@<@#2{Kgp0wXZ5hQA^unZH zpOC+Qg%qlve(VExfSSwlxJckx<}57VSsONHqbbzJ^2c5|P$qenss_sZ)!(H;q0zAW zQ=o}JXm`1JsTB_$xHC}f?_z<}-9W`LD#sr>!#i&eMd0uoCQWX%;pL^(qU^E`#$2+2 z^(#yH?$u{PVDV9OCX()2^`6iw?+rQFP?egEv4(z4$X3DGVDnnzX3g|ezRqi^ydgP&GG1lWs+007U?e9m3&_s zuc4Zk4{Lpb5kBrm%8b_sXd@Z$cliLy6WP!;667L~4g=2}ICf22W{Rzuk3zt^?0$l{ zGMbepB5Bs-pr{&;h1sOJ()a=_S(eX2r-lWj7rqV_eFLEi?^|4 zG~U=st+R<|VqTB^!w~7##HmU;hv1z@hi7xoPikDg59va1zc#w7JN5){JPxOhI8nIt zUDmdr>Int*gv_yAj+f+4*emUg^L8@mr*OTMQ(|ylj~02RNCJTR?M}K1QXI8;omxqB z)76XHM2^3m9X10m#=GmOTT=tLYXnr@B_mCZs|KB}6_8)Iwr(_%ze@lBM$=I-CsJwc zxKl6pNzft7B+^=wZCc+M9w46*AUOQ=NDFbwJtdlJez$M@b!FTIj1?m#1q|EDoTjA=>|8loa@t_1OTjtTUCCe6%U%Nv=(G0Z=Rw4yGWDZuDPw zFY95LfP546evo4LG$#MMms1{y>!UjRMsd|zMA0uRYuNuBD;+4c7ju1=2R6?sqgcB# zkSOxjwq-2EPgAN$Ws2qdcKu=51L7S%ab0U!DGK(RD@ue(9Z!+FL&{}fDHrZP#Tsk- z%W3kcedY_K?=3iuR=KHmSx63dpvt0CIk6XaaL+v{ZnyOvmqNi3-MUkbOr`_DMS0w` zN=gUPRxGb;fU8k7Q6#Ogid#<^bEnG$FgxW91VOz+#4)9B_>LzfitQi2L7SbFsw;bY z>xV{@m5Zw2x?c{HFE!e8^V~kZcmlWd>-EwRW=!uHpmWf)(hPDae)pkOS}Xd5CtW&^ zfoc5;4}{dz<#1ky`jJ4|2?(FM@=GSa0JcklV0~-0=?e-?e^@`)jh-FAAxBPlCd0k{ z0-LI8sw<@r;sZ4Rk}3|`1{UBl?6=7YqE;m_>R4R$rhx)UxM)Cn995fwk8>dB;Z@_p zCmC69fFLEf_H}1Jn6eyfGe*rVBlZl4-1POQ=T)|A>D z4wsS?#qgZ=zDtuG)l4>K3cd6qm99&@dor0j%~qBh?Qa6YU{&FY2}psgnKU}V@e7Z} z!07S3P!+{^_DFi26R&6EqXo1zmxQXw;fB@kNBGAp?MScOO0fz6D#Ok8#TQim0g7X` z{eJi82QR>5QRrf;w|>GBzVeo1a{5MTdB-thP!DkMKiKz1=u0;`Xv_+1Z``{QWfq5UE(A{5^4Y9_>)|XR`LP6ax3z zC&WjN;P>byImzHDrg4CawC{$+gSeIUf|iS&)Kp7KDP*t~UrIMJ{eGt92DMT2U*;4V zE!R#cL6jw7J; zGc>cGEJglQ4QXTTubawIX6C-?&v7XXi>fK3RPvKHN5|yp+5ck!TvCBCG{o}nz4CIU ziBw8?)WiqCwr;w(jjC(37&u0}>QZI!dSDJb9AYgGzB=K(%re1Zo1f?2qi2A9EW8Rn zd6)#APEF`7ajn6}E zrsZ5j3m5=x61WfULEnO-TRc`rYhQo2o4m>w#F&$9`AtQGy zr1~himyG2+`X26>$@Wvu_{sLFc?^te*DniQ)y^BO?yy#jU?>k2poPP__vD z-~1a%yZ(7ecC<%+Nb?gb<|>95kq4Z#;&9{dz9Myfc~rLVp#l_B!2ADJ%sk@dl{5$dsi$Rb zR}t%%0^)r%^i5kU2Yh0H!@c*C-#!;V2hDW5w%SwW0ZX&GBU<`9G$K>K>b)d6~UaF<4&kq_{BP*(Q9#`Un=c!?Bj%Nh=vFViq}sA#!(F>P!^;j1Jk zGSQV+s_wWFE=@BCu<3#pn9+o6)29%g$HSN6zB$xj4`gbzlXo(Q#po(OTU+7RU32_? zr%pe;@CRf%#Dqrj#7{>n1oqjIDsc=!wD34WY;1?RQ#zkrFG#$)04lh5D1qnkUbD>y zr`+)Hxdq3Vpd<(74B@P6`*34ut5}wZ-&K`* zMUuV8U3^=z8D_%QVw9)~hR2;WRPbqbfSbD)^_e7AN=0o zbVf8$627`M;BZ2Y%6ShVg3Wq<(1!~^&*iNXr|t`7@d@7&s_KdyjV5s=v$Zav@F^D*+f%wBc(Ajs>q6IyO|EMl!Z0G?LTf30eU*X+=$?@-PPdQku$2RdO}F zIgyd|gAj@#%Y-LjXd3H!7f6)#D8S`i`*6$u^WCGJScZi8ZdGOengkn4R2=E>p&q@h<;;D5>4Yx0XF(AOP z8FFvkydXi$FD~zniP=>Ecqk@H_@*ErI(P-D9vufIKloFnL$#6*m@dkD+~CQ`n;5Oq z69JtslFNE^kay-V=~5*|p_=a+Z;>~@t?9nfQ|T~c#mtO>H)UuJr$jNScH=^npFR>4 zK`EQ;kEcw}O5bxkLkH7nL^OW7QD!V@8$A2q{8q|zzcH+jPGn#E02;sb=dPm$Hm zGspGK%MZ4QFv4$v*bQb1Z$7pVsf0_;>4do(qj>s4NzEl$&3`6han`|vV0 zk(Ff!*hy`jSoh@qO6F_pLrnd{;A%&JjoVVb=7fg=cMrshv+G*Xk08#Ovl#skwN5mq z->}6}E?{xU6%CVRqG5kb&|HEnf(3>qGrJSZXV{G>61d9BC(U6fioJ-X$^7^Pk;mdl zde6C+(TEt^jQ9oBzr=8l-B3N9CRM77xOVtINR-x8r`)|;rId02-@mp}vTfq&@kQ$4$wJ+dI0-sCd&PG;KU1_Me1-3V z&0{#)^$p7_!v}TQ~ z#EIYATLa3~nPzGO!tyUq& z1G(KFw&43ol44MYjizApvkwrRfmny{LAb=(nOp_h#JvTdlT+CAXYL#kO`j|d8TZ5R z*$HT_WJ=LBv&Jw1!H$J1pP?Hmiw^&u0j_)V_T^`7{{72QB>R+Vcf{;ar>7#vf7U}Q ztlm3VIW-h)mzSSKLi+3YNe4w78;S>lr$Iw0vxdHmf)y=dsmPxCAP$6ao31kfH-UIU z)Aw;9>`_fg(MhHf&0omApMc}bf8hJOA&k0jeZ3?ezx%@UsSpK=ubdUUM1hp3$lXP~ zlbWElRr{xUTebL_)1rth$Nk;B?fw~hGSS$+%6tj(n;$Kn5ttg6Yxu9Ok}SWf$lfP$gNP!4XiVG3u5{`>yl(t2nCHg}+M(mf5Qqw`LxY)}c*8@SoHjq02!IB*v^_xQ!-oR!B5!cR|zwFSm*AheJ0-uypBz;>r9(c8j47e zkc?b-<=*JwoWF}75MP-CA&Hl+bL+Qtp3L(oyFuzM#xma5HfH^|f~i0(96I{86Qz5< zu{wYb{XzS4Kf6=o|0OnZwP*V7zGw3tIGj0oGt~LRd>qB^Yl?)pQ2^!Duz#!V{ym!j z*K!Wz*8rYcCW=B-0(>1UMG42Kbv9R{lW$311_@n-6ZHe!-Neo`C2R=@Hay2Oo{XpX zyWazHKQR&Ayl0~9XG45!HmOU0&nhvUcP_k%+^>C^!2Y%d1BFtGABDnmj1E7Lo?wa2 zfhEi~ozbAL&6c)W@)FFP9!wb1d9R?OZIC(6joxD|Y&J-NMDF|>Tz7maujZ4^>ZTNr zDPe1LBvX-<`_E4yljTQ_F*~yWZ?m+M86+(}bT`U9!TzcgHHBNWxGyXZG-L8VpL=Fv-mnd4AhYpbvZiGKHJ^HZYJdcgDm3J4{)@})!S{F##%p%*_3eV{ zMvXfHlUeOgWP3Ym$mkLdel4VUDDomJ4vKh4d%L&;ZPHfK*P_$)f0M0ui%)ysjgz>B zWmgujE_hHAIJ~;-ODXrBcyq31n<5=Ix`drZgJCx2FP_zH$cwYU+OZbjDEa&T#H9Of zTExvsd1z0c=OuQ)>3{M~A$)x~CtKs2Tzo{Bx7ulxo&6js3tN?QMBKpZs<9WnfoJnY z`=EdEh5ZkqF#E(C%U14v{Y*{Q_4r2l1D<~N(?C)>ea;DQZalpNZhVcy3!~ZXZ4cW7 zqYL}gKX4$4!QT?jiP@Wkh)~gZqWR*pUldKjbJstAXKq3%alNJs#w=}G%*DvFv)4a` z-nW14a2aKLxI4rD!=TQO;8j+-@wBXiY!FY9B4TlvMoX70yE4BANCmGfg$8B99L~p+ zXroq#lWU%AEOZl!vxB#ENwc1VxdXU5bOp9wFUiS-reA9!Q9Y~=)3!Vf8N9XVFv?E? z@my^_SN~;FBz$tbeGssxbg>vduI3}2?Xa5eqHZj|t|*SpRLzI#F?lWyjSV1+v^q@N zBkn4r^}*)ZWkGG{D>gCJ*Ro^a_dLrSvnzO_MbX;bv^TpOOOEfVXhsJG?2nY|aLHK0 zE2>=w?}yOy2TtWTJo!%wN^_(iL)EMq+_P9QPI^)>=~u+Nk6V-H(O-m z6mu=0VFH%NnqgDSvWts_JFREV&CNDNat`OQvC}^(brwivI?$3Q2O-Uhb3k&uxVYD)kpTb0cgf2q5630NEWW~H{)l?y zH>Wqs^f#~WHgY z>d$M^dT$dUipNt7qNlsAl&Z*el{d(K8a??+)Qj6&$=UUb&ty5) z&+0e6EjR7;iu*JwPH(KApNQx|nCS@(Q$*&L`|Gfa450#W&6w{jRoKTt(@8w1Q(4aK z_~o!I9!Jk4;i^Q*oW?W1uQ6ipyjE=%FT!-M(EPWXn@6FL^~TgUXXCwLoG(1s69rF; zbOkqu=JbN{)YJ}^kIF^t)|uEoTV<5b`wh*2lMHO1p4rr{V!XOIodWJ)lr;- zz+I2IXAxS&D$eb69wBSUIjFv$Gprer)pbnUa6~>A%qP4sM`xJhvkLzb|7r5=$q;J`5|g%QhBrstmiEw!xq z>h3%uLkEpXpYU;}-oVH^pXBU4Vy*P z=<3;~Gh55NDekp~L-`0)Umrv*vC{ly2HUE~?6|G6fZv*_38ZW)AD^7>&^9%OdNPnr zh^<=;f2M^;%yl>xdLse<0OfHnD!gdKG2U!6bt$NtRNVv((C(mex`JZr)vW|AbnWwkJqYvb)w>k3~s3)E@iS=)q|#6;Xfd6wXo{6__yT>Z0Gd3yq_mVyX@s zTlQ$n+{|W$3b57ueE)}S47<^yqE4@jk>S8x>}5nh_Sky*qxv% zih1ChH=cthfGV2O&k0*@mXz}r57%NCSXr7x?&oqIz#S|g)v7fI7x60r7j`zVNgqRe zJtH!Kp$VnvUOJHuKi#97Cf!-p%mVE@HTquDQum#VP(p8g^gBcN?OEn54kz&F-C22E z*V{2$QntHiThziXo0va{aNqCyXD7Q}P7Ka$&fwU@Di~^ql&&n&sQ5hPf#4suUH>5s zB~F0}AD<~AiMnAlQ=dDQEC$wI+h@{;n?C?*gi(em8s2TG9_`F!ZaKuzLfOdSaGuPp zW`=wfJjg(a2qqTCq`~M2MZWeuDVWoob#k(=Vabmi)V%>s7m?zoE6? zL7&W7bC-#YJ>`(=Kfvr1Vdf}Nr=@I-QQg%Ld<7dVtvwqNXc?gjX z)3SS=uf0N$T>T5J;gnnbm34MYriM~&%T8w=_P;wWaTRx5H5D~i;i&QEfnAr9x zA|UekC-+s3KQ`l<$bLalB&g6wWGL_dy5t2H<9?gX)r&oDzr}*%)Vuf7O_*(;0&0gF6 z{&9tmE>=B0i4mX6tFYVy>JYlb2N5j}|04IQd`wbA;&C;s*GkLF$IRa0(NmEK!ko=o z-=~jjKca-{RheoQX9Qay<6W^)<)5+WcIsSCR!e?I#@}wzP0UeDU(J}nks0aa$ql|E zroj6-n}1|VgA!~Kg*gYI8rmZ3sOA?JYU}l@9)`h2e11;wX%RoDEOi?GdKq(^vj((M1dBG>Q#w$w(DuPP z&AfN%3!hYmtB1~2>E)zCtgN60Jqzus!SSM}dd!5<0x1N<$We#{O!;Bf?h%7KYjNJ9 z)a5MPVY6&X^rCUbD?B?quf)P_n~Xo*34thgv1&aiqhz9LBp=jAtvwbDt-cs*@O9*< zV-gI?zCEz9QNFz3FLF9NAc-%jW-#O>P2R~{8+^yOV?L=x-;lr5l|-ic$CiI67Kk^UTC{NRE(RNQq%WJ(9))qVvr(W2-Jo>* z^2)W=S@)c3Bq=*I#w z_xWRDN=m_<6IXzum>h5Xb|$vNlVICc&-X#a$)SADDv=&SKd5E$ESkjO={Tm13%0C| z>rNe4SMZ(rQGcxieLq9;Z=u<*6Ei&ii+o8qL*Ji3E!k17T#5!be^Imb7j zoJH?Y#|(bcCml(XTRLacGDi+p|3C=OP&J0JXnOym4?AFs-1zyeB*de3(tJ%=$CCsl z>HmO&a*IapkNEO|6Qswu*d3a~vnu;meV%5KR|J?2({LQyF-GA5{H3dfHE)Xn28&Pa zNMS1nM=fI8(BFMj%0`4_4Lhq9k+~nsUA(Q-t^z$OEi~rZct}xl=_l) z*YOKw4YJ3ve9uf>Nw1)0!6yET`J+{*;~*l%3OR&lw?6Jso5qerGkYSB(YxQNC?Qgw zB7-rGjHK8UHo+j4Lwm>Nb;A{GO>g?shC(4MZG#p&djZyIz6{} z-kAgASH+jtz;lookb_hJtbRotIc_9-pjS9z~<>owWFnisd3 zClf)SuNg0^?x$|FFUHP_M$8w-m*b`TMjnQ&S=&R9I` z<|rf8m5VhP)vL&?H?>xFMDSM{+wEbgwGYC3s+6r?3vC6Pw(9b#lKl9ZRat(pfX_Pz z@7TR#V7r{K6?uI0-D5vnsnz2wJSSKE&W?bHU^B-Bg9&L2iAlPO!iyeQw4u&PlcwiE zfr@tw$?16HRZ2W#%(Kp*8XN5#t72E44fsl(n~%8tLq!*&@7ttI0v5Un32oi5jC(5g zx~r91$3Ly@v48EFJIh*^Dxa{XVc{K889}DF{Tc7#mvOvesg^9SdLA~szvEUkJKdC{ zB=j1e>1$>*{hNT`UI9R)&`qTpcQ@lo3)F&Vi`S#_CJ?flu%p@CXUYMd!?{rhp? z@VG~%HN41jW0IY}Tn!TLM|0^XwMYWq9;}NkO!kG~$|q*9S+dM_VeM$1*C3^>+0)?F zB9aS34nO)2WR`)Yd?5+8wr5!x;=63LYn79%V{zeT!T$|h!3btV!wfmdQ&wfX|I3$m zp_*}kvT`1!iXbLy&NFaEEI3r%A!jBKnB!F)38|kHe&h(-YQ|;Ofb3QSN}TEQY@HM9 zM1k?RQVzbbX5MTGI;XSvxnAjOClX>29Yq%wuRS4Ds-lIBzj!-=|9-B$TJOt4RVZIw%OU3Pq_6FelN$0+?1 zU2`?s6xpjsVXF8z)=IN}8b*cl#B{;H7lkCVmn}5Tz5lR2z!C>tbZH~fT+~zl{xum{ z+_GO9#Aa~{6ZTY-_nyVE=5G&sABm-ry;W=Sk5?i28f|!*%K6-IFdolLMcuaE7PI02 z-U)xN{*ZFSw43b)Q4A$8q|u5$ZyuGOnW-k`k1#;`r*bce5d3EH%maiqB_epmLcRkr z&+4u0;^(@TPjcy(EJNhrVTgkDH#c^(KutIU~jgn1`ni3L|;rW_d@J_{9KcA0m^r3=U zOpR{F@I=u+m1W)q8!kS1Ec`=}(uH1+B+fCuk5~7QAUrOEo8uIHUZJ9)v&chz7iTDM zh4(9#oCg_3{f`PX4|7M1;*d)0PD^P!A205VI3dpB4u>t_2SYjZn4BJi%2ZrAS~0B) zIIF=9K915t-ug<5$nmG?uFXqj!VUl;(y5+b4{9@0UD*)iQ92^`HiQrv^hPlpsqJjV zK_#ezi#OBDj3+PR+X&WM*hNvz<7Z+eeflSb`acfxSI+0!MlL=#>t77hsbob}>q)ET z_t;HuGPeYq*BUt+OR_NZnWikp9I9FfWj|p~!Jyzo&W5b)Fp^$~9U;Wxh(0f?V~v>>iZ)waFC0NpK{Snaet z(}lTc+yxWV8L=7Mz;nXosL0a3T{SfGn|j3;3ax!zE6tvZ*GbNphu#`>UGx%GgppYc zWWx%guBMeFCfQ2ozsGWv`|$MGSk4#!K%W3J8C-heLpkD=m2uibXsd6)}66a^vU|#W*g@oHZrR?P(v(q;a0r8}V-y-h^ zn;5yR0^??N#QYo{`*6{oH`tbMneeYLdfpHMnxqq^2-#p2I^;b&MW<>mzfBsl^ zgcJE%gzlXXX6hO6@POSpk>0gA*Vii}%im{Ey{?w_;Z+~!*yIf}Y<%k+PRNl35 zjavO=c76NnfOrOW2Q96hOa}u(Cy}%>^hjWQIh(`eGrWb)MR1lG+PM>+n;3cE*ah>{ z+|y?0$Pr17Pv?yItX!!qtC8?RPcIPdy@_yv#g@a?)l>L6la_UYR_Xff3ZAc zic27aZlq`j+QYA%5RikcWB+Bkx7sSewIlwdNamBaU~Rp7Q**t(3q3ti^VGXdWgk0& zXsX$aN!cq33kDmF(`KbU)Q0$^5x@OHifMR(i zx}#ey+wCpW774{ncuG&S@3bmmVO|g%c$CFj@SsMDwC5YIMu(QGdvkG^3teWW?&q&U zD!XR6j=TYBI6W*6`tyg+ycHcS^X_>$oYg!O^!Pl5#vn~}!mNInrmJUKtx=ey*p?-0 zQa8Nx%R{4gW|o7Fy4nIe0eTihR#VPdBoVxJC*77m7x)tgGJFoHq#SrAYU@8fT=x>q zbf`Tk;oQ1Zr`R|?XtKI`zfgY5TKqCr5w4l|BD)3!ZXSH;RlXtFdWJiLV?{4L>7!z@ z@5U2>V-i^EP&S>@l35ov(Xmsy6`E~A37eg|EUJpuKHBBiZi%0(J1yN8X+iw*_na#Q zsLGJ>AKWb+lT6{|Z>=>bmPfVJ5pDOZEr3ehuLd7ji%0Z941L7LGeK}W6 z_}OcfLk`l6ii-HQY~ROzU1Nb2;AY1e?F*W zyO^ev_;lC@~)~=!%WE`XL%(B=lofK6z_*#0X)* zTwloKI~3;wOS2}`6WCFftn<|EKD~&s?VQuA_Dt8kdtriA<=9l%xBa9wjJ5B;A}6J= z%Vqlq5aX$VBkIkiGi1ozg8#?8HBSFJe~H&8Dy_`}Bc+?X2Fc(q_7w(tvTa%A95;3| zW0UWZvq(II_hkf#wk_=~K0@d&_y>PO#G_=>2G7TI-RR?#yp?t?o3cMYap=Ts?!S7s zIG%RnZiFwC*m_v zsUpnRP=XVCkc|SYU8TuBJWIHV$4LR)!CLiv=zT=}o-J}16Ka?2(>-^RVcY*CRB7hI zP%k0Xpv2;!&(x++Ar|^{YGiOYc)!%S_oNX$?zZC+yhbkxGGc=7d{17`*2KSmO-HW- z7WAuv^PkUXxZQjsc`GeA#=NrFnPzd?#*^~FVryqK4UN9|)^tJagGXzz6oeb`B&4g~ z_BUNv^OgH3DL(cC@Sf%S_nWNWDQ{8Adl_O!9Lo}B-UpB8O9du%8-<3wup3W@GQ}+MaZ)nXvqNP6;V_f=0QsCBtzVVD6%7R! z<(esic3R$D4bK*QY}gCyqww#()9P%l5X3}P48a4|;FYfRojgFS2OIHyHOJ8Vt6IK1 z+wMmWhrWp~h@x=<=R0b{344$(%|L8sGg|*X$P1>>?_L7D6Y(slPPztaS}xWioG{t+ z_K9Uu4iG=?B6aSSpTqY+qmS`36}T&f{YG^=Ja(K+a&Fl3+#ra?S@zeWrO(PNPx?T0 zFL7#WtbOt$^v3=}c?MAB&2LbJL{Gb|=LP#^QdXX<_jLND=A?-7!orQ^fDQ-mQx@9% z)arqN0X0_gO!YxAL&rQF0raJ+w>pP|?ed*(zzcxzl%yBz2}37~Ugwz0)Y!M|RAv;z zg0C!Wjfn_Pyo>}9{N;}VqL$;7R@#fvqkl>Nd?*qJT)ySjx01b-vwqq*)oeX&T{5sY zZcju#nX&F->CP&L6fM0vvtTtx{y^qwus}h*_r|8_Pm=C^AL(Vy30u|3EpkXn#nmIy_`Rf05a%`gu}9w zr~SrK=g)mQ%`LlaPSpXg)UBl62lO(|bQSC-jQh}8CGJ0E13UR@?Z2j~4g7{>0VZJ% zQb7+zS|a>W6jzeqOzGO4nuqH*=cL=0zCjt7-w793ZlYmzGh`PL0k=Q89g$3s^ZGUZ zAxxl?cDw>YQZFDRl{LIxc)DCNd*F4nyQ>Z2drwT*<|^dU=}o_Gg?magwEZ=Xt+vHw zqtaMVFYH5~v6nn(iA12uZ_fcBbJ2}vsjG!gYox;`J*=})LZ`*5zHzo%ovyho04f+| zS%4U-^HpB#ZEp(KTugPrOd0jiGlGW6@Z@-iKY^IymBgeiqpP^Yj&L2u z1qzg(doymhK=U=p;R#L1z5s>~JZ6@|gk==V9koh?So~8$F;GnE!C%Ao{%zC~G#XZC z?YccZ%VuKWR}pX*mvYBvND@M?*lVA%c(4InEdf2fPiUK1CLZPKYc`d*aJb*fCli5i z^GF0Qr>SDlqX9Z>()7*b_g6Or^(3 zZ1FH$ab|9Cgw{?9&kol7glk~e8^%I0cgtMCdSe8#^(t{^s(>x#cTf!1`-0AZJrr!T zEO~+CdkHDV!^zb!Y5!HsG`m}$S&%o zrvcZQ{Ki@;!xH+NsTy*SXJ{8jVtq6qj9XZRD%|1|bP(EzjQnns7JA<#?z7=oXwimY z*2-M{3u@O_%>9oQbFIKY-i!5W;^R<1669-a@$#Q&GC4tb-IC(!9>Ft$D=KLuSR7Jl zTF^VC=NZNINL6$1^|>=vbV@9bGA%%q?w6_0Uv&D+eez27+t1FP=wEPpZ59>e_*7Wj z6#u)3dn3hicA1pE9d+muUJQ1vVUbSThWEiQ2V(2r;G?AJXq6nurl-v9{c2zGI8Oyp zhmIc7SKqwU{^F&tTCSmB65^&Rm!HrSd9LcflCM!(wHDzAj(C)^8N}I2frie+Qgq3f{~aay`Gl z{hkkDV32-GjJL{LHDyxx`vg$g;EAr`u_g0A84Tv!9tr`f3HjZN=nmI+fa|c$BGnR9 zXFm|L@xcFZ*zY!syd?rZ-3bG`xGVLXHL-ZlpxilxKEm3x`yO>4Jp8^H z_;nbZKhpp*Gw+MXWWAt`savC66ubz2#Ngxr-AZ`vH?x~B$OIpHb*nQ3U;1FA%?bTu zLcA5wWv?04F{i5aPwb8^FBA9`4o-AOSz&$6SN9#8*iyi3oLl^Fjwqh&elr9WoO;ZN82PtX^+zSafq_ZzSpMnkUVMY^&mA*7_1v7Ou4|@xT_sv| zMKQqDvhu9cnfMXUV%2Xv`|r7}F(dRTe(2o=wz%2V!E(!6~xs&g~GSNvF} zi{DIyTM{=;?5}qAO|EM^KI2p=7%S((h!iW*>}d4XcyXHN*Nu)dhX!tiNCi&~oXgX8 zb|8Af;|xLXfAV5ZZ%q+&`OVR{oca6BLHr`0Iwmu0iS*&UxNZ;q&ySZrkfqxgt(m&hcMDv=}o5eiKeT)I#rm*Ur( zg)S%MmQXn_L)FBj_H`PxzxlVkXO|GW^(Hm_A|>vf%ce;$pCx-GR)bebJ`;bt0)*a& zK|uMoL6eHnmk6KfiC;pnD%AirbPCIp4_6oDGZf&Ye>V`iwR3VzocAJX1u;M24x?U9 z$H!VFN-4HU1f)x}f~uOaiIG+ZKya}+M9$;03VM4Ran|j7r*da`JBO2JId}it4&okY zC;8PsxZR5_M{iQz`^&V1`%=ADfKZ*+9H;(njNo;kr0+P3m?CC%Zg@FGQ~=^W#2Xt^ zN;c-dTMpfs$g$Uh7_TBp$d(W720r*+HXI&A_~2{5gix93w`FviJN94tq>)%h=pcLd zYTqJpL$NBY%O=};ICU*V(Dkp&kJl=L7%MNg$JTME3a7YfR))u^OS^LpT_@Vz{afze1fyAgW=O$5H0F4cXoL{B`B68E z)7RxtoS9>o%4MI$DeK*pVarm!hEGbL-M`gr3V|S2wtpZ>-TOTa1 zYb`C58XacOxHE068mtA0wY-R9_tLaLYqr1Tr4bms*-P)&Zw=?9dUG%-1SX-Zw5j*f z+`XG%_eq?kr-}5`Yxx`-(?)-PFlE*MZqyA!YrDUt>!sMONG0|NC~ASraj5b5cjPqi zJ#6vy)P?5!YU4;2niYMI?k-86AN$)@^~ji8{&%ph0Uz)D#vjegqrXO99G8q1)fVub zyI}q(=2MTCWiE49u9DNdWtCrc&K-W#(ipkvA8!`xI{!zPf%m_(WwgSW%}|o%XaJ*b z18Obo0VYoQ9tO2sa70bBu>1T?jxYWFi}JWAuI>yOIKQ-C{2vl+>xFm`{-%72*#D{6#Rw`EffR(=$}T&8 z^`|r8Tv|cwRMvZG#tz7!bMIHvkUZ^6*D=!Q`gp;KyWQ8O>hEj8$M4A^S&xg3*R@)f zZ0U2yY_d=+@7XYoT6Em~GR7Tavgu{B{Ei*WqDllV*#!S8Lv++h9fkyevkbjK_x~2$NBs2aJrR3GOZs(5c zYWVo9=9V}1Rk~PH63@u0v3M)W?v(&dYYAr}jOc~^wJGR|-k(85(&o@O<%SlERx4oH zB%%l?H{NbG7}$7`TOpy?2OqV63~xdm-pNR+&@zDzJ6tC^rLFv+Fn?)D6hZ> zlq=F?-a2nKizUIFs?^pnp6>b}jTImV`R^V!a|9J1XLWSy867)~UZT}q7g!9sfkTQF z2I=BN!@G?jhgR~OL-s2a9diFI2z*SO=Zw!d${@(VbMF_Za7P}5&ig`CKLAMt3&xZ) zOaH59%7Kvhr^+euwrsb4_7~G~9F2owb}3z|O}uXC5Gg^lRB2tuEdMtF?@=E<-dPcB zA9IT4yG+EsnHEgh zxgXG9q;$-+QXyKGksd4VS5*inbVm-mBaK zZobgC|CuYDyO=nG*dlvG{a%$$>(4>oyz8DDwJeDl79sz;g#a6($k|? zm2!#-l?o>I?`djW4C}jz=gT$cISea{gFWT~(BjxaqP8EM{ zd*Lw!09ht+x)Q_Ou~b#B%s}ZMI}SiL$hUVVx?wncMb9i_di#wae;pUrkLmaI4nN3;*!>__1=N9+~~m>c7!uw0f^Z zD<#cOxjxz&7us8&1zcztVK4OAXj*@{(1FdCYJ5CxH!RaWyPDV7gM4g`2H4J=whlzI zkZ=CT-bIjSz-+ymKP#&%a<+Ud`X(;LCgSa$k$D&^i;4Mv{6jFX_r|HIH*}AdQ32z` zK@qc01!W*_j4HeABa)5!VF2@lpq)biWJtQEF%D+8GXdKs9~MzVr1w;4vew>8|F@od z!by33d|V0kR^AME`DTw)6=m+%wLbTEIgd^Dvdx<=)^F-VH8P) ze-k=bM}c_r0jZvD2f^yNM>8V@?GEX)cYSQx^!Zv+*l2A*eB}d=qWpN6b}K9Ul2V+xIl+;~gvY?J@F$0bjxWPbi8&7+S2E)ciJLpE_c`5pO@V!FA zS!X#Z-uR`k90XT_rk+DRMKq(z$0=gHyyB$`0ewfexeRbmNTMQ=zcrz?`_9iNb>>J; z0yw?W88gTu)~&z|mVui5w^fW2Myr?E(>k?g<6yO=yI{tQ&Yl|ls`ks@l;|~Mhd{Fp zs1Ty&ne#!IknF>UY)C&6kH_b;7d_=%q&HJALy;tTV&C*x#4T*-4IDBLX$Dm!;_eu=cpO0YJW zXQR9X+W+6SFm}PX?|YP5T#&SY1Vt|_Z41q=ZrJ_fBpgP76@y}ll(&;n@#r}&VOA!a z>h=0_yiuZ@V#_QTEz-bqb`&7TRnhiwLzfj8x&Ld^8MMj147}{QhEOd9K&(nxveoyK zkC~%)~X|1&tqxRF#1WdU{AtVfWmnsCl>YUbgg3)(TmlXQ1-Rv_M}tdnBKrE`M1^g4qz%>L$SS+u240t;b8O;-~*H0JVbqVtGY$I zDhQo7+UNrTi5qjVS7SRPP_~Fmw+h`N%^p~$a@$pBp5ZNaKGD+FnbC225J+4%%SoeA z#2c>ks=5r&4gSvbb6Vh38KC{w98Vt?*>g1a=Gkc3#@F4J`&UX3T#{-boOK7=x$Qp4 z)_jJ0i-=cR70`LKbRthW6K>3@)cdw zYjK7z3XKsbxSAI8^<8MxVC7ePj$?si%Vp-G@f@+@#q6iJcUPuz0pc1oasEc=6C-{g znJ?=rvyMy=z$MO!VvF-TakCY-icbO)+%_>S)QqOJ*kKblG7Dmt->-rhD# z9Zg~9{~_Q)eAt)z6K$F0pp;Zmc^;nvywL02|08Jma#*GJUoHSe!^K`MWt>HRbLn0> z2_5zQlx#KC{pNLOoM??rIOhPz;PpI(`jv0W{*b7jbs~Y!Aqz?fwQvver&X(bBs~Z`>ca4L}@VeRL2Orm|+jf7v^B+Z7 zUQ^5*Za?nI(R$X#OMoN)N7%5zs<>iO0PPS(swhjOV_Vn9&--xU&Yfo|7&1^}flTF* zRxu^@!G1yx*iktmYa}fr?`}!Nm?norV(?k9VrJ?MYQnt* zbCtQQ0(v0Mc+T*=x=!28%Ib2L$6j33m0zrVtt^wdE?Pv1oqKaYiliK*G~YIR?RAhV zIBQG&XZLpbhMzUr<%aHkYHJf*Ul0Pr`w_S6L8>b~g?tB&U;q>3J-WeXfV=)1&mFhZ)6(Z8fhxyH6!Jp<-8Xoq zSu`5N$TSIb2(wQJI=3)C8TQoNGP3(uH%I9y&?@N3D>&R0U8Ay^+|-cM|E_2eZVJ#B zV<_M@VO!?#SsX&1EQjNYp`oqiEr%q;RM2P9e#%+l!%ZiA?7bIHvpCi8`OuzNX0BDx zpB0j`KPy&ev^$mxUwl+0zo~h@eYJU|G z(X)v$qssVY6um%M*?+qW=;niUk?S>UfhVULQBVn@0P(bZG&cf(bOay_+~+JS|599m zIyz8qf7phG1 z$)_movaj7Vf9>3`ym98Bte8Z;u42&j=B5L_p9>n8ViNRMK)Wrb=%hG`;zwLLy9!D- z$kvju+~xYT!xO>l={cxaI+91#)lxVm!wFG!~ zFj^_eTA`_?mKGF6`8SdY%ksKt)6{?4etsY8DdzRVkww7FDyY#hB*}=pQ)lagm&n!5 z`G?FOQK^R<`WfmMsqRRxTxq`$YteWY0AB3Z9l{Eib)>7JTsFFEhU zk^Cnd@O+h)dcCaW>;`U@4;ZbUW1z$O5+$fTF_62xnz#~Px$y9^IOwwixyzO-TQsg% zmZ0;|C7|4LkH@-{U)kStO0ke7!`$pP_cI!i?n|9l>ObF?lDKmiero@7cC@kLH-i@} z`&LOomIp3H1T6C_OWV)~mbSeQ+-26^i?dZLV+$aJn19T{`+AoF)go??-em&GI5Lxku2a^ZWoWIWsMVj^Rpcdv{98@zo=UW+^wIC@{k ztRq70nWvL@Cs$_EyFDAy0~|r(;GcOXSzN92InBCVmfRkVtKU6Z=l=PPVIjTG1mQ?Y zKq3p?p?#6Ry=3WFkbSg8%1oFS@ZCNowtM}L+RvFK>GkrHBTsM`PJ?7M`{EkjeSD@u zGL(ka$OvLg9K;9RB5$BaGLT@?c>0{`PmQ)o$|Is8IZUQPg2;KVXr(7j(P9EHA7ui& zDQENKQ#T0NGXjCUNtwfK8X?{}aPDO-#dAA^=iDlrlyXU_;^qmDivpw=uvv}?ux1E`My~sI`uSrZ z3nM>$$K`7E%$&$<<3-S?!RLGkk5q%TQT6DWS*^s+QHSw$O$M*#VH?E6o6`_c2&2wj}?cP6?B%~Ey5`BL3LNa zd%SnWLQDVCV`sI&AKWIWU}rQ`DmlC8zaFbQo$h*hOD^D{UJv@+FL^TxSQ)Mb7sDsB z0Nx6KYSK&qym~cybVi;PjE5vOcrBgW*(`j_M0O=SbP@$20o^9y?6n6PU1Ns0W~=GuPwwd-I3&+ zd)JOarE=cumCRb`UkxZz?s+q#_6_TZ>! zZ^=X7W}DA+m%Fe*5yI;|jXw8kK~=}UHl4v&WoG%ofsQsuw-C*L1_*%$+iy=d^^sk! zsTk(kP&Qojup_G&39tmvfb-+2;V~jRFzS>Y*RxH>Ef#$NE;=@tG=#{^k%Qfkux`Ki zQ_(^-I%c&xg6#?4JxEIB=8}(uvNj0pttdjv8rYPZwrNWPQ7nU^S{MFI?)si)UXvH9 zb(C954r(4B8Q(@GT-%FCkNU(PS$~aGl&WmdoxJ2N!3pGHqtxEl3{wt0 zguN~{hRC(n-X*tsI<9Lm``x>0Gw|kmpf9P1(!@T3Jc{RZa>ZM*YaEN^N8D=wmqgT{ zNN57Z(_Rw-&ZI^{n!g`!w=p4|pq^&w>e^z7FT%q*kkJAJM>@U0eOrr3Dc{JhwYRh; z;;;5-&yyhkX87isHFllT+#Vp1u17fkm8U@&Ibc&<7tq0&1MGXv3v_M@Li7@U)TU|| zoj(K1iCyW?oPC}lu~S|_8q!7(bMoyLykkJb(@PSaBS#5!QPC_$qog;tlj#C$ z=gH+ORD5&8fao+)7x}r;)yWt7)M&P|8WVdO z90&RVuYQ}>P>s2F_N>3}k!#GYE}J&5*?(H@5tN$I@Z$U?Sv9w6iT13Lnp&7Ksg z0f%R&C_J1+`=j`d)NFT}3^E5Py&}?U+I*f;R;S;7U-;=?VPV=PELRk3-SfG7HvOH$ z&&kFl9i2ERrjwEp)TcP?HFTP)lFM4u$hkO;NoX?ojMC?%%gXQTK-CM`|GbxymdB(i z_|gwe6)Nqj4U1^sAj;aK)*dTxX!*_?>u8R=nVOP*aVsQfwps0IAF^00cVK31Ym-=Q z-MY-sS)mY0qB4*SQicHg_VX+rZlgss*LLC{vCIbqKrRYar=PF~&iT*R_h7Arwhcb7 zLFXjJXMIwFW_R;Qceb5$K+H1RSfcz7_P{gg6-uL$0bw|k77WR@)C(n?gBOo6QC9#4 zqCPR{jhAYpHf8puhkuRP>1S33Zdwi&A!L@yVomTpY7lMvJak>sZS}#?!(;|L(_Y-G z%N%j&Bx@{GHtzC;n|l{Jp6y`Bc|CpG-{m)KkH|r^1c#vJ3=qbaBT8&=yNxX#F$)r7 z%!GJdWdAO}w-jis`#qyiz@Gb6t^AxwHvb#JNNK}Se#j15KB;}Dr++?S)M72URcA9c z5jRq>t73|c?aTY?P4H1!$-sBVy~Bm2>@C9vzE|O46@UjtzA)R^e|6p;MKyp&wYoFk zDS0;zjc2+#&YCsJXYJ;Mt!!ev#LEjC6?kU#*XP-f5)axMt1uIj_>q=jG#3xfECVM3 z5Ubxes{-e2?mNF<6bT@AvX5y$ugFS(+UKJ5C*Q7{Th)cjN7(s2qR`L=qNX;k-#908 z-_~U$UbJECv{;5G;-H-C#$X}vxr2Z@XvTfvTIf|y6oIO{I6;(k5pAzAAME3;u$cvC{*C&;!rAo&ZG34 zk3)%Dg-O*6`RQ;l?Z)J{@A;fzvI=G4vI>_24@7O-FtJ?J7A1G~I)07Pik&x>RXq=N zF6GRS*X4Ct`?>BpRV=#d+IA!ro%2K`VD>7$Ak6$VWyG{);=5(R;WY6y%EMTTMiGBQ z>@Y=F0bn8bcPmo!j|_w2?uRPA{h}z>J^#j>imf@hcgY37Clmb*zGXrT{fgg$%lE_^ z7NXTy(XdU%LbP4`mgr9WG1Su5n9SVPnkc5Vk6SbE`LNF2n-ZDo!)Z^R5}*?)KG%s9 zF$@WONN3Gt^Bq5Jpt~=P2PYfT zw+0*~@G&YGrP;`mln%ZbgROki_85FxVBZVhaKZPD58EZ9J{EJvlQBn!Ht8(_K5U9S;+w@nW?NKI9* z?aLYfiZkgn_COMFF>4IH-);47$2Wrbxt_lH68p>SZ+1;<)>Xr^DG|U-i-O+!(HSta zbKqI)yQiF9)F{9+_S-0${81U!Xcx-OGYgbOiKS+!#?e%dq?T zrZ~qqIqAg!B;+F_Td@W=yiU^`3$?CYHh73OSZ+`?Jp!!i@5hCspFU9#`vP$OxT8n_ zEQ^k!+irbAG(;gcdmvJ6lbjEu?54($q7D7LZB25Q5i1?i zgW$=}xHyACAO?8GHVqC{*Y*}C4NL~K(Z1+~Wm?NV%d@bgYA$}-Q7f$F>vd&n;^udh zFLkx4)^waW>_M^B)e}GSImJ>VXRGl$BD94%v36^%4IM}vB#l*^Mu>Z7S;N7^%nX$A4hiNjsZa;?J ztyBP?X>eNUptKzNAfmZthJ-tf4JSB*dsQ+kZd|@j{$@v6wY8nx_XjdXWNcS}f)9G${| z(cL`ve$VrM-v8Og&aQK=Z(ZkJ6{2Szt0XqD@bNd%ia4Xt^y;8F!z`77J&dUsj2tT% zde)mSUO-Jb+@q&VYd;$cyv;U<5vFJ>0JLCI&i;Y3u6P*oFgpK~lb>;5|L1)l!sdG` zu&%K2N_IFmZ7v)AY7FR=X&5)|Z*HHqKfP`-wI!NJe|<)g$w~YI79mtOeiPxLo|Iw& z(iX@fZ*x35cRrDG-Di(Z-e60^et9z=AII`cxJbj00zSSzl^u=JGLR9iT|FG#5 z8;AkZA)zW5YvSRm-|B-M2UPLWUS5COt*qIsW6Ul8V*3Nmy&h=$=Mu#qH3sS^38uo(1Kp~v~HT`Fa&uDv{X}?9jtKJ#; z8hV^7oZFrYrGqI%@iPpT{H9BYpumQcH2A1>anNK}o;Ppi*E-*O1kv{*gMTX^n%mUI zc+R75>J?sUts(JwP3kTt`xQ5AbwEkqSJ=ZwQKz1JS0IS0zPQJ--|Pv0M})F91%7=* zvEuqGILGVxt}U<8>Y1yk`2JrPQspwkNkG$lV!S;6UJpF&ykf7$xA%jAJ9H6TnW(96 zHFvZYU&O{os|l_|3HT&>=66Twb^AGpS<~Onn)S%ot=}E7tRGK<#l1tzSG|x&t>`n* zerjl`mQvK%!zI9jq$Gdb=c}Fab9K^`@?8RF%UGE;@D|(P>J9#DYer92RMJg2WMK}Q zmo$lQu=y)*d{d*#&U`1Ek+>jz2T?KN&@8MU86mo@abwi-kR9Br_zs>4)4E_Ad7@fI z{!l&^sAj_7cNsWH3^@wCcSaJ-pULI21CWKM6P-71pfF$=FAr_q?2dleN7TQ`cfpj} z^lq|8iioHtaV$sqMoNMiXqqv!fX+t-|0JPlm3VmCO6g{Jm+}uMuVx39_48oTb1@@k zhi##*DZga8po%3WJ0TXi?)eKZ-th*K=UinJ!Y#~1awlic4AV>I7Kpz0_fldz=|4M(8g0(b$Vrj&*6`oV zKIlNgkf~e?%&bM_v{uDq2qL3QKn{AsB;koEFa@y&_&xjxSIkE5F_6X4==SF)T;P1> z!0G$rYq(5w(a7x~2GXh2vJch(X&_Uv)-ikbmLQXEQ2x+zdr z8{026*?j$~GAN`4{lf>;^E)jV>aE7CsAz9qaa|y`L)&7OzP7y>DB_cN8eyXlj!_gY zTaxAG2*p9P1Ldq)L0i5DS~PG4$?MHB;4R`*aXL??g3Fwpqkz*Bi8HGvQKC2~Oyz|J ztZa)@_G0Dg8ZA{yVulYHNjTJ8wdKh7TvkG}X3pX7mqy$c1{I)Zbzyw&B;#x5dc05E za*W5X`@D@U%nJVfrwhDUgl54 z*xb6}HrHlOCMTAg1ZFulB?@{?$JB9Q&sw?c8Ng$CJ`m8WM42~G6Stw!>JM+RO^TRd z16Cla_(Np+8hwm#5l)IP?V6>eOo7lYQ?_T%6gJ3h-jC<4;H>)3zx+HCcB-pxw?g?Y zClR@_0z3gKMEGQIq;*YwjfgF-FB%5HOwq2_I1Fo~?w2zKRcKpwz&bo(M@{md(s|*6 zAOpo53&swxX4%Qt1>lOX+T$b#ERx(yij_2vi*4YhF_E+T8}o3+ikwVZi{dP*iozu3 zg32W3ikzeiXq7)j+|baCN!;st6IIn26V5593wuB znNzNt?=4(6H(pPVTvZ}fAfEB;!fX*DklQik`P0nB^gE)hOU-We43|CHrzwkPrbWuG zLP#RR*%6)GY4(0%tp!1vFW{vNj5?n|_()9}`Gxg3x@~)Y5?&#EyG#M|O*lAlIi!Ho z6grXpXu)4;2ohJ9j}!+be=1{Sm=z=M$D+>5b|kFR-Y(D_9-zIGMjJDwMSJLptVAAuLm=j*_X z$yXP-5%aI?O^U4)8Mw;Qw1?JAO%uM^Ba|9&V|k9_K8%NXq!SyrKPp2_ zFd>zPDy7h`NL*U%+8>7)ZWqa_YTxJA-O_tAeLmu}$D z=)B96C;BiJH%4RIGl_j5mEq+i__1>&0Zb?&2<~-SGtQFQsV+!TT}u4e-Vf$f#-`7R zc%$;_EuZMKmOzfv{G%wPUlQE;wMbq*(qk^1x}JOlf|<~%TL@)uD@)=_(;58e@8o-P zVW#A7`H&sEW}H4lq!gz)Ic1eVNA8D`mXp%JQF_Fy&*Ht@`%_^@IX<32fTP=PC>u8f zuY|V|0=9f^*!+lY-6zW){5y_^^9R(`y}bfB9tqcQm{3s88-GrVyZ68+Y~-jpG{LSPVCwBfVcmxzwLc=+v~*0iOv6A*x}uMDM$5*wJuw2!BE zt>u*h;UR&4@VR-p?Ei|e0RUW24yVw>p-fiJ{Oi+GTE$SetAd&-g6p(Gy4fPZ&`VkX zl4OD3P^Bmnb^li2AIlc6N?v3RRVW+i<;A*Hhq`>FOZWC&ck?)P1iqe-Q*%MmrJh4* z&H#Rku0Ai{m>H;Z$~}O3UB-hG7FV@$WnkbeITtbTM5jFQ44`P$ z*|}X#Us=Q^;H$gz(P!zv+5U`0Qp#Q{Zxo&RdaR@}iN3nylPFKtg;(I`*)BCn7E$IR~bYc_O%b2hS z7X26DluCU-`%W;UksIMkd_BTNfX~F4xX~#n*(n0@6a zA-2*QST#exaIN2@!a*9^hC-Qo9>|YeqFVsEf2zYsdzy^FjPf9 zc28B3uf5~r)7hG9mG)us7b+Ub#j85-#qyFn@VDSHnuNfJdMvu zK&&ZMPsu|meBD?Z+jJvrGO6FIO__+0q> z924w|Z0VzdfRlM?_xvGzmD=0JwP|3wmayv2q)z2(1M6aYiM#w*4i-C z(zXOQ_?v-F8^ssKmMQY8ar4iP8PU|@$GL|IN2CTC#}hvffN#9+9?K(PRgyUo*)(S- z)OCx4*;z1JhOrB}cZ)NoPo}FOl9jv!FqF~YmB{)jm7B>a)hn)2PIorwiB??F2igod z72VvCZe>AK^3L1Zd9xYNPS`A~(BgrHZK1cd%J)|xKh~bilGOLCSlWL!cD45gJ{T?& z#*Lwf*!T)Lg57%x;BqoBB%~5XW;Jg<>q&afpq{ONqFQ_?52%yBQc9}}B@dT_wqme* zs11M;>|taDt|o7dl%y=#>Y8=?WKa1e|Y5y}K7tFM3K*^~zV|#o4Oc zqh-N*c3awvc3W>b4UrFUHGjTl1s>`0!QpQ)ave2W!S5d4=IkY!=HE*+1;6jB20ls< z^zS%PH_Akgb>b=R_dR2alA+Z7J zI7`{&UzUp5zYGZXH@Y-Z=t4Y&R}>#vKN?P?SK0k@ zt`@v9WwcxadV2eLCYcTZ90P3>jI-?>uKKOF|6N$Z1a_I^Ll++0#0Ek%@FxabCHi!C z%%x58tASt)7i-HEaNiMO!Aepv;1O3qcr5rE)CJ{ade^L#v!SF9bz5 zCRaEdlKovKZIK%uohyHtGG?v?Ik{S8EH2mRyk&FZY@vFUr1?eZeb#T@V+QN)W_PFf z9_WjsIZ1Q!YdOv34K zrQSO}))d`P_Abd-Ag`tEHy)ucyMoK0S3910XGyN6UwTE)vdM*NE87I!*s07xyG(5& zeOQ7cb*n9@@HVGk8qdaTc-3^BwZto z-|hZ$=&`fC8xDZ~Y*QbthzJ;ci^3nzv(6Gs=pg0?%j^XNFF5p~xZ&R=YZFP+YCFXx|Y&>1NeZZm*kzPaWUe(e6C=n&>jbS92gfa z+;*qS_)cUgAJkf~!g$rtQsq@Y;~f@$xudV7BbobIN3tNlnY;($Z}IfamI&MyIl6bj zS2mbB=A(WRrg&8L=}Er1I#n!u{Ql9GnUi4C{}P5)DK2iMFDBI)#vu$mRb?(}lv;=U z;7uCs8KG4xuOL;11VpB^^q($kdixuIEP!MAZjZwbc9k+?Y+ggi-}@Ks?ySMV9x?O; zuolW+pszdC7FWf*MAvxJ%U@J^hFvyWQ;q7Tv?8c7LTS`BnzM^8kikB8WY)hfKrChS z)^c9d=Wyv_^dd!1yY`^n)H0c20bBQ@+tJtwqM(2^#upJ_ob<-&qUsLAa4;c~Ujc}I z9Ac5JHDpxPi+gy8!6WL=Vmmd)QG%BxPnUrb;2*bs=S2gGM86bt==9s7ne@EYFjb3B zfrb(BOej!K>gYaOR{orERLI{b7-rAFUXns)kp6k#-(iwP=aay#|Er%Vn?8@e_kZ+^ zjieC0TH4GOlXL7fxkZ1g;?3PECek-Ru!!M1I~^K@R2k;i*1fsq3+AqP(ZJ@_HJom< zR7YUutZWayf4G9AUy{C)p=R}yeru$xlBf9INUm=?p>9Uc?<4-f<%J&mU=(FbrfOhc zu6f;Y6)< zizfkB>Ybq^Gw5=Am}| zvkOjzzIiO|?hoxYdCkAr%t29#8|!uGSZU+uafUvM=L0j~`XwKiWxDZCjPlj#{Q^^fvNKxzU6ZcQM9A?vd@1Uw zg-*E5(Oa%{7a@a<61i$D9elwcMg6QWigTw$EXdk`u>Zu0on!J2aFf*zHrv$JCS zl)|#D1(AL}>A7=icfJEa*hlX-Uu^BI76n;_m_?y)uRX}o`-5|xNz_Wy&nL5jsOIzF!aC+IP@$57}H!2=2)EYxkb>PtHIYkxfy86`7 z^@h_&yJ6ctX>~CNT=}k8Sx>e#QO+W4csTLr*fYNo1T+9=5A;p2MH`bgW-%+t*vNs1 zsy^$KOE$U;w0vx|xr>FmqdtwPq*9G8BPL9FQ96nicIKdXbxdOH;2Z&_K>E28JmB7M z)P}Vz?kB3Qp1@dCm7H&Be=9RF{jU}ff<8!K*GdyJkD52e*@e+5=6TFR|6LXb>sk2( z8CdOSb<)wz0|b@L02Cw>;}rXdO@th$%+o{4GuK;e-G=Sx@&--oaXET^xep&P zUD4pe|Wrk=r{dJ-FocrLTrY-L-ul+{KFG{NC`EW@S`wl5C#^> zS@3ENxYW07wxh*fJVkgF2 z{J657D~lVdwwXv!wvq#?WT(Q&ZeWLdUTwr;{8&GyA-%7Im#ekQS%2LMHE=NWl!54> zJ6k({U*QlW%I4P|Ely#C;V@$>UH8h>PRC zluPtyTWPO6MY}VX(4!$o|Ng_O++Wq>0BP}|(%+U~Ea*gdm8Mhg_zwTPT@-}XDcXl+ z-9Y|~tJT%Ba3ROwXN|_PqQFZquD5eu)(eW}$>w;Hok%E^$Dw}vYQ zWyaZV8#@#=0}C(!OVr7}QmNWtUzV{DcN2=x7HZ4;d!QJymjkYtn5GE=5>%Fao!7RF zLKs;Bn*#=qmg+bQbwQFm)`N1e__5w`Wuid@JkLe(B}+22>^z^n6Na2UU$=ZhBT&gP zeHuK(?xYMJdSk*QKu+>mB8L|nxK4xQamz>f{tv<{oVW)e}6OYVJJr;i`rZWkBdX@tNE4 zX!@}v5H}=?7R}ESr3|-(D}k`H`>*gehd%ahjYwiGdm|H!Ii;g%$aYDN>nf&#LDW~6t+dd#6wP=O^1iykj4J=)C z`*LKqpO1Nx^8Qd$W0a$#_56sJDKF!DZyPifXz;*AM(!g6%h7Xk&5(uJxeJ{xrfZ-3 z?Yk>28o<%P3pDTgO96|fL|OE4SOUc>XJD%y2dfwbWAEF*x^vjWzTYElZ~SZ!`YQoo zw`xi$9!bkif?cgc$ijU;gC(Z-T3t?89&yeUaY43Cw1Lz$H~j7pgSMi52jp17557Quc+idL|@m9 zne<t_a`Nda5Gi*G!)HWtQ{~2Rj}!gkde^<$oY;b1iHx%BC)alC&qKY8-LR? z9sw?-RI!3y<}H55H}DX|^XmT6dZYO-d4IzVC=akDY`j}V@vLCZM1Uw3$!q7s(AT{A zvK^5M+<{C_*Lfbg-e53`U$UBJMMcYwzRKXRc zog~Hg+dn;ae$U3zt=aPftcx#`e9|Hr^78FcWFni-OFn?MiE>R$$n0SDF_4o7*u;la zfLdyPZNH?P{ZmBrd^Z3~;Mq2dXXO-7nU&s+*gz!z(&81P)-v{rBxvA@4qV?9z*3IT zM}CgIw^TMhYc!bQ!ik!Uu@5bG1;7gC8@|c9u2%oa|L_l5iT5tcgyE8xM)SO z_d*5~kuAFUxznIZ6iOwT<>#453F7&esAaRq+L^%CS90*nA&=vlymAcFB-aD+YlqmJ z%bDUoxmv#U+P`VPi~T4r4ZALks5U=N{CH@(P|W!JVMo4{xOlLjQS-`i<|E<5mgfuQj=drZWxvMnnj+7LRVH^EO*xUEY+#yu(A<2ygkBX62vNPXnBjXr+%K%T70Zww=L5e2B?Nyp(FMstGbCV_oqaNhbk=;oT zl&xwu5tdGYMhl>xGuGh`+n-hZsKsBRQ`$4{PG%kp_%eunyK`d?@I!^S77elA+$>4Y zFPbL(9!IuRtxEye^0V;p%hS-s_~zokydSc7Cz)V#Vpv|MF2mu{R^slsVdSCjL0c3R zVQsd_4G}fHBwNlDvBsOxh0paF+)nZKO3AJ7#XQbr|4s_D4M#^ku^?43GfgVCIh(TW zjl6$hKvuKbL3$3Ucd)90!|YJ4UYOZ?MrjT(H}*`7(oO2T1dCqGzKD6{c5D3#K-$>q zpPYTA^yX08%+|k=iq)n@hfou*IA2-x=@2X@kAoI3|3Q*oUju zNV0-$>d;==KkcE4JvEXDN2QDK)Tt2F?RiDN*kzjB*iYra*DvzmPcfvBmI>4YyQuIovH?Kbt3KRD+?RqLIm#M<(oCT{eUqA2ZUhj?CLka_y=}#2=j_F z)^0=Jk)mCEe^y0jbj(khrDa`hYMD#`{8{&z)m31y4A0>Rbw;qgtyM|srHe)RXH%Nb zpXyP}7|3~G-a8^O6Fu@ZH*O`OzMAAjj{4gX?Xzc0b#;cowKoo+K-K6~5iGrLO z*$IoTAL?m+E<|b3mkWRhTov6J^@|Tav}l^|LPgF0Yo+N^2@DmW`q5xQ;}Ey_b^}lo zhF7HdQMB;gt%-_81;Y$H`)aM4RH|MhA?f9hAmJ4Lr*Rg54hpX?!Lfli5kH7LGRWK) z(v%D`Pynnl__F4aM0aM`UU9bZ@q`85ivQ?=B!e7zkxC81HSBkK`7F+zK7al^)CkARa=ElCb<1%Mz~8xjx*g$IkL-C;Yw!Cwlu3@_j zTZ^}tFVFzxbEt&D{J{lIn3u{U$ENJ5B*bG9|JBQb!s9+YTt2A(v%s9y}hefmR| z{7x!s8P-T_cK-!d`(w*ei$b_F5MyLh*zRz#=f{Ty_p8_-khjigYR#C>ezBnP9|*|u z^Y_il(cX#8+ZyMYA^L9V}NH7ZsbyDLgz*pR3(}x980p=xs6`Xoop?xAj_uf1R zPFqLvYa&yw^sG6Tjh(SVt&*V|jwUy*i12VR(O$g&)M19mcNwOJN^o%uNjD>;Jkjfj z)O7Xr*40q3)VRzP%T1OTIli=6^V>JVE37QT%wD~NmzFemC1g+eGN?dSy}O$bzwdP6 z*ZE-B$RvZ{qC(^Q-48G9!jQ>dP_AaK^O1#z+(gt@4#CPZHo<2M)|_`_9;Zy~d5|PP zIyzQ|D96TGUwGZ0e<|&GjwNGO@GMy^)O(PW_z%!!ud`AT)Dwqyd&evvc~UcU?{6Zg zmu-NZ>d46C`3)+wnx_8sHI3!fV=tdC2Ii3cONaoA`NAXZ9o}r$0 zt}(q(vea}74q6=pFc6L&qHky7kY@zw#sc^V10gE7uGH8^HU;^x?J@t_HAUV0agR%JpdNSiB;BJ4NhbCO+=RwxT{TGEY zxGOWSVcvZ{lRBt@2`##sjlTTox&KjEN-g^)&BS<{&%A^MvL>4cl;=BYhfa5KiIEMO z47&oO-*r104g3WgavMZ5)zQ@l1MFEQ1?`cPQ4aDyOVF=kDG8Yo&Zm2ja%{>vZls(p zczxea?;RC`9_?7d=96?~9my4+C(KMU>Xx@sWN8^z$gmG=cV|E=ccHN-efdGS1gYs1 zF!qaS-efBd)=oh`gya}TMogP{JA^%+Bw)nbRhwLJDEFH95wr4y54fYm@fuJMZ)3^$ zPChW$tz}aS;mK6QM7nTxg6(q`Y4pk2MBtV~axjT@so#nYE7g~!y=%rtDP>{lF5p!fUrK&o0Ry`o!`COM%=7GwX0l$6<8Af ziR$Q7yHF8^aALqaQpj-I9sS6_jv0>NALNvq?D4b=&-ksrr-Y^YIB%Fc)P}d9-{eST zt$GtA?<#`uJ4I@lmM;a)@3@k>>i_2Mz6N*P9!-lt0~bn<5ax-(WuR>23`TK?ZkgFKckYj!2V=Qwpf0fR1)uyH@9A#yGr^HXJ4-?4T@Y%;d zXKZikK{AMx;CYEq=fH_yYv-5*T0cF>#6QnW3;2EZB%BKnPxmEf{~h?{wZG_U6C9H~TnEgfSnt4Q2) zKFwyVf{C`$nj3n0rw2(tGyZ~+Cv|1+jr%?P^Rb|(%t?511o}BcNu}0d_1&W$c>Oz= z&M!b0ul30Ld~YTPlSPgHob8_QO^176}3A~Kv%oe>I1o5um!0Y2pAK7Zn zjeNZmrf)5Mx_g^_F}l6kyT5Vcye%0j$_)l59Rc1=+o4n;F0t4Cyr3%FoqO_nr_=U# z#2dZxBz5#I{`0echw|gb-xKStm)%ypvr>%AL->0Up*!WfqpsD^FXY1aN{$2;z!+%& zO63v9>(%iGTtVMG{EQW%tCr^^6%Y0|kV9Rp$!3~ajOkWO1K?UcDkPcDqUxVC6O}~s zKG=u&UYrVDoRa(%JD;`G5bcFKO^Knd_aG6dS1h76r-Sz24-wi>WuQGL1T3&`fmIY` z1$WocI0lUu&#L$_=GoZ^+AA|^3D&DgE{)X}s6LoqCtrdXCLEG+c5|4hyRUe#k@$A* zHqX3R;eaiHjSvYZ(#$7+Nqdtg&rAW1p3z%jnz-xDW*qJg^0r2cbaR^Elr zb1+ec`41X7;H5#1!eq^KLnONPC0I+J?lY+~!iaDZHNu60+v4toTC5_&&17IV^t47M z{GFMf#J@i@C>oWfl$47-WBg@I)ND)(Ns48 zj^5)|ZeV-5Lj5!8a=e|uOySqu-f6-ye~24bX2$N3hfoNh<_hP>o=Sbga0+xdrCeXT7JNd&lcFLDA1oY8+hf z$*C2uS6aw31=7Kp+tyB^y>}9f6p2OoY+hsN1lk+>Uf^oknFf@$6tp__9k>%Qc{d|; zbk_%I$($hr z8sdp}24E^tgoD zC_^)g?%|=kD_kWE67Mjkr5x2YVR z0f0(8{;4QSmNca!v4MY;wpjmOobtA4G1E@GF15%%m>#`#sMIjHf`SQtEruHzhXUax!b9`xu{9asX^`1TJt-Bqe^ z@Aey4a2d-=v}iIy6DpK?wMdHxil8!Mfmq!*6?c*W;P* z5->Xf1T*F#+0eMy)=SD;ud_q_Nl#rA0xkhkc7~FyaRb4mCJ*vm0n4KMh**3f9xm<% z>-%?|j)=70Ualkv!;)Bo6z(qm%xJJs$Opvdb2g?X&s-|garT8yPqJmwt9#!ppPlS9 zB2y|i#rSvBMDShh-HYya79`xlQuWk};)n8z>WrmhSM<23z{})f>3s|$tt30j;KYcBj*FuS=IC~QFNhbfu z!E%?i^R<{_VM2sC9r$U4g(_FT^_=hiCV``8!Zq;+#9 z<)d+ZA8l&>S=}3wj8~t$tE+}f#92NEJ2smXD~FYkv%W-V@{P4p8K38EP3!`Zj}Ua* zW^R1*6pqOul+aHPMB1lFFq11;6IE6Ia**=u;Vs!1-K6lEKVEbNH$epjS6ufJ03+71 z3LB~G$VSvNO$Z}Xptt?d7V0JyL^@U99~0^Psof8VD(}d%{zq~EdlZL(Yh(F)e4r-vrVLyU;=4*d%^7q--Zgv**YNi=Q;ijk1&6}b@i zrPNu5j;)(`%;w#)r-8-pLAG#^+G)$N7X=;rjIunIp5T(9s4N-QFQkg-Xt&Jvrp8gj zJLbmTZ}lF7zN>j!^R4}G>HpNdXM=M7w?6v)XUUPi_+}vMYtgiVGoqhk$i=ikdUIy= zDo}HJMf~n{)rzh(NJ)-B(r53)YCPwGTWU5Q~3f9la zIVcPek@$G1H3pXV{>Q-v-n?`Hel*GHz`WKig-DaS7Ji|=dUHf`o8zeZ?N0C6YAcOr zp;mzeoEgU)P4>^i!=D3WWtx223i=?zvdsc2>Tgy|+xzNC0!t0>&uQK$JMv#@8Kw6j zsN@p1Akc{sxY+2AvTB#w(8cebu|o&AEZOg<^z3T!-k*8nhxFUYzb0HCDRqRir}}YF z`0cuy>DH7Qyh>w<0VOD{sy$U%Wsyn=G=Al$1NjLg?57dxx#PEWssFQ{z36wzknVqc zi!*tbdPK%+QSD&pXnAzxkGCuxtE|efwsn6+troiPd18g>@bQ-wA`YHR-x@=kf$|(r z&Gmc!#zVZiGTPVAlJBV9u}*XAS`_~xnwvv1?x83Mo2o1)SC!B9tWquCr4GGieSY&A z*`3RKkq6jvw_t4nhggIF_&5c-<8o>?0ao(!WW64C0`q7u0)PBzcU#)UwsCp3g4fl~ zLXbZ*Qv+}v>j3~kP-mbik2`)@Jp*)5cSA3w@baM{?spkQ1uLw&C%?xZY|Pm~3m?H% z8XDuV2lZDIaxKuC%!DRwyL&nZY!m{%9S_uN+)D0)9&TrowO3hE&090NywGz4-mW}% zy>=pAC@OG)>Cdq;6^qf2M5|xmxL{!BAvv)@cH|cMlGLdp%q@6RTPm_I2*?HU>#tgX zT`lJh?yTnXil+m?>33P#l`o3KE!-*WTCcaX2wFEbwxa&PPq#+_>X zPaWK7=TzbGiidZTd;!OztRcNX=!f^A=IO5*a`luntecsNZGgDl(P-Pax3RVb=^;qV zuBqS7@+VD3UO~RPhO^+20f)t~v=(4p?-W@tzWegKGiI{(-AY)!M4vWm(;36phgob{ z02LvoikvER-cszIZe9OUXqwH7Gh}VlGjOv#f1iN@!G733JX`Zhb3aQK90lCKWN>DZ z$af9oTB7#jHvi>>!+L>B;mf{x1$khOfwJ-M;_Gl?q?Z%}_on88PjTyEE~8oz7%f+I z5Z@>lg)XxAR=rHS*RNh>c%9%h9Fiki`|nB3XkufBpsfzn$_)VeA~}8mta9GjoIG)H zM_Iq*)g#n{+}k!`7gy`53FQ$aKU7y0#U=KIk*^nt{}8=o((`8)A?G*yC8vgx>e!?0 zuMnJrN|#p0o>!w%K;koC+gjLv+Zj{h`^HW$eFH*Vc~J!eV&WIH)7vrOw(^07+8B>Q z(|;$lH&J$(M4B?l;Oy;ydjDyRXXO4_yCbEE4R{p@)WrfLE=EJ`Qd0oXF=-EwK?8EY z&##7y_`|y7m2=+HF&oUU!YWsQ7MnMurdlBlvkHr`;WpTHJxIr?ybyyr@WwjpsHHWk5}0~zqZ(gnA^>?4Nz@_b0B5EbWYK~BY9Prb29lDq;&=6(w0ly_@fm&b8PX8hztYIk;LY#S4G)4m=b3a$En_;d z3C%C#A^L^TmalZ#2F7hmhyHTqdXty(+3E_eAmSRpG>#uR;iyjT7n3*m4W9IQSaR_W zt62r`Js+dqiSFb*VBUDzlBNCO5wCRoj$@qY^6E47Jn-d3Rb&<0@91WH+BACk-=v;9rI!OIK0k&xr?7$pw`wsQ#pZqq+Lk& z&l_U#-w-Lv3&7kdqBaXo(}ip8ER!{gQGjwla>?mwQL>Smdt1>Gr#o(yK=o^j5}QQX zRd|f*K6kN$JXqbX0tIND+4UaG=EdckgQG2{n#Gc%AEadx=zJ`wk#1UEdF9?|`Mh_Tlrg#-0KNTY(SH5gT-J^ExoI zN>VBMgMxGoZAL+JE-u;Pcl)`s+l3PgM3UK5$w*rcdb7I$c61jWwKwnqs`X#?dnbF} zc6G#jos5MQruw&utG{+ArQ`ftJ!u@g4(x}(R21>jS5$cs=)JA+IVY%{ax97qdx@Vc zWukWvwelk1%bZZ%@X%o7`$Y?*$-6b}BQfRsZyy!y#(C4M(ICx=@y~(V$bwK72Qjg* z!D3TbpylTZBr-EMerClPC+&&8`wg4Ac%QNwa^<7P@BMt2uY|lL*az@fN$3qbs`EiS zF{eD;_qYc=6K;o>Kft(1(y5+(PrRkifM6RDF{YdA2B8DT2XmzRAw?tR_s3W76cIWH zV6Q7O9{SC(_5D4KM2yt{+|$pMwt(d06{QkwMjov?f1Ur457@y0sHdkL&l7cvEK$S1 zTsLT5`L&!F3{+w~!mWq%+}|p>-n$AxS@#)j#Yx`E&vq&w$P!HGL#YtXYTWb*m1<`nXaEWnu6Vk4*o~ z&3sriu4}m+Q*Mf~au%!*xv{{9!rcI89i~AzHUFYPWBu$c{oSe?YClr{UNGoCHrC5QP zK8iGM4?HskNWQYxt9rsQ7)K%`i!6DS`C2cM|hM z?D-G(zlMPg98i~d74*Gu=4aE}vUld29~cE`=jDO91xs9Yv>QwN)j$-yyXOk@IlyQR zUB$jleFeba>zL&s+FDtY4Kjqr4{Taob!7sVy?YS+rq&O3 zp}sja6TTOD%XMe+A+yli`cZN%w&b*T>)Vgv7) zmE1X}x-6;{Ju@j<*FM5q9V`G7a<1(`kkAl%#;S!n!LtWHdP^b#m{s)dm?r&1As?dZ z!0t(~Pr(GqQ!)ajr1^ zFCK9K(xPjV3K>qV`VA-18{0@*bOWjY^LU5OCbjEM&T;sn{C!ll+ zpslc|pr6N?f88k+=`#xWY79HcH8avIKI9erlAPfK!f8whH(he(W`_>YgRML5`SSW# zklI=fS3n~cYd;d`o)OvUQt$3nd_ORk*BOsXC|=(ZXtJNCB21M%`7}=P38w)U=b3=> zd#aC6KBfvJx$d`nW6dMI=z4k%RC8`mv##^a?kDj;5c%N9%w?#wzRFLYM6jiHR|7N_ z1MJVx#Xl)m4*|`N1f0q$&);Mk&au%I{Rs~j=zI^%Ve|10SqVkg2Yi{*h#S@2wrcf; z)jr=>c=iaFK^wO>oOgCk zV9@v=B4uQy`=ci?M9_^K)jiJ(G4>^O{ayuZSg(8_37QEG*;f6;9bTQnscG3l95`F6 zR}Yr7SN?6`s+jo>sIgd&n|>1nwNiHN_{V=mJe5i51gaTO``oqYiLxSXW0k+ir1zWZ zzlbStB<@ZAJY73U08&G^jlhNbCdY`$5cTa_;yN1=s4kK+8dO0F2(ea~W}O6#DSjd}du2?>RTv ze`6{{>!VZ=7_^f#-iJJJVHqhK{ORW7}@ECs)nkntn;h|g`U)9;zNYGy!JoXig3qM=?!fpP~@V}`IphJlFArp@qdJ#!T zxKjglr+O%qJ|+iPP_PJiePLAQUeUV-$t$OFG^9kwdMn@wxk7ZF0L=iVF+C8P18_pE zSGQz6%nJJmGxtrnEdp_zyt+a|85!N&gguwuK};&?w;GU_;YHcVW(Et3+jxjq1oStv zp8Z~q@{T|6#3sQK>scCBQ?0J!StkOhF7x{gWF$Yw>8A+grEF29l@4qS58!Y>s!}(j zji^+BZwc1n+3-0B13-= zVC~Cn`Q5-yJrxN~GFs<$q&XG-c0TKTc$orqApkCuhY}K6sl`V8U+$o&3Lp}nq!vr? z8xT%(0yuj6gPd$brL;n00uTESn^7o2$j%2%3ICcKJr$^|N6LO(X)vnb&t>&ez~Oa` z!LSXSz_EPm;ENm107#_igLGIjUIUkxBkOy!578GCp9^s_Av5>SW?+3h&OwhSWJsUP z{(T1Mxwx!xGnr<(93#hI5b<-+j?FiLc8hr{CoP25cno}M?p-xo*` zR0E;E06m@xNAPbJ?hk_SU)?shiw6XZHH>VKCucel4V;AxC8o z5&yGNv{ORdHjsEH)Px7Dml>DoDLQc9!kPAHdd=hJUQ}IONP+Ikz;8qKH=JLuJIqJ! zWXp)vX4PgApFPJwz$*kBmfLs@iW{3GYYr5B(9?sg-O-}xy}Q1y+>YEaN9kG(tJcz6BmN;&QY>Cn_5JWgQrpCJK>g0a_E8^KFX^5M~Ji5aLMQ z(XOAM?OF6xRJ|*Eel1{XK}7mIfpR2f>z7aHv*x4#z0A}SiO`X!XgugWvT=w<>?r&= z1Rv79bxm|7YyQ{cj1OXeFwnvur9w=a0M#wRg^2PRjOteg5OUJ2eYE@;|EB7*u#ICm z+P9d{#17WV`W3+bP#o}_XCe%ZK6^9({DfzSQei9jk3$jxtAO=}6R9Qpka7;2Bpi^N z4YgEr18r0$&zB4whIiq#alrQ!_PFJ%pxk}Io89adXG^%>h4QQ*qv4cD9n({g#_G*3 z6Bt`|44$f`l2`JPHA4zWWlD;Ae2t+C+2-jaVf>!&M3Wv~%^_@Q$xU zjd`G9VJBe1Ho%4%sTiG_-Xj=p5tR|B``v$*>MH z67kh#Tr=1aLsP)mw~1%e7~CdcEkS?@4ab}$JPcvY@dAZlfp9vDn~Gu=X+lifJAu1L zSD$OSqesY?HpY)3A$59?C2|LV(OW(OT!R$|LdFA7dgr&9BaEvDxbl4|=6`7V%CIV% z?`uN3MOr`vq(MLsjxEzQ4N?Nq-JR0iymOxa`{Og$Ip?04d-mRI zt-ZE55nE316bg6-4rs9;VQj*TfpkBU%MP7t^goy1)wHnDJzN@i>(MBVW`bym{@USoks7i z#fMSqn#$M47L$3UI#cvYWx9Axtt7|SjSD>E$-YJIDUKLWSoZw{xo{Q*OPcJKt1aFK zrAf{|IZNkI8SLwSuxm<6>Lp(a#CI|m=3%c=dOn|O0oUYu&V5wf zKB%UMmDUR|Ru1krbdK1sJ|IVhT}ZKm3CqGjuU|6Wb|?l`%HGuJFro~DsR9^ZaJb&y z#j0(;`cUXt<0=V(|H@o;6vZb6h6q6WI5agzUpZNe8=I8R|9*Rz;3e%U-3mvl?)6z&<>eC-T<>p{(GH&( zY^FdbvkeV2t8}=gq5%m#cV>pNBGv4>RDegn=}`vSk6lGIb^p9`tlz*?<>J_9fRR6k zkwM)L`aF!aKh|x^dYB_3?0(l0@{fWZUYIAQ|1>>_P3r%Oy*L5&OaX3h$R*I@zp6bD zF1r^u&cdB%B8*eiH_R&o>VC9UZDB`@y6~hHY}N0Sb> zFY+MN#3sI~=%`gObtLUVBQ~pA`h)Phps*NIa|d20jMz3ZMc{`az+y%vB}9L{n$fV( zLOX?r+FgiLb7p}1)JNB2fbkbany;0=1v+^w*p#JNMtK=%!=eclz^eYck5CaX{IWo& zXae|E-{rouyi0?9p8?!!m~l~wT@FV_JHGoNN*Hdzfp}D1WoS6ilS@@X@*kIX8=tK5 za3KF9fi{P7F#6jMrTvt`ei~3=!_asB37s|w4f}d)9gOU@#{UM(nBvX+U!hCxydKu5 z)Q$#rQe^VfoYyXNWaz>IkC3-x)R4Xv>f9SQ=i-ggd|6X!(;Y51O!` zH+xWtu>Tvdo^$D3B{g3NKrrXpidQ|K+$yC8LK|9g_rU5**c}YxHy$=lCUPAoQ84X7Y_V<+TB3n*q6Dc6@v2FehkZ?aR1moTMT|10@NttEvu4d*_rc z6qq(81O2QZ4}70)qHP2o)r^c+BEpx^!)YvFb&jzs<{^ zUne1-ZlcfF`*TJK?eGT+=wrr+ACYRpgyCvxF=HaEc>W2jJ95Ej4IJZ&K_Np#ev1Ry z)Q)mu;&09<49+4L$Xbh0AwA99e)bCkj@wt9;XP|MjWsJ77_uw};@89i4b*_ySknj} z`r*{Bgq;}IGtG$u;}vYLf=lP1#01|_k=xT_Cbu9XXkCC}8H#``tmB`3ySt^UIL}bS z8U@I;_lh7@x55=}(m$Qg@?}N9xJ5Y8f^$)L+_}b9eA1RIDyqHVjrkd*pADr2Ea4y7 zJIOu1ka{@OoLe-_!1`e7X9Mwn?c`Q2Dpb^D;~?ANSWSdX^I`lWxI*yzH0}oMh#XR9 zfW4P52(BUCLUm~6wLT}OvVS_S9-+6##C(NF1v!MMDA)@)G~}{PM1RgDn4kJ+M@`kO zcIi-o5HJC)u(_rMuh|2Oh2a&MD`91Kl6WeKFK&u*ezf zyGhL8&eLEx77jrI$s~17S^U7njJau^{Hs8fDG)kRi_H+~N~NHNAV1CQ&WYIHWpR)a zV?)Cjw8$$QK6i#{RDC5HWn}U-e8G=^nfm_`L|hF1(&jY+Mv(}fs7bJy7<{cw(+u42 zo&KGRr^v;3p!&EpwLSrfL^d2Ho_hcKdNE|ak4e;+pq{0?Tv0wI#=^1L3&tz=R}>{d zx{gmCi7!AkveKdk2y}+mOiFKIK{VcnJAK3EcmfrbK%XCr*j!gly(Gw>jJY?t(<1*M zDo04zF#av{w1zL9nTh_j+eQG%nVx@dsYgGvl^6smZJ#SL_O%sm%FxR#Kw!9Z?4<`kjJ4b#M5EpL(l zg8+=4R>H-JzRcXVU%%s9a7;=&)rJ;ZzSZ|gO;rQ`xQ>tVHIA>^!!*Q|^D`PrpB%Zs zb3mZ&@t89jGWqkqLQ`3=sKhWg(Tl%`eOXMte+!?A0k^n}J|liYLP4(b6vrR>FOnUE zbUxBLqhcfAHcBIZtOo|6ZEHK-!EdJ?$x-NyFMd3Zi z?P7ApKWodIZ;xHyBb9b;V^XqoTQQ>!_{jS}jg2x?-B%R_E*Akrr}rK;P%+(W^E3|< zcF+4!W(L<*ScH!20dta9M?nSX03VyjIhvDs=GNYEt{%PYQXaKAx!k!0$FR`p&+$2r zmO1b?TD|q$eE%t~8S3D(OH70J(+jb6n(zI%sc(Xx1M?DC7(2*&C;IZ*)S()gUV3T>EnpkR9+lbxKOq1z% zUo?byt2uPdLBCEAWH~DaTWRO68Ti!CNT0_9a;u=LabiQ#zZLsUhO5(6ge9os7?KE%RlQ-Hs&t&rw z_V0w%z|#9NCxvT(ap5;*uk&-OS#-WDVIOt|bw z2LK%#E+Xttt$;&C>C+fsi>2mea?nLn4i5U&T`~P%A_i5~ejgV2__}%pW|aoGO2Fwh z&~)OLBm%#exMA1;*@xRf2F7<0b9DbFmU}PuFgM5mO~R$ckaTrMI$si0D4JU1X~LV{Bd`C|36Aw4Gp<%sV!#Erfkb3`!)->QhdPMA>J{uMNtKryLDAd z^pXs4Y=8q_*%=gOIm2@kVmUF>ZH2!xR&kL3uCw&)G3Hn9H*ok@pLy?NJ43GeS_&;q zen3GDEn?!vbp$+){apJ|Y0wSn=YS}H6V!^h1vCinw3?d!>W?>A0+h?>4+i?aZgNt0 z5}X24fz^))UAgM|OJm?Q66*leGT^hB;@zHE>*|tQ#|)Fn(NT={=T2kz&Qh2u+AL18P`+Ua>D&?`x_=!y{q(9slord9F(icbw_2SJgE z?K4BQ_5yj2@~Dr->d3LFXQewynKRckydMKkYvo2B7RrWAS#WxNAtVvFAqs$^H#2jS zXMTnMqg_h(wl*4%gQo@y<8!a?*M+MO9(cp|*tpH=>0<4u%E5>-(vez<29%n>0IKdv z3g&%h@DC3$t;4V4zot|psi3P9ko5^Zo0dsl6atT}1I%fbEk@f%dZz1+5r0!}cdG;8 zPEqFa*tD*S>ZhM!_IsB{uI#}53r{IE+{#suocEkR=yH75;u$JFLf5rk{HdCjSRo4$ zvkw{UPbiw#KsvL-tnnW#QA|nM&4*WR^g=u=*Ic#o6aa1vXnk%lC#WC;H7?3~_3=;d z?pl{@k-tr8{iW&6ei6V+NPsGJT@4F4|0Bv=In-~jyLNg0=_Hk-^J_fBZ zG`fp_X1Qg^oAP0FBDmJv(PlJEq{ef>`6%Ss$p@NpU~aaH5Wn+4^HC^HRA$%6Hp}{x zCpq*uL2VL!t3UYzL7gs=c0BDx(ooH94-CxmS}L8$%i^yfRff^>Yujei|HxSJ_X8g2 z!ho4HG1Ff*ALVDShPo31+DDfKfc4(t{LZe15*95`oY|18klc{K@CW1Hx0@Ijxb)-f ze~TbAX}>v-xt6ZSm?%ND_iPT_(L(t=Vp+A_(C@Ds#d}=qp2*#uVez-7A2E`AvznWm z1;5CD#{P`+N{R8{2>e+wS|DgLzQBWpNBHprfA8pF7_zhRe0EnX=CD17`>(CsliNRi zj-MBu{rsSH=FC=2W-17A)p7MHEeX%Rv?v)Xi(gQA5JjenG0+-Q4sOgl^=FpOY3QS+7hqsFUUIQ=}UaUl%4}*+vye=xRChc(nTz-+rC&t%!HR zW+!t`%-G;biJVzx+o)<+)?T6Ax8D^!*=W>pkwbEvZD1df>G7oFEHL9^K^yusnvi$M zmllj6+eZ=LwGx?h0ei9*>40ezhYOC?cbq|hJ5m%cK7C)4hQQ;YzoN1ghA;TKah+-F zj%6Lk${re9U55@#BCFE>1TvJz4Ugi8ZisenqXi|nPLcDu$o@W^DACZ=xFNi4_ldq{8lxZ|(%)A*Aa~>nO?}+InXol^pXGNw`Lmrth!sex> zdP&|lHusM$=kH?`CRYs2*_P*^tLjK)o3*vwA1`^fkB8@+CfSXp4Vy+FoKhdL{)NeCcw$?8wvVpq>}3W)gXU2tINr<5tumyL^YQRUrQyb` z_Qx=5EY9({DsNVy-D@7n;X^^?{`cdH(v!4Hd7;=6oyY7R;>MY9{N&a-Ipz8<_Fjhw z&OY#(*n76x{K>>YNp~(c{k;w>Z9`g;hCX5K1hwvh;2@^PoWv0voR~-#&I%5rm3{#R z22*6DUseu{nA;2O_nD`s95KWGYQns<^s;ZO~dF zSZ->C;9}PHT)kUgR}9HAkhXaHb0KA6@hHrcJg_lVQlb*ED@uy~QM+7MGSc>iSY%2c zlhE#9%y4b*Lch8m_a?x#|Xn@k)OLp1YSj6EAK8 zUI4E=!A+`ku4=Z!yCJ$k_9w zFwa!cB)&lnMX-;T>^gUX&sjy%wT{^Ui>KG|dU6{Ktp2Hjc|HF5I*V9x*pP#>{)F8; z>S}dUdxz=c+vDMjgYec`9ER-kFyU`#Wo2cWS8A!;?tg9F zIZ{ti*OXY4j9Z0O_*dZ4D9F$gVrjO*p8CVR`pNB9+nzhUIPQdc>XPjX+VG~Q7JK(A znJ7h88hvtgYGvZy5*BLUQy418Q2>)xLE)kIe55pFTtN4H7vg-EyqEl#NfBX zrD7(qVow2aY57ELU9m6MugRBU9p2fnf>+wG z+3D8AXhe_C{%rgrQ!`G3IORnWFF}rycmGtUGzKy~dxud_?>;fgxH{yw(N=co!@7Rn zUpEhGl(m-3qE^pV%*E!eQtmb+H}edle-Jk%WB+QU;qcM+vA9I3JhSpiKh)OprY|f- z$u({ZbUP0B`BBtb*!G1-f9V{Woja8w7l=SMk`94SP|s6$%%fn zqu+VJF`zCANSScIzUH&Z_=WmTu1L_jCvb8H%`>%WkFH8Np0S%JW)C5)*$Tr=!Y~EJ z#@y}LD{TGut14^Ap2ZKTsX;U^BJy&f+8)CQpt@A!Q90y)!>T9 zbBN=p{OXr>^VM+5)Zg@y)-hPw5x@uxj5yaXN^G?tKSosja)48|Pm7cy=4cA0u6;w5CqF8Fr2Tzzmw}IeuX6u% z&NkChJvd@ZHZ>EUR)@qN%=Wy|M4Xmwr_=2Qm!tR~mg-@bzVAA7S*^LHmrW*g*|K_K zQ&4nV9bWo&;_Q<`D6bv`FoPOJHF6;5|=1k31ykEOX5u-_u<50kODdlEX2 zCp-(2aTyz~%=#{!P2n?G&TM~keha}vK0lu_8@HX|DGR7+&7z3uXDCuFL`30u`c-UyXsL6 z4YYCoD@w0#4e4o%+BUD~_WaAl3L>IQ1qJ)ZOe(J-Y<4RX`@knvWzV>zx%t7wQaDZI40ng`C|(jLI_vezWyNI5CAn;ksP|sC zcUc{tjd=(OO(_i%eVFP>?B1JFHNDmTY?NB)T02`WNrTbotTY@sdMz;ZvX~y_wHrRa zWnU&UT47Q+o>uZMXH99HPS}1==?_0U&r@|8hU1~L3o1tlL5%IX$a+BNPC99Un@&R% zQT6ypay-Ey7N&i2y1Y`6BMaYP+<>caTw6oPFqizJQ_mX`6JNot#gNq82RmVC600)v zQQ_$)i3Z>6(_~ujGjKHnG9=+PMPn@-*@D+j#5x7On2G21h%vp~Dj+j&|d>U8dHPXA;jw!VVJs%oyt?!7xphm(gQQ3oO+ z<^Ynb-bHo>61HTqvn76N&-LD08?T4D{jW14(wgQbV zc2BUVY z@(mrCRymJ+?c)afU0A>Cwpn+GwZcNhdM%}T{&*kckS3ykbi9^#TH^sisuDB;l*ZCy z(C-8}SvQk;CJ{6`2pCg9$h{D^zcQ8av{*G;^9NykquO@nQ1EoK&fj6NOz481|H8@N zsJt1%Sbh>anJ*ts{^b{3_&Hz(Bw5ae_7MO_t4%<5hE>!$eXlEZfq>MnN`t#bNSK6H z)w_Pg=e3#%Tk?D2j|)|eL1(CQeZqYng-nbJ)M;DJj&rqhVp@`vF_RBwN6e~U*4LYJ zwHgKz2q*^m3sMlA9V?s`Ya82R<2HbB8{1%$&;1Cu(Wb}I$((gewAp(lE?3t;U*$$! zv#kA&??|$Wd&>UU_2nm|J9;rD(p8^hJRCZw|Gg;nw7x$n7XL7~Md!>=+q+^qtf_`X*@ja)>V-|Y$5rMRXU`kF4| zYt;J}TweL|C>aZw!~|c~*%}MU%CpYw{6^JQ^Dqpwn^kIJ?J?*`Wx#R&Dj2ulxHg}> z)7E@_fk&nI^^|BK)h-BHsN93XX3a66`(c#fL3O~qI=c)W!lLp6yFbI5L!V~Ke&!zDuPn065u)8htU@G_tQS;Xwg8(!IOnVH-~ z*vx(zr3Vv?9mX?;G3HIb|=@S+#P(;gMr1o_`*6X}dta)(p-@J$!UXS0P&* z^}$9evNpr{pytZj2n=LFmm+AvEoMvg zg3C73{g2O@gz}v3?3IJ5h(^<%^v?2@n=s;0y%txB;g{HK-E+OZw$`G=@~X?{kG2?> z-wK4A-C~BvmaA_c-OwR-C&WdO_4NkqEw}lvO?8guOgDm_t{B9>2}E3Smi$4)uc&Cb z^c=w}*l&#suo2Lp<^vvntmEfhbm8r?-E+k~KANA7pt@S{~jxA{U{b z=)lo?H4qjD#14$&R5n_7)~bHWM8KP}Cs3W~CoXSEnp78KJzINSp|kGy5D$)-cX@e{ z`X7UlwC^BiTawsTTUqhiLLHGIf!wX=4Wa~aiAxK|g$$pencm`YgymMtS;i+~s2B^p z2E%R?kOppJ>0w0%h^-d@@$jab7NKILaoNVkbn@zwZ`t(rw?yuF<}rg8`OIO@-&?F? zvwxo@jBgd?e)`69vOh$Mn%lNJ^seiy_^OX42Rfwk$GF|z{T)&D&z~#R;t`x^9x)wv z9UU=T^5$9}+LtcS)YO=53QMbOStNkQF&@U*k;nN>9e>Vc_j-?>p;-sg`= zd6jY>2B$p8i(VIQK&$#hBr!{#OE%lZ3Z;~Q5fM4O7rlQJWrrn@QIrI{ofT5Dt}zce zoA0kyZHl-3+os>bT_j&V9;hgA&@d!TOn5|>G&zK5ULR91NWE*KV#)6MG&SiT)ZsXpHwuJGcYiLF%6m+5{ zzKwz9Z0$U89>wDMRJTLx!S|~zL4{1mWvLB2jV<*XW+5AJJi^8$!s&b&%MCGuW+iUK zCA_`^f>hhlQiI2gtpC0RhG&`4wj96Q-YKDuv8*y>{ht;9-cd?XlEJgPpJqqG>Wvxh zhuZpz=y;Wr^yp2uHTk8_ zf{FY{zNgsTO~q4t+-s=%OScYUX`ZfCwJ%L9%I+o z0UW~kbu5E##{Tv+VwZ%`BVyC=Gavd=F?prkDB*Vv@@=1&rDXM2D!hxMi|!uRmkbQ0 zRdt_|fB^3ETVa!N0)iN#KJ!fdt~8=_onP60Jydp?8UFC2ZNb8RWL^XBbe3dwv>Hw} zk}2}f^o0W3?+Kxp2&SBZA`5&95g;F_B#g6&Q^mPhi;+&3tB_gIE^64c9O;V6tA3Ud zczE?;^7kP?-&CM5V`22m+TZtB^4g&Hh5{MmKO5wG%iK3IYd@RYvx|9fW{;ULF&jrY zC2+F3NkaxlkO7!^-Q=}=v(|xwa?n-;+i@*>F>tw~TQTP_Z};@KvB@9l^_#TN1!{n= zoK1`=nrm?9HpRC@UREE8T?1v~DMQmghG2q&*EwI?uIv_P&WH_T)j5~E>(LQYgIf8f z4Bj-S{oeRo=H03!=;*uEIY!bx^JQJO^ZIoSf=k|zmZ);Lu+=v zV6qp+_^M{H!)#M?7bl=>2mOCv-`yl7j?tkr&a!ilW!mPZo=kmb11G5h> zKoeQsjsTbIf@@zdtp2_kT`s$AQ+~0T1efwN^#{;oh%f3V%?g|(*zuGVZ>4}X5?fwn zVE6vL8h5v`8ftTWh6y|g$+GoAHF;36zaH~BEF9rTWK6fLNb=ZrzI3Oz%IX`(4WBb|*9RXg`sk~j@bdlY`^-<0Rswzq z$?nuAD45r1I7P4Y7l{ewSACR{YRs$tJpDFKXu(>@$djVEFiRyhl`1zTYh)!LFx zQg!d^!!IfgGW6XessweJ?bWRbLLb0wMmROMYQchg8C;oFRahLg>+Y`BJ)vt$A@Y4# z6>BDnf~22kad-ASK!Tm6b#`TRl2HJHHmdkt%Cp)clc~V+sTlw{x=L=o!q*@UNIYro z{7@-UFK<4BwSs~rjgDV;dOSX8uov+x?hBYaM7RP>y6Q{3u}SSKp0fJr`oL{VQ64g} zR3V`dO-l@5>d+tghbh-GnB8`SE0Z4YyALO!_#B7 z%G%oAlh-gDT?t3!`-pA3U2m$cR4LGwNBOjPlD{b7A?BfPV`EtGaUc`*!(bQGUNQ^V z{MJ5Sq06eUJiLvvCzVS7*jv^QT;*4WLPsoHv;42rnUh33ggcJs*=KEs1FS@84n8i0 z({w7)6PJ)1?0}R1Fl+1}?>S zd@~%O1xCkv<(OL+Tfc?(_R2rGz<120HAq#Q8mFfPpe6$2^PijF><)HAjzE`7W^!zR zjn3LI>zR9c_s~!Gtu3o@*UXpLN|8Q#nY8h*x!MZap9I4^?-7%)!SNGkSBgV=S~TC^U|1$Z%zNhy$f(9W1gsV# zB&Wk`_Oy>+B8(o)HZdKMSEYmFyc}~im5y+ef?#2#M+t|Jx*oMVAA5PIkOO;8UmX+U zzQ!p1$&F5t1ZV{icw2y$orqCcuaX$9H)%jQDPNiL(uoyF#|QRU%MD)KxR8kN2>hK2 z!z1=W9>}3dhcv%NY%dfKyiMIhgOW{g!#(9~fHHUnDK77n?s*MxpT;lqN{8hvNr<3K z+i)J+^@wb>dO;i{or^;^wO6m6GRU(fHA1U>W=zKqj}Blwz9JzHL5xqh*XrxWP6JCA;>t zQdgh)4*1wv_*O>D&71$;n_o$2IJP5h2Y)+FZ&$mii8ko_nsluqvd^3 zDI;dY$)CYNtW6LU6DsetG?B3Vs#Z_*$W&_;JKTe^{0)CzhKIl@b%4{jJuEtL+QZx} z!wX7l5J(1IfSm=?f0*=93C8P#ysx3u+Zvx zTtz`)%d%`sjB% z>>kfy4=AOe$OV~IiDbB;HTk6B8n)&V=w+-558B4}g;rbT&F445V zUyK^MNCy?N@fX2HFfeTe9*M$Q=6IqVWNMzkh|CCZDNSzAFXUB94ltPLJTQ50?%gVq z-gr+z%OCqi#;dQIVY<$zj{B88GnDne=64FO-Z`-I*?Q!%PjFUFXllBi=(7n~=y$a` z1CQJY9a#vHDZ|~o#aE@G?3OT%JXh7XPM-Idr^Xp+=n*of-aIo472bb8zrSg9~c>>>1pyp*24xUhP=~ zj6qX_@2_mUOihJiG4|do;m9lewF6cvsm$~Wz-fZ=r%Xzv&{VCv+-?$Gg+_9+TJ|wz z^{W=I9b&c)eiW;4b5p8h>5LYso*udo2WAxoU5)&cz1<>?QRe*G#-9wB-wGQWwH#-E zIRUuwFB~5BueylQhC9w7>)B8-0`;m^;?#X>O@~+81v4@>YuJ!WXUG?y<0l! zkVkgNUc=>Z>Z+G5#9L_JJ#8 z+c3-3*pt6GKEjR1r3+P=sO{Qa7Pq}23_t{zMz?P?0lW1=bSQMRepvKfw4aw3$TqGV zy!cfcl7t~h*~nJKj|PF(25vm0?9{&w+hTLN;9K>)++Q`%@^7xK4!OuVQk-A4R`naR zFt2WMzT}5z5{EG9a)kmdMGPC8%fIvWtl2mm+~pqy`9I@^g#!m77;{w75?4%`Sq!X* zO(BL4^aw}`VpR6>W#yIPKwFu2Tj`rsRG08)om}FIL={UF49bZCsL##ZuGVGsPY=g) z|D?P@ziiNPc}`gyDgE2#Eg|9}0Z!&jgw1;{td!TQFJA9?DEXqISFU*<$2H8Aw)keX z9^DPB*)K7MTwBiobqD6<+;qL&5h=25mdlmA5{w79v+)oSgrA&)0=)kZ@|h+ezb6?7`9>kG^(t+NBw_a z>nl(9H0qqD?KRv$RKgpCN;}JTK4Wp^sD^6r zY*yfG8WTLlX_6%ZAy@v&{yO!f{cgK@CAvJNn)v2tqqj-@&s_V;mnNSsUCI+lEW~{| zUxm6FisrI=Vp(YTM-o_GXEjYa5LEj=UETSfET??qqz8Q4FW*SvkNV??m3N3iz>7sl zM0V%Won+Mlb^!NK&nJB1JM--_Pj>YBaMY&2G$NUV0!Eo=wHvt~O|ukk;4Yb7(i^nCQaB|L z;7pN-E_m`$bP~rOXw1qX!prT}}O^5h3nyU>eu$ zTRk3Ns)5KyPUik(`ZA)fA{6yZRhZf*CJkeldyj!XIJ}RF{i(=rKm(yL)Am++|9fJQ ztF}aqvx!+!98d*V#w*q}`fbhKiE9 zxj9+)iaCfrOU~=ljb{+nL#rM2nY~++3_Sl@bo&UV#mD67D@sLh|D#GfdW|{Bc=_&kY z=Dhgt`K(@U!zr`j1?!+ZJmuZ*!x!w8Sw`cHl?LEkvP4e9jd1X5E|r`>{v0V!XlS^) z=z0zRLnR?%X_p}tDh`{;@cDusz3tYl*xH%G5UZmEO*p z(zhQY{`fSIq}mYMp7pzqbF0DrFiu@u+N1?QlSUa&Ls7z9W~|^QzwWg_HiKekn5)i)J=fnWK)$&fHrJ~0Js5E7)*-x4ow`DRaj`=se z=fBxPpfa{y45EhTy+Vnxc=b6%aDWtaRhSb!uGWPJEp>BF&p1KmD^l3xfTdvT*hZ0^ znuO~UX3C;D#{N**2>QHZQh6&0-+ zTB_9Bv;xZFeqmK6!UKt|;L{fc?gfSt%kN<~sXI3( ziZT_!8Nb|Zzbt&hQoO|GdI9SR6nnSn29&8Zk;i5pzwV<_)=CwA-7nBn324f^_4KK| z!XRfjTm{;{W3DZSTmb9YbY)4v2?A>Q5kSBJz#2lT9o1{Nreb{*ku%p}T0X*oQx4^y zUg243b)7y{iN~`yQ-yq#_@Hw@21hjCRzsgBozZ=<=83hZaZmvPnbm{6jpz06oAj=c z2wNiFRq;QOpQ?W9#no7WvrHMb)l)EG< zo(h1bR$<+h$uWvAjO)BkGCQ03VDx ztA$1a^Yw4zgPrXC%0ztP&Ek`5AAOmAvWCW5S7%BN^Tg8PUv1K}m+ir*z4Gv1%mt{OP9ByngS_+{G9D=h6(kqi|}U&y$+cvg65!gUjlNz(c5-uJ>hbLN=gE_$f$Fic-R?W@PE1JYD3JxgpX)5JAa? zl)m=7;qLm*&6Skxf0$#1z^vkFoSyctzJsLb)PrX0=}ijy{|=#q5mSGeo^3 zPpK^pHdzU!E}{!QKuI{B&8_eEpj`QVk#qj2%Uf|~l5ui$@-0mG`U!V!A>XoYwFxCow@yvS|06#ja6 zv_y2Rg+e5lJ`V@jAx$-EoIeOSRpTQ4zqsR@{i^C67)Lpfgz=rWO)C*SX~)f2hHsC6Fm(|XC3Vqf zO6tAOuC`f1E}p>^l3>U}2+H_#8xwQ4E}i&JNie(@oWpWZLW0UN;C(`Y*L7%dlPK#A z-cgsO3-i0Jcp{-sur7SS)R9)<_Bwx_*t(gcq}5_NcDQr+E3N=EL%t#NyQcJR52~b_ zO@-Ys#;g1$5*W6|fxWC-A`!k-C>d^K{wKt^QzNeMO{>OdpZ5GmcdMJm7ZnxHEl(V1 zkLPZ)w6Q>eG_>sfe=NKvde2gx=h_ zCPGL689VmDM(fb<-YJl8ht^>Aq&-lb|Bhq1JmCDfT%iZ8?&GcyRGI7F z4Fnlmx7GYe;mB6KX3=X@Wq_r}W?(|rEF9?enu93d$!KB$Zg9Tcl22c?lC{*bGuQ#& z369@@^A^JB@5Go}Z4)jHD2cBD9s^f|9v5SHYBeBOjIAEOsJOmKUSX~L%(!RdOW34*d%?Xva9+q&}zMNguOx2+wi67no$Yb;AhlvJfM>`gNm7-}8 z>z?p_bUYx}fyamJG^rmfZ|!hJgA0!Af6NyKNFlSK>YWIS(^2!0v|!zVVr8OJH2{4L z&s~48Qt2Q}tjd9qq#AY`ydC~<^tW1ZB_VUmY5c8U9=Qre-8Ur?q5$l5Dit)Np=nZx z3Hjb@#?Zw2#`~DoaxjW>V5C>pTmF$cG4I~{?PU7py6c4Fg9j!kv1Ps*xc9#EE`yfh z{X1PzLL>s?Ke5%nynO2_IN^5hG_4Xsm9`}-xUyF4xzQujCiR+s?VuVr_xwFP<68k; zClG=C+XiO}T+k0pbMFGa)%};uj%;85gRN)zT!5M3z;{6S$%;)d0+uFG@3dD#n;8(u zR#26gLYs3cl~(&D#O8SzDAO6h_Y%oHBBe(oqQ(N_BpWtjEZKi;6xzm}F7XK~J;%FU zB@r6@f(J;&-KoSIY*v}ISB~TAZGm{iNiQ_y4m@9ebca%HU+v+6{+6Sx_1x()d7)zF z`*3IRZ~P1ABValnCLfJN{)I?e2*s%>8q>uMk(o~*ba3s;jezj>CZyG}iM-mv)n-x@ zq%;^8w-LJR-RNKTVut;Ye@oXQKVofwTqH>uB6kx-M9SJqp^@kAjgH+2IQQ{JY)7M}PzJC84#UZ1uk|&Dy#HdhZ`k`H zAia$=1<2oVL8-uEJ<;^!R06z5m!%+RcUVvmmX!ffy~}d;2BEC5c%P(4d`IXn0uvV| zhI2AvnGWzP7OljOt9HyKR%+CNY8=&esM1j64SZ^cBPR^BdqdF9RDmjjvN8*nDEZRQc%o8_~__j7x<(#ZmI9=go}{ zd05$Dve(-mJfXP$-(<8Z&Kn&vL-0I4=vwu%qH*BMU}qwaK{8!kYn`a_Tt7L%8o$rp!dfgW|_CUrj6F9j-*)lS~!Q<4w@?;@OJe!Rj28}Tmh$p>EH-Z zvQzZ>%?K9ql`}D<%K*~G2Lq!lSJ(!gD-g@TfuM`MPYfcvxwByj-2ybHOyS0KF%<6E zt}B|asuv4*{uY^u6ggz}gZ@d>paFmdfX$ES9&a*U5_)YOuUWWlc2rui-mgc$EZzt2(!J*CRO6N_%PFe#AF0UQj#&L zpGMRrydrN;NR~lE=YN%cR{Lp9ZTF*VQgQI>t7E=+ZG7udZ-07TOMXf)i6lPL>H%)dBHUo`GBJs|ti-Ys@G&FpjP zX&@5~t<$#hxC!COke##9O55VE!PFEHpjo;jbHi2w<1oM_T@r_b$0(u0zbF8$vE`#( zsU9YNm`3E;^5I+eFY!%*znAZ-N2jlC#N}j6xhjLJcb2NO1ow0QC$1gYV}aK=%-^ZwF7};}-#S zQA2QkK_7R@lw|MN%}p}&rNo>^mA5THqCUf4`JWabrOQ&yA=Tw-&UP1G3PNzl4GYoj zQZk zcucEj(A$s@R;-5Ev)Ju>AiaRUMn8gx$w(E3IN*14$*EI*bJE3X(3YQ}g$^*1Anwd3gJ%qK&Agj6G)9N4|?7QaXkXAxPFf`dk zfKQS~&=Z%xvgB|u)4u(pWJlzHJ`v>?n+M0>0kjcRDynb+QzzfIfj=RqwVvW-1z8&B zZ9Pa>P}B{2>M5S35@$Sz%lD?W1#K|SZ|?<$-~_spFYq#3lDYn1H(#o&=x&G}V~FVU zcXnp}V21YqGVe)eW#!jF*?8?V!6oY1$JKP$ zCDSI!uU0FRGYxYT6xm~gwdTEyOOEbjOKKX*L-{7ZQhdHtzD9*8+-uyYO}&(_(xBl; zZW*rWCS+^ju3SO|%mCk|QKl;+^_gY=pnMMvO?4_?pC4XIQ|YV2$YPXwuC1+u^b7GV zQ6+W3`px?7AI)FyPk;!3hMIq((3%i|dBJh<3m20J`2&ra$)RS&z~`UQp$t|)uSEc( zApb0oJ-8;bWKNoGIifxqAw!VQQyt-X`K_-51N~uoxM@|~E(CAWQu(AO zD}Ytw?U(ETKtfHQWKW9B-XBOVI?FwMiGZ*6()3KZ$ZXH;jb~>0Wl>Sd>Pb8g1Y->A zX~SqmJkK>b<({iaj`@T6v@nu!OJ zpN%FzB`HRylD{H@xI|!=JY?Lcb>qbY6HkG7(?I zf=;lkJ+C?u16N^lWk7uHEbs2e&R4Ix%QnCev= z0_!*?1BV{GRozldS(tifqU3+UK>^q{^NwBT-G@t96f+}3lU--wPSW5d4xf;%7#(U^Se2MCadKkRE(M{HHl3weONyDR+;mW_v0xP zM?F-8otEs=sb9q4D3#V;OxcS?F#*aNyhT_psY#|M&Z{Xc5U_(uE!$x5WE>SH&At(@ zg*Z0nUSbQ?peBATmxLrpOtxCLcYwry>B$2@Dga`GJvW;UQf9;Jfa0d`p7x#O<#Ss4 z2t&MtAo=GuPN0Jocu)G6Ix>KIPj>H6%$1J8vBol%<#>>?s%rU5Zu^UwaobhiLme zn&*w&m=!MS7P~`B*g+)E%(E7FQ)^A0ljUpK0eY@?>u@Mir!UFe1&(?q)TL92&SQI` z6ZB2yYnN8%qDYdJx_78`VVI?(^&oPn$gwuV)deVsu9;9nSn*ODmD&fW8aEyW)cC|a zcRF^Xj$fcpprxj#h%($X{*nb~$lm6NxoHdnfs}9*6(n$4%yldP!73G6z!o0eXE|<; z;@?LJwXrNHB&17x@Qd}H^q03a4op%{9Jbv+c+=|qext4-eN+|-<^v1(M2wCah!O?1 z7BaW=G*Y%NlPT*U)N@ksjw+$}9|Zxn{4e%&*0e8S`Evtv9!MbDKK3w$v$4zx;NU-6 z-2Xs*(^bKQ3<&$8NaXzcr6-T~Mcu5wOq^#$;y@XA4U*eSg9Q^Pe0pd)OasMnV0t^D zf5NPQS-1SA(cO&PT|_t+i@CfRxud$>gnEcr6W>y6%O>01&QiSv&dKoj#kd&!bxwH~ z`F0_G%VktaSZ8YA3%bxxEwi+TzZk9fzZ^j^{S`Snd~j46?n@Xo1`~JDy{G3QXX7nQ z?@3=hmfL*eh^qH~rOo%gwCNH7zC$qXKqj`Mjo1|2kjr=?z!k)+zecuybJP~Xs_mmE znX%$zvTUe?p;wDSj#hQi?xvcBdW#C5l0 z4nXwSmnFF1%g?t|O7V(0DWn8?J%}63tG%%(sa54_%#No`ofSBJyDg z;GG=AlyP>Hf7r@YwK5%U z8qfdSWEZRpWS{h`ODE=*P8Z&V!XPKc6YHie=K`M&j*qxgeDK3OLT1T9Uo(up8`dR>Q5%azK z#ne|uDnKlzi8FZaYS;=S6AAox{M})RCAY@c#TXQo zjyGF)RDwId)E0R2+0MQwjyS34ebjL=lClA}nwqpHfbqzW)_udNtnw;B1?=rupnWJY zH5R|rMPtWghVfRweTb8&h-1B_0HKD{dpD>9#(Fw07|Ymm-A)kggsC#V%uYq4XHW@JCh9 z=EJKCZky>TT%`x@m2eA+FkZ_l8RKP_xN%n|Ky59WU+(&}fk7RmKxFm!VCw3)$(P_Z zy%oK{98}yl;YI9(3DwrZyC!jpe~Pu0YaQ6ke~SptxY8D6@f<dhm*B4=g&AQS|e53MU1l;qLxkaPR3^>w!?D6Hk5Vr#nPHgc(YV)>)st3 zmtiO=uAgIunIk1Gs1t1!RaI`+IhvBUy&UgB+pXH)+t_W2#tDI2rJrF5Rtl96hj!OrE%fG;0Wccy_vWs&ot_{UpvK>Kq}R5Snwb7pESSyh;n z#q??cko#rwuWr`?ku2IKHdeKFHI5TzM4m#JHj`!Z*_2pG8eI>TZ@2rK z*SQ$jz$u9N$PKH}V_9w>&ELnGtpo%BWBj8D**8eyeUpzIrrgh_A7oZaAg%uyC?P>s ziTFfKchv7rw08-C6a{Q?%>@o{%|9N5XAeDsPgl7Tq&i7ve0*X25o_3oz5ZHABhLp( zAj=5Vy#QEy@A|w31%4j>W(!bz0>(G=ZVr#8Hw&@o@>g>>Kd@&A#FO1jB>BlQDfE$I zz7y@%IU|nH*2@pqR!fB!ae`3UfF9w*Nw+sl*qiuR>n%RLf*t@aFoz=YeVtpwUL z&DUqa)m`-8mZScnL!-X=x~pmrP>P}RE-|s{?-2W&(rP)yp@iw-w~6z4xV(beR#WHg zTbR%%3C4sQ|F7%{*YOjFG_A}^&G5!W$nZ<1o|uf}O(r5{hZy~mSqI-h5Tl}?m4IPOs!i3Q7%Ds8ss$(Zbx+YUH>xwW$`|^K@k*kFx#2$v)5&5)#P3l_len$VXQhd@ zN@n=ZECI_k+?pdP3&1CNie8K3S8u^SSx-kztH9AJcY3hK>ThaLA=K%XmzyeE+Tx_5y8U2dYOIt{`nBQqI}=Hq?1gaZyZdHeL%3y#7KQ+S>=}L2D2( z;|(YYs@Qx0g&!Xe-!zLhAARXos-MYTE#9Y>DzZW(7FL^V z5>*y*yS8NL*l+Edb%HLn=Uv!P{1$VF0B;MZYYW1aN`rw5mX=;W=_m!ucRNZ3}sT0j@ z7?WN?OXWlD?0oyg-4|O7l^Xo{9Bkl+%o?q$m0o{qJ}pBucSBK%vX+r~^)tf%O3+OA z-gR%X@BJ?cBJiXHKe_I2rTDtpfAkVM%J#(#0y8iLg(*T*QHNdKi~%26DkbSFc+I>T zTx|_arv9~#RU?JE6-BWS!Jyr1;Yf6DwP?8_g{WY^AwQEG&V7ZiL0vF+7b_nlThXd} zkv{L3I-&vS7?qUZCjScWXEeJ=-O2eQN_tX^stPdMv|8rpv&hV`w=q#EWb#=K=n=hd zs4CD~KKw&E9MP|*qoJ?mU+5%5YiNRN%?!`S3+lBn;0D#_g7{(;N_DZ{fLW|L zIwMbm?kF@2h;=Ao6S97yW@FVs4NL=-667@wglj|Jv-6E)M%1Iy03@|FBs7GJKaKD_ zM>alsyaNRAjEqnML(C72@uqLBzv*@ks;zIAJ^cB7|7?2pt@n2Wu7Rl@F;XJW3k`*B zBu2XDuhFH9#Pf`QM(poHWmkx-YE1OU_9sGeKn&lT%M+FT`1HaABV z-XE8zNKj2W+X8m!pXzTFQ&#K@hV$ZcZmmE_SOrAEIlXKO0r#1Sn=0r>q9Pf?gE~4} zd3eGhkfz1)A^Lm_HXC&!3gjJkE)pbe8gJY1*|^CB@u@Th7(WtyA)>kjK%9HJGpNHF zsLZ?{cca+=3pPF%1tkZ8n)19%(VOk<15sWQ&bOMN?=VFTBTkbMdAZ#JK)p=tZ!BV zR?YW8>vMa4b9T8L*}v>-p%*U-7w`Czo$WSyvhAc(l4SbnPP^mTUAv(_Z&~vI!|Q?u zAD}Ef7lcFzBIG4GXB{8 zWloe3KYIY0vr@M$@?~Y=A^wn?`_0hh<{@ffT;X{fEtis){PSeFzIH~LiO&6yoZLeU zu&dVr$^Hwz0r)28#n>_^Xl3S@pu1d%pw@5EJIU?o;iQcU#c#}@1te}*7oel40tg99 zMnSZg0N!6F2TlK-T++M#)EE0Thf3tDk5%Ipxp`Rz9KgUioKLMDcu;_ayg#Vp1?qK; zqAq&>58@@xIKbxo{MPF}M#ERBOg;w3Uszsm%FK3xP8!tJRr1i|$qw`-T_1L|3pTqe z@e6tbPVHy&tjymI#pp35<<6{Qos2pX(i{=?tiG|LUBBm9&<{103EeMUqlmw^`+;BH zoRR)BRwMIbNC^p-nAoqqdx|+F^;o)nnp>&8hxWdQ-=*g@fnL({e~dri*#wCKVJZS@ zA6DXAf18Fhqu2LC9hXCwy{SAgQWN0L7s7bP>+);_=Z+BsI1J$Mo)4@f!9oQ2S`%jC zE&X7s^69pJ|9whH+>}*24C%6i983ysKZe7+GGi7`Z-n1sey?qX{qh zmqk(vS~&^|uX0{$hzh?@QGG0{qRLP1fv>38_lfhM79QTglM_WO;g!y7u6t6KIm~nK z0EUO@wOrZNri`{~3?HA-18}P{)8n>K7*~A`PT0%+YxQfFrIra8S0z4AWdn?; zi2m|Y+7lZ8%p{z5!_9Fl^s%A}QUdxE{`n3J>&&PrAxn4!1>t4fo@ijG{qqJ?YN?cA zuqhW?qfe7S?5613-!KM%&$!mBK%u!`-Ec6IRSOQ66#hj+Fo1Z-HCJRX*{7FV63-vHQu(aG_JVj_2K5&WRK1C!_ zZEbIOwZQ%zl=Nf#yJwZc>0{4v?tR2qXKr{4No5dSiZ7Y=K?sf4Osr3-k8Gf=3q|j~ zZ2$%av~aMp&=-jz{BK}^=ZCfM;FFlS)%FUp{V0YMm()rsD~?Bd!3NO$*;ZARc}C!b z2a!Br$zuu}>}i?H)^S4(CxPHCjr&5^6UHsLVtGh>|263o`*MEr(~ioO-7fdy8S`J6vL9u29&?!Q8w4(IE&VAR0f${IIlR!_j zl7qyph=GjI(xiuDZp=~ntao7ivuD*nnaEHLz1V-ML!VYA!F_$@jsy=%h8N0EhOkg> zXC;&FaU2k679*E3j2NTOJMj5?5xRRt>w85%WZo*XkO9gyn`{RzgP=_fa~v-vP>lZr zrOn=q@RgymVuegr!lbtnR-@H~p=YZOC@pSjj493>MFQ<1Z*0Cs;QIet-B76|Fo7MC zIf_<%i{R?iv?Pj3!RZTeilJWycD>bbJ6;^eW<8;amKJy*h?90Wx(lVAgNi4Sv$MSx z0@#4Q(klT%u{jzL2{?m1R^+|WNj?yee%^$pgnu>uk$+!Hqo2oUdu2mr&}Reb&YfSJ z?=KxKGfsm7`>~9oRLt2o_Hi!wAWVKpi2aWs<5gnuR~pG%i-;9(*k4(Yq!G?JmmMz$ zw(hfNn2_P5QPV`1*_c&mD!BLouZi`Ro%Ja%pSQU8A4hKnjvnhUI6WnH$ctWi4eBV? z5XcUaE{WwJT-2-O*6L<=tqT-H=4Vw1$L^y^42Te|34x-GCNlsyog+B#7|gibjs63) zd%pGgKTU#?N2%arr=f4Izy-zDD7h`Q{r~kt#aahkDwiLz;1i~9bFb)kIp^3#x-%Et zy-~Awk-PmDG+jKe8!$PH`sWMmf`Fg^RPgB5)aTziF7|SKUjw+tW~WQzRoaxT%&di0 z;A}mNU!jnMkJA}H>snquHgEzl+QIR(6-2hg!Z5(s|JUzcRMRO*Nhym8kg~n0UnOw@ zX>iC(bO9Y_3Sb-vSbc3P`UJj)ZC*^|L)=x6pWYy%7SNv=njMV?ksP!^mX@l`x zM5h)gwKB5BJ5bPVfP*Kfd<8<+WYb2jh&VG?%= zVB}jHZ;}rHJk3{wB)%49C4KnUf9Fmd$fY!hk7V^H#!Q4jJwkPk*752*^GiUpu-t1F zhB2B%tZRxl9v`pY@*9i%ZIy?m1*E*1D zI_}9$8!YO)mo$~v3&0yDmg=c+5R4UKH-n{5Y~=r&D*%`e4}x&GA`A9;4W5)ia2+V` z8*{7gdP<>fs@rkzEa8V!=JsR(q1l*&aq3JIMmwStPHeJWvM9Dcf~2A$V(PT$02PNs zB$ZSXDKhPBDtyzM40v%~<1A9H`)?2!YZ}#RE?*UH_Dxc_RM9$cu9cVX_RYeiJ={-! zoG#ZUMI0R^x%Zt`*!CjDYYXP4_7Kubp0^0BHl*%U5cd8!3#^K;pzMB4_c66kVn@J5 z=UBhR;j}}(ZaKK4yv#{e_-y3Dj^YefeHhKlT}MAW6A{8`I8COiSNq`x?YKecl-%I~ zEQqqK$CM0NRxa|LEI9c9T%YBF?qgJOrKB{N1m)`x7t}uvDA@VoEh*n%KU%0>zc(15 zW_9*_?8gsp2CmiOqRRIdk&|tvvVtE6Q8I(C-Hksqm1l9`U@h!Uwq=qXroKORucaB* zJ%agX3{$ule3(u8Vc|Bnk&&pJ+7-L`^)R3;N#NHin;m_q$JSBy3zl*g^ddHCJd(S% zJi?>J<(RO2M0ej?Wy~9Ia~ErDc1+FY-H(gC9E@F0qvLk2===%p7ZVF*L(N;&Vcqh? z`q!-}A>@YxJ=Hn%5&Q?iii?>H2qPoVtg_!kZZmCRntM0sd?MLgiN>0R-&nBG|TRu`||H{Qx`h!yJkty@#2vb zPqf&GwcOlq@FFX)fRW$k*A*In{5UMnxAXLdlFix`)vhRoY5ALJBnS<%*q8TjM%HvsqnPH+0xF=z^K8P{-)!c=k;%Kg!wghE+If zcUKl|?O7@xM#6acD2I#ASESjtEh%gAt<+Z(R%a;BMc+ADxhNXWgwc%3=Vxn>dqiiB z)E=A{WNWAjKbs+Q5T4&N7DIsA{oMYove|roy0Xi6zVf28>1<_>GqwKhP7~$eUh=Zd z^0LvwsadTC4_Aws>TRpzcx{1PCr5kLt*vq0UnO=;WDQFu9B=5LpO_3d|DbC84xbsy&+>;jnA771Up)W2^fP;H#^ze^LL*>%C zsa%La$CNZafxQF}qy-mM0rU)m-+z7xpUz@n30?fkva5|!5%n;gNJG2*3J#G4*K?h= ztN{b?j>eR?BMA`%Q9y{wwG12R(0yM)+rCs?*Y3+SP5YBu4n}Zd_y*2L6f$4Ju6P6=k}@1out#e*K&D!f8T>==uYH zr0>HXS3b(&qTjxNlPAITJOSy8FJuJ?!=p>N8qdDOihkF{Aq$F5lM)w2*ps{*%V$eo z`Vm)cB?`Ids^+hf#rPIyT z?h6OcyO!OkTi(a$Op|^Hend`kW!6fNUqjsZ!7k4**1MG(y%&!%3bP zeIb?8J5Nsb^p@bn3B6ql?Y=~W`~4;zuS3LPbVx+S-f4&NyhFC)YFXsAm1*Rbo?f-cp!EM@lH-*z};G`Zgyq z_eY`wRiV0$c8TNF3qrTdn_8@yD0J^0I4LBky`893cP)hk$(I+s|7t{R>*Zo(e&@n;V$S= zJ;^>ykF3Q1IJ^9=7(gu3R+c&@^_TO4o7R%lA7B{vJzF9Sa7}sBdRDFaukXVCh>364 zp3a_*SUI`bI30FJDWZ@t;{l6SqylaHzpf+sy$cT4#o#ghs|pJnXZ9g(pR|iKO{^$N zL1W3k-4zb*(~V2&z&9d?jVBGHPB&E|8m@EAuT#;v2ktY4S_-V6X!nQwHCDhw2RudR zBG$+B-8ENNqG|Y8^=w5|ypWX?G{%KbV@?xdWzwrt`{4h1y?)Ut0+&tII*nvmnZ=LW z{r(0r$z(4jPDh!RT31g27GlKjStWnp40j2;y^oQSopjq1tjZ;)QM^@bLD_k7RJ(46 zX^hAE?DoWbOvh37|5}Yu(qAmL5`-7sqyNi(e0c7v&uMJ>vT;S6c;h*KaDnFOY|@+% z7i9hs&A;FA3E{MSm@uSar;91%wi#bt$YF|nPTTdixgSe1>l)vhjRV$a)6YbvS;n!! z{P%Ynn>ObhaXXE6kJ$9w%`16XE~hkauP*p@Hzw;1N2p9)<6m~pULe7)-cLrw=*7e& z&EgyXWRo&>(<-O`Ugg~h|D)~z literal 0 HcmV?d00001 diff --git a/web_db/www/.tmp/public/js/LineChart.js b/web_db/www/.tmp/public/js/LineChart.js new file mode 100644 index 0000000..c419f92 --- /dev/null +++ b/web_db/www/.tmp/public/js/LineChart.js @@ -0,0 +1,3204 @@ +var __extends = (this && this.__extends) || function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +}; +var n3Charts; +(function (n3Charts) { + var svg; + (function (svg) { + 'use strict'; + function twoSpeedAxis() { + var d3_arraySlice = [].slice; + var d3_array = function (list) { return d3_arraySlice.call(list); }; + var d3_svg_axisDefaultOrient = 'bottom', d3_svg_axisOrients = { top: 1, right: 1, bottom: 1, left: 1 }; + function d3_svg_axisX(selection, x0, x1) { + selection.attr('transform', function (d) { + var v0 = x0(d.value); + return 'translate(' + (isFinite(v0) ? v0 : x1(d.value)) + ',0)'; + }); + } + function d3_svg_axisY(selection, y0, y1) { + selection.attr('transform', function (d) { + var v0 = y0(d.value); + return 'translate(0,' + (isFinite(v0) ? v0 : y1(d.value)) + ')'; + }); + } + function d3_scaleExtent(domain) { + var start = domain[0], stop = domain[domain.length - 1]; + return start < stop ? [start, stop] : [stop, start]; + } + function d3_scaleRange(scale) { + return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range()); + } + var scale = d3.scale.linear(), orient = d3_svg_axisDefaultOrient, outerTickSize = 6, innerTickSize = 24, tickPadding = -6, minorInnerTickSize = 0, minorTickPadding = 5, ticks = null, tickValues = null, tickFormat_; + var tickGenerator = function (ticks, selector, scale0, scale1, g) { + var isMajor = selector === 'major'; + var tickSize = isMajor ? innerTickSize : minorInnerTickSize; + var padding = isMajor ? tickPadding : minorTickPadding; + var tick = g.selectAll('.tick.' + selector).data(ticks, function (d) { return scale1(d.value); }); + var tickEnter = tick.enter().insert('g', '.domain').attr('class', 'tick ' + selector).style('opacity', 1e-6); + // d3.transition interface isn't suppose to take any arguments + // WELL GOOD THING THERE'S A D.TS FILE + var tickExit = d3.transition(tick.exit()).style('opacity', 1e-6).remove(); + var tickUpdate = d3.transition(tick.order()).style('opacity', 1); + var tickSpacing = Math.max(tickSize, 0) + padding; + var tickTransform; + // Domain. + var range = d3_scaleRange(scale1); + var path = g.selectAll('.domain').data([0]); + var pathUpdate = (path.enter().append('path').attr('class', 'domain'), path.transition()); + tickEnter.append('line'); + tickEnter.append('text'); + var lineEnter = tickEnter.select('line'); + var lineUpdate = tickUpdate.select('line'); + var text = tick.select('text').text(function (d, i) { return tickFormat_ ? tickFormat_(d, i) : d.label; }); + var textEnter = tickEnter.select('text'); + var textUpdate = tickUpdate.select('text'); + var sign = orient === 'top' || orient === 'left' ? -1 : 1; + var x1, x2, y1, y2; + if (orient === 'bottom' || orient === 'top') { + tickTransform = d3_svg_axisX, x1 = 'x', y1 = 'y', x2 = 'x2', y2 = 'y2'; + text.attr({ + 'dy': sign < 0 ? '0em' : '.8em', + 'dx': '5px' + }).style('text-anchor', 'left'); + pathUpdate.attr('d', 'M' + range[0] + ',' + sign * outerTickSize + 'V0H' + range[1] + 'V' + sign * outerTickSize); + } + else { + tickTransform = d3_svg_axisY, x1 = 'y', y1 = 'x', x2 = 'y2', y2 = 'x2'; + text.attr({ + 'dy': '.32em', + 'dx': sign < 0 ? -tickSpacing + 'px' : tickSpacing + 'px' + }).style('text-anchor', sign < 0 ? 'end' : 'start'); + pathUpdate.attr('d', 'M' + sign * outerTickSize + ',' + range[0] + 'H0V' + range[1] + 'H' + sign * outerTickSize); + } + lineEnter.attr(y2, sign * tickSize); + textEnter.attr(y1, sign * tickSpacing); + lineUpdate.attr(x2, 0).attr(y2, sign * tickSize); + textUpdate.attr(x1, 0).attr(y1, sign * tickSpacing); + tickExit.call(tickTransform, scale1, scale0); + tickEnter.call(tickTransform, scale0, scale1); + tickUpdate.call(tickTransform, scale1, scale1); + }; + var axis = function (g) { + g.each(function () { + var g = d3.select(this); + // Stash a snapshot of the new scale, and retrieve the old snapshot. + var scale0 = this.__chart__ || scale; + var scale1 = this.__chart__ = scale.copy(); + // Ticks, or domain values for ordinal scales. + var _a = ticks(scale1.domain()), major = _a.major, minor = _a.minor; + tickGenerator(major, 'major', scale0, scale1, g); + tickGenerator(minor, 'minor', scale0, scale1, g); + }); + }; + axis.scale = function (x) { + if (!arguments.length) { + return scale; + } + scale = x; + return axis; + }; + axis.orient = function (x) { + if (!arguments.length) { + return orient; + } + orient = x in d3_svg_axisOrients ? x + '' : d3_svg_axisDefaultOrient; + return axis; + }; + axis.ticks = function (x) { + if (!arguments.length) { + return ticks; + } + ticks = x; + return axis; + }; + axis.tickValues = function (x) { + if (!arguments.length) { + return tickValues; + } + tickValues = x; + return axis; + }; + axis.tickFormat = function (x) { + if (!arguments.length) { + return tickFormat_; + } + tickFormat_ = x; + return axis; + }; + axis.tickSize = function (x) { + var n = arguments.length; + if (!n) { + return innerTickSize; + } + innerTickSize = +x; + outerTickSize = +arguments[n - 1]; + minorInnerTickSize = +x; + return axis; + }; + axis.innerTickSize = function (x) { + if (!arguments.length) { + return innerTickSize; + } + innerTickSize = +x; + return axis; + }; + axis.outerTickSize = function (x) { + if (!arguments.length) { + return outerTickSize; + } + outerTickSize = +x; + return axis; + }; + axis.tickPadding = function (x) { + if (!arguments.length) { + return tickPadding; + } + tickPadding = +x; + return axis; + }; + return axis; + } + svg.twoSpeedAxis = twoSpeedAxis; + ; + })(svg = n3Charts.svg || (n3Charts.svg = {})); +})(n3Charts || (n3Charts = {})); +/// +var n3Charts; +(function (n3Charts) { + var Options; + (function (Options) { + 'use strict'; + var SymbolOptions = (function () { + function SymbolOptions(js) { + if (js === void 0) { js = {}; } + this.parse(js); + } + SymbolOptions.prototype.parse = function (js) { + if (!SymbolOptions.isValidType(js.type)) { + throw new Error("Unknown type for symbol: " + js.type); + } + this.type = Options.Options.getString(js.type); + this.value = Options.Options.getNumber(js.value, 0); + this.color = Options.Options.getString(js.color, 'lightgrey'); + this.axis = Options.Options.getString(js.axis, 'y'); + this.id = Options.Options.getString(js.id, n3Charts.Utils.UUID.generate()); + }; + SymbolOptions.isValidType = function (type) { + return d3.values(SymbolOptions.TYPE).indexOf(type) !== -1; + }; + SymbolOptions.TYPE = { + HLINE: 'hline', + VLINE: 'vline' + }; + return SymbolOptions; + }()); + Options.SymbolOptions = SymbolOptions; + })(Options = n3Charts.Options || (n3Charts.Options = {})); +})(n3Charts || (n3Charts = {})); +var n3Charts; +(function (n3Charts) { + var Options; + (function (Options) { + 'use strict'; + var SeriesOptions = (function () { + function SeriesOptions(js) { + if (js === void 0) { js = {}; } + this.axis = 'y'; + this.type = ['line']; + this.visible = true; + this.defined = function (v) { return true; }; + var options = this.sanitizeOptions(js); + this.id = options.id || n3Charts.Utils.UUID.generate(); + this.axis = options.axis; + this.interpolation = options.interpolation; + this.dataset = options.dataset; + this.key = options.key; + this.color = options.color; + this.visible = options.visible; + this.label = options.label || options.id; + if (options.defined) { + this.defined = options.defined; + } + if (options.type.length > 0) { + this.type = this.sanitizeType(options.type); + } + } + /** + * Make sure that the options have proper types, + * and convert raw js to typed variables + */ + SeriesOptions.prototype.sanitizeOptions = function (js) { + var options = n3Charts.Utils.ObjectUtils.extend(this, js); + options.axis = this.sanitizeAxis(options.axis); + options.interpolation = this.sanitizeInterpolation(options.interpolation); + options.id = Options.Options.getString(options.id); + options.type = Options.Options.getArray(options.type); + options.dataset = Options.Options.getString(options.dataset); + options.key = this.sanitizeKeys(options.key); + options.color = Options.Options.getString(options.color); + options.label = Options.Options.getString(options.label); + options.visible = Options.Options.getBoolean(options.visible); + options.defined = Options.Options.getFunction(options.defined); + return options; + }; + SeriesOptions.prototype.sanitizeInterpolation = function (js) { + if (!js) { + return { mode: 'linear', tension: 0.7 }; + } + return { + mode: Options.Options.getString(js.mode, 'linear'), + tension: Options.Options.getNumber(js.tension, 0.7) + }; + }; + SeriesOptions.prototype.sanitizeKeys = function (js) { + if (!js) { + return { y1: undefined }; + } + if (typeof js === 'string') { + return { y1: Options.Options.getString(js) }; + } + return { + y0: Options.Options.getString(js.y0), + y1: Options.Options.getString(js.y1) + }; + }; + /** + * Return the toggeled visibility without modifying + * the visibility property itself + */ + SeriesOptions.prototype.getToggledVisibility = function () { + return !this.visible; + }; + /** + * Return an array of valid types + */ + SeriesOptions.prototype.sanitizeType = function (types) { + return types.filter(function (type) { + if (!SeriesOptions.isValidType(type)) { + console.warn('Unknow series type : ' + type); + return false; + } + return true; + }); + }; + /** + * Return a valid axis key + */ + SeriesOptions.prototype.sanitizeAxis = function (axis) { + if (['y', 'y2'].indexOf(axis) === -1) { + throw TypeError(axis + ' is not a valid series option for axis.'); + } + return axis; + }; + /** + * Returns true if the series has a type column. + * Series of type column need special treatment, + * because x values are usually offset + */ + SeriesOptions.prototype.isAColumn = function () { + return this.hasType(SeriesOptions.TYPE.COLUMN); + }; + SeriesOptions.prototype.isDashed = function () { + return this.type.indexOf(SeriesOptions.TYPE.DASHED_LINE) !== -1; + }; + /** + * Returns true if the series has a type *type*, + * where type should be a value of SeriesOptions.TYPE + */ + SeriesOptions.prototype.hasType = function (type) { + if (type === SeriesOptions.TYPE.LINE) { + return (this.type.indexOf(type) !== -1 || this.type.indexOf(SeriesOptions.TYPE.DASHED_LINE) !== -1); + } + return this.type.indexOf(type) !== -1; + }; + SeriesOptions.prototype.hasTwoKeys = function () { + return this.key.y0 !== undefined; + }; + /** + * Returns true if the type *type* is a valid type + */ + SeriesOptions.isValidType = function (type) { + return d3.values(SeriesOptions.TYPE).indexOf(type) !== -1; + }; + SeriesOptions.TYPE = { + DOT: 'dot', + LINE: 'line', + DASHED_LINE: 'dashed-line', + AREA: 'area', + COLUMN: 'column' + }; + return SeriesOptions; + }()); + Options.SeriesOptions = SeriesOptions; + })(Options = n3Charts.Options || (n3Charts.Options = {})); +})(n3Charts || (n3Charts = {})); +var n3Charts; +(function (n3Charts) { + var Options; + (function (Options) { + 'use strict'; + var AxisOptions = (function () { + function AxisOptions(js) { + if (js === void 0) { js = {}; } + this.includeZero = false; + this.type = 'linear'; + this.key = 'x'; + this.padding = { min: 0, max: 0 }; + this.ticksShift = { + x: 0, + y: 0 + }; + this.parse(js); + } + AxisOptions.prototype.parse = function (js) { + this.type = Options.Options.getString(js.type, 'linear'); + this.key = js.key; + this.padding = Options.Options.getObject(js.padding || {}, this.padding); + this.includeZero = Options.Options.getBoolean(js.includeZero, false); + this.tickFormat = Options.Options.getFunction(js.tickFormat); + this.ticks = js.ticks; + if (js.ticksShift) { + this.ticksShift = { + x: Options.Options.getNumber(js.ticksShift.x, 0), + y: Options.Options.getNumber(js.ticksShift.y, 0) + }; + } + if (this.type === AxisOptions.TYPE.LINEAR) { + this.min = Options.Options.getNumber(js.min, undefined); + this.max = Options.Options.getNumber(js.max, undefined); + } + else if (this.type === AxisOptions.TYPE.DATE) { + this.min = Options.Options.getDate(js.min, undefined); + this.max = Options.Options.getDate(js.max, undefined); + } + }; + AxisOptions.isValidSide = function (side) { + return d3.values(AxisOptions.SIDE).indexOf(side) !== -1; + }; + AxisOptions.prototype.hasDynamicTicks = function () { + return this.ticks instanceof Function; + }; + AxisOptions.prototype.configure = function (axis) { + axis.tickFormat(this.tickFormat); + if (this.ticks instanceof Array) { + axis.tickValues(this.ticks); + } + else if (typeof this.ticks === 'number') { + axis.ticks(this.ticks); + } + else if (this.ticks instanceof Function) { + axis.ticks(this.ticks); + } + return axis; + }; + AxisOptions.SIDE = { + X: 'x', + X2: 'x2', + Y: 'y', + Y2: 'y2' + }; + AxisOptions.TYPE = { + LINEAR: 'linear', + DATE: 'date', + LOG: 'log' + }; + return AxisOptions; + }()); + Options.AxisOptions = AxisOptions; + })(Options = n3Charts.Options || (n3Charts.Options = {})); +})(n3Charts || (n3Charts = {})); +var n3Charts; +(function (n3Charts) { + var Options; + (function (Options) { + 'use strict'; + var Dimensions = (function () { + function Dimensions() { + this.width = 600; + this.height = 200; + this.innerWidth = 560; + this.innerHeight = 160; + this.margin = Dimensions.getDefaultMargins(); + } + Dimensions.getDefaultMargins = function () { + return { + top: 0, + left: 40, + bottom: 40, + right: 40 + }; + }; + Dimensions.prototype.updateMargins = function (options) { + var _this = this; + if (!options || !options.margin) { + return; + } + var fn = function (prop) { return _this.margin[prop] = Options.Options.getNumber(options.margin[prop], _this.margin[prop]); }; + fn('top'); + fn('bottom'); + fn('left'); + fn('right'); + }; + Dimensions.prototype.getDimensionByProperty = function (element, propertyName) { + var style = window.getComputedStyle(element, null); + return +style.getPropertyValue(propertyName).replace(/px$/, ''); + }; + Dimensions.prototype.fromParentElement = function (parent) { + if (!parent) { + return; + } + // Oooooh I hate doing this. + var hPadding = this.getDimensionByProperty(parent, 'padding-left') + this.getDimensionByProperty(parent, 'padding-right'); + var vPadding = this.getDimensionByProperty(parent, 'padding-top') + this.getDimensionByProperty(parent, 'padding-bottom'); + this.width = parent.clientWidth - hPadding; + this.height = parent.clientHeight - vPadding; + this.innerHeight = this.height - this.margin.top - this.margin.bottom; + this.innerWidth = this.width - this.margin.left - this.margin.right; + }; + return Dimensions; + }()); + Options.Dimensions = Dimensions; + })(Options = n3Charts.Options || (n3Charts.Options = {})); +})(n3Charts || (n3Charts = {})); +var n3Charts; +(function (n3Charts) { + var Options; + (function (Options_1) { + 'use strict'; + ; + var Options = (function () { + function Options(js) { + this.doubleClickEnabled = true; + this.series = []; + this.symbols = []; + this.pan = { + x: function () { return undefined; }, + x2: function () { return undefined; }, + y: function () { return undefined; }, + y2: function () { return undefined; } + }; + this.zoom = { + x: false, + y: false + }; + this.axes = { + x: {}, + y: {} + }; + this.margin = Options_1.Dimensions.getDefaultMargins(); + this.grid = { + x: false, + y: true + }; + var options = n3Charts.Utils.ObjectUtils.extend(this, js); + this.margin = this.sanitizeMargin(Options.getObject(options.margin, this.margin)); + this.series = this.sanitizeSeries(Options.getArray(options.series)); + this.symbols = this.sanitizeSymbols(Options.getArray(options.symbols)); + this.axes = this.sanitizeAxes(Options.getObject(options.axes, this.axes)); + this.grid = this.sanitizeTwoAxesOptions(options.grid, this.grid); + this.pan = this.sanitizePanOptions(options.pan, this.pan); + this.zoom = this.sanitizeTwoAxesOptions(options.zoom, this.zoom); + this.tooltipHook = Options.getFunction(options.tooltipHook); + this.doubleClickEnabled = Options.getBoolean(options.doubleClickEnabled, false); + } + Options.prototype.sanitizeMargin = function (margin) { + return { + top: Options.getNumber(margin.top, 0), + left: Options.getNumber(margin.left, 0), + bottom: Options.getNumber(margin.bottom, 0), + right: Options.getNumber(margin.right, 0) + }; + }; + Options.prototype.sanitizeSeries = function (series) { + return (series).map(function (s) { return new Options_1.SeriesOptions(s); }); + }; + Options.prototype.sanitizeSymbols = function (symbols) { + return (symbols).map(function (s) { return new Options_1.SymbolOptions(s); }); + }; + Options.prototype.sanitizeTwoAxesOptions = function (object, def) { + return { + x: Options.getBoolean(object.x, def.x), + y: Options.getBoolean(object.y, def.y) + }; + }; + Options.prototype.sanitizePanOptions = function (object, def) { + return { + x: this.sanitizePanOption(object.x), + x2: this.sanitizePanOption(object.x2), + y: this.sanitizePanOption(object.y), + y2: this.sanitizePanOption(object.y2) + }; + }; + Options.prototype.sanitizePanOption = function (option) { + if (option === undefined) { + return function (domain) { return undefined; }; + } + else if (n3Charts.Utils.ObjectUtils.isBoolean(option)) { + if (option) { + return function (domain) { return domain; }; + } + else { + return function (domain) { return undefined; }; + } + } + else if (n3Charts.Utils.ObjectUtils.isFunction(option)) { + return option; + } + else { + throw new Error('Pan option should either be a Boolean or a function. Please RTFM.'); + } + }; + Options.prototype.sanitizeAxes = function (axes) { + // Map object keys and return a new object + return Object.keys(axes).reduce(function (prev, key) { + prev[key] = new Options_1.AxisOptions(axes[key]); + return prev; + }, {}); + }; + Options.prototype.getAbsKey = function () { + if (!this.axes[Options_1.AxisOptions.SIDE.X]) { + throw new TypeError('Cannot find abs key : ' + Options_1.AxisOptions.SIDE.X); + } + return this.axes[Options_1.AxisOptions.SIDE.X].key; + }; + Options.prototype.getVisibleDatasets = function () { + var datasets = []; + this.series.forEach(function (series) { + if (series.visible) { + if (datasets.indexOf(series.dataset) === -1) { + datasets.push(series.dataset); + } + } + }); + return datasets; + }; + Options.prototype.getVisibleSeriesBySide = function (side) { + return this.series.filter(function (s) { return s.visible && s.axis === side; }); + }; + Options.prototype.getSeriesAndDatasetBySide = function (side) { + if (!Options_1.AxisOptions.isValidSide(side)) { + throw new TypeError('Cannot get axis side : ' + side); + } + if (side === Options_1.AxisOptions.SIDE.Y2 && !this.axes[side]) { + side = Options_1.AxisOptions.SIDE.Y; + } + var datasetsForSide = []; + var seriesForDataset = {}; + this.series.forEach(function (series) { + if (series.visible && series.axis === side) { + datasetsForSide.push(series.dataset); + if (!seriesForDataset[series.dataset]) { + seriesForDataset[series.dataset] = []; + } + seriesForDataset[series.dataset].push(series); + } + }); + return { seriesForDataset: seriesForDataset, datasetsForSide: datasetsForSide }; + }; + Options.prototype.getByAxisSide = function (side) { + if (!Options_1.AxisOptions.isValidSide(side)) { + throw new TypeError('Cannot get axis side : ' + side); + } + if (!this.axes[side]) { + if (side === Options_1.AxisOptions.SIDE.Y2) { + return this.axes[Options_1.AxisOptions.SIDE.Y]; + } + else if (side === Options_1.AxisOptions.SIDE.X2) { + return this.axes[Options_1.AxisOptions.SIDE.X]; + } + } + return this.axes[side]; + }; + Options.prototype.getSeriesByType = function (type) { + if (!Options_1.SeriesOptions.isValidType(type)) { + throw new TypeError('Unknown series type: ' + type); + } + return this.series.filter(function (s) { return s.hasType(type); }); + }; + Options.prototype.getSymbolsByType = function (type) { + if (!Options_1.SymbolOptions.isValidType(type)) { + throw new TypeError('Unknown symbols type: ' + type); + } + return this.symbols.filter(function (s) { return s.type === type; }); + }; + Options.getBoolean = function (value, defaultValue) { + if (defaultValue === void 0) { defaultValue = true; } + if (typeof value === 'boolean') { + return value; + } + return defaultValue; + }; + Options.getNumber = function (value, defaultValue) { + var n = parseFloat(value); + return !isNaN(n) ? n : defaultValue; + }; + Options.getDate = function (value, defaultValue) { + return value instanceof Date ? value : defaultValue; + }; + Options.getFunction = function (value) { + return value instanceof Function ? value : undefined; + }; + Options.getString = function (value, defaultValue) { + return value ? String(value) : defaultValue; + }; + Options.getIdentifier = function (value) { + var s = Options.getString(value); + return s.replace(/[^a-zA-Z0-9\-_]/ig, ''); + }; + Options.getObject = function (value, defaultValue) { + if (defaultValue === void 0) { defaultValue = {}; } + // Type check because *val* is of type any + if (!n3Charts.Utils.ObjectUtils.isObject(value)) { + throw TypeError(value + ' option must be an object.'); + } + return n3Charts.Utils.ObjectUtils.extend(defaultValue, value); + }; + Options.getArray = function (value, defaultValue) { + if (defaultValue === void 0) { defaultValue = []; } + return defaultValue.concat(value); + }; + return Options; + }()); + Options_1.Options = Options; + })(Options = n3Charts.Options || (n3Charts.Options = {})); +})(n3Charts || (n3Charts = {})); +/// +/// +/// +/// +/// +var n3Charts; +(function (n3Charts) { + var Utils; + (function (Utils) { + 'use strict'; + var EventManager = (function () { + function EventManager() { + // For testing purposes + this.strictMode = true; + } + EventManager.prototype.init = function (events) { + var _this = this; + // Generate a new d3.dispatch event dispatcher + this._dispatch = d3.dispatch.apply(this, events); + // Not sure about that... it's supposed to avoid several directives to + // replace each others' listeners, but is a timestamp really unique ? + var id = new Date().getTime(); + d3.select(window).on('mouseup.' + id, function () { + d3.event.preventDefault(); + _this.trigger('window-mouseup'); + }); + d3.select(window).on('mousemove.' + id, function () { + d3.event.preventDefault(); + _this.trigger('window-mousemove'); + }); + // Support chaining + return this; + }; + EventManager.prototype.update = function (data, options) { + this.data = data; + this.options = options; + return; + }; + EventManager.prototype.on = function (event, callback) { + if (this.strictMode && EventManager.EVENTS.indexOf(event.split('.')[0]) === -1) { + throw new Error("Unknown event: " + event); + } + this._dispatch.on(event, callback); + return this; + }; + EventManager.prototype.trigger = function (event) { + var args = []; + for (var _i = 1; _i < arguments.length; _i++) { + args[_i - 1] = arguments[_i]; + } + this._dispatch[event].apply(this, args); + return this; + }; + EventManager.prototype.triggerDataAndOptions = function (event) { + var args = []; + for (var _i = 1; _i < arguments.length; _i++) { + args[_i - 1] = arguments[_i]; + } + args.push(this.data); + args.push(this.options); + this._dispatch[event].apply(this, args); + return this; + }; + EventManager.prototype.datumEnter = function (series, options) { + var _this = this; + return function (selection) { + return selection.on('mouseenter', function (d, i) { + _this.trigger('enter', d, i, series, options); + }); + }; + }; + EventManager.prototype.datumOver = function (series, options) { + var _this = this; + return function (selection) { + return selection.on('mouseover', function (d, i) { + _this.trigger('over', d, i, series, options); + }); + }; + }; + EventManager.prototype.datumMove = function (series, options) { + var _this = this; + return function (selection) { + return selection.on('mousemove', function (d, i) { + _this.trigger('over', d, i, series, options); + }); + }; + }; + EventManager.prototype.datumLeave = function (series, options) { + var _this = this; + return function (selection) { + return selection.on('mouseleave', function (d, i) { + _this.trigger('leave', d, i, series, options); + }); + }; + }; + // That would be so cool to have native dblclick support in D3... + EventManager.prototype.listenForDblClick = function (selection, callback, listenerSuffix) { + var _this = this; + var down, tolerance = 5, last, wait = null; + var dist = function (a, b) { + return Math.sqrt(Math.pow(a[0] - b[0], 2) + Math.pow(a[1] - b[1], 2)); + }; + selection.on('mousedown.dbl.' + listenerSuffix, function () { + down = d3.mouse(document.body); + last = new Date().getTime(); + }); + selection.on('mouseup.dbl.' + listenerSuffix, function () { + if (!down || dist(down, d3.mouse(document.body)) > tolerance) { + return; + } + if (wait && _this.options.doubleClickEnabled) { + window.clearTimeout(wait); + wait = null; + callback(d3.event); + } + else { + wait = window.setTimeout((function (e) { + return function () { + wait = null; + }; + })(d3.event), 300); + } + }); + return selection; + }; + EventManager.EVENTS = [ + 'create', + 'update', + 'data-update', + 'resize', + 'destroy', + 'enter', + 'over', + 'move', + 'leave', + 'click', + 'dblclick', + 'legend-click', + 'legend-over', + 'legend-out', + 'container-over', + 'container-move', + 'container-out', + 'focus', + 'toggle', + 'outer-world-hover', + 'outer-world-domain-change', + 'pan', + 'pan-end', + 'zoom', + 'zoom-end', + 'zoom-pan-reset', + 'window-mouseup', + 'window-mousemove', + ]; + return EventManager; + }()); + Utils.EventManager = EventManager; + })(Utils = n3Charts.Utils || (n3Charts.Utils = {})); +})(n3Charts || (n3Charts = {})); +var n3Charts; +(function (n3Charts) { + var Utils; + (function (Utils) { + 'use strict'; + var FactoryManager = (function () { + function FactoryManager() { + // A stack of all factories, preserves order + this._factoryStack = []; + } + FactoryManager.prototype.index = function (factoryKey) { + // Return the index of a factory by the factoryKey + return this._factoryStack + .map(function (d) { return d.key; }) + .indexOf(factoryKey); + }; + FactoryManager.prototype.getBoundFunction = function (factoryKey, functionName) { + var factory = this.get(factoryKey); + if (!factory) { + return null; + } + return factory[functionName].bind(factory); + }; + // This should return a more meaningful type... + FactoryManager.prototype.get = function (factoryKey) { + // Get the index of the factory + var index = this.index(factoryKey); + // Return the factory instance + if (index > -1) { + return this._factoryStack[index].instance; + } + // Well, no factory found + return null; + }; + FactoryManager.prototype.all = function () { + return this._factoryStack; + }; + FactoryManager.prototype.turnFactoriesOff = function (keys) { + var _this = this; + var toUndo = []; + keys.forEach(function (key) { + var f = _this.get(key); + if (f.isOn()) { + f.off(); + toUndo.push(key); + } + }); + return function () { return _this.turnFactoriesOn(toUndo); }; + }; + FactoryManager.prototype.turnFactoriesOn = function (keys) { + var _this = this; + var toUndo = []; + keys.forEach(function (key) { + var f = _this.get(key); + if (f.isOff()) { + f.on(); + toUndo.push(key); + } + }); + return function () { return _this.turnFactoriesOff(toUndo); }; + }; + FactoryManager.prototype.registerMany = function (factories) { + var _this = this; + // Loop over the factories + factories.forEach(function (factoryArgs) { + // Register each of them, applying all + // values as arguments + _this.register.apply(_this, factoryArgs); + }); + // Support chaining + return this; + }; + FactoryManager.prototype.register = function (key, constructor) { + var args = []; + for (var _i = 2; _i < arguments.length; _i++) { + args[_i - 2] = arguments[_i]; + } + // This generates a new factory constructor, applying + // the additional args to the original constructor; + // it preserves the name of the original constructor + var factory = constructor.bind.apply(constructor, [null].concat(args)); + // Let's create a new instance of the factory + var instance = new factory(); + // and push the entry to the factory stack + this._factoryStack.push({ + key: key, + instance: instance + }); + // Return the instance + return instance; + }; + FactoryManager.prototype.unregister = function (factoryKey) { + // Get the index of the factory + var index = this.index(factoryKey); + // And delete the factory + if (index > -1) { + delete this._factoryStack[index]; + } + // Support chaining + return this; + }; + return FactoryManager; + }()); + Utils.FactoryManager = FactoryManager; + })(Utils = n3Charts.Utils || (n3Charts.Utils = {})); +})(n3Charts || (n3Charts = {})); +var n3Charts; +(function (n3Charts) { + var Utils; + (function (Utils) { + 'use strict'; + var Dataset = (function () { + function Dataset(values, id) { + this.fromJS(values, id); + } + Dataset.prototype.fromJS = function (values, id) { + this.id = id; + this.values = values; + }; + return Dataset; + }()); + Utils.Dataset = Dataset; + })(Utils = n3Charts.Utils || (n3Charts.Utils = {})); +})(n3Charts || (n3Charts = {})); +var n3Charts; +(function (n3Charts) { + var Utils; + (function (Utils) { + 'use strict'; + var Data = (function () { + function Data(js) { + if (js) { + this.fromJS(js); + } + } + Data.prototype.fromJS = function (js) { + var sets = {}; + for (var key in js) { + if (js.hasOwnProperty(key)) { + sets[key] = new Utils.Dataset(js[key], key); + } + } + this.sets = sets; + }; + Data.prototype.getDatasets = function (series, options) { + var _this = this; + return series.map(function (d) { return _this.getDatasetValues(d, options); }); + }; + Data.prototype.getDatasetValues = function (series, options) { + if (!this.sets || !this.sets[series.dataset].values) { + return []; + } + var xKey = options.getAbsKey(); + var fn; + if (series.key.y0) { + fn = function (d) { + return { x: d[xKey], y1: d[series.key.y1], y0: d[series.key.y0] }; + }; + } + else { + fn = function (d) { + return { x: d[xKey], y1: d[series.key.y1], y0: 0 }; + }; + } + return this.sets[series.dataset].values.map(fn); + }; + Data.getMinDistance = function (data, axis, key, range) { + if (key === void 0) { key = 'x'; } + return d3.min( + // Compute the minimum difference along an axis on all series + data.map(function (series) { + // Compute minimum delta + return series + .map(function (d) { return axis.scale(d[key]); }) + .filter(function (d) { + return range ? d >= range[0] && d <= range[1] : true; + }) + .reduce(function (prev, d, i, arr) { + // Get the difference from the current value + // with the previous value in the array + var diff = i > 0 ? d - arr[i - 1] : Number.MAX_VALUE; + // Return the new difference if it is smaller + // than the previous difference + return diff < prev ? diff : prev; + }, Number.MAX_VALUE); + })); + }; + return Data; + }()); + Utils.Data = Data; + })(Utils = n3Charts.Utils || (n3Charts.Utils = {})); +})(n3Charts || (n3Charts = {})); +var n3Charts; +(function (n3Charts) { + var Utils; + (function (Utils) { + 'use strict'; + var FunctionUtils = (function () { + function FunctionUtils() { + } + FunctionUtils.debounce = function (callback, interval) { + var _this = this; + var t = null; + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i - 0] = arguments[_i]; + } + if (t) { + window.clearTimeout(t); + } + t = window.setTimeout(function () { return callback.apply(_this, args); }, interval); + }; + }; + ; + return FunctionUtils; + }()); + Utils.FunctionUtils = FunctionUtils; + var UUID = (function () { + function UUID() { + } + UUID.generate = function () { + // @src: http://stackoverflow.com/a/2117523 + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx' + .replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0; + var v = c === 'x' ? r : (r & 0x3 | 0x8); + return v.toString(16); + }); + }; + return UUID; + }()); + Utils.UUID = UUID; + })(Utils = n3Charts.Utils || (n3Charts.Utils = {})); +})(n3Charts || (n3Charts = {})); +var n3Charts; +(function (n3Charts) { + var Utils; + (function (Utils) { + 'use strict'; + var ObjectUtils = (function () { + function ObjectUtils() { + } + ObjectUtils.isFunction = function (wut) { + return wut instanceof Function; + }; + ObjectUtils.isDate = function (wut) { + return wut instanceof Date; + }; + ObjectUtils.isObject = function (wut) { + return !(wut instanceof Array) && wut instanceof Object; + }; + ObjectUtils.isArray = function (wut) { + return wut instanceof Array; + }; + ObjectUtils.isBoolean = function (wut) { + return wut === true || wut === false; + }; + ObjectUtils.isReference = function (wut) { + return wut instanceof Array || wut instanceof Object; + }; + ObjectUtils.sameType = function (a, b) { + if (ObjectUtils.isArray(a) && ObjectUtils.isArray(b)) { + return true; + } + if (ObjectUtils.isObject(a) && ObjectUtils.isObject(b)) { + return true; + } + return typeof a === typeof b; + }; + ObjectUtils.extend = function (target, source) { + var copy = ObjectUtils.copy, extend = ObjectUtils.extend, sameType = ObjectUtils.sameType, isReference = ObjectUtils.isReference, isFunction = ObjectUtils.isFunction; + var result = Utils.ObjectUtils.copy(target); + if (!source) { + return result; + } + for (var key in source) { + if (!source.hasOwnProperty(key)) { + continue; + } + if (!target.hasOwnProperty(key) || !sameType(target[key], source[key])) { + result[key] = copy(source[key]); + } + else if (sameType(target[key], source[key])) { + if (isFunction(target[key])) { + result[key] = source[key]; + } + else if (isReference(target[key])) { + result[key] = extend(target[key], source[key]); + } + else { + result[key] = source[key]; + } + } + } + return result; + }; + ObjectUtils.copy = function (source) { + if (ObjectUtils.isDate(source)) { + // Flippin' generic types force me to return an any BUT WHO CARES + return new Date(source['getTime']()); + } + if (ObjectUtils.isFunction(source)) { + return source; // We don't do functions. + } + if (source instanceof Array) { + // Dirty but type guards don't play nice with generic types and + // EVERYTHING IS BROKEN THIS MORNING SO I don't care. + var n = source['length']; + var ret = []; + for (var i = 0; i < n; i++) { + ret[i] = ObjectUtils.copy(source[i]); + } + return ret; + } + if (source instanceof Object) { + var ret = {}; + for (var key in source) { + if (source.hasOwnProperty(key)) { + ret[key] = ObjectUtils.copy(source[key]); + } + } + return ret; + } + return source; + }; + ; + return ObjectUtils; + }()); + Utils.ObjectUtils = ObjectUtils; + })(Utils = n3Charts.Utils || (n3Charts.Utils = {})); +})(n3Charts || (n3Charts = {})); +/// +/// +/// +/// +/// +/// +/// +var n3Charts; +(function (n3Charts) { + var Factory; + (function (Factory) { + 'use strict'; + var BaseFactory = (function () { + function BaseFactory() { + this.enabled = true; + } + BaseFactory.prototype.init = function (key, eventMgr, factoryMgr) { + this.key = key; + this.eventMgr = eventMgr; + this.factoryMgr = factoryMgr; + // Create namespaced event listener + // and bind a proper this statement + this.eventMgr.on('create.' + this.key, this.create.bind(this)); + this.eventMgr.on('update.' + this.key, this.update.bind(this)); + this.eventMgr.on('destroy.' + this.key, this.destroy.bind(this)); + }; + BaseFactory.prototype.on = function () { + this.enabled = true; + }; + BaseFactory.prototype.off = function () { + this.enabled = false; + }; + BaseFactory.prototype.isOn = function () { + return this.enabled === true; + }; + BaseFactory.prototype.isOff = function () { + return this.enabled === false; + }; + BaseFactory.prototype.create = function (options) { + // This methods need to be overwritten by factories + }; + BaseFactory.prototype.update = function (data, options) { + // This methods need to be overwritten by factories + }; + BaseFactory.prototype.destroy = function () { + // This methods need to be overwritten by factories + }; + return BaseFactory; + }()); + Factory.BaseFactory = BaseFactory; + })(Factory = n3Charts.Factory || (n3Charts.Factory = {})); +})(n3Charts || (n3Charts = {})); +var n3Charts; +(function (n3Charts) { + var Factory; + (function (Factory) { + 'use strict'; + var Container = (function (_super) { + __extends(Container, _super); + function Container(element) { + _super.call(this); + this.element = element; + this.dim = new n3Charts.Options.Dimensions(); + } + Container.prototype.create = function (options) { + var _this = this; + this.dim.updateMargins(options); + this.listenToElement(this.element, options); + this.createRoot(); + this.createContainer(); + this.dim.fromParentElement(this.element.parentElement); + this.eventMgr.on('resize', function () { + _this.dim.fromParentElement(_this.element.parentElement); + _this.update(); + }); + // D3, Y U NO DBLCKICK ? + this.eventMgr.listenForDblClick(this.svg, function () { + _this.eventMgr.trigger('zoom-pan-reset', true); + }, this.key); + this.eventMgr.on('zoom-pan-reset.' + this.key, function (event) { + _this.eventMgr.triggerDataAndOptions('update'); + }); + }; + Container.prototype.listenToElement = function (element, options) { + var eventMgr = this.eventMgr; + element.addEventListener('mouseover', function (event) { + eventMgr.triggerDataAndOptions.apply(eventMgr, ['container-over', event]); + }); + element.addEventListener('mousemove', function (event) { + eventMgr.triggerDataAndOptions.apply(eventMgr, ['container-move', event]); + }); + element.addEventListener('mouseout', function (event) { + eventMgr.triggerDataAndOptions.apply(eventMgr, ['container-out', event]); + }); + }; + Container.prototype.getCoordinatesFromEvent = function (event) { + var dim = this.getDimensions(); + var _a = event.currentTarget.getBoundingClientRect(), left = _a.left, top = _a.top; + var xScale = this.factoryMgr.get('x-axis'); + var x = xScale.invert(event.clientX - left - dim.margin.left); + var yScale = this.factoryMgr.get('y-axis'); + var y = yScale.invert(event.clientY - top - dim.margin.top); + return { y: y, x: x }; + }; + Container.prototype.update = function () { + this.updateRoot(); + this.updateContainer(); + }; + Container.prototype.destroy = function () { + this.destroyRoot(); + }; + Container.prototype.createRoot = function () { + this.svg = d3.select(this.element) + .append('svg') + .attr('class', 'chart'); + this.defs = this.svg + .append('defs'); + }; + Container.prototype.updateRoot = function () { + // Update the dimensions of the root + this.svg + .attr('width', this.dim.width) + .attr('height', this.dim.height); + }; + Container.prototype.destroyRoot = function () { + // Remove the root node + this.svg.remove(); + }; + Container.prototype.createContainer = function () { + // Create a visualization container + this.vis = this.svg + .append('g') + .attr('class', 'container'); + this.axes = this.vis + .append('g') + .attr('class', 'axes'); + this.clippingPathId = 'clipping-path-' + n3Charts.Utils.UUID.generate(); + this.defs.append('svg:clipPath') + .attr('id', this.clippingPathId) + .append('svg:rect') + .attr('id', 'clipping-rect'); + this.data = this.vis + .append('g') + .attr({ + 'class': 'data', + 'clip-path': 'url(#' + this.clippingPathId + ')' + }); + this.overlay = this.vis + .append('g') + .attr('class', 'overlay'); + this.symbols = this.overlay + .append('g') + .attr({ + 'class': 'symbols', + 'clip-path': 'url(#' + this.clippingPathId + ')' + }); + }; + Container.prototype.updateContainer = function () { + this.vis + .attr({ + 'width': this.dim.innerWidth, + 'height': Math.max(this.dim.innerHeight, 0), + 'transform': 'translate(' + this.dim.margin.left + ', ' + this.dim.margin.top + ')' + }); + d3.select(this.element).select('#clipping-rect') + .attr({ + 'width': Math.max(this.dim.innerWidth, 0), + 'height': Math.max(this.dim.innerHeight, 0) + }); + }; + Container.prototype.getDimensions = function () { + return this.dim; + }; + return Container; + }(Factory.BaseFactory)); + Factory.Container = Container; + })(Factory = n3Charts.Factory || (n3Charts.Factory = {})); +})(n3Charts || (n3Charts = {})); +var n3Charts; +(function (n3Charts) { + var Factory; + (function (Factory) { + 'use strict'; + var Tooltip = (function (_super) { + __extends(Tooltip, _super); + function Tooltip(element) { + _super.call(this); + this.element = element; + } + Tooltip.prototype.off = function () { + _super.prototype.off.call(this); + this.hide(); + }; + Tooltip.prototype.create = function (options) { + this.options = options; + this.createTooltip(); + this.eventMgr.on('container-move.tooltip', this.show.bind(this)); + this.eventMgr.on('container-out.tooltip', this.hide.bind(this)); + this.eventMgr.on('outer-world-hover.tooltip', this.showFromCoordinates.bind(this)); + this.hide(); + }; + Tooltip.prototype.update = function (data, options) { + this.options = options; + }; + Tooltip.prototype.createTooltip = function () { + var svg = this.svg = d3.select(this.element) + .append('div') + .attr('class', 'chart-tooltip'); + svg.append('div') + .attr('class', 'abscissas'); + this.line = this.factoryMgr.get('container').overlay + .append('line') + .attr('class', 'tooltip-line'); + this.dots = this.factoryMgr.get('container').overlay + .append('g') + .attr('class', 'tooltip-dots'); + }; + Tooltip.prototype.destroy = function () { + this.svg.remove(); + }; + Tooltip.prototype.getClosestRows = function (x, data, options) { + var visibleSeries = options.series.filter(function (series) { return series.visible; }); + var datasets = visibleSeries.map(function (series) { return data.getDatasetValues(series, options).filter(series.defined); }); + var closestRows = []; + var closestIndex = -1; + var minDistance = Number.POSITIVE_INFINITY; + var foundSeries = []; + for (var i = 0; i < datasets.length; i++) { + for (var j = 0; j < datasets[i].length; j++) { + if (options.axes.x.type === 'date') { + // _sigh_ TypeScript... + var distance = Math.abs(datasets[i][j].x.getTime() - x); + } + else { + var distance = Math.abs(datasets[i][j].x - x); + } + var series = visibleSeries[i]; + if (distance === minDistance && foundSeries.indexOf(series) === -1) { + closestRows.push({ series: series, row: datasets[i][j] }); + foundSeries.push(series); + } + else if (distance < minDistance) { + minDistance = distance; + closestRows = [{ series: visibleSeries[i], row: datasets[i][j] }]; + foundSeries = [series]; + closestIndex = j; + } + } + } + return { rows: closestRows, index: closestIndex }; + }; + Tooltip.prototype.showFromCoordinates = function (coordinates, data, options) { + if (this.isOff()) { + return; + } + var x = coordinates.x, y = coordinates.y; + if (x === undefined || y === undefined) { + this.hide(undefined, data, options); + return; + } + if (x instanceof Date) { + // _sigh_ TypeScript... + x = x.getTime(); + } + var _a = this.getClosestRows(x, data, options), rows = _a.rows, index = _a.index; + if (rows.length === 0) { + this.hide(undefined, data, options); + return; + } + this.updateTooltipDots(rows); + this.dots.style('opacity', '1'); + this.updateLinePosition(rows); + this.line.style('opacity', '1'); + var tooltipContent = this.getTooltipContent(rows, index, options); + if (options.tooltipHook) { + tooltipContent = options.tooltipHook(rows); + } + if (!tooltipContent) { + return; + } + this.updateTooltipContent(tooltipContent, index, options); + this.updateTooltipPosition(rows); + this.svg.style('display', null); + }; + Tooltip.prototype.show = function (event, data, options) { + if (this.isOff()) { + return; + } + var container = this.factoryMgr.get('container'); + var coordinates = container.getCoordinatesFromEvent(event); + this.showFromCoordinates(coordinates, data, options); + }; + Tooltip.prototype.hide = function (event, data, options) { + this.svg + .style('display', 'none'); + this.line + .style('opacity', '0'); + this.dots + .style('opacity', '0'); + if (options && options.tooltipHook) { + options.tooltipHook(undefined); + } + }; + // This is the part the user can override. + Tooltip.prototype.getTooltipContent = function (rows, closestIndex, options) { + var xTickFormat = options.getByAxisSide(n3Charts.Options.AxisOptions.SIDE.X).tickFormat; + var getYTickFormat = function (side) { return options.getByAxisSide(side).tickFormat; }; + var getRowValue = function (d) { + var yTickFormat = getYTickFormat(d.series.axis); + var fn = yTickFormat ? function (y1) { return yTickFormat(y1, closestIndex); } : function (y1) { return y1; }; + var y1Label = fn(d.row.y1); + if (d.series.hasTwoKeys()) { + return '[' + fn(d.row.y0) + ', ' + y1Label + ']'; + } + else { + return y1Label; + } + }; + return { + abscissas: xTickFormat ? xTickFormat(rows[0].row.x, closestIndex) : rows[0].row.x, + rows: rows.map(function (row) { + return { + label: row.series.label, + value: getRowValue(row), + color: row.series.color, + id: row.series.id + }; + }) + }; + }; + Tooltip.prototype.updateTooltipContent = function (result, closestIndex, options) { + this.svg.select('.abscissas') + .text(result.abscissas); + var initItem = function (s) { + s.attr({ 'class': 'tooltip-item' }); + s.append('div') + .attr({ 'class': 'color-dot' }) + .style({ + 'background-color': function (d) { return d.color; } + }); + s.append('div') + .attr({ 'class': 'series-label' }); + s.append('div') + .attr({ 'class': 'y-value' }); + return s; + }; + var updateItem = function (s) { + s.select('.series-label') + .text(function (d) { return d.label; }); + s.select('.y-value') + .text(function (d) { return d.value; }); + return s; + }; + var items = this.svg.selectAll('.tooltip-item') + .data(result.rows, function (d, i) { return !!d.id ? d.id : i; }); + items.enter() + .append('div') + .call(initItem) + .call(updateItem); + items.call(updateItem); + items.exit().remove(); + }; + Tooltip.prototype.updateTooltipDots = function (rows) { + var _this = this; + var xScale = this.factoryMgr.get('x-axis').scale; + var yScale = function (side) { return _this.factoryMgr.get(side + '-axis').scale; }; + var radius = 3; + var circlePath = function (r, cx, cy) { + return "M " + cx + " " + cy + " m -" + r + ", 0 a " + r + "," + r + " 0 1,0 " + r * 2 + ",0 a " + r + "," + r + " 0 1,0 -" + r * 2 + ",0 "; + }; + var initDots = function (s) { + s.attr('class', 'tooltip-dots-group'); + s.append('path').attr({ + 'class': 'tooltip-dot y1' + }).on('click', function (d, i) { + _this.eventMgr.trigger('click', d.row, i, d.series, _this.options); + }); + s.append('path').attr({ + 'class': 'tooltip-dot y0' + }).style({ + 'display': function (d) { return d.series.hasTwoKeys() ? null : 'none'; } + }).on('click', function (d, i) { + _this.eventMgr.trigger('click', d.row, i, d.series, _this.options); + }); + }; + var updateDots = function (s) { + s.select('.tooltip-dot.y1').attr({ + 'd': function (d) { return circlePath(radius, xScale(d.row.x), yScale(d.series.axis)(d.row.y1)); }, + 'stroke': function (d) { return d.series.color; } + }); + s.select('.tooltip-dot.y0').attr({ + 'd': function (d) { + if (d.series.hasTwoKeys()) { + return circlePath(radius, xScale(d.row.x), yScale(d.series.axis)(d.row.y0)); + } + return ''; + }, + 'stroke': function (d) { return d.series.color; } + }); + }; + var dots = this.dots.selectAll('.tooltip-dots-group') + .data(rows); + dots.enter() + .append('g') + .call(initDots) + .call(updateDots); + dots.call(updateDots); + dots.exit().remove(); + }; + Tooltip.prototype.updateTooltipPosition = function (rows) { + var lastRow = rows.slice(-1)[0]; + var xAxis = this.factoryMgr.get('x-axis'); + var yScale = this.factoryMgr.get('y-axis').scale; + var margin = this.factoryMgr.get('container').getDimensions().margin; + var leftOffset = this.element.offsetLeft; + var topOffset = this.element.offsetTop; + var xOffset = 0; + var transform = ''; + if (xAxis.isInLastHalf(lastRow.row.x)) { + transform = 'translate(-100%, 0)'; + xOffset = -10; + } + else { + xOffset = 10; + } + this.svg + .style({ + 'left': (leftOffset + margin.left + xAxis.scale(lastRow.row.x) + xOffset) + 'px', + 'top': (topOffset + margin.top) + 'px', + 'transform': transform + }); + return; + }; + Tooltip.prototype.updateLinePosition = function (rows) { + var container = this.factoryMgr.get('container'); + var dim = container.getDimensions(); + var lastRow = rows.slice(-1)[0]; + var xAxis = this.factoryMgr.get('x-axis'); + var x = xAxis.scale(lastRow.row.x); + this.line.attr({ + 'x1': x, + 'x2': x, + 'y1': -dim.margin.top, + 'y2': dim.innerHeight + }); + return; + }; + return Tooltip; + }(Factory.BaseFactory)); + Factory.Tooltip = Tooltip; + })(Factory = n3Charts.Factory || (n3Charts.Factory = {})); +})(n3Charts || (n3Charts = {})); +var n3Charts; +(function (n3Charts) { + var Factory; + (function (Factory) { + 'use strict'; + var Legend = (function (_super) { + __extends(Legend, _super); + function Legend(element) { + _super.call(this); + this.element = element; + } + Legend.prototype.create = function () { + this.createLegend(); + }; + Legend.prototype.createLegend = function () { + this.div = d3.select(this.element) + .append('div') + .attr('class', 'chart-legend') + .style('position', 'absolute'); + }; + Legend.prototype.legendClick = function () { + var _this = this; + return function (selection) { + return selection.on('click', function (series) { + _this.eventMgr.trigger('legend-click', series); + }); + }; + }; + Legend.prototype.update = function (data, options) { + var _this = this; + var container = this.factoryMgr.get('container'); + var dim = container.getDimensions(); + var init = function (series) { + var items = series.append('div').attr({ 'class': 'item' }) + .call(_this.legendClick()); + items.append('div').attr({ 'class': 'icon' }); + items.append('div').attr({ 'class': 'legend-label' }); + }; + var update = function (series) { + series + .attr('class', function (d) { return 'item ' + d.type.join(' '); }) + .classed('legend-hidden', function (d) { return !d.visible; }); + series.select('.icon').style('background-color', function (d) { return d.color; }); + series.select('.legend-label').text(function (d) { return d.label; }); + }; + var legendItems = this.div.selectAll('.item') + .data(options.series); + legendItems.enter().call(init); + legendItems.call(update); + legendItems.exit().remove(); + }; + Legend.prototype.destroy = function () { + this.div.remove(); + }; + return Legend; + }(Factory.BaseFactory)); + Factory.Legend = Legend; + })(Factory = n3Charts.Factory || (n3Charts.Factory = {})); +})(n3Charts || (n3Charts = {})); +/// +var n3Charts; +(function (n3Charts) { + var Factory; + (function (Factory) { + 'use strict'; + var Axis = (function (_super) { + __extends(Axis, _super); + function Axis(side) { + var _this = this; + _super.call(this); + this.side = side; + if (!n3Charts.Options.AxisOptions.isValidSide(side)) { + throw new TypeError('Wrong axis side : ' + side); + } + this.scale = function (value) { return _this._scale.call(_this, value); }; + } + Axis.prototype.range = function () { + return this._scale.range(); + }; + Axis.prototype.getDomain = function () { + return this._scale.domain(); + }; + Axis.prototype.setDomain = function (d) { + return this._scale.domain.call(this, d); + }; + Axis.prototype.create = function () { + var vis = this.factoryMgr.get('container').axes; + this.createAxis(vis); + this.eventMgr.on('pan.' + this.key, this.softUpdate.bind(this)); + this.eventMgr.on('zoom-end.' + this.key, this.softUpdate.bind(this)); + this.eventMgr.on('outer-world-domain-change.' + this.key, this.updateFromOuterWorld.bind(this)); + this.eventMgr.on('resize.' + this.key, this.onResize.bind(this)); + }; + Axis.prototype.updateFromOuterWorld = function (domains) { + this.updateScaleDomain(domains[this.side]); + this.softUpdate(); + }; + Axis.prototype.softUpdate = function () { + if (this.factoryMgr.get('transitions').isOn()) { + this.svg + .transition() + .call(this.factoryMgr.getBoundFunction('transitions', 'edit')) + .call(this.d3axis); + } + else { + this.svg.call(this.d3axis); + } + }; + Axis.prototype.onResize = function () { + var container = this.factoryMgr.get('container'); + var dim = container.getDimensions(); + this.updateScaleRange(dim, this.options); + this.updateAxisContainer(dim); + this.softUpdate(); + }; + Axis.prototype.getDimensions = function () { + // Get the container dimensions + var container = this.factoryMgr.get('container'); + return container.getDimensions(); + }; + Axis.prototype.update = function (data, options) { + var dimensions = this.getDimensions(); + // Get the [min, max] extent of the axis + var extent = this.getExtent(data, options); + // Get the options for the axis + this.options = options.getByAxisSide(this.side); + this._scale = this.getScale(); + this.updateScaleRange(dimensions, this.options); + this.updateScaleDomain(extent); + this.d3axis = this.getAxis(this._scale, this.options); + this.updateAxisOrientation(this.d3axis); + this.updateAxisContainer(dimensions); + this.shiftAxisTicks(this.options); + }; + Axis.prototype.shiftAxisTicks = function (options) { + var _a = options.ticksShift, x = _a.x, y = _a.y; + this.svg.selectAll('text') + .attr('transform', "translate(" + x + ", " + y + ")"); + }; + Axis.prototype.destroy = function () { + this.destroyAxis(); + }; + Axis.prototype.updateScaleRange = function (dimensions, axisOptions) { + if (this.isAbscissas()) { + this._scale.range([axisOptions.padding.min, dimensions.innerWidth - axisOptions.padding.max]); + } + else { + this._scale.range([dimensions.innerHeight - axisOptions.padding.min, axisOptions.padding.max]); + } + }; + Axis.prototype.updateScaleDomain = function (extent) { + this._scale.domain(extent); + }; + Axis.prototype.getScaleDomain = function () { + return this._scale ? this._scale.domain() : [0, 1]; + }; + Axis.prototype.getExtent = function (datasets, options) { + var axisOptions = options.getByAxisSide(this.side); + var extent = undefined; + if (this.isAbscissas()) { + var activeDatasets = options.getVisibleDatasets(); + var abscissasKey_1 = options.getAbsKey(); + var xValues_1 = []; + activeDatasets.forEach(function (key) { + var data = datasets.sets[key].values; + xValues_1 = xValues_1.concat(data.map(function (datum) { return datum[abscissasKey_1]; })); + }); + extent = d3.extent(xValues_1); + } + else { + var lowests_1 = axisOptions.includeZero ? [0] : []; + var highests_1 = axisOptions.includeZero ? [0] : []; + var series = options.getVisibleSeriesBySide(this.side); + if (this.side === n3Charts.Options.AxisOptions.SIDE.Y2 && series.length === 0) { + series = options.getVisibleSeriesBySide(n3Charts.Options.AxisOptions.SIDE.Y); + } + series.forEach(function (s) { + var values = datasets.getDatasetValues(s, options); + values.forEach(function (datum) { + if (s.defined && !s.defined(datum)) { + return; + } + lowests_1.push(datum.y0 || datum.y1); + highests_1.push(datum.y1); + }); + }); + extent = [d3.min(lowests_1), d3.max(highests_1)]; + if (extent[0] === 0 && extent[1] === 0) { + extent = [0, 1]; + } + } + if (axisOptions.min !== undefined) { + extent[0] = axisOptions.min; + } + if (axisOptions.max !== undefined) { + extent[1] = axisOptions.max; + } + return extent; + }; + Axis.prototype.isAbscissas = function () { + return [n3Charts.Options.AxisOptions.SIDE.X, n3Charts.Options.AxisOptions.SIDE.X2].indexOf(this.side) !== -1; + }; + Axis.prototype.isInLastHalf = function (value) { + var fn = function (v) { return v; }; + if (value instanceof Date) { + fn = function (v) { return v.getTime(); }; + } + var _a = this._scale.domain(), a = _a[0], b = _a[1]; + return fn(value) > fn(a) + (fn(b) - fn(a)) / 2; + }; + Axis.prototype.createAxis = function (vis) { + this.svg = vis + .append('g') + .attr('class', 'axis ' + this.side + '-axis'); + }; + Axis.prototype.updateAxisOrientation = function (axis) { + if (this.isAbscissas()) { + if (this.side === n3Charts.Options.AxisOptions.SIDE.X) { + axis.orient('bottom'); + } + else { + axis.orient('top'); + } + } + else { + if (this.side === n3Charts.Options.AxisOptions.SIDE.Y) { + axis.orient('left'); + } + else { + axis.orient('right'); + } + } + }; + Axis.prototype.updateAxisContainer = function (dim) { + // Move the axis container to the correct position + if (this.isAbscissas()) { + if (this.side === n3Charts.Options.AxisOptions.SIDE.X) { + this.svg + .attr('transform', "translate(0, " + dim.innerHeight + ")"); + } + else { + this.svg + .attr('transform', 'translate(0, 0)'); + } + } + else { + if (this.side === n3Charts.Options.AxisOptions.SIDE.Y) { + this.svg + .attr('transform', 'translate(0, 0)'); + } + else { + this.svg + .attr('transform', "translate(" + dim.innerWidth + ", 0)"); + } + } + this.softUpdate(); + }; + Axis.prototype.destroyAxis = function () { + // Remove the axis container + this.svg.remove(); + }; + Axis.prototype.invert = function (value) { + return this._scale.invert(value); + }; + Axis.prototype.isTimeAxis = function () { + return this.options.type === n3Charts.Options.AxisOptions.TYPE.DATE; + }; + Axis.prototype.getScale = function () { + if (this.options && this.options.type === n3Charts.Options.AxisOptions.TYPE.DATE) { + return d3.time.scale(); + } + if (this.options && this.options.type === n3Charts.Options.AxisOptions.TYPE.LOG) { + return d3.scale.log(); + } + return d3.scale.linear(); + }; + Axis.prototype.getAxis = function (scale, options) { + var axis; + // Create and return a D3 Axis generator + if (options.hasDynamicTicks()) { + axis = n3Charts.svg.twoSpeedAxis() + .scale(scale); + } + else { + axis = d3.svg.axis() + .scale(scale); + } + options.configure(axis); + return axis; + }; + Axis.prototype.cloneAxis = function () { + var axis; + if (this.options && this.options.hasDynamicTicks()) { + axis = n3Charts.svg.twoSpeedAxis() + .ticks(this.d3axis.ticks()); + } + else { + axis = d3.svg.axis() + .ticks(this.d3axis.ticks()[0]); + } + return axis + .scale(this.d3axis.scale()) + .orient(this.d3axis.orient()) + .tickValues(this.d3axis.tickValues()) + .tickSize(this.d3axis.tickSize()); + // dafuq is wrong with this tslinter ??? + // .tickFormat(this.d3axis.tickFormat); + }; + return Axis; + }(Factory.BaseFactory)); + Factory.Axis = Axis; + })(Factory = n3Charts.Factory || (n3Charts.Factory = {})); +})(n3Charts || (n3Charts = {})); +var n3Charts; +(function (n3Charts) { + var Factory; + (function (Factory) { + 'use strict'; + var Grid = (function (_super) { + __extends(Grid, _super); + function Grid() { + _super.apply(this, arguments); + } + Grid.prototype.create = function () { + this.svg = this.factoryMgr.get('container').axes + .insert('g', ':first-child') + .attr('class', 'grid'); + this.svg.append('g').classed('x-grid', true); + this.svg.append('g').classed('y-grid', true); + this.eventMgr.on('resize.' + this.key, this.softUpdate.bind(this)); + this.eventMgr.on('pan.' + this.key, this.softUpdate.bind(this)); + this.eventMgr.on('zoom-end.' + this.key, this.softUpdate.bind(this)); + this.eventMgr.on('outer-world-domain-change.' + this.key, this.softUpdate.bind(this)); + }; + Grid.prototype.softUpdate = function () { + var container = this.factoryMgr.get('container'); + var dim = container.getDimensions(); + if (this.xAxis) { + var sel = this.svg.select('.x-grid'); + if (this.factoryMgr.get('transitions').isOn()) { + sel = sel + .transition() + .call(this.factoryMgr.getBoundFunction('transitions', 'edit')); + } + sel.attr('transform', 'translate(0, ' + dim.innerHeight + ')') + .call(this.xAxis.tickSize(-dim.innerHeight, 0)); + } + if (this.yAxis) { + var sel = this.svg.select('.y-grid'); + if (this.factoryMgr.get('transitions').isOn()) { + sel = sel + .transition() + .call(this.factoryMgr.getBoundFunction('transitions', 'edit')); + } + sel + .call(this.yAxis.tickSize(-dim.innerWidth, 0)); + } + }; + Grid.prototype.update = function (data, options) { + var container = this.factoryMgr.get('container'); + var dim = container.getDimensions(); + if (options.grid.x) { + this.xAxis = this.factoryMgr.get('x-axis').cloneAxis() + .tickSize(-dim.innerHeight, 0); + this.svg.select('.x-grid') + .transition() + .call(this.factoryMgr.getBoundFunction('transitions', 'edit')) + .attr('transform', 'translate(0, ' + dim.innerHeight + ')') + .call(this.xAxis); + } + if (options.grid.y) { + this.yAxis = this.factoryMgr.get('y-axis').cloneAxis(); + this.svg.select('.y-grid') + .transition() + .call(this.factoryMgr.getBoundFunction('transitions', 'edit')) + .call(this.yAxis.tickSize(-dim.innerWidth, 0)); + } + }; + Grid.prototype.destroy = function () { + this.svg.remove(); + }; + return Grid; + }(Factory.BaseFactory)); + Factory.Grid = Grid; + })(Factory = n3Charts.Factory || (n3Charts.Factory = {})); +})(n3Charts || (n3Charts = {})); +var n3Charts; +(function (n3Charts) { + var Factory; + (function (Factory) { + 'use strict'; + var Zoom = (function (_super) { + __extends(Zoom, _super); + function Zoom() { + _super.apply(this, arguments); + this.isActive = false; + } + Zoom.prototype.create = function () { + this.rect = this.factoryMgr.get('container').svg + .append('rect') + .attr('class', 'chart-brush'); + }; + Zoom.prototype.constrainOutgoingDomains = function (domains) { + if (!this.zoomOnX) { + delete domains.x; + } + if (!this.zoomOnY) { + delete domains.y; + } + }; + Zoom.prototype.update = function (data, options) { + var dimensions = this.factoryMgr.get('container').getDimensions(); + var _a = dimensions.margin, left = _a.left, top = _a.top; + this.zoomOnX = options.zoom.x; + this.zoomOnY = options.zoom.y; + if (!this.zoomOnX && !this.zoomOnY) { + return; + } + this.xStartFn = this.zoomOnX ? function (x) { return x; } : function (x) { return left; }; + this.xEndFn = this.zoomOnX ? function (x) { return x; } : function (x) { return dimensions.innerWidth + left; }; + this.yStartFn = this.zoomOnY ? function (y) { return y; } : function (y) { return top; }; + this.yEndFn = this.zoomOnY ? function (y) { return y; } : function (y) { return dimensions.innerHeight + top; }; + this.registerEvents(this.factoryMgr.get('container')); + }; + Zoom.prototype.show = function (_a) { + var xStart = _a.xStart, xEnd = _a.xEnd, yStart = _a.yStart, yEnd = _a.yEnd; + _b = xStart > xEnd ? [xEnd, xStart] : [xStart, xEnd], xStart = _b[0], xEnd = _b[1]; + _c = yStart > yEnd ? [yEnd, yStart] : [yStart, yEnd], yStart = _c[0], yEnd = _c[1]; + this.rect.attr({ + x: xStart, + width: xEnd - xStart, + y: yStart, + height: yEnd - yStart + }).style('opacity', '1'); + var _b, _c; + }; + Zoom.prototype.hide = function () { + this.rect.style('opacity', '0'); + }; + Zoom.prototype.updateAxes = function (_a) { + var xStart = _a.xStart, xEnd = _a.xEnd, yStart = _a.yStart, yEnd = _a.yEnd; + _b = xStart > xEnd ? [xEnd, xStart] : [xStart, xEnd], xStart = _b[0], xEnd = _b[1]; + _c = yStart > yEnd ? [yEnd, yStart] : [yStart, yEnd], yStart = _c[0], yEnd = _c[1]; + var dimensions = this.factoryMgr.get('container').getDimensions(); + var _d = dimensions.margin, left = _d.left, top = _d.top; + var xAxis = this.factoryMgr.get('x-axis'); + var x2Axis = this.factoryMgr.get('x2-axis'); + xAxis.setDomain([xAxis.invert(xStart - left), xAxis.invert(xEnd - left)]); + x2Axis.setDomain(xAxis.getDomain()); + var yAxis = this.factoryMgr.get('y-axis'); + var y2Axis = this.factoryMgr.get('y2-axis'); + yAxis.setDomain([yAxis.invert(yEnd - top), yAxis.invert(yStart - top)]); + y2Axis.setDomain([y2Axis.invert(yEnd - top), y2Axis.invert(yStart - top)]); + var _b, _c; + }; + Zoom.prototype.registerEvents = function (container) { + var _this = this; + var k = function (event) { return (event + "." + _this.key); }; + var xStart; + var xEnd; + var yStart; + var yEnd; + var turnBackOn; + var onMouseUp = function () { + _this.isActive = false; + _this.hide(); + if (xEnd !== undefined && yEnd !== undefined) { + _this.updateAxes({ xStart: xStart, xEnd: xEnd, yStart: yStart, yEnd: yEnd }); + _this.eventMgr.trigger('zoom-end'); + xStart = xEnd = yStart = yEnd = undefined; + turnBackOn(); + } + _this.eventMgr.on(k('window-mouseup'), null); + }; + container.svg + .on(k('mousedown'), function () { + var event = d3.event; + // We don't want to process non-left click events + if (event.button !== 0) { + return; + } + if (event.altKey) { + turnBackOn = _this.factoryMgr.turnFactoriesOff(['tooltip']); + _this.isActive = true; + _this.eventMgr.on(k('window-mouseup'), onMouseUp); + _a = d3.mouse(event.currentTarget), xStart = _a[0], yStart = _a[1]; + xStart = _this.xStartFn(xStart); + yStart = _this.yStartFn(yStart); + } + var _a; + }).on(k('mousemove'), function () { + if (_this.isActive) { + _a = d3.mouse(d3.event.currentTarget), xEnd = _a[0], yEnd = _a[1]; + xEnd = _this.xEndFn(xEnd); + yEnd = _this.yEndFn(yEnd); + _this.show({ xStart: xStart, xEnd: xEnd, yStart: yStart, yEnd: yEnd }); + _this.eventMgr.trigger('zoom'); + } + var _a; + }); + }; + return Zoom; + }(Factory.BaseFactory)); + Factory.Zoom = Zoom; + })(Factory = n3Charts.Factory || (n3Charts.Factory = {})); +})(n3Charts || (n3Charts = {})); +var n3Charts; +(function (n3Charts) { + var Factory; + (function (Factory) { + 'use strict'; + var Pan = (function (_super) { + __extends(Pan, _super); + function Pan() { + _super.apply(this, arguments); + this.isActive = false; + this.hasMoved = false; + } + Pan.prototype.constrainDomains = function (domains) { + domains.x = this.options.x(domains.x); + domains.x2 = this.options.x2(domains.x2); + domains.y = this.options.y(domains.y); + domains.y2 = this.options.y2(domains.y2); + }; + Pan.prototype.move = function (domains) { + var x = domains.x, x2 = domains.x2, y = domains.y, y2 = domains.y2; + var xAxis = this.factoryMgr.get('x-axis'); + var x2Axis = this.factoryMgr.get('x2-axis'); + var yAxis = this.factoryMgr.get('y-axis'); + var y2Axis = this.factoryMgr.get('y2-axis'); + if (x) { + xAxis.setDomain(x); + } + if (x2) { + x2Axis.setDomain(x2); + } + if (y) { + yAxis.setDomain(y); + } + if (y2) { + y2Axis.setDomain(y2); + } + }; + Pan.prototype.getNewDomains = function (deltaX, deltaX2, deltaY, deltaY2) { + var xAxis = this.factoryMgr.get('x-axis'); + var x2Axis = this.factoryMgr.get('x2-axis'); + var yAxis = this.factoryMgr.get('y-axis'); + var y2Axis = this.factoryMgr.get('y2-axis'); + return { + x: xAxis.range().map(function (x) { return x + deltaX; }).map(xAxis.invert, xAxis), + x2: x2Axis.range().map(function (x) { return x + deltaX2; }).map(x2Axis.invert, xAxis), + y: yAxis.range().map(function (x) { return x + deltaY; }).map(yAxis.invert, yAxis), + y2: y2Axis.range().map(function (x) { return x + deltaY2; }).map(y2Axis.invert, y2Axis) + }; + }; + Pan.prototype.update = function (data, options) { + var _this = this; + this.options = options.pan; + var container = this.factoryMgr.get('container'); + var k = function (event) { return (event + "." + _this.key); }; + var xStart; + var yStart; + var turnBackOn; + var onMouseUp = function () { + if (_this.hasMoved) { + _this.eventMgr.trigger('pan-end'); + } + if (turnBackOn) { + turnBackOn(); + } + _this.isActive = _this.hasMoved = false; + turnBackOn = undefined; + _this.eventMgr.on(k('window-mouseup'), null); + _this.eventMgr.on(k('window-mousemove'), null); + }; + var onMouseMove = function () { + if (_this.isActive) { + var _a = d3.mouse(container.svg.node()), xEnd = _a[0], yEnd = _a[1]; + var newDomains = _this.getNewDomains(xStart - xEnd, xStart - xEnd, yStart - yEnd, yStart - yEnd); + _this.constrainDomains(newDomains); + var x = newDomains.x, x2 = newDomains.x2, y = newDomains.y, y2 = newDomains.y2; + if (x || x2 || y || y2) { + if (!turnBackOn) { + turnBackOn = _this.factoryMgr.turnFactoriesOff(['tooltip', 'transitions']); + } + _this.hasMoved = true; + _this.move(newDomains); + _this.eventMgr.trigger('pan'); + } + _b = [xEnd, yEnd], xStart = _b[0], yStart = _b[1]; + } + var _b; + }; + container.svg + .on(k('mousedown'), function () { + var event = d3.event; + // We don't want to process non-left click events + if (event.button !== 0) { + return; + } + if (!event.altKey) { + _this.isActive = true; + _a = d3.mouse(event.currentTarget), xStart = _a[0], yStart = _a[1]; + _this.eventMgr.on(k('window-mouseup'), onMouseUp); + _this.eventMgr.on(k('window-mousemove'), onMouseMove); + } + var _a; + }); + }; + return Pan; + }(Factory.BaseFactory)); + Factory.Pan = Pan; + })(Factory = n3Charts.Factory || (n3Charts.Factory = {})); +})(n3Charts || (n3Charts = {})); +var n3Charts; +(function (n3Charts) { + var Factory; + (function (Factory) { + 'use strict'; + var Transition = (function (_super) { + __extends(Transition, _super); + function Transition() { + _super.apply(this, arguments); + this.duration = Transition.defaultDuration; + this.ease = 'cubic'; + } + Transition.prototype.off = function () { + _super.prototype.off.call(this); + this.duration = 0; + }; + Transition.prototype.on = function () { + _super.prototype.on.call(this); + this.duration = Transition.defaultDuration; + }; + Transition.prototype.enter = function (t) { + var duration = this.duration; + var ease = this.ease; + var n = t[0].length; + var delay = function (d, i) { return n ? i / n * duration : 0; }; + t.duration(duration) + .delay(delay) + .ease(ease); + }; + Transition.prototype.edit = function (t) { + var duration = this.duration; + var ease = this.ease; + var delay = 0; + t.duration(duration) + .delay(delay) + .ease(ease); + }; + Transition.prototype.exit = function (t) { + var duration = this.duration; + var ease = this.ease; + var delay = 0; + t.duration(duration) + .delay(delay) + .ease(ease); + }; + Transition.defaultDuration = 250; + return Transition; + }(Factory.BaseFactory)); + Factory.Transition = Transition; + })(Factory = n3Charts.Factory || (n3Charts.Factory = {})); +})(n3Charts || (n3Charts = {})); +var n3Charts; +(function (n3Charts) { + var Factory; + (function (Factory) { + var Symbols; + (function (Symbols) { + 'use strict'; + var HLine = (function (_super) { + __extends(HLine, _super); + function HLine() { + _super.apply(this, arguments); + } + HLine.prototype.create = function () { + this.svg = this.factoryMgr.get('container').symbols + .append('g') + .attr({ 'class': 'hlines' }); + this.eventMgr.on('resize.' + this.key, this.softUpdate.bind(this)); + this.eventMgr.on('pan.' + this.key, this.softUpdate.bind(this)); + this.eventMgr.on('zoom-end.' + this.key, this.softUpdate.bind(this)); + this.eventMgr.on('outer-world-domain-change.' + this.key, this.softUpdate.bind(this)); + }; + HLine.prototype.softUpdate = function () { + var xAxis = this.factoryMgr.get('x-axis'); + var yAxes = { + y: this.factoryMgr.get('y-axis'), + y2: this.factoryMgr.get('y2-axis') + }; + var hline = this.svg.selectAll('.hline') + .data(this.options.getSymbolsByType(n3Charts.Options.SymbolOptions.TYPE.HLINE), function (o) { return o.id; }); + var init = function (selection) { + selection + .attr('class', 'hline') + .style({ + 'opacity': 0, + 'stroke': function (o) { return o.color; } + }); + }; + var update = function (selection) { + selection.attr({ + 'x1': xAxis.scale(xAxis.getDomain()[0]), + 'x2': xAxis.scale(xAxis.getDomain()[1]), + 'y1': function (o) { return yAxes[o.axis].scale(o.value); }, + 'y2': function (o) { return yAxes[o.axis].scale(o.value); } + }).style({ + 'opacity': 1 + }); + }; + if (this.factoryMgr.get('transitions').isOn()) { + hline.enter() + .append('svg:line') + .call(init) + .transition() + .call(this.factoryMgr.getBoundFunction('transitions', 'enter')) + .call(update); + hline + .transition() + .call(this.factoryMgr.getBoundFunction('transitions', 'edit')) + .call(update); + hline.exit() + .transition() + .call(this.factoryMgr.getBoundFunction('transitions', 'exit')) + .style('opacity', 0) + .each('end', function () { + d3.select(this).remove(); + }); + } + else { + hline.enter() + .append('svg:line') + .call(init); + hline + .call(update); + hline.exit() + .remove(); + } + }; + HLine.prototype.update = function (data, options) { + this.options = options; + this.softUpdate(); + }; + HLine.prototype.destroy = function () { + this.svg.remove(); + }; + return HLine; + }(Factory.BaseFactory)); + Symbols.HLine = HLine; + })(Symbols = Factory.Symbols || (Factory.Symbols = {})); + })(Factory = n3Charts.Factory || (n3Charts.Factory = {})); +})(n3Charts || (n3Charts = {})); +var n3Charts; +(function (n3Charts) { + var Factory; + (function (Factory) { + var Symbols; + (function (Symbols) { + 'use strict'; + var VLine = (function (_super) { + __extends(VLine, _super); + function VLine() { + _super.apply(this, arguments); + } + VLine.prototype.create = function () { + this.svg = this.factoryMgr.get('container').symbols + .append('g') + .attr({ 'class': 'vlines' }); + this.eventMgr.on('resize.' + this.key, this.softUpdate.bind(this)); + this.eventMgr.on('pan.' + this.key, this.softUpdate.bind(this)); + this.eventMgr.on('zoom-end.' + this.key, this.softUpdate.bind(this)); + this.eventMgr.on('outer-world-domain-change.' + this.key, this.softUpdate.bind(this)); + }; + VLine.prototype.softUpdate = function () { + var xAxis = this.factoryMgr.get('x-axis'); + var yAxis = this.factoryMgr.get('y-axis'); + var vline = this.svg.selectAll('.vline') + .data(this.options.getSymbolsByType(n3Charts.Options.SymbolOptions.TYPE.VLINE), function (o) { return o.id; }); + var init = function (selection) { + selection + .attr('class', 'vline') + .style({ + 'opacity': 0, + 'stroke': function (o) { return o.color; } + }); + }; + var update = function (selection) { + selection.attr({ + 'x1': function (o) { return xAxis.scale(o.value); }, + 'x2': function (o) { return xAxis.scale(o.value); }, + 'y1': yAxis.scale(yAxis.getDomain()[0]), + 'y2': yAxis.scale(yAxis.getDomain()[1]) + }).style({ + 'opacity': 1 + }); + }; + if (this.factoryMgr.get('transitions').isOn()) { + vline.enter() + .append('svg:line') + .call(init) + .transition() + .call(this.factoryMgr.getBoundFunction('transitions', 'enter')) + .call(update); + vline + .transition() + .call(this.factoryMgr.getBoundFunction('transitions', 'edit')) + .call(update); + vline.exit() + .transition() + .call(this.factoryMgr.getBoundFunction('transitions', 'exit')) + .style('opacity', 0) + .each('end', function () { + d3.select(this).remove(); + }); + } + else { + vline.enter() + .append('svg:line') + .call(init); + vline + .call(update); + vline.exit() + .remove(); + } + }; + VLine.prototype.update = function (data, options) { + this.options = options; + this.softUpdate(); + }; + VLine.prototype.destroy = function () { + this.svg.remove(); + }; + return VLine; + }(Factory.BaseFactory)); + Symbols.VLine = VLine; + })(Symbols = Factory.Symbols || (Factory.Symbols = {})); + })(Factory = n3Charts.Factory || (n3Charts.Factory = {})); +})(n3Charts || (n3Charts = {})); +/// +/// +var n3Charts; +(function (n3Charts) { + var Factory; + (function (Factory) { + var Series; + (function (Series) { + 'use strict'; + var SeriesFactory = (function (_super) { + __extends(SeriesFactory, _super); + function SeriesFactory() { + _super.apply(this, arguments); + } + SeriesFactory.prototype.create = function () { + this.createContainer(this.factoryMgr.get('container').data); + // Hard update + this.eventMgr.on('data-update.' + this.type, this.update.bind(this)); + // Soft updates + this.eventMgr.on('pan.' + this.type, this.softUpdate.bind(this)); + this.eventMgr.on('zoom-end.' + this.type, this.softUpdate.bind(this)); + this.eventMgr.on('outer-world-domain-change.' + this.key, this.softUpdate.bind(this)); + this.eventMgr.on('resize.' + this.type, this.softUpdate.bind(this)); + }; + SeriesFactory.prototype.update = function (data, options) { + this.data = data; + this.options = options; + this.softUpdate(); + }; + SeriesFactory.prototype.getAxes = function (series) { + return { + xAxis: this.factoryMgr.get('x-axis'), + yAxis: this.factoryMgr.get(series.axis + '-axis') + }; + }; + SeriesFactory.prototype.softUpdate = function () { + var series = this.options.getSeriesByType(this.type).filter(function (s) { return s.visible; }); + this.updateSeriesContainer(series); + }; + SeriesFactory.prototype.destroy = function () { + this.svg.remove(); + }; + SeriesFactory.prototype.createContainer = function (parent) { + this.svg = parent + .append('g') + .attr('class', this.type + SeriesFactory.containerClassSuffix); + }; + SeriesFactory.prototype.updateSeriesContainer = function (series) { + var _this = this; + // Create a data join + var groups = this.svg + .selectAll('.' + this.type + SeriesFactory.seriesClassSuffix) + .data(series, function (d) { return d.id; }); + // Create a new group for every new series + groups.enter() + .append('g') + .attr({ + class: function (d) { + return _this.type + SeriesFactory.seriesClassSuffix + ' ' + d.id; + } + }); + // Update all existing series groups + this.styleSeries(groups); + this.updateSeries(groups, series); + // Delete unused series groups + groups.exit() + .remove(); + }; + SeriesFactory.prototype.updateSeries = function (groups, series) { + // Workaround to retrieve the D3.Selection + // in the callback function (bound to keyword this) + var self = this; + groups.each(function (d, i) { + // Hmmmm TypeScript... + var group = d3.select(this); + self.updateData(group, d, i, series.length); + }); + }; + SeriesFactory.prototype.updateData = function (group, series, index, numSeries) { + // this needs to be overwritten + }; + SeriesFactory.prototype.styleSeries = function (group) { + // this needs to be overwritten + }; + SeriesFactory.containerClassSuffix = '-data'; + SeriesFactory.seriesClassSuffix = '-series'; + return SeriesFactory; + }(n3Charts.Factory.BaseFactory)); + Series.SeriesFactory = SeriesFactory; + })(Series = Factory.Series || (Factory.Series = {})); + })(Factory = n3Charts.Factory || (n3Charts.Factory = {})); +})(n3Charts || (n3Charts = {})); +var n3Charts; +(function (n3Charts) { + var Factory; + (function (Factory) { + var Series; + (function (Series) { + 'use strict'; + var Dot = (function (_super) { + __extends(Dot, _super); + function Dot() { + _super.apply(this, arguments); + this.type = n3Charts.Options.SeriesOptions.TYPE.DOT; + } + Dot.prototype.updateData = function (group, series, index, numSeries) { + var _a = this.getAxes(series), xAxis = _a.xAxis, yAxis = _a.yAxis; + var dotsData = this.data.getDatasetValues(series, this.options).filter(series.defined); + var dotsRadius = 2; + var dots = group.selectAll('.' + this.type) + .data(dotsData, function (d) { return '' + d.x; }); + var initPoint = function (s) { + s.attr({ + r: function (d) { return dotsRadius; }, + cx: function (d) { return xAxis.scale(d.x); }, + cy: function (d) { return yAxis.range()[0]; } + }); + }; + var updatePoint = function (s) { + s.attr({ + cx: function (d) { return xAxis.scale(d.x); }, + cy: function (d) { return yAxis.scale(d.y1); } + }) + .style('opacity', series.visible ? 1 : 0); + }; + if (this.factoryMgr.get('transitions').isOn()) { + dots.enter() + .append('circle') + .attr('class', this.type) + .call(this.eventMgr.datumEnter(series, this.options)) + .call(this.eventMgr.datumOver(series, this.options)) + .call(this.eventMgr.datumMove(series, this.options)) + .call(this.eventMgr.datumLeave(series, this.options)) + .call(initPoint) + .transition() + .call(this.factoryMgr.getBoundFunction('transitions', 'enter')) + .call(updatePoint); + dots + .transition() + .call(this.factoryMgr.getBoundFunction('transitions', 'edit')) + .call(updatePoint); + dots.exit() + .transition() + .call(this.factoryMgr.getBoundFunction('transitions', 'exit')) + .call(initPoint) + .each('end', function () { + d3.select(this).remove(); + }); + } + else { + dots.enter() + .append('circle') + .attr('class', this.type) + .call(this.eventMgr.datumEnter(series, this.options)) + .call(this.eventMgr.datumOver(series, this.options)) + .call(this.eventMgr.datumMove(series, this.options)) + .call(this.eventMgr.datumLeave(series, this.options)) + .call(updatePoint); + dots + .call(updatePoint); + dots.exit() + .remove(); + } + }; + Dot.prototype.styleSeries = function (group) { + group.style({ + 'stroke': function (d) { return d.color; } + }); + }; + return Dot; + }(Factory.Series.SeriesFactory)); + Series.Dot = Dot; + })(Series = Factory.Series || (Factory.Series = {})); + })(Factory = n3Charts.Factory || (n3Charts.Factory = {})); +})(n3Charts || (n3Charts = {})); +var n3Charts; +(function (n3Charts) { + var Factory; + (function (Factory) { + var Series; + (function (Series) { + 'use strict'; + var Line = (function (_super) { + __extends(Line, _super); + function Line() { + _super.apply(this, arguments); + this.type = n3Charts.Options.SeriesOptions.TYPE.LINE; + } + Line.prototype.updateData = function (group, series, index, numSeries) { + group.classed('dashed', series.isDashed()); + var _a = this.getAxes(series), xAxis = _a.xAxis, yAxis = _a.yAxis; + var lineData = this.data.getDatasetValues(series, this.options); + var initLine = d3.svg.line() + .defined(series.defined) + .x(function (d) { return xAxis.scale(d.x); }) + .y((yAxis.range()[0])) + .interpolate(series.interpolation.mode) + .tension(series.interpolation.tension); + var updateLine = d3.svg.line() + .defined(series.defined) + .x(function (d) { return xAxis.scale(d.x); }) + .y(function (d) { return yAxis.scale(d.y1); }) + .interpolate(series.interpolation.mode) + .tension(series.interpolation.tension); + var line = group.selectAll('.' + this.type) + .data([lineData]); + if (this.factoryMgr.get('transitions').isOn()) { + line.enter() + .append('path') + .attr('class', this.type) + .attr('d', function (d) { return initLine(d); }) + .transition() + .call(this.factoryMgr.getBoundFunction('transitions', 'enter')) + .attr('d', function (d) { return updateLine(d); }); + line + .transition() + .call(this.factoryMgr.getBoundFunction('transitions', 'edit')) + .attr('d', function (d) { return updateLine(d); }) + .style('opacity', series.visible ? 1 : 0); + line.exit() + .transition() + .call(this.factoryMgr.getBoundFunction('transitions', 'exit')) + .attr('d', function (d) { return initLine(d); }) + .each('end', function () { + d3.select(this).remove(); + }); + } + else { + line.enter() + .append('path') + .attr('class', this.type) + .attr('d', function (d) { return updateLine(d); }); + line + .attr('d', function (d) { return updateLine(d); }) + .style('opacity', series.visible ? 1 : 0); + line.exit() + .remove(); + } + }; + Line.prototype.styleSeries = function (group) { + group.style({ + 'fill': 'none', + 'stroke': function (s) { return s.color; }, + 'stroke-dasharray': function (s) { return s.isDashed() ? '10,3' : undefined; } + }); + }; + return Line; + }(Factory.Series.SeriesFactory)); + Series.Line = Line; + })(Series = Factory.Series || (Factory.Series = {})); + })(Factory = n3Charts.Factory || (n3Charts.Factory = {})); +})(n3Charts || (n3Charts = {})); +var n3Charts; +(function (n3Charts) { + var Factory; + (function (Factory) { + var Series; + (function (Series) { + 'use strict'; + var Area = (function (_super) { + __extends(Area, _super); + function Area() { + _super.apply(this, arguments); + this.type = n3Charts.Options.SeriesOptions.TYPE.AREA; + } + Area.prototype.updateData = function (group, series, index, numSeries) { + var _a = this.getAxes(series), xAxis = _a.xAxis, yAxis = _a.yAxis; + var areaData = this.data.getDatasetValues(series, this.options); + var initArea = d3.svg.area() + .defined(series.defined) + .x(function (d) { return xAxis.scale(d.x); }) + .y0((yAxis.range()[0])) + .y1((yAxis.range()[0])) + .interpolate(series.interpolation.mode) + .tension(series.interpolation.tension); + var updateArea = d3.svg.area() + .defined(series.defined) + .x(function (d) { return xAxis.scale(d.x); }) + .y0(function (d) { return isNaN(yAxis.scale(d.y0)) ? yAxis.range()[0] : yAxis.scale(d.y0); }) + .y1(function (d) { return yAxis.scale(d.y1); }) + .interpolate(series.interpolation.mode) + .tension(series.interpolation.tension); + var area = group.selectAll('.' + this.type) + .data([areaData]); + if (this.factoryMgr.get('transitions').isOn()) { + area.enter() + .append('path') + .attr('class', this.type) + .attr('d', function (d) { return initArea(d); }) + .transition() + .call(this.factoryMgr.getBoundFunction('transitions', 'enter')) + .attr('d', function (d) { return updateArea(d); }); + area + .transition() + .call(this.factoryMgr.getBoundFunction('transitions', 'edit')) + .attr('d', function (d) { return updateArea(d); }) + .style('opacity', series.visible ? 1 : 0); + area.exit() + .transition() + .call(this.factoryMgr.getBoundFunction('transitions', 'exit')) + .attr('d', function (d) { return initArea(d); }) + .each('end', function () { d3.select(this).remove(); }); + } + else { + area.enter() + .append('path') + .attr('class', this.type) + .attr('d', function (d) { return updateArea(d); }); + area + .attr('d', function (d) { return updateArea(d); }) + .style('opacity', series.visible ? 1 : 0); + area.exit() + .remove(); + } + }; + Area.prototype.styleSeries = function (group) { + group.style({ + 'fill': function (s) { return s.color; }, + 'stroke': function (s) { return s.color; } + }); + }; + return Area; + }(Factory.Series.SeriesFactory)); + Series.Area = Area; + })(Series = Factory.Series || (Factory.Series = {})); + })(Factory = n3Charts.Factory || (n3Charts.Factory = {})); +})(n3Charts || (n3Charts = {})); +var n3Charts; +(function (n3Charts) { + var Factory; + (function (Factory) { + var Series; + (function (Series) { + 'use strict'; + var Column = (function (_super) { + __extends(Column, _super); + function Column() { + _super.apply(this, arguments); + this.type = n3Charts.Options.SeriesOptions.TYPE.COLUMN; + this.gapFactor = 0.2; + this.outerPadding = (this.gapFactor / 2) * 3; + this.columnsWidth = 0; + } + Column.prototype.softUpdate = function () { + var series = this.options.getSeriesByType(this.type).filter(function (s) { return s.visible; }); + this.updateColumnsWidth(series, this.options); + this.updateColumnScale(series, this.options); + this.updateSeriesContainer(series); + }; + Column.prototype.update = function (data, options) { + this.data = data; + this.options = options; + var series = options.getSeriesByType(this.type).filter(function (s) { return s.visible; }); + this.updateColumnsWidth(series, options); + this.updateColumnScale(series, options); + this.updateSeriesContainer(series); + }; + Column.prototype.updateColumnsWidth = function (series, options) { + var xAxis = this.factoryMgr.get('x-axis'); + var colsDatasets = this.data.getDatasets(series, options); + var delta = n3Charts.Utils.Data.getMinDistance(colsDatasets, xAxis, 'x'); + this.columnsWidth = delta < Number.MAX_VALUE ? delta / series.length : 10; + }; + Column.prototype.updateColumnScale = function (series, options) { + var halfWidth = this.columnsWidth * series.length / 2; + this.innerXScale = d3.scale.ordinal() + .domain(series.map(function (s) { return s.id; })) + .rangeBands([-halfWidth, halfWidth], 0, 0.1); + }; + Column.prototype.getTooltipPosition = function (series) { + return this.innerXScale(series.id) + this.innerXScale.rangeBand() / 2; + }; + Column.prototype.updateData = function (group, series, index, numSeries) { + var _this = this; + var _a = this.getAxes(series), xAxis = _a.xAxis, yAxis = _a.yAxis; + var colsData = this.data.getDatasetValues(series, this.options).filter(series.defined); + var xFn = function (d) { return xAxis.scale(d.x) + _this.innerXScale(series.id); }; + var initCol = function (s) { + s.attr({ + x: xFn, + y: function (d) { return yAxis.scale(d.y0); }, + width: _this.innerXScale.rangeBand(), + height: 0 + }); + }; + var updateCol = function (s) { + s.attr({ + x: xFn, + y: function (d) { return d.y1 > 0 ? yAxis.scale(d.y1) : yAxis.scale(d.y0); }, + width: _this.innerXScale.rangeBand(), + height: function (d) { return Math.abs(yAxis.scale(d.y0) - yAxis.scale(d.y1)); } + }) + .style('opacity', series.visible ? 1 : 0); + }; + var cols = group.selectAll('.' + this.type) + .data(colsData, function (d) { return '' + d.x; }); + if (this.factoryMgr.get('transitions').isOn()) { + cols.enter() + .append('rect') + .attr('class', this.type) + .call(this.eventMgr.datumEnter(series, this.options)) + .call(this.eventMgr.datumOver(series, this.options)) + .call(this.eventMgr.datumMove(series, this.options)) + .call(this.eventMgr.datumLeave(series, this.options)) + .call(initCol) + .transition() + .call(this.factoryMgr.getBoundFunction('transitions', 'enter')) + .call(updateCol); + cols + .transition() + .call(this.factoryMgr.getBoundFunction('transitions', 'edit')) + .call(updateCol); + cols.exit() + .transition() + .call(this.factoryMgr.getBoundFunction('transitions', 'exit')) + .call(initCol) + .each('end', function () { + d3.select(this).remove(); + }); + } + else { + cols.enter() + .append('rect') + .attr('class', this.type) + .call(this.eventMgr.datumEnter(series, this.options)) + .call(this.eventMgr.datumOver(series, this.options)) + .call(this.eventMgr.datumMove(series, this.options)) + .call(this.eventMgr.datumLeave(series, this.options)) + .call(updateCol); + cols + .call(updateCol); + cols.exit() + .remove(); + } + }; + Column.prototype.styleSeries = function (group) { + group.style({ + 'fill': function (d) { return d.color; }, + 'stroke': function (d) { return d.color; }, + 'stroke-width': 1 + }); + }; + return Column; + }(Factory.Series.SeriesFactory)); + Series.Column = Column; + })(Series = Factory.Series || (Factory.Series = {})); + })(Factory = n3Charts.Factory || (n3Charts.Factory = {})); +})(n3Charts || (n3Charts = {})); +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +var n3Charts; +(function (n3Charts) { + var Factory; + (function (Factory) { + 'use strict'; + var AngularJSSyncLayer = (function (_super) { + __extends(AngularJSSyncLayer, _super); + function AngularJSSyncLayer(scope, attributes, $parse) { + _super.call(this); + this.scope = scope; + this.attributes = attributes; + this.$parse = $parse; + } + AngularJSSyncLayer.prototype.create = function () { + this.unregisteringFunctions = []; + this.sanitizeAttributes(); + this.syncTooltips(); + this.syncDomainsChange(); + this.syncDatumEvents(); + }; + AngularJSSyncLayer.prototype.sanitizeAttributes = function () { + var _a = this.attributes, tooltipSyncKey = _a.tooltipSyncKey, domainsSyncKey = _a.domainsSyncKey; + if (!!tooltipSyncKey && !!domainsSyncKey) { + if (tooltipSyncKey === domainsSyncKey) { + throw new Error('Heterogeneous sync keys can\'t have the same value.'); + } + } + }; + AngularJSSyncLayer.prototype.syncDatumEvents = function () { + var _this = this; + var eventMgr = this.eventMgr; + if (!!this.attributes.onClick) { + var onClick = this.$parse(this.attributes.onClick); + eventMgr.on('click.sync-layer', function (d, i, series, options) { + onClick(_this.scope.$parent, { row: d, index: i, series: series, options: options }); + }); + } + }; + AngularJSSyncLayer.prototype.syncTooltips = function () { + var _this = this; + var eventMgr = this.eventMgr; + if (!!this.attributes.tooltipSyncKey) { + this.unregisteringFunctions.push(this.scope.$root.$on(this.attributes.tooltipSyncKey, function (event, value) { + eventMgr.triggerDataAndOptions('outer-world-hover', value); + })); + eventMgr.on('container-move.sync-layer', function (event) { + _this.scope.$emit(_this.attributes.tooltipSyncKey, _this.factoryMgr.get('container').getCoordinatesFromEvent(event)); + }); + eventMgr.on('container-out.sync-layer', function () { + _this.scope.$emit(_this.attributes.tooltipSyncKey, { x: undefined, y: undefined }); + }); + } + }; + AngularJSSyncLayer.prototype.syncDomainsChange = function () { + var _this = this; + var eventMgr = this.eventMgr; + var callbacks = []; + var xAxis = this.factoryMgr.get('x-axis'); + var x2Axis = this.factoryMgr.get('x2-axis'); + var yAxis = this.factoryMgr.get('y-axis'); + var y2Axis = this.factoryMgr.get('y2-axis'); + if (!!this.attributes.onDomainsChange) { + var onDomainsChange = this.$parse(this.attributes.onDomainsChange); + callbacks.push(function (domains, _a) { + var isEndEvent = _a.isEndEvent; + if (isEndEvent) { + onDomainsChange(_this.scope.$parent, { $domains: domains }); + } + }); + } + if (!!this.attributes.domainsSyncKey) { + this.unregisteringFunctions.push(this.scope.$root.$on(this.attributes.domainsSyncKey, function (event, domains, type) { + if (event.targetScope === _this.scope) { + return; + } + if (!domains.x || !domains.y || !domains.x2 || !domains.y2) { + domains = angular.copy(domains); + } + if (!domains.x) { + domains.x = xAxis.getScaleDomain(); + } + if (!domains.x2) { + domains.x2 = x2Axis.getScaleDomain(); + } + if (!domains.y) { + domains.y = yAxis.getScaleDomain(); + } + if (!domains.y2) { + domains.y2 = y2Axis.getScaleDomain(); + } + if (type === 'zoom-end') { + eventMgr.trigger('outer-world-domain-change', domains); + _this.factoryMgr.turnFactoriesOn(['tooltip']); + } + else if (type === 'zoom') { + _this.factoryMgr.turnFactoriesOff(['tooltip']); + } + else if (type === 'pan' || type === 'pan-end') { + _this.factoryMgr.turnFactoriesOff(['transitions', 'tooltip']); + eventMgr.trigger('outer-world-domain-change', domains); + if (type === 'pan-end') { + _this.factoryMgr.turnFactoriesOn(['transitions', 'tooltip']); + } + } + else if (type === 'zoom-pan-reset') { + eventMgr.trigger('zoom-pan-reset', false); + } + })); + callbacks.push(function (domains, _a) { + var type = _a.type; + _this.scope.$emit(_this.attributes.domainsSyncKey, domains, type); + }); + } + var getDomains = function () { + return { + x: xAxis.getScaleDomain(), + x2: x2Axis.getScaleDomain(), + y: yAxis.getScaleDomain(), + y2: y2Axis.getScaleDomain() + }; + }; + var ping = function (domains, args) { return callbacks.forEach(function (fn) { return fn(domains, args); }); }; + eventMgr.on('pan.sync-layer', function () { + var domains = getDomains(); + _this.factoryMgr.get('pan').constrainDomains(domains); + ping(domains, { type: 'pan' }); + }); + eventMgr.on('pan-end.sync-layer', function () { + var domains = getDomains(); + _this.factoryMgr.get('pan').constrainDomains(domains); + ping(domains, { type: 'pan-end', isEndEvent: true }); + }); + eventMgr.on('zoom.sync-layer', function () { + var domains = getDomains(); + _this.factoryMgr.get('zoom').constrainOutgoingDomains(domains); + ping(domains, { type: 'zoom', isEndEvent: false }); + }); + eventMgr.on('zoom-end.sync-layer', function () { + var domains = getDomains(); + _this.factoryMgr.get('zoom').constrainOutgoingDomains(domains); + ping(domains, { type: 'zoom-end', isEndEvent: true }); + }); + eventMgr.on('zoom-pan-reset.sync-layer', function (madeHere) { + if (madeHere) { + ping(getDomains(), { type: 'zoom-pan-reset', isEndEvent: true }); + } + }); + }; + AngularJSSyncLayer.prototype.destroy = function () { + var fn; + while (fn = this.unregisteringFunctions.pop()) { + fn(); + } + }; + return AngularJSSyncLayer; + }(Factory.BaseFactory)); + Factory.AngularJSSyncLayer = AngularJSSyncLayer; + })(Factory = n3Charts.Factory || (n3Charts.Factory = {})); +})(n3Charts || (n3Charts = {})); +/// +/// +/// +/// +/// +/// +var n3Charts; +(function (n3Charts) { + 'use strict'; + var LineChart = (function () { + function LineChart($window, $parse, $timeout, $rootScope) { + var _this = this; + this.$window = $window; + this.$parse = $parse; + this.$timeout = $timeout; + this.$rootScope = $rootScope; + this.scope = { + data: '=', + options: '=', + styles: '=', + hoveredCoordinates: '=' + }; + this.restrict = 'E'; + this.replace = true; + this.template = '

'; + this.link = function (scope, element, attributes) { + var data; + var options; + var eventMgr = new n3Charts.Utils.EventManager(); + var factoryMgr = new n3Charts.Utils.FactoryManager(); + eventMgr.init(n3Charts.Utils.EventManager.EVENTS); + factoryMgr.registerMany([ + ['container', n3Charts.Factory.Container, element[0]], + ['tooltip', n3Charts.Factory.Tooltip, element[0]], + ['legend', n3Charts.Factory.Legend, element[0]], + ['transitions', n3Charts.Factory.Transition], + ['x-axis', n3Charts.Factory.Axis, n3Charts.Options.AxisOptions.SIDE.X], + ['x2-axis', n3Charts.Factory.Axis, n3Charts.Options.AxisOptions.SIDE.X2], + ['y-axis', n3Charts.Factory.Axis, n3Charts.Options.AxisOptions.SIDE.Y], + ['y2-axis', n3Charts.Factory.Axis, n3Charts.Options.AxisOptions.SIDE.Y2], + ['grid', n3Charts.Factory.Grid], + ['pan', n3Charts.Factory.Pan], + ['zoom', n3Charts.Factory.Zoom], + ['sync-layer', n3Charts.Factory.AngularJSSyncLayer, scope, attributes, _this.$parse], + // This order is important, otherwise it can mess up with the tooltip + // (and you don't want to mess up with a tooltip, trust me). + ['series-area', n3Charts.Factory.Series.Area], + ['series-column', n3Charts.Factory.Series.Column], + ['series-line', n3Charts.Factory.Series.Line], + ['series-dot', n3Charts.Factory.Series.Dot], + ['symbols-hline', n3Charts.Factory.Symbols.HLine], + ['symbols-vline', n3Charts.Factory.Symbols.VLine] + ]); + factoryMgr.all().forEach(function (f) { return f.instance.init(f.key, eventMgr, factoryMgr); }); + var deferredCreation = scope.options === undefined; + var updateAll = function () { + options = new n3Charts.Options.Options(angular.copy(scope.options)); + data = new n3Charts.Utils.Data(scope.data); + if (deferredCreation) { + deferredCreation = false; + eventMgr.trigger('create', options); + } + eventMgr.update(data, options); + eventMgr.trigger('update', data, options); + }; + if (!deferredCreation) { + eventMgr.trigger('create', new n3Charts.Options.Options(angular.copy(scope.options))); + } + var updateData = function (_data) { + if (!_data) { + return; + } + data.fromJS(_data); + factoryMgr.turnFactoriesOff(['transitions']); + eventMgr.trigger('data-update', data, options); + factoryMgr.turnFactoriesOn(['transitions']); + eventMgr.trigger('update', data, options); + }; + scope.$watch('options', updateAll, true); + scope.$watch('data', updateData, true); + eventMgr.on('legend-click.directive', function (series) { + var foundSeries = scope.options.series.filter(function (s) { return s.id === series.id; })[0]; + foundSeries.visible = series.getToggledVisibility(); + scope.$apply(); + }); + eventMgr.on('pan.directive', function () { + factoryMgr.get('container').svg.classed('panning', true); + }); + eventMgr.on('pan-end.directive', function () { + factoryMgr.get('container').svg.classed('panning', false); + }); + var getDimensions = function () { + if (!element || !element[0]) { + return {}; + } + var rect = element[0].parentElement.getBoundingClientRect(); + return { + height: rect.height, + width: rect.width, + left: rect.left, + right: rect.right, + bottom: rect.bottom, + top: rect.top + }; + }; + var debouncedResizeEventEmitter = n3Charts.Utils.FunctionUtils.debounce(function () { + eventMgr.trigger('resize', element[0].parentElement); + }, 50); + scope.$watch(getDimensions, debouncedResizeEventEmitter, true); + var debouncedApplier = n3Charts.Utils.FunctionUtils.debounce(function () { return scope.$apply(); }, 50); + angular.element(_this.$window).on('resize', debouncedApplier); + // Trigger the destroy event + scope.$on('$destroy', function () { + eventMgr.trigger('destroy'); + angular.element(_this.$window).off('resize', debouncedApplier); + }); + }; + } + return LineChart; + }()); + n3Charts.LineChart = LineChart; +})(n3Charts || (n3Charts = {})); +/// +/// +// Create the angular module +angular.module('n3-line-chart', []) + .directive('linechart', [ + '$window', '$parse', '$timeout', '$rootScope', + function ($window, $parse, $timeout, $rootScope) { return new n3Charts.LineChart($window, $parse, $timeout, $rootScope); } +]); diff --git a/web_db/www/.tmp/public/js/angular-route.js b/web_db/www/.tmp/public/js/angular-route.js new file mode 100644 index 0000000..c768251 --- /dev/null +++ b/web_db/www/.tmp/public/js/angular-route.js @@ -0,0 +1,999 @@ +/** + * @license AngularJS v1.4.10 + * (c) 2010-2015 Google, Inc. http://angularjs.org + * License: MIT + */ +(function(window, angular, undefined) {'use strict'; + +/** + * @ngdoc module + * @name ngRoute + * @description + * + * # ngRoute + * + * The `ngRoute` module provides routing and deeplinking services and directives for angular apps. + * + * ## Example + * See {@link ngRoute.$route#example $route} for an example of configuring and using `ngRoute`. + * + * + *
+ */ + /* global -ngRouteModule */ +var ngRouteModule = angular.module('ngRoute', ['ng']). + provider('$route', $RouteProvider), + $routeMinErr = angular.$$minErr('ngRoute'); + +/** + * @ngdoc provider + * @name $routeProvider + * + * @description + * + * Used for configuring routes. + * + * ## Example + * See {@link ngRoute.$route#example $route} for an example of configuring and using `ngRoute`. + * + * ## Dependencies + * Requires the {@link ngRoute `ngRoute`} module to be installed. + */ +function $RouteProvider() { + function inherit(parent, extra) { + return angular.extend(Object.create(parent), extra); + } + + var routes = {}; + + /** + * @ngdoc method + * @name $routeProvider#when + * + * @param {string} path Route path (matched against `$location.path`). If `$location.path` + * contains redundant trailing slash or is missing one, the route will still match and the + * `$location.path` will be updated to add or drop the trailing slash to exactly match the + * route definition. + * + * * `path` can contain named groups starting with a colon: e.g. `:name`. All characters up + * to the next slash are matched and stored in `$routeParams` under the given `name` + * when the route matches. + * * `path` can contain named groups starting with a colon and ending with a star: + * e.g.`:name*`. All characters are eagerly stored in `$routeParams` under the given `name` + * when the route matches. + * * `path` can contain optional named groups with a question mark: e.g.`:name?`. + * + * For example, routes like `/color/:color/largecode/:largecode*\/edit` will match + * `/color/brown/largecode/code/with/slashes/edit` and extract: + * + * * `color: brown` + * * `largecode: code/with/slashes`. + * + * + * @param {Object} route Mapping information to be assigned to `$route.current` on route + * match. + * + * Object properties: + * + * - `controller` – `{(string|function()=}` – Controller fn that should be associated with + * newly created scope or the name of a {@link angular.Module#controller registered + * controller} if passed as a string. + * - `controllerAs` – `{string=}` – An identifier name for a reference to the controller. + * If present, the controller will be published to scope under the `controllerAs` name. + * - `template` – `{string=|function()=}` – html template as a string or a function that + * returns an html template as a string which should be used by {@link + * ngRoute.directive:ngView ngView} or {@link ng.directive:ngInclude ngInclude} directives. + * This property takes precedence over `templateUrl`. + * + * If `template` is a function, it will be called with the following parameters: + * + * - `{Array.}` - route parameters extracted from the current + * `$location.path()` by applying the current route + * + * - `templateUrl` – `{string=|function()=}` – path or function that returns a path to an html + * template that should be used by {@link ngRoute.directive:ngView ngView}. + * + * If `templateUrl` is a function, it will be called with the following parameters: + * + * - `{Array.}` - route parameters extracted from the current + * `$location.path()` by applying the current route + * + * - `resolve` - `{Object.=}` - An optional map of dependencies which should + * be injected into the controller. If any of these dependencies are promises, the router + * will wait for them all to be resolved or one to be rejected before the controller is + * instantiated. + * If all the promises are resolved successfully, the values of the resolved promises are + * injected and {@link ngRoute.$route#$routeChangeSuccess $routeChangeSuccess} event is + * fired. If any of the promises are rejected the + * {@link ngRoute.$route#$routeChangeError $routeChangeError} event is fired. The map object + * is: + * + * - `key` – `{string}`: a name of a dependency to be injected into the controller. + * - `factory` - `{string|function}`: If `string` then it is an alias for a service. + * Otherwise if function, then it is {@link auto.$injector#invoke injected} + * and the return value is treated as the dependency. If the result is a promise, it is + * resolved before its value is injected into the controller. Be aware that + * `ngRoute.$routeParams` will still refer to the previous route within these resolve + * functions. Use `$route.current.params` to access the new route parameters, instead. + * + * - `redirectTo` – {(string|function())=} – value to update + * {@link ng.$location $location} path with and trigger route redirection. + * + * If `redirectTo` is a function, it will be called with the following parameters: + * + * - `{Object.}` - route parameters extracted from the current + * `$location.path()` by applying the current route templateUrl. + * - `{string}` - current `$location.path()` + * - `{Object}` - current `$location.search()` + * + * The custom `redirectTo` function is expected to return a string which will be used + * to update `$location.path()` and `$location.search()`. + * + * - `[reloadOnSearch=true]` - {boolean=} - reload route when only `$location.search()` + * or `$location.hash()` changes. + * + * If the option is set to `false` and url in the browser changes, then + * `$routeUpdate` event is broadcasted on the root scope. + * + * - `[caseInsensitiveMatch=false]` - {boolean=} - match routes without being case sensitive + * + * If the option is set to `true`, then the particular route can be matched without being + * case sensitive + * + * @returns {Object} self + * + * @description + * Adds a new route definition to the `$route` service. + */ + this.when = function(path, route) { + //copy original route object to preserve params inherited from proto chain + var routeCopy = angular.copy(route); + if (angular.isUndefined(routeCopy.reloadOnSearch)) { + routeCopy.reloadOnSearch = true; + } + if (angular.isUndefined(routeCopy.caseInsensitiveMatch)) { + routeCopy.caseInsensitiveMatch = this.caseInsensitiveMatch; + } + routes[path] = angular.extend( + routeCopy, + path && pathRegExp(path, routeCopy) + ); + + // create redirection for trailing slashes + if (path) { + var redirectPath = (path[path.length - 1] == '/') + ? path.substr(0, path.length - 1) + : path + '/'; + + routes[redirectPath] = angular.extend( + {redirectTo: path}, + pathRegExp(redirectPath, routeCopy) + ); + } + + return this; + }; + + /** + * @ngdoc property + * @name $routeProvider#caseInsensitiveMatch + * @description + * + * A boolean property indicating if routes defined + * using this provider should be matched using a case insensitive + * algorithm. Defaults to `false`. + */ + this.caseInsensitiveMatch = false; + + /** + * @param path {string} path + * @param opts {Object} options + * @return {?Object} + * + * @description + * Normalizes the given path, returning a regular expression + * and the original path. + * + * Inspired by pathRexp in visionmedia/express/lib/utils.js. + */ + function pathRegExp(path, opts) { + var insensitive = opts.caseInsensitiveMatch, + ret = { + originalPath: path, + regexp: path + }, + keys = ret.keys = []; + + path = path + .replace(/([().])/g, '\\$1') + .replace(/(\/)?:(\w+)(\*\?|[\?\*])?/g, function(_, slash, key, option) { + var optional = (option === '?' || option === '*?') ? '?' : null; + var star = (option === '*' || option === '*?') ? '*' : null; + keys.push({ name: key, optional: !!optional }); + slash = slash || ''; + return '' + + (optional ? '' : slash) + + '(?:' + + (optional ? slash : '') + + (star && '(.+?)' || '([^/]+)') + + (optional || '') + + ')' + + (optional || ''); + }) + .replace(/([\/$\*])/g, '\\$1'); + + ret.regexp = new RegExp('^' + path + '$', insensitive ? 'i' : ''); + return ret; + } + + /** + * @ngdoc method + * @name $routeProvider#otherwise + * + * @description + * Sets route definition that will be used on route change when no other route definition + * is matched. + * + * @param {Object|string} params Mapping information to be assigned to `$route.current`. + * If called with a string, the value maps to `redirectTo`. + * @returns {Object} self + */ + this.otherwise = function(params) { + if (typeof params === 'string') { + params = {redirectTo: params}; + } + this.when(null, params); + return this; + }; + + + this.$get = ['$rootScope', + '$location', + '$routeParams', + '$q', + '$injector', + '$templateRequest', + '$sce', + function($rootScope, $location, $routeParams, $q, $injector, $templateRequest, $sce) { + + /** + * @ngdoc service + * @name $route + * @requires $location + * @requires $routeParams + * + * @property {Object} current Reference to the current route definition. + * The route definition contains: + * + * - `controller`: The controller constructor as define in route definition. + * - `locals`: A map of locals which is used by {@link ng.$controller $controller} service for + * controller instantiation. The `locals` contain + * the resolved values of the `resolve` map. Additionally the `locals` also contain: + * + * - `$scope` - The current route scope. + * - `$template` - The current route template HTML. + * + * @property {Object} routes Object with all route configuration Objects as its properties. + * + * @description + * `$route` is used for deep-linking URLs to controllers and views (HTML partials). + * It watches `$location.url()` and tries to map the path to an existing route definition. + * + * Requires the {@link ngRoute `ngRoute`} module to be installed. + * + * You can define routes through {@link ngRoute.$routeProvider $routeProvider}'s API. + * + * The `$route` service is typically used in conjunction with the + * {@link ngRoute.directive:ngView `ngView`} directive and the + * {@link ngRoute.$routeParams `$routeParams`} service. + * + * @example + * This example shows how changing the URL hash causes the `$route` to match a route against the + * URL, and the `ngView` pulls in the partial. + * + * + * + *
+ * Choose: + * Moby | + * Moby: Ch1 | + * Gatsby | + * Gatsby: Ch4 | + * Scarlet Letter
+ * + *
+ * + *
+ * + *
$location.path() = {{$location.path()}}
+ *
$route.current.templateUrl = {{$route.current.templateUrl}}
+ *
$route.current.params = {{$route.current.params}}
+ *
$route.current.scope.name = {{$route.current.scope.name}}
+ *
$routeParams = {{$routeParams}}
+ *
+ *
+ * + * + * controller: {{name}}
+ * Book Id: {{params.bookId}}
+ *
+ * + * + * controller: {{name}}
+ * Book Id: {{params.bookId}}
+ * Chapter Id: {{params.chapterId}} + *
+ * + * + * angular.module('ngRouteExample', ['ngRoute']) + * + * .controller('MainController', function($scope, $route, $routeParams, $location) { + * $scope.$route = $route; + * $scope.$location = $location; + * $scope.$routeParams = $routeParams; + * }) + * + * .controller('BookController', function($scope, $routeParams) { + * $scope.name = "BookController"; + * $scope.params = $routeParams; + * }) + * + * .controller('ChapterController', function($scope, $routeParams) { + * $scope.name = "ChapterController"; + * $scope.params = $routeParams; + * }) + * + * .config(function($routeProvider, $locationProvider) { + * $routeProvider + * .when('/Book/:bookId', { + * templateUrl: 'book.html', + * controller: 'BookController', + * resolve: { + * // I will cause a 1 second delay + * delay: function($q, $timeout) { + * var delay = $q.defer(); + * $timeout(delay.resolve, 1000); + * return delay.promise; + * } + * } + * }) + * .when('/Book/:bookId/ch/:chapterId', { + * templateUrl: 'chapter.html', + * controller: 'ChapterController' + * }); + * + * // configure html5 to get links working on jsfiddle + * $locationProvider.html5Mode(true); + * }); + * + * + * + * + * it('should load and compile correct template', function() { + * element(by.linkText('Moby: Ch1')).click(); + * var content = element(by.css('[ng-view]')).getText(); + * expect(content).toMatch(/controller\: ChapterController/); + * expect(content).toMatch(/Book Id\: Moby/); + * expect(content).toMatch(/Chapter Id\: 1/); + * + * element(by.partialLinkText('Scarlet')).click(); + * + * content = element(by.css('[ng-view]')).getText(); + * expect(content).toMatch(/controller\: BookController/); + * expect(content).toMatch(/Book Id\: Scarlet/); + * }); + * + *
+ */ + + /** + * @ngdoc event + * @name $route#$routeChangeStart + * @eventType broadcast on root scope + * @description + * Broadcasted before a route change. At this point the route services starts + * resolving all of the dependencies needed for the route change to occur. + * Typically this involves fetching the view template as well as any dependencies + * defined in `resolve` route property. Once all of the dependencies are resolved + * `$routeChangeSuccess` is fired. + * + * The route change (and the `$location` change that triggered it) can be prevented + * by calling `preventDefault` method of the event. See {@link ng.$rootScope.Scope#$on} + * for more details about event object. + * + * @param {Object} angularEvent Synthetic event object. + * @param {Route} next Future route information. + * @param {Route} current Current route information. + */ + + /** + * @ngdoc event + * @name $route#$routeChangeSuccess + * @eventType broadcast on root scope + * @description + * Broadcasted after a route change has happened successfully. + * The `resolve` dependencies are now available in the `current.locals` property. + * + * {@link ngRoute.directive:ngView ngView} listens for the directive + * to instantiate the controller and render the view. + * + * @param {Object} angularEvent Synthetic event object. + * @param {Route} current Current route information. + * @param {Route|Undefined} previous Previous route information, or undefined if current is + * first route entered. + */ + + /** + * @ngdoc event + * @name $route#$routeChangeError + * @eventType broadcast on root scope + * @description + * Broadcasted if any of the resolve promises are rejected. + * + * @param {Object} angularEvent Synthetic event object + * @param {Route} current Current route information. + * @param {Route} previous Previous route information. + * @param {Route} rejection Rejection of the promise. Usually the error of the failed promise. + */ + + /** + * @ngdoc event + * @name $route#$routeUpdate + * @eventType broadcast on root scope + * @description + * The `reloadOnSearch` property has been set to false, and we are reusing the same + * instance of the Controller. + * + * @param {Object} angularEvent Synthetic event object + * @param {Route} current Current/previous route information. + */ + + var forceReload = false, + preparedRoute, + preparedRouteIsUpdateOnly, + $route = { + routes: routes, + + /** + * @ngdoc method + * @name $route#reload + * + * @description + * Causes `$route` service to reload the current route even if + * {@link ng.$location $location} hasn't changed. + * + * As a result of that, {@link ngRoute.directive:ngView ngView} + * creates new scope and reinstantiates the controller. + */ + reload: function() { + forceReload = true; + + var fakeLocationEvent = { + defaultPrevented: false, + preventDefault: function fakePreventDefault() { + this.defaultPrevented = true; + forceReload = false; + } + }; + + $rootScope.$evalAsync(function() { + prepareRoute(fakeLocationEvent); + if (!fakeLocationEvent.defaultPrevented) commitRoute(); + }); + }, + + /** + * @ngdoc method + * @name $route#updateParams + * + * @description + * Causes `$route` service to update the current URL, replacing + * current route parameters with those specified in `newParams`. + * Provided property names that match the route's path segment + * definitions will be interpolated into the location's path, while + * remaining properties will be treated as query params. + * + * @param {!Object} newParams mapping of URL parameter names to values + */ + updateParams: function(newParams) { + if (this.current && this.current.$$route) { + newParams = angular.extend({}, this.current.params, newParams); + $location.path(interpolate(this.current.$$route.originalPath, newParams)); + // interpolate modifies newParams, only query params are left + $location.search(newParams); + } else { + throw $routeMinErr('norout', 'Tried updating route when with no current route'); + } + } + }; + + $rootScope.$on('$locationChangeStart', prepareRoute); + $rootScope.$on('$locationChangeSuccess', commitRoute); + + return $route; + + ///////////////////////////////////////////////////// + + /** + * @param on {string} current url + * @param route {Object} route regexp to match the url against + * @return {?Object} + * + * @description + * Check if the route matches the current url. + * + * Inspired by match in + * visionmedia/express/lib/router/router.js. + */ + function switchRouteMatcher(on, route) { + var keys = route.keys, + params = {}; + + if (!route.regexp) return null; + + var m = route.regexp.exec(on); + if (!m) return null; + + for (var i = 1, len = m.length; i < len; ++i) { + var key = keys[i - 1]; + + var val = m[i]; + + if (key && val) { + params[key.name] = val; + } + } + return params; + } + + function prepareRoute($locationEvent) { + var lastRoute = $route.current; + + preparedRoute = parseRoute(); + preparedRouteIsUpdateOnly = preparedRoute && lastRoute && preparedRoute.$$route === lastRoute.$$route + && angular.equals(preparedRoute.pathParams, lastRoute.pathParams) + && !preparedRoute.reloadOnSearch && !forceReload; + + if (!preparedRouteIsUpdateOnly && (lastRoute || preparedRoute)) { + if ($rootScope.$broadcast('$routeChangeStart', preparedRoute, lastRoute).defaultPrevented) { + if ($locationEvent) { + $locationEvent.preventDefault(); + } + } + } + } + + function commitRoute() { + var lastRoute = $route.current; + var nextRoute = preparedRoute; + + if (preparedRouteIsUpdateOnly) { + lastRoute.params = nextRoute.params; + angular.copy(lastRoute.params, $routeParams); + $rootScope.$broadcast('$routeUpdate', lastRoute); + } else if (nextRoute || lastRoute) { + forceReload = false; + $route.current = nextRoute; + if (nextRoute) { + if (nextRoute.redirectTo) { + if (angular.isString(nextRoute.redirectTo)) { + $location.path(interpolate(nextRoute.redirectTo, nextRoute.params)).search(nextRoute.params) + .replace(); + } else { + $location.url(nextRoute.redirectTo(nextRoute.pathParams, $location.path(), $location.search())) + .replace(); + } + } + } + + $q.when(nextRoute). + then(function() { + if (nextRoute) { + var locals = angular.extend({}, nextRoute.resolve), + template, templateUrl; + + angular.forEach(locals, function(value, key) { + locals[key] = angular.isString(value) ? + $injector.get(value) : $injector.invoke(value, null, null, key); + }); + + if (angular.isDefined(template = nextRoute.template)) { + if (angular.isFunction(template)) { + template = template(nextRoute.params); + } + } else if (angular.isDefined(templateUrl = nextRoute.templateUrl)) { + if (angular.isFunction(templateUrl)) { + templateUrl = templateUrl(nextRoute.params); + } + if (angular.isDefined(templateUrl)) { + nextRoute.loadedTemplateUrl = $sce.valueOf(templateUrl); + template = $templateRequest(templateUrl); + } + } + if (angular.isDefined(template)) { + locals['$template'] = template; + } + return $q.all(locals); + } + }). + then(function(locals) { + // after route change + if (nextRoute == $route.current) { + if (nextRoute) { + nextRoute.locals = locals; + angular.copy(nextRoute.params, $routeParams); + } + $rootScope.$broadcast('$routeChangeSuccess', nextRoute, lastRoute); + } + }, function(error) { + if (nextRoute == $route.current) { + $rootScope.$broadcast('$routeChangeError', nextRoute, lastRoute, error); + } + }); + } + } + + + /** + * @returns {Object} the current active route, by matching it against the URL + */ + function parseRoute() { + // Match a route + var params, match; + angular.forEach(routes, function(route, path) { + if (!match && (params = switchRouteMatcher($location.path(), route))) { + match = inherit(route, { + params: angular.extend({}, $location.search(), params), + pathParams: params}); + match.$$route = route; + } + }); + // No route matched; fallback to "otherwise" route + return match || routes[null] && inherit(routes[null], {params: {}, pathParams:{}}); + } + + /** + * @returns {string} interpolation of the redirect path with the parameters + */ + function interpolate(string, params) { + var result = []; + angular.forEach((string || '').split(':'), function(segment, i) { + if (i === 0) { + result.push(segment); + } else { + var segmentMatch = segment.match(/(\w+)(?:[?*])?(.*)/); + var key = segmentMatch[1]; + result.push(params[key]); + result.push(segmentMatch[2] || ''); + delete params[key]; + } + }); + return result.join(''); + } + }]; +} + +ngRouteModule.provider('$routeParams', $RouteParamsProvider); + + +/** + * @ngdoc service + * @name $routeParams + * @requires $route + * + * @description + * The `$routeParams` service allows you to retrieve the current set of route parameters. + * + * Requires the {@link ngRoute `ngRoute`} module to be installed. + * + * The route parameters are a combination of {@link ng.$location `$location`}'s + * {@link ng.$location#search `search()`} and {@link ng.$location#path `path()`}. + * The `path` parameters are extracted when the {@link ngRoute.$route `$route`} path is matched. + * + * In case of parameter name collision, `path` params take precedence over `search` params. + * + * The service guarantees that the identity of the `$routeParams` object will remain unchanged + * (but its properties will likely change) even when a route change occurs. + * + * Note that the `$routeParams` are only updated *after* a route change completes successfully. + * This means that you cannot rely on `$routeParams` being correct in route resolve functions. + * Instead you can use `$route.current.params` to access the new route's parameters. + * + * @example + * ```js + * // Given: + * // URL: http://server.com/index.html#/Chapter/1/Section/2?search=moby + * // Route: /Chapter/:chapterId/Section/:sectionId + * // + * // Then + * $routeParams ==> {chapterId:'1', sectionId:'2', search:'moby'} + * ``` + */ +function $RouteParamsProvider() { + this.$get = function() { return {}; }; +} + +ngRouteModule.directive('ngView', ngViewFactory); +ngRouteModule.directive('ngView', ngViewFillContentFactory); + + +/** + * @ngdoc directive + * @name ngView + * @restrict ECA + * + * @description + * # Overview + * `ngView` is a directive that complements the {@link ngRoute.$route $route} service by + * including the rendered template of the current route into the main layout (`index.html`) file. + * Every time the current route changes, the included view changes with it according to the + * configuration of the `$route` service. + * + * Requires the {@link ngRoute `ngRoute`} module to be installed. + * + * @animations + * enter - animation is used to bring new content into the browser. + * leave - animation is used to animate existing content away. + * + * The enter and leave animation occur concurrently. + * + * @scope + * @priority 400 + * @param {string=} onload Expression to evaluate whenever the view updates. + * + * @param {string=} autoscroll Whether `ngView` should call {@link ng.$anchorScroll + * $anchorScroll} to scroll the viewport after the view is updated. + * + * - If the attribute is not set, disable scrolling. + * - If the attribute is set without value, enable scrolling. + * - Otherwise enable scrolling only if the `autoscroll` attribute value evaluated + * as an expression yields a truthy value. + * @example + + +
+ Choose: + Moby | + Moby: Ch1 | + Gatsby | + Gatsby: Ch4 | + Scarlet Letter
+ +
+
+
+
+ +
$location.path() = {{main.$location.path()}}
+
$route.current.templateUrl = {{main.$route.current.templateUrl}}
+
$route.current.params = {{main.$route.current.params}}
+
$routeParams = {{main.$routeParams}}
+
+
+ + +
+ controller: {{book.name}}
+ Book Id: {{book.params.bookId}}
+
+
+ + +
+ controller: {{chapter.name}}
+ Book Id: {{chapter.params.bookId}}
+ Chapter Id: {{chapter.params.chapterId}} +
+
+ + + .view-animate-container { + position:relative; + height:100px!important; + background:white; + border:1px solid black; + height:40px; + overflow:hidden; + } + + .view-animate { + padding:10px; + } + + .view-animate.ng-enter, .view-animate.ng-leave { + transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 1.5s; + + display:block; + width:100%; + border-left:1px solid black; + + position:absolute; + top:0; + left:0; + right:0; + bottom:0; + padding:10px; + } + + .view-animate.ng-enter { + left:100%; + } + .view-animate.ng-enter.ng-enter-active { + left:0; + } + .view-animate.ng-leave.ng-leave-active { + left:-100%; + } + + + + angular.module('ngViewExample', ['ngRoute', 'ngAnimate']) + .config(['$routeProvider', '$locationProvider', + function($routeProvider, $locationProvider) { + $routeProvider + .when('/Book/:bookId', { + templateUrl: 'book.html', + controller: 'BookCtrl', + controllerAs: 'book' + }) + .when('/Book/:bookId/ch/:chapterId', { + templateUrl: 'chapter.html', + controller: 'ChapterCtrl', + controllerAs: 'chapter' + }); + + $locationProvider.html5Mode(true); + }]) + .controller('MainCtrl', ['$route', '$routeParams', '$location', + function($route, $routeParams, $location) { + this.$route = $route; + this.$location = $location; + this.$routeParams = $routeParams; + }]) + .controller('BookCtrl', ['$routeParams', function($routeParams) { + this.name = "BookCtrl"; + this.params = $routeParams; + }]) + .controller('ChapterCtrl', ['$routeParams', function($routeParams) { + this.name = "ChapterCtrl"; + this.params = $routeParams; + }]); + + + + + it('should load and compile correct template', function() { + element(by.linkText('Moby: Ch1')).click(); + var content = element(by.css('[ng-view]')).getText(); + expect(content).toMatch(/controller\: ChapterCtrl/); + expect(content).toMatch(/Book Id\: Moby/); + expect(content).toMatch(/Chapter Id\: 1/); + + element(by.partialLinkText('Scarlet')).click(); + + content = element(by.css('[ng-view]')).getText(); + expect(content).toMatch(/controller\: BookCtrl/); + expect(content).toMatch(/Book Id\: Scarlet/); + }); + +
+ */ + + +/** + * @ngdoc event + * @name ngView#$viewContentLoaded + * @eventType emit on the current ngView scope + * @description + * Emitted every time the ngView content is reloaded. + */ +ngViewFactory.$inject = ['$route', '$anchorScroll', '$animate']; +function ngViewFactory($route, $anchorScroll, $animate) { + return { + restrict: 'ECA', + terminal: true, + priority: 400, + transclude: 'element', + link: function(scope, $element, attr, ctrl, $transclude) { + var currentScope, + currentElement, + previousLeaveAnimation, + autoScrollExp = attr.autoscroll, + onloadExp = attr.onload || ''; + + scope.$on('$routeChangeSuccess', update); + update(); + + function cleanupLastView() { + if (previousLeaveAnimation) { + $animate.cancel(previousLeaveAnimation); + previousLeaveAnimation = null; + } + + if (currentScope) { + currentScope.$destroy(); + currentScope = null; + } + if (currentElement) { + previousLeaveAnimation = $animate.leave(currentElement); + previousLeaveAnimation.then(function() { + previousLeaveAnimation = null; + }); + currentElement = null; + } + } + + function update() { + var locals = $route.current && $route.current.locals, + template = locals && locals.$template; + + if (angular.isDefined(template)) { + var newScope = scope.$new(); + var current = $route.current; + + // Note: This will also link all children of ng-view that were contained in the original + // html. If that content contains controllers, ... they could pollute/change the scope. + // However, using ng-view on an element with additional content does not make sense... + // Note: We can't remove them in the cloneAttchFn of $transclude as that + // function is called before linking the content, which would apply child + // directives to non existing elements. + var clone = $transclude(newScope, function(clone) { + $animate.enter(clone, null, currentElement || $element).then(function onNgViewEnter() { + if (angular.isDefined(autoScrollExp) + && (!autoScrollExp || scope.$eval(autoScrollExp))) { + $anchorScroll(); + } + }); + cleanupLastView(); + }); + + currentElement = clone; + currentScope = current.scope = newScope; + currentScope.$emit('$viewContentLoaded'); + currentScope.$eval(onloadExp); + } else { + cleanupLastView(); + } + } + } + }; +} + +// This directive is called during the $transclude call of the first `ngView` directive. +// It will replace and compile the content of the element with the loaded template. +// We need this directive so that the element content is already filled when +// the link function of another directive on the same element as ngView +// is called. +ngViewFillContentFactory.$inject = ['$compile', '$controller', '$route']; +function ngViewFillContentFactory($compile, $controller, $route) { + return { + restrict: 'ECA', + priority: -400, + link: function(scope, $element) { + var current = $route.current, + locals = current.locals; + + $element.html(locals.$template); + + var link = $compile($element.contents()); + + if (current.controller) { + locals.$scope = scope; + var controller = $controller(current.controller, locals); + if (current.controllerAs) { + scope[current.controllerAs] = controller; + } + $element.data('$ngControllerController', controller); + $element.children().data('$ngControllerController', controller); + } + + link(scope); + } + }; +} + + +})(window, window.angular); diff --git a/web_db/www/.tmp/public/js/angular.js b/web_db/www/.tmp/public/js/angular.js new file mode 100644 index 0000000..ea563c0 --- /dev/null +++ b/web_db/www/.tmp/public/js/angular.js @@ -0,0 +1,29819 @@ +/** + * @license AngularJS v1.4.10 + * (c) 2010-2015 Google, Inc. http://angularjs.org + * License: MIT + */ +(function(window, document, undefined) {'use strict'; + +/** + * @description + * + * This object provides a utility for producing rich Error messages within + * Angular. It can be called as follows: + * + * var exampleMinErr = minErr('example'); + * throw exampleMinErr('one', 'This {0} is {1}', foo, bar); + * + * The above creates an instance of minErr in the example namespace. The + * resulting error will have a namespaced error code of example.one. The + * resulting error will replace {0} with the value of foo, and {1} with the + * value of bar. The object is not restricted in the number of arguments it can + * take. + * + * If fewer arguments are specified than necessary for interpolation, the extra + * interpolation markers will be preserved in the final string. + * + * Since data will be parsed statically during a build step, some restrictions + * are applied with respect to how minErr instances are created and called. + * Instances should have names of the form namespaceMinErr for a minErr created + * using minErr('namespace') . Error codes, namespaces and template strings + * should all be static strings, not variables or general expressions. + * + * @param {string} module The namespace to use for the new minErr instance. + * @param {function} ErrorConstructor Custom error constructor to be instantiated when returning + * error from returned function, for cases when a particular type of error is useful. + * @returns {function(code:string, template:string, ...templateArgs): Error} minErr instance + */ + +function minErr(module, ErrorConstructor) { + ErrorConstructor = ErrorConstructor || Error; + return function() { + var SKIP_INDEXES = 2; + + var templateArgs = arguments, + code = templateArgs[0], + message = '[' + (module ? module + ':' : '') + code + '] ', + template = templateArgs[1], + paramPrefix, i; + + message += template.replace(/\{\d+\}/g, function(match) { + var index = +match.slice(1, -1), + shiftedIndex = index + SKIP_INDEXES; + + if (shiftedIndex < templateArgs.length) { + return toDebugString(templateArgs[shiftedIndex]); + } + + return match; + }); + + message += '\nhttp://errors.angularjs.org/1.4.10/' + + (module ? module + '/' : '') + code; + + for (i = SKIP_INDEXES, paramPrefix = '?'; i < templateArgs.length; i++, paramPrefix = '&') { + message += paramPrefix + 'p' + (i - SKIP_INDEXES) + '=' + + encodeURIComponent(toDebugString(templateArgs[i])); + } + + return new ErrorConstructor(message); + }; +} + +/* We need to tell jshint what variables are being exported */ +/* global angular: true, + msie: true, + jqLite: true, + jQuery: true, + slice: true, + splice: true, + push: true, + toString: true, + ngMinErr: true, + angularModule: true, + uid: true, + REGEX_STRING_REGEXP: true, + VALIDITY_STATE_PROPERTY: true, + + lowercase: true, + uppercase: true, + manualLowercase: true, + manualUppercase: true, + nodeName_: true, + isArrayLike: true, + forEach: true, + forEachSorted: true, + reverseParams: true, + nextUid: true, + setHashKey: true, + extend: true, + toInt: true, + inherit: true, + merge: true, + noop: true, + identity: true, + valueFn: true, + isUndefined: true, + isDefined: true, + isObject: true, + isBlankObject: true, + isString: true, + isNumber: true, + isDate: true, + isArray: true, + isFunction: true, + isRegExp: true, + isWindow: true, + isScope: true, + isFile: true, + isFormData: true, + isBlob: true, + isBoolean: true, + isPromiseLike: true, + trim: true, + escapeForRegexp: true, + isElement: true, + makeMap: true, + includes: true, + arrayRemove: true, + copy: true, + shallowCopy: true, + equals: true, + csp: true, + jq: true, + concat: true, + sliceArgs: true, + bind: true, + toJsonReplacer: true, + toJson: true, + fromJson: true, + convertTimezoneToLocal: true, + timezoneToOffset: true, + startingTag: true, + tryDecodeURIComponent: true, + parseKeyValue: true, + toKeyValue: true, + encodeUriSegment: true, + encodeUriQuery: true, + angularInit: true, + bootstrap: true, + getTestability: true, + snake_case: true, + bindJQuery: true, + assertArg: true, + assertArgFn: true, + assertNotHasOwnProperty: true, + getter: true, + getBlockNodes: true, + hasOwnProperty: true, + createMap: true, + + NODE_TYPE_ELEMENT: true, + NODE_TYPE_ATTRIBUTE: true, + NODE_TYPE_TEXT: true, + NODE_TYPE_COMMENT: true, + NODE_TYPE_DOCUMENT: true, + NODE_TYPE_DOCUMENT_FRAGMENT: true, +*/ + +//////////////////////////////////// + +/** + * @ngdoc module + * @name ng + * @module ng + * @description + * + * # ng (core module) + * The ng module is loaded by default when an AngularJS application is started. The module itself + * contains the essential components for an AngularJS application to function. The table below + * lists a high level breakdown of each of the services/factories, filters, directives and testing + * components available within this core module. + * + *
+ */ + +var REGEX_STRING_REGEXP = /^\/(.+)\/([a-z]*)$/; + +// The name of a form control's ValidityState property. +// This is used so that it's possible for internal tests to create mock ValidityStates. +var VALIDITY_STATE_PROPERTY = 'validity'; + +/** + * @ngdoc function + * @name angular.lowercase + * @module ng + * @kind function + * + * @description Converts the specified string to lowercase. + * @param {string} string String to be converted to lowercase. + * @returns {string} Lowercased string. + */ +var lowercase = function(string) {return isString(string) ? string.toLowerCase() : string;}; +var hasOwnProperty = Object.prototype.hasOwnProperty; + +/** + * @ngdoc function + * @name angular.uppercase + * @module ng + * @kind function + * + * @description Converts the specified string to uppercase. + * @param {string} string String to be converted to uppercase. + * @returns {string} Uppercased string. + */ +var uppercase = function(string) {return isString(string) ? string.toUpperCase() : string;}; + + +var manualLowercase = function(s) { + /* jshint bitwise: false */ + return isString(s) + ? s.replace(/[A-Z]/g, function(ch) {return String.fromCharCode(ch.charCodeAt(0) | 32);}) + : s; +}; +var manualUppercase = function(s) { + /* jshint bitwise: false */ + return isString(s) + ? s.replace(/[a-z]/g, function(ch) {return String.fromCharCode(ch.charCodeAt(0) & ~32);}) + : s; +}; + + +// String#toLowerCase and String#toUpperCase don't produce correct results in browsers with Turkish +// locale, for this reason we need to detect this case and redefine lowercase/uppercase methods +// with correct but slower alternatives. +if ('i' !== 'I'.toLowerCase()) { + lowercase = manualLowercase; + uppercase = manualUppercase; +} + + +var + msie, // holds major version number for IE, or NaN if UA is not IE. + jqLite, // delay binding since jQuery could be loaded after us. + jQuery, // delay binding + slice = [].slice, + splice = [].splice, + push = [].push, + toString = Object.prototype.toString, + getPrototypeOf = Object.getPrototypeOf, + ngMinErr = minErr('ng'), + + /** @name angular */ + angular = window.angular || (window.angular = {}), + angularModule, + uid = 0; + +/** + * documentMode is an IE-only property + * http://msdn.microsoft.com/en-us/library/ie/cc196988(v=vs.85).aspx + */ +msie = document.documentMode; + + +/** + * @private + * @param {*} obj + * @return {boolean} Returns true if `obj` is an array or array-like object (NodeList, Arguments, + * String ...) + */ +function isArrayLike(obj) { + + // `null`, `undefined` and `window` are not array-like + if (obj == null || isWindow(obj)) return false; + + // arrays, strings and jQuery/jqLite objects are array like + // * jqLite is either the jQuery or jqLite constructor function + // * we have to check the existance of jqLite first as this method is called + // via the forEach method when constructing the jqLite object in the first place + if (isArray(obj) || isString(obj) || (jqLite && obj instanceof jqLite)) return true; + + // Support: iOS 8.2 (not reproducible in simulator) + // "length" in obj used to prevent JIT error (gh-11508) + var length = "length" in Object(obj) && obj.length; + + // NodeList objects (with `item` method) and + // other objects with suitable length characteristics are array-like + return isNumber(length) && + (length >= 0 && ((length - 1) in obj || obj instanceof Array) || typeof obj.item == 'function'); + +} + +/** + * @ngdoc function + * @name angular.forEach + * @module ng + * @kind function + * + * @description + * Invokes the `iterator` function once for each item in `obj` collection, which can be either an + * object or an array. The `iterator` function is invoked with `iterator(value, key, obj)`, where `value` + * is the value of an object property or an array element, `key` is the object property key or + * array element index and obj is the `obj` itself. Specifying a `context` for the function is optional. + * + * It is worth noting that `.forEach` does not iterate over inherited properties because it filters + * using the `hasOwnProperty` method. + * + * Unlike ES262's + * [Array.prototype.forEach](http://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.18), + * providing 'undefined' or 'null' values for `obj` will not throw a TypeError, but rather just + * return the value provided. + * + ```js + var values = {name: 'misko', gender: 'male'}; + var log = []; + angular.forEach(values, function(value, key) { + this.push(key + ': ' + value); + }, log); + expect(log).toEqual(['name: misko', 'gender: male']); + ``` + * + * @param {Object|Array} obj Object to iterate over. + * @param {Function} iterator Iterator function. + * @param {Object=} context Object to become context (`this`) for the iterator function. + * @returns {Object|Array} Reference to `obj`. + */ + +function forEach(obj, iterator, context) { + var key, length; + if (obj) { + if (isFunction(obj)) { + for (key in obj) { + // Need to check if hasOwnProperty exists, + // as on IE8 the result of querySelectorAll is an object without a hasOwnProperty function + if (key != 'prototype' && key != 'length' && key != 'name' && (!obj.hasOwnProperty || obj.hasOwnProperty(key))) { + iterator.call(context, obj[key], key, obj); + } + } + } else if (isArray(obj) || isArrayLike(obj)) { + var isPrimitive = typeof obj !== 'object'; + for (key = 0, length = obj.length; key < length; key++) { + if (isPrimitive || key in obj) { + iterator.call(context, obj[key], key, obj); + } + } + } else if (obj.forEach && obj.forEach !== forEach) { + obj.forEach(iterator, context, obj); + } else if (isBlankObject(obj)) { + // createMap() fast path --- Safe to avoid hasOwnProperty check because prototype chain is empty + for (key in obj) { + iterator.call(context, obj[key], key, obj); + } + } else if (typeof obj.hasOwnProperty === 'function') { + // Slow path for objects inheriting Object.prototype, hasOwnProperty check needed + for (key in obj) { + if (obj.hasOwnProperty(key)) { + iterator.call(context, obj[key], key, obj); + } + } + } else { + // Slow path for objects which do not have a method `hasOwnProperty` + for (key in obj) { + if (hasOwnProperty.call(obj, key)) { + iterator.call(context, obj[key], key, obj); + } + } + } + } + return obj; +} + +function forEachSorted(obj, iterator, context) { + var keys = Object.keys(obj).sort(); + for (var i = 0; i < keys.length; i++) { + iterator.call(context, obj[keys[i]], keys[i]); + } + return keys; +} + + +/** + * when using forEach the params are value, key, but it is often useful to have key, value. + * @param {function(string, *)} iteratorFn + * @returns {function(*, string)} + */ +function reverseParams(iteratorFn) { + return function(value, key) {iteratorFn(key, value);}; +} + +/** + * A consistent way of creating unique IDs in angular. + * + * Using simple numbers allows us to generate 28.6 million unique ids per second for 10 years before + * we hit number precision issues in JavaScript. + * + * Math.pow(2,53) / 60 / 60 / 24 / 365 / 10 = 28.6M + * + * @returns {number} an unique alpha-numeric string + */ +function nextUid() { + return ++uid; +} + + +/** + * Set or clear the hashkey for an object. + * @param obj object + * @param h the hashkey (!truthy to delete the hashkey) + */ +function setHashKey(obj, h) { + if (h) { + obj.$$hashKey = h; + } else { + delete obj.$$hashKey; + } +} + + +function baseExtend(dst, objs, deep) { + var h = dst.$$hashKey; + + for (var i = 0, ii = objs.length; i < ii; ++i) { + var obj = objs[i]; + if (!isObject(obj) && !isFunction(obj)) continue; + var keys = Object.keys(obj); + for (var j = 0, jj = keys.length; j < jj; j++) { + var key = keys[j]; + var src = obj[key]; + + if (deep && isObject(src)) { + if (isDate(src)) { + dst[key] = new Date(src.valueOf()); + } else if (isRegExp(src)) { + dst[key] = new RegExp(src); + } else if (src.nodeName) { + dst[key] = src.cloneNode(true); + } else if (isElement(src)) { + dst[key] = src.clone(); + } else { + if (!isObject(dst[key])) dst[key] = isArray(src) ? [] : {}; + baseExtend(dst[key], [src], true); + } + } else { + dst[key] = src; + } + } + } + + setHashKey(dst, h); + return dst; +} + +/** + * @ngdoc function + * @name angular.extend + * @module ng + * @kind function + * + * @description + * Extends the destination object `dst` by copying own enumerable properties from the `src` object(s) + * to `dst`. You can specify multiple `src` objects. If you want to preserve original objects, you can do so + * by passing an empty object as the target: `var object = angular.extend({}, object1, object2)`. + * + * **Note:** Keep in mind that `angular.extend` does not support recursive merge (deep copy). Use + * {@link angular.merge} for this. + * + * @param {Object} dst Destination object. + * @param {...Object} src Source object(s). + * @returns {Object} Reference to `dst`. + */ +function extend(dst) { + return baseExtend(dst, slice.call(arguments, 1), false); +} + + +/** +* @ngdoc function +* @name angular.merge +* @module ng +* @kind function +* +* @description +* Deeply extends the destination object `dst` by copying own enumerable properties from the `src` object(s) +* to `dst`. You can specify multiple `src` objects. If you want to preserve original objects, you can do so +* by passing an empty object as the target: `var object = angular.merge({}, object1, object2)`. +* +* Unlike {@link angular.extend extend()}, `merge()` recursively descends into object properties of source +* objects, performing a deep copy. +* +* @param {Object} dst Destination object. +* @param {...Object} src Source object(s). +* @returns {Object} Reference to `dst`. +*/ +function merge(dst) { + return baseExtend(dst, slice.call(arguments, 1), true); +} + + + +function toInt(str) { + return parseInt(str, 10); +} + + +function inherit(parent, extra) { + return extend(Object.create(parent), extra); +} + +/** + * @ngdoc function + * @name angular.noop + * @module ng + * @kind function + * + * @description + * A function that performs no operations. This function can be useful when writing code in the + * functional style. + ```js + function foo(callback) { + var result = calculateResult(); + (callback || angular.noop)(result); + } + ``` + */ +function noop() {} +noop.$inject = []; + + +/** + * @ngdoc function + * @name angular.identity + * @module ng + * @kind function + * + * @description + * A function that returns its first argument. This function is useful when writing code in the + * functional style. + * + ```js + function transformer(transformationFn, value) { + return (transformationFn || angular.identity)(value); + }; + ``` + * @param {*} value to be returned. + * @returns {*} the value passed in. + */ +function identity($) {return $;} +identity.$inject = []; + + +function valueFn(value) {return function() {return value;};} + +function hasCustomToString(obj) { + return isFunction(obj.toString) && obj.toString !== toString; +} + + +/** + * @ngdoc function + * @name angular.isUndefined + * @module ng + * @kind function + * + * @description + * Determines if a reference is undefined. + * + * @param {*} value Reference to check. + * @returns {boolean} True if `value` is undefined. + */ +function isUndefined(value) {return typeof value === 'undefined';} + + +/** + * @ngdoc function + * @name angular.isDefined + * @module ng + * @kind function + * + * @description + * Determines if a reference is defined. + * + * @param {*} value Reference to check. + * @returns {boolean} True if `value` is defined. + */ +function isDefined(value) {return typeof value !== 'undefined';} + + +/** + * @ngdoc function + * @name angular.isObject + * @module ng + * @kind function + * + * @description + * Determines if a reference is an `Object`. Unlike `typeof` in JavaScript, `null`s are not + * considered to be objects. Note that JavaScript arrays are objects. + * + * @param {*} value Reference to check. + * @returns {boolean} True if `value` is an `Object` but not `null`. + */ +function isObject(value) { + // http://jsperf.com/isobject4 + return value !== null && typeof value === 'object'; +} + + +/** + * Determine if a value is an object with a null prototype + * + * @returns {boolean} True if `value` is an `Object` with a null prototype + */ +function isBlankObject(value) { + return value !== null && typeof value === 'object' && !getPrototypeOf(value); +} + + +/** + * @ngdoc function + * @name angular.isString + * @module ng + * @kind function + * + * @description + * Determines if a reference is a `String`. + * + * @param {*} value Reference to check. + * @returns {boolean} True if `value` is a `String`. + */ +function isString(value) {return typeof value === 'string';} + + +/** + * @ngdoc function + * @name angular.isNumber + * @module ng + * @kind function + * + * @description + * Determines if a reference is a `Number`. + * + * This includes the "special" numbers `NaN`, `+Infinity` and `-Infinity`. + * + * If you wish to exclude these then you can use the native + * [`isFinite'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isFinite) + * method. + * + * @param {*} value Reference to check. + * @returns {boolean} True if `value` is a `Number`. + */ +function isNumber(value) {return typeof value === 'number';} + + +/** + * @ngdoc function + * @name angular.isDate + * @module ng + * @kind function + * + * @description + * Determines if a value is a date. + * + * @param {*} value Reference to check. + * @returns {boolean} True if `value` is a `Date`. + */ +function isDate(value) { + return toString.call(value) === '[object Date]'; +} + + +/** + * @ngdoc function + * @name angular.isArray + * @module ng + * @kind function + * + * @description + * Determines if a reference is an `Array`. + * + * @param {*} value Reference to check. + * @returns {boolean} True if `value` is an `Array`. + */ +var isArray = Array.isArray; + +/** + * @ngdoc function + * @name angular.isFunction + * @module ng + * @kind function + * + * @description + * Determines if a reference is a `Function`. + * + * @param {*} value Reference to check. + * @returns {boolean} True if `value` is a `Function`. + */ +function isFunction(value) {return typeof value === 'function';} + + +/** + * Determines if a value is a regular expression object. + * + * @private + * @param {*} value Reference to check. + * @returns {boolean} True if `value` is a `RegExp`. + */ +function isRegExp(value) { + return toString.call(value) === '[object RegExp]'; +} + + +/** + * Checks if `obj` is a window object. + * + * @private + * @param {*} obj Object to check + * @returns {boolean} True if `obj` is a window obj. + */ +function isWindow(obj) { + return obj && obj.window === obj; +} + + +function isScope(obj) { + return obj && obj.$evalAsync && obj.$watch; +} + + +function isFile(obj) { + return toString.call(obj) === '[object File]'; +} + + +function isFormData(obj) { + return toString.call(obj) === '[object FormData]'; +} + + +function isBlob(obj) { + return toString.call(obj) === '[object Blob]'; +} + + +function isBoolean(value) { + return typeof value === 'boolean'; +} + + +function isPromiseLike(obj) { + return obj && isFunction(obj.then); +} + + +var TYPED_ARRAY_REGEXP = /^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array\]$/; +function isTypedArray(value) { + return value && isNumber(value.length) && TYPED_ARRAY_REGEXP.test(toString.call(value)); +} + + +var trim = function(value) { + return isString(value) ? value.trim() : value; +}; + +// Copied from: +// http://docs.closure-library.googlecode.com/git/local_closure_goog_string_string.js.source.html#line1021 +// Prereq: s is a string. +var escapeForRegexp = function(s) { + return s.replace(/([-()\[\]{}+?*.$\^|,:#= 0) { + array.splice(index, 1); + } + return index; +} + +/** + * @ngdoc function + * @name angular.copy + * @module ng + * @kind function + * + * @description + * Creates a deep copy of `source`, which should be an object or an array. + * + * * If no destination is supplied, a copy of the object or array is created. + * * If a destination is provided, all of its elements (for arrays) or properties (for objects) + * are deleted and then all elements/properties from the source are copied to it. + * * If `source` is not an object or array (inc. `null` and `undefined`), `source` is returned. + * * If `source` is identical to 'destination' an exception will be thrown. + * + * @param {*} source The source that will be used to make a copy. + * Can be any type, including primitives, `null`, and `undefined`. + * @param {(Object|Array)=} destination Destination into which the source is copied. If + * provided, must be of the same type as `source`. + * @returns {*} The copy or updated `destination`, if `destination` was specified. + * + * @example + + +
+
+ Name:
+ E-mail:
+ Gender: male + female
+ + +
+
form = {{user | json}}
+
master = {{master | json}}
+
+ + +
+
+ */ +function copy(source, destination) { + var stackSource = []; + var stackDest = []; + + if (destination) { + if (isTypedArray(destination)) { + throw ngMinErr('cpta', "Can't copy! TypedArray destination cannot be mutated."); + } + if (source === destination) { + throw ngMinErr('cpi', "Can't copy! Source and destination are identical."); + } + + // Empty the destination object + if (isArray(destination)) { + destination.length = 0; + } else { + forEach(destination, function(value, key) { + if (key !== '$$hashKey') { + delete destination[key]; + } + }); + } + + stackSource.push(source); + stackDest.push(destination); + return copyRecurse(source, destination); + } + + return copyElement(source); + + function copyRecurse(source, destination) { + var h = destination.$$hashKey; + var result, key; + if (isArray(source)) { + for (var i = 0, ii = source.length; i < ii; i++) { + destination.push(copyElement(source[i])); + } + } else if (isBlankObject(source)) { + // createMap() fast path --- Safe to avoid hasOwnProperty check because prototype chain is empty + for (key in source) { + destination[key] = copyElement(source[key]); + } + } else if (source && typeof source.hasOwnProperty === 'function') { + // Slow path, which must rely on hasOwnProperty + for (key in source) { + if (source.hasOwnProperty(key)) { + destination[key] = copyElement(source[key]); + } + } + } else { + // Slowest path --- hasOwnProperty can't be called as a method + for (key in source) { + if (hasOwnProperty.call(source, key)) { + destination[key] = copyElement(source[key]); + } + } + } + setHashKey(destination, h); + return destination; + } + + function copyElement(source) { + // Simple values + if (!isObject(source)) { + return source; + } + + // Already copied values + var index = stackSource.indexOf(source); + if (index !== -1) { + return stackDest[index]; + } + + if (isWindow(source) || isScope(source)) { + throw ngMinErr('cpws', + "Can't copy! Making copies of Window or Scope instances is not supported."); + } + + var needsRecurse = false; + var destination; + + if (isArray(source)) { + destination = []; + needsRecurse = true; + } else if (isTypedArray(source)) { + destination = new source.constructor(source); + } else if (isDate(source)) { + destination = new Date(source.getTime()); + } else if (isRegExp(source)) { + destination = new RegExp(source.source, source.toString().match(/[^\/]*$/)[0]); + destination.lastIndex = source.lastIndex; + } else if (isBlob(source)) { + destination = new source.constructor([source], {type: source.type}); + } else if (isFunction(source.cloneNode)) { + destination = source.cloneNode(true); + } else { + destination = Object.create(getPrototypeOf(source)); + needsRecurse = true; + } + + stackSource.push(source); + stackDest.push(destination); + + return needsRecurse + ? copyRecurse(source, destination) + : destination; + } +} + +/** + * Creates a shallow copy of an object, an array or a primitive. + * + * Assumes that there are no proto properties for objects. + */ +function shallowCopy(src, dst) { + if (isArray(src)) { + dst = dst || []; + + for (var i = 0, ii = src.length; i < ii; i++) { + dst[i] = src[i]; + } + } else if (isObject(src)) { + dst = dst || {}; + + for (var key in src) { + if (!(key.charAt(0) === '$' && key.charAt(1) === '$')) { + dst[key] = src[key]; + } + } + } + + return dst || src; +} + + +/** + * @ngdoc function + * @name angular.equals + * @module ng + * @kind function + * + * @description + * Determines if two objects or two values are equivalent. Supports value types, regular + * expressions, arrays and objects. + * + * Two objects or values are considered equivalent if at least one of the following is true: + * + * * Both objects or values pass `===` comparison. + * * Both objects or values are of the same type and all of their properties are equal by + * comparing them with `angular.equals`. + * * Both values are NaN. (In JavaScript, NaN == NaN => false. But we consider two NaN as equal) + * * Both values represent the same regular expression (In JavaScript, + * /abc/ == /abc/ => false. But we consider two regular expressions as equal when their textual + * representation matches). + * + * During a property comparison, properties of `function` type and properties with names + * that begin with `$` are ignored. + * + * Scope and DOMWindow objects are being compared only by identify (`===`). + * + * @param {*} o1 Object or value to compare. + * @param {*} o2 Object or value to compare. + * @returns {boolean} True if arguments are equal. + */ +function equals(o1, o2) { + if (o1 === o2) return true; + if (o1 === null || o2 === null) return false; + if (o1 !== o1 && o2 !== o2) return true; // NaN === NaN + var t1 = typeof o1, t2 = typeof o2, length, key, keySet; + if (t1 == t2) { + if (t1 == 'object') { + if (isArray(o1)) { + if (!isArray(o2)) return false; + if ((length = o1.length) == o2.length) { + for (key = 0; key < length; key++) { + if (!equals(o1[key], o2[key])) return false; + } + return true; + } + } else if (isDate(o1)) { + if (!isDate(o2)) return false; + return equals(o1.getTime(), o2.getTime()); + } else if (isRegExp(o1)) { + return isRegExp(o2) ? o1.toString() == o2.toString() : false; + } else { + if (isScope(o1) || isScope(o2) || isWindow(o1) || isWindow(o2) || + isArray(o2) || isDate(o2) || isRegExp(o2)) return false; + keySet = createMap(); + for (key in o1) { + if (key.charAt(0) === '$' || isFunction(o1[key])) continue; + if (!equals(o1[key], o2[key])) return false; + keySet[key] = true; + } + for (key in o2) { + if (!(key in keySet) && + key.charAt(0) !== '$' && + isDefined(o2[key]) && + !isFunction(o2[key])) return false; + } + return true; + } + } + } + return false; +} + +var csp = function() { + if (!isDefined(csp.rules)) { + + + var ngCspElement = (document.querySelector('[ng-csp]') || + document.querySelector('[data-ng-csp]')); + + if (ngCspElement) { + var ngCspAttribute = ngCspElement.getAttribute('ng-csp') || + ngCspElement.getAttribute('data-ng-csp'); + csp.rules = { + noUnsafeEval: !ngCspAttribute || (ngCspAttribute.indexOf('no-unsafe-eval') !== -1), + noInlineStyle: !ngCspAttribute || (ngCspAttribute.indexOf('no-inline-style') !== -1) + }; + } else { + csp.rules = { + noUnsafeEval: noUnsafeEval(), + noInlineStyle: false + }; + } + } + + return csp.rules; + + function noUnsafeEval() { + try { + /* jshint -W031, -W054 */ + new Function(''); + /* jshint +W031, +W054 */ + return false; + } catch (e) { + return true; + } + } +}; + +/** + * @ngdoc directive + * @module ng + * @name ngJq + * + * @element ANY + * @param {string=} ngJq the name of the library available under `window` + * to be used for angular.element + * @description + * Use this directive to force the angular.element library. This should be + * used to force either jqLite by leaving ng-jq blank or setting the name of + * the jquery variable under window (eg. jQuery). + * + * Since angular looks for this directive when it is loaded (doesn't wait for the + * DOMContentLoaded event), it must be placed on an element that comes before the script + * which loads angular. Also, only the first instance of `ng-jq` will be used and all + * others ignored. + * + * @example + * This example shows how to force jqLite using the `ngJq` directive to the `html` tag. + ```html + + + ... + ... + + ``` + * @example + * This example shows how to use a jQuery based library of a different name. + * The library name must be available at the top most 'window'. + ```html + + + ... + ... + + ``` + */ +var jq = function() { + if (isDefined(jq.name_)) return jq.name_; + var el; + var i, ii = ngAttrPrefixes.length, prefix, name; + for (i = 0; i < ii; ++i) { + prefix = ngAttrPrefixes[i]; + if (el = document.querySelector('[' + prefix.replace(':', '\\:') + 'jq]')) { + name = el.getAttribute(prefix + 'jq'); + break; + } + } + + return (jq.name_ = name); +}; + +function concat(array1, array2, index) { + return array1.concat(slice.call(array2, index)); +} + +function sliceArgs(args, startIndex) { + return slice.call(args, startIndex || 0); +} + + +/* jshint -W101 */ +/** + * @ngdoc function + * @name angular.bind + * @module ng + * @kind function + * + * @description + * Returns a function which calls function `fn` bound to `self` (`self` becomes the `this` for + * `fn`). You can supply optional `args` that are prebound to the function. This feature is also + * known as [partial application](http://en.wikipedia.org/wiki/Partial_application), as + * distinguished from [function currying](http://en.wikipedia.org/wiki/Currying#Contrast_with_partial_function_application). + * + * @param {Object} self Context which `fn` should be evaluated in. + * @param {function()} fn Function to be bound. + * @param {...*} args Optional arguments to be prebound to the `fn` function call. + * @returns {function()} Function that wraps the `fn` with all the specified bindings. + */ +/* jshint +W101 */ +function bind(self, fn) { + var curryArgs = arguments.length > 2 ? sliceArgs(arguments, 2) : []; + if (isFunction(fn) && !(fn instanceof RegExp)) { + return curryArgs.length + ? function() { + return arguments.length + ? fn.apply(self, concat(curryArgs, arguments, 0)) + : fn.apply(self, curryArgs); + } + : function() { + return arguments.length + ? fn.apply(self, arguments) + : fn.call(self); + }; + } else { + // in IE, native methods are not functions so they cannot be bound (note: they don't need to be) + return fn; + } +} + + +function toJsonReplacer(key, value) { + var val = value; + + if (typeof key === 'string' && key.charAt(0) === '$' && key.charAt(1) === '$') { + val = undefined; + } else if (isWindow(value)) { + val = '$WINDOW'; + } else if (value && document === value) { + val = '$DOCUMENT'; + } else if (isScope(value)) { + val = '$SCOPE'; + } + + return val; +} + + +/** + * @ngdoc function + * @name angular.toJson + * @module ng + * @kind function + * + * @description + * Serializes input into a JSON-formatted string. Properties with leading $$ characters will be + * stripped since angular uses this notation internally. + * + * @param {Object|Array|Date|string|number} obj Input to be serialized into JSON. + * @param {boolean|number} [pretty=2] If set to true, the JSON output will contain newlines and whitespace. + * If set to an integer, the JSON output will contain that many spaces per indentation. + * @returns {string|undefined} JSON-ified string representing `obj`. + */ +function toJson(obj, pretty) { + if (isUndefined(obj)) return undefined; + if (!isNumber(pretty)) { + pretty = pretty ? 2 : null; + } + return JSON.stringify(obj, toJsonReplacer, pretty); +} + + +/** + * @ngdoc function + * @name angular.fromJson + * @module ng + * @kind function + * + * @description + * Deserializes a JSON string. + * + * @param {string} json JSON string to deserialize. + * @returns {Object|Array|string|number} Deserialized JSON string. + */ +function fromJson(json) { + return isString(json) + ? JSON.parse(json) + : json; +} + + +var ALL_COLONS = /:/g; +function timezoneToOffset(timezone, fallback) { + // IE/Edge do not "understand" colon (`:`) in timezone + timezone = timezone.replace(ALL_COLONS, ''); + var requestedTimezoneOffset = Date.parse('Jan 01, 1970 00:00:00 ' + timezone) / 60000; + return isNaN(requestedTimezoneOffset) ? fallback : requestedTimezoneOffset; +} + + +function addDateMinutes(date, minutes) { + date = new Date(date.getTime()); + date.setMinutes(date.getMinutes() + minutes); + return date; +} + + +function convertTimezoneToLocal(date, timezone, reverse) { + reverse = reverse ? -1 : 1; + var dateTimezoneOffset = date.getTimezoneOffset(); + var timezoneOffset = timezoneToOffset(timezone, dateTimezoneOffset); + return addDateMinutes(date, reverse * (timezoneOffset - dateTimezoneOffset)); +} + + +/** + * @returns {string} Returns the string representation of the element. + */ +function startingTag(element) { + element = jqLite(element).clone(); + try { + // turns out IE does not let you set .html() on elements which + // are not allowed to have children. So we just ignore it. + element.empty(); + } catch (e) {} + var elemHtml = jqLite('
').append(element).html(); + try { + return element[0].nodeType === NODE_TYPE_TEXT ? lowercase(elemHtml) : + elemHtml. + match(/^(<[^>]+>)/)[1]. + replace(/^<([\w\-]+)/, function(match, nodeName) {return '<' + lowercase(nodeName);}); + } catch (e) { + return lowercase(elemHtml); + } + +} + + +///////////////////////////////////////////////// + +/** + * Tries to decode the URI component without throwing an exception. + * + * @private + * @param str value potential URI component to check. + * @returns {boolean} True if `value` can be decoded + * with the decodeURIComponent function. + */ +function tryDecodeURIComponent(value) { + try { + return decodeURIComponent(value); + } catch (e) { + // Ignore any invalid uri component + } +} + + +/** + * Parses an escaped url query string into key-value pairs. + * @returns {Object.} + */ +function parseKeyValue(/**string*/keyValue) { + var obj = {}; + forEach((keyValue || "").split('&'), function(keyValue) { + var splitPoint, key, val; + if (keyValue) { + key = keyValue = keyValue.replace(/\+/g,'%20'); + splitPoint = keyValue.indexOf('='); + if (splitPoint !== -1) { + key = keyValue.substring(0, splitPoint); + val = keyValue.substring(splitPoint + 1); + } + key = tryDecodeURIComponent(key); + if (isDefined(key)) { + val = isDefined(val) ? tryDecodeURIComponent(val) : true; + if (!hasOwnProperty.call(obj, key)) { + obj[key] = val; + } else if (isArray(obj[key])) { + obj[key].push(val); + } else { + obj[key] = [obj[key],val]; + } + } + } + }); + return obj; +} + +function toKeyValue(obj) { + var parts = []; + forEach(obj, function(value, key) { + if (isArray(value)) { + forEach(value, function(arrayValue) { + parts.push(encodeUriQuery(key, true) + + (arrayValue === true ? '' : '=' + encodeUriQuery(arrayValue, true))); + }); + } else { + parts.push(encodeUriQuery(key, true) + + (value === true ? '' : '=' + encodeUriQuery(value, true))); + } + }); + return parts.length ? parts.join('&') : ''; +} + + +/** + * We need our custom method because encodeURIComponent is too aggressive and doesn't follow + * http://www.ietf.org/rfc/rfc3986.txt with regards to the character set (pchar) allowed in path + * segments: + * segment = *pchar + * pchar = unreserved / pct-encoded / sub-delims / ":" / "@" + * pct-encoded = "%" HEXDIG HEXDIG + * unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" + * sub-delims = "!" / "$" / "&" / "'" / "(" / ")" + * / "*" / "+" / "," / ";" / "=" + */ +function encodeUriSegment(val) { + return encodeUriQuery(val, true). + replace(/%26/gi, '&'). + replace(/%3D/gi, '='). + replace(/%2B/gi, '+'); +} + + +/** + * This method is intended for encoding *key* or *value* parts of query component. We need a custom + * method because encodeURIComponent is too aggressive and encodes stuff that doesn't have to be + * encoded per http://tools.ietf.org/html/rfc3986: + * query = *( pchar / "/" / "?" ) + * pchar = unreserved / pct-encoded / sub-delims / ":" / "@" + * unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" + * pct-encoded = "%" HEXDIG HEXDIG + * sub-delims = "!" / "$" / "&" / "'" / "(" / ")" + * / "*" / "+" / "," / ";" / "=" + */ +function encodeUriQuery(val, pctEncodeSpaces) { + return encodeURIComponent(val). + replace(/%40/gi, '@'). + replace(/%3A/gi, ':'). + replace(/%24/g, '$'). + replace(/%2C/gi, ','). + replace(/%3B/gi, ';'). + replace(/%20/g, (pctEncodeSpaces ? '%20' : '+')); +} + +var ngAttrPrefixes = ['ng-', 'data-ng-', 'ng:', 'x-ng-']; + +function getNgAttribute(element, ngAttr) { + var attr, i, ii = ngAttrPrefixes.length; + for (i = 0; i < ii; ++i) { + attr = ngAttrPrefixes[i] + ngAttr; + if (isString(attr = element.getAttribute(attr))) { + return attr; + } + } + return null; +} + +/** + * @ngdoc directive + * @name ngApp + * @module ng + * + * @element ANY + * @param {angular.Module} ngApp an optional application + * {@link angular.module module} name to load. + * @param {boolean=} ngStrictDi if this attribute is present on the app element, the injector will be + * created in "strict-di" mode. This means that the application will fail to invoke functions which + * do not use explicit function annotation (and are thus unsuitable for minification), as described + * in {@link guide/di the Dependency Injection guide}, and useful debugging info will assist in + * tracking down the root of these bugs. + * + * @description + * + * Use this directive to **auto-bootstrap** an AngularJS application. The `ngApp` directive + * designates the **root element** of the application and is typically placed near the root element + * of the page - e.g. on the `` or `` tags. + * + * Only one AngularJS application can be auto-bootstrapped per HTML document. The first `ngApp` + * found in the document will be used to define the root element to auto-bootstrap as an + * application. To run multiple applications in an HTML document you must manually bootstrap them using + * {@link angular.bootstrap} instead. AngularJS applications cannot be nested within each other. + * + * You can specify an **AngularJS module** to be used as the root module for the application. This + * module will be loaded into the {@link auto.$injector} when the application is bootstrapped. It + * should contain the application code needed or have dependencies on other modules that will + * contain the code. See {@link angular.module} for more information. + * + * In the example below if the `ngApp` directive were not placed on the `html` element then the + * document would not be compiled, the `AppController` would not be instantiated and the `{{ a+b }}` + * would not be resolved to `3`. + * + * `ngApp` is the easiest, and most common way to bootstrap an application. + * + + +
+ I can add: {{a}} + {{b}} = {{ a+b }} +
+
+ + angular.module('ngAppDemo', []).controller('ngAppDemoController', function($scope) { + $scope.a = 1; + $scope.b = 2; + }); + +
+ * + * Using `ngStrictDi`, you would see something like this: + * + + +
+
+ I can add: {{a}} + {{b}} = {{ a+b }} + +

This renders because the controller does not fail to + instantiate, by using explicit annotation style (see + script.js for details) +

+
+ +
+ Name:
+ Hello, {{name}}! + +

This renders because the controller does not fail to + instantiate, by using explicit annotation style + (see script.js for details) +

+
+ +
+ I can add: {{a}} + {{b}} = {{ a+b }} + +

The controller could not be instantiated, due to relying + on automatic function annotations (which are disabled in + strict mode). As such, the content of this section is not + interpolated, and there should be an error in your web console. +

+
+
+
+ + angular.module('ngAppStrictDemo', []) + // BadController will fail to instantiate, due to relying on automatic function annotation, + // rather than an explicit annotation + .controller('BadController', function($scope) { + $scope.a = 1; + $scope.b = 2; + }) + // Unlike BadController, GoodController1 and GoodController2 will not fail to be instantiated, + // due to using explicit annotations using the array style and $inject property, respectively. + .controller('GoodController1', ['$scope', function($scope) { + $scope.a = 1; + $scope.b = 2; + }]) + .controller('GoodController2', GoodController2); + function GoodController2($scope) { + $scope.name = "World"; + } + GoodController2.$inject = ['$scope']; + + + div[ng-controller] { + margin-bottom: 1em; + -webkit-border-radius: 4px; + border-radius: 4px; + border: 1px solid; + padding: .5em; + } + div[ng-controller^=Good] { + border-color: #d6e9c6; + background-color: #dff0d8; + color: #3c763d; + } + div[ng-controller^=Bad] { + border-color: #ebccd1; + background-color: #f2dede; + color: #a94442; + margin-bottom: 0; + } + +
+ */ +function angularInit(element, bootstrap) { + var appElement, + module, + config = {}; + + // The element `element` has priority over any other element + forEach(ngAttrPrefixes, function(prefix) { + var name = prefix + 'app'; + + if (!appElement && element.hasAttribute && element.hasAttribute(name)) { + appElement = element; + module = element.getAttribute(name); + } + }); + forEach(ngAttrPrefixes, function(prefix) { + var name = prefix + 'app'; + var candidate; + + if (!appElement && (candidate = element.querySelector('[' + name.replace(':', '\\:') + ']'))) { + appElement = candidate; + module = candidate.getAttribute(name); + } + }); + if (appElement) { + config.strictDi = getNgAttribute(appElement, "strict-di") !== null; + bootstrap(appElement, module ? [module] : [], config); + } +} + +/** + * @ngdoc function + * @name angular.bootstrap + * @module ng + * @description + * Use this function to manually start up angular application. + * + * See: {@link guide/bootstrap Bootstrap} + * + * Note that Protractor based end-to-end tests cannot use this function to bootstrap manually. + * They must use {@link ng.directive:ngApp ngApp}. + * + * Angular will detect if it has been loaded into the browser more than once and only allow the + * first loaded script to be bootstrapped and will report a warning to the browser console for + * each of the subsequent scripts. This prevents strange results in applications, where otherwise + * multiple instances of Angular try to work on the DOM. + * + * ```html + * + * + * + *
+ * {{greeting}} + *
+ * + * + * + * + * + * ``` + * + * @param {DOMElement} element DOM element which is the root of angular application. + * @param {Array=} modules an array of modules to load into the application. + * Each item in the array should be the name of a predefined module or a (DI annotated) + * function that will be invoked by the injector as a `config` block. + * See: {@link angular.module modules} + * @param {Object=} config an object for defining configuration options for the application. The + * following keys are supported: + * + * * `strictDi` - disable automatic function annotation for the application. This is meant to + * assist in finding bugs which break minified code. Defaults to `false`. + * + * @returns {auto.$injector} Returns the newly created injector for this app. + */ +function bootstrap(element, modules, config) { + if (!isObject(config)) config = {}; + var defaultConfig = { + strictDi: false + }; + config = extend(defaultConfig, config); + var doBootstrap = function() { + element = jqLite(element); + + if (element.injector()) { + var tag = (element[0] === document) ? 'document' : startingTag(element); + //Encode angle brackets to prevent input from being sanitized to empty string #8683 + throw ngMinErr( + 'btstrpd', + "App Already Bootstrapped with this Element '{0}'", + tag.replace(//,'>')); + } + + modules = modules || []; + modules.unshift(['$provide', function($provide) { + $provide.value('$rootElement', element); + }]); + + if (config.debugInfoEnabled) { + // Pushing so that this overrides `debugInfoEnabled` setting defined in user's `modules`. + modules.push(['$compileProvider', function($compileProvider) { + $compileProvider.debugInfoEnabled(true); + }]); + } + + modules.unshift('ng'); + var injector = createInjector(modules, config.strictDi); + injector.invoke(['$rootScope', '$rootElement', '$compile', '$injector', + function bootstrapApply(scope, element, compile, injector) { + scope.$apply(function() { + element.data('$injector', injector); + compile(element)(scope); + }); + }] + ); + return injector; + }; + + var NG_ENABLE_DEBUG_INFO = /^NG_ENABLE_DEBUG_INFO!/; + var NG_DEFER_BOOTSTRAP = /^NG_DEFER_BOOTSTRAP!/; + + if (window && NG_ENABLE_DEBUG_INFO.test(window.name)) { + config.debugInfoEnabled = true; + window.name = window.name.replace(NG_ENABLE_DEBUG_INFO, ''); + } + + if (window && !NG_DEFER_BOOTSTRAP.test(window.name)) { + return doBootstrap(); + } + + window.name = window.name.replace(NG_DEFER_BOOTSTRAP, ''); + angular.resumeBootstrap = function(extraModules) { + forEach(extraModules, function(module) { + modules.push(module); + }); + return doBootstrap(); + }; + + if (isFunction(angular.resumeDeferredBootstrap)) { + angular.resumeDeferredBootstrap(); + } +} + +/** + * @ngdoc function + * @name angular.reloadWithDebugInfo + * @module ng + * @description + * Use this function to reload the current application with debug information turned on. + * This takes precedence over a call to `$compileProvider.debugInfoEnabled(false)`. + * + * See {@link ng.$compileProvider#debugInfoEnabled} for more. + */ +function reloadWithDebugInfo() { + window.name = 'NG_ENABLE_DEBUG_INFO!' + window.name; + window.location.reload(); +} + +/** + * @name angular.getTestability + * @module ng + * @description + * Get the testability service for the instance of Angular on the given + * element. + * @param {DOMElement} element DOM element which is the root of angular application. + */ +function getTestability(rootElement) { + var injector = angular.element(rootElement).injector(); + if (!injector) { + throw ngMinErr('test', + 'no injector found for element argument to getTestability'); + } + return injector.get('$$testability'); +} + +var SNAKE_CASE_REGEXP = /[A-Z]/g; +function snake_case(name, separator) { + separator = separator || '_'; + return name.replace(SNAKE_CASE_REGEXP, function(letter, pos) { + return (pos ? separator : '') + letter.toLowerCase(); + }); +} + +var bindJQueryFired = false; +var skipDestroyOnNextJQueryCleanData; +function bindJQuery() { + var originalCleanData; + + if (bindJQueryFired) { + return; + } + + // bind to jQuery if present; + var jqName = jq(); + jQuery = isUndefined(jqName) ? window.jQuery : // use jQuery (if present) + !jqName ? undefined : // use jqLite + window[jqName]; // use jQuery specified by `ngJq` + + // Use jQuery if it exists with proper functionality, otherwise default to us. + // Angular 1.2+ requires jQuery 1.7+ for on()/off() support. + // Angular 1.3+ technically requires at least jQuery 2.1+ but it may work with older + // versions. It will not work for sure with jQuery <1.7, though. + if (jQuery && jQuery.fn.on) { + jqLite = jQuery; + extend(jQuery.fn, { + scope: JQLitePrototype.scope, + isolateScope: JQLitePrototype.isolateScope, + controller: JQLitePrototype.controller, + injector: JQLitePrototype.injector, + inheritedData: JQLitePrototype.inheritedData + }); + + // All nodes removed from the DOM via various jQuery APIs like .remove() + // are passed through jQuery.cleanData. Monkey-patch this method to fire + // the $destroy event on all removed nodes. + originalCleanData = jQuery.cleanData; + jQuery.cleanData = function(elems) { + var events; + if (!skipDestroyOnNextJQueryCleanData) { + for (var i = 0, elem; (elem = elems[i]) != null; i++) { + events = jQuery._data(elem, "events"); + if (events && events.$destroy) { + jQuery(elem).triggerHandler('$destroy'); + } + } + } else { + skipDestroyOnNextJQueryCleanData = false; + } + originalCleanData(elems); + }; + } else { + jqLite = JQLite; + } + + angular.element = jqLite; + + // Prevent double-proxying. + bindJQueryFired = true; +} + +/** + * throw error if the argument is falsy. + */ +function assertArg(arg, name, reason) { + if (!arg) { + throw ngMinErr('areq', "Argument '{0}' is {1}", (name || '?'), (reason || "required")); + } + return arg; +} + +function assertArgFn(arg, name, acceptArrayAnnotation) { + if (acceptArrayAnnotation && isArray(arg)) { + arg = arg[arg.length - 1]; + } + + assertArg(isFunction(arg), name, 'not a function, got ' + + (arg && typeof arg === 'object' ? arg.constructor.name || 'Object' : typeof arg)); + return arg; +} + +/** + * throw error if the name given is hasOwnProperty + * @param {String} name the name to test + * @param {String} context the context in which the name is used, such as module or directive + */ +function assertNotHasOwnProperty(name, context) { + if (name === 'hasOwnProperty') { + throw ngMinErr('badname', "hasOwnProperty is not a valid {0} name", context); + } +} + +/** + * Return the value accessible from the object by path. Any undefined traversals are ignored + * @param {Object} obj starting object + * @param {String} path path to traverse + * @param {boolean} [bindFnToScope=true] + * @returns {Object} value as accessible by path + */ +//TODO(misko): this function needs to be removed +function getter(obj, path, bindFnToScope) { + if (!path) return obj; + var keys = path.split('.'); + var key; + var lastInstance = obj; + var len = keys.length; + + for (var i = 0; i < len; i++) { + key = keys[i]; + if (obj) { + obj = (lastInstance = obj)[key]; + } + } + if (!bindFnToScope && isFunction(obj)) { + return bind(lastInstance, obj); + } + return obj; +} + +/** + * Return the DOM siblings between the first and last node in the given array. + * @param {Array} array like object + * @returns {Array} the inputted object or a jqLite collection containing the nodes + */ +function getBlockNodes(nodes) { + // TODO(perf): update `nodes` instead of creating a new object? + var node = nodes[0]; + var endNode = nodes[nodes.length - 1]; + var blockNodes; + + for (var i = 1; node !== endNode && (node = node.nextSibling); i++) { + if (blockNodes || nodes[i] !== node) { + if (!blockNodes) { + blockNodes = jqLite(slice.call(nodes, 0, i)); + } + blockNodes.push(node); + } + } + + return blockNodes || nodes; +} + + +/** + * Creates a new object without a prototype. This object is useful for lookup without having to + * guard against prototypically inherited properties via hasOwnProperty. + * + * Related micro-benchmarks: + * - http://jsperf.com/object-create2 + * - http://jsperf.com/proto-map-lookup/2 + * - http://jsperf.com/for-in-vs-object-keys2 + * + * @returns {Object} + */ +function createMap() { + return Object.create(null); +} + +var NODE_TYPE_ELEMENT = 1; +var NODE_TYPE_ATTRIBUTE = 2; +var NODE_TYPE_TEXT = 3; +var NODE_TYPE_COMMENT = 8; +var NODE_TYPE_DOCUMENT = 9; +var NODE_TYPE_DOCUMENT_FRAGMENT = 11; + +/** + * @ngdoc type + * @name angular.Module + * @module ng + * @description + * + * Interface for configuring angular {@link angular.module modules}. + */ + +function setupModuleLoader(window) { + + var $injectorMinErr = minErr('$injector'); + var ngMinErr = minErr('ng'); + + function ensure(obj, name, factory) { + return obj[name] || (obj[name] = factory()); + } + + var angular = ensure(window, 'angular', Object); + + // We need to expose `angular.$$minErr` to modules such as `ngResource` that reference it during bootstrap + angular.$$minErr = angular.$$minErr || minErr; + + return ensure(angular, 'module', function() { + /** @type {Object.} */ + var modules = {}; + + /** + * @ngdoc function + * @name angular.module + * @module ng + * @description + * + * The `angular.module` is a global place for creating, registering and retrieving Angular + * modules. + * All modules (angular core or 3rd party) that should be available to an application must be + * registered using this mechanism. + * + * Passing one argument retrieves an existing {@link angular.Module}, + * whereas passing more than one argument creates a new {@link angular.Module} + * + * + * # Module + * + * A module is a collection of services, directives, controllers, filters, and configuration information. + * `angular.module` is used to configure the {@link auto.$injector $injector}. + * + * ```js + * // Create a new module + * var myModule = angular.module('myModule', []); + * + * // register a new service + * myModule.value('appName', 'MyCoolApp'); + * + * // configure existing services inside initialization blocks. + * myModule.config(['$locationProvider', function($locationProvider) { + * // Configure existing providers + * $locationProvider.hashPrefix('!'); + * }]); + * ``` + * + * Then you can create an injector and load your modules like this: + * + * ```js + * var injector = angular.injector(['ng', 'myModule']) + * ``` + * + * However it's more likely that you'll just use + * {@link ng.directive:ngApp ngApp} or + * {@link angular.bootstrap} to simplify this process for you. + * + * @param {!string} name The name of the module to create or retrieve. + * @param {!Array.=} requires If specified then new module is being created. If + * unspecified then the module is being retrieved for further configuration. + * @param {Function=} configFn Optional configuration function for the module. Same as + * {@link angular.Module#config Module#config()}. + * @returns {angular.Module} new module with the {@link angular.Module} api. + */ + return function module(name, requires, configFn) { + var assertNotHasOwnProperty = function(name, context) { + if (name === 'hasOwnProperty') { + throw ngMinErr('badname', 'hasOwnProperty is not a valid {0} name', context); + } + }; + + assertNotHasOwnProperty(name, 'module'); + if (requires && modules.hasOwnProperty(name)) { + modules[name] = null; + } + return ensure(modules, name, function() { + if (!requires) { + throw $injectorMinErr('nomod', "Module '{0}' is not available! You either misspelled " + + "the module name or forgot to load it. If registering a module ensure that you " + + "specify the dependencies as the second argument.", name); + } + + /** @type {!Array.>} */ + var invokeQueue = []; + + /** @type {!Array.} */ + var configBlocks = []; + + /** @type {!Array.} */ + var runBlocks = []; + + var config = invokeLater('$injector', 'invoke', 'push', configBlocks); + + /** @type {angular.Module} */ + var moduleInstance = { + // Private state + _invokeQueue: invokeQueue, + _configBlocks: configBlocks, + _runBlocks: runBlocks, + + /** + * @ngdoc property + * @name angular.Module#requires + * @module ng + * + * @description + * Holds the list of modules which the injector will load before the current module is + * loaded. + */ + requires: requires, + + /** + * @ngdoc property + * @name angular.Module#name + * @module ng + * + * @description + * Name of the module. + */ + name: name, + + + /** + * @ngdoc method + * @name angular.Module#provider + * @module ng + * @param {string} name service name + * @param {Function} providerType Construction function for creating new instance of the + * service. + * @description + * See {@link auto.$provide#provider $provide.provider()}. + */ + provider: invokeLaterAndSetModuleName('$provide', 'provider'), + + /** + * @ngdoc method + * @name angular.Module#factory + * @module ng + * @param {string} name service name + * @param {Function} providerFunction Function for creating new instance of the service. + * @description + * See {@link auto.$provide#factory $provide.factory()}. + */ + factory: invokeLaterAndSetModuleName('$provide', 'factory'), + + /** + * @ngdoc method + * @name angular.Module#service + * @module ng + * @param {string} name service name + * @param {Function} constructor A constructor function that will be instantiated. + * @description + * See {@link auto.$provide#service $provide.service()}. + */ + service: invokeLaterAndSetModuleName('$provide', 'service'), + + /** + * @ngdoc method + * @name angular.Module#value + * @module ng + * @param {string} name service name + * @param {*} object Service instance object. + * @description + * See {@link auto.$provide#value $provide.value()}. + */ + value: invokeLater('$provide', 'value'), + + /** + * @ngdoc method + * @name angular.Module#constant + * @module ng + * @param {string} name constant name + * @param {*} object Constant value. + * @description + * Because the constants are fixed, they get applied before other provide methods. + * See {@link auto.$provide#constant $provide.constant()}. + */ + constant: invokeLater('$provide', 'constant', 'unshift'), + + /** + * @ngdoc method + * @name angular.Module#decorator + * @module ng + * @param {string} The name of the service to decorate. + * @param {Function} This function will be invoked when the service needs to be + * instantiated and should return the decorated service instance. + * @description + * See {@link auto.$provide#decorator $provide.decorator()}. + */ + decorator: invokeLaterAndSetModuleName('$provide', 'decorator'), + + /** + * @ngdoc method + * @name angular.Module#animation + * @module ng + * @param {string} name animation name + * @param {Function} animationFactory Factory function for creating new instance of an + * animation. + * @description + * + * **NOTE**: animations take effect only if the **ngAnimate** module is loaded. + * + * + * Defines an animation hook that can be later used with + * {@link $animate $animate} service and directives that use this service. + * + * ```js + * module.animation('.animation-name', function($inject1, $inject2) { + * return { + * eventName : function(element, done) { + * //code to run the animation + * //once complete, then run done() + * return function cancellationFunction(element) { + * //code to cancel the animation + * } + * } + * } + * }) + * ``` + * + * See {@link ng.$animateProvider#register $animateProvider.register()} and + * {@link ngAnimate ngAnimate module} for more information. + */ + animation: invokeLaterAndSetModuleName('$animateProvider', 'register'), + + /** + * @ngdoc method + * @name angular.Module#filter + * @module ng + * @param {string} name Filter name - this must be a valid angular expression identifier + * @param {Function} filterFactory Factory function for creating new instance of filter. + * @description + * See {@link ng.$filterProvider#register $filterProvider.register()}. + * + *
+ * **Note:** Filter names must be valid angular {@link expression} identifiers, such as `uppercase` or `orderBy`. + * Names with special characters, such as hyphens and dots, are not allowed. If you wish to namespace + * your filters, then you can use capitalization (`myappSubsectionFilterx`) or underscores + * (`myapp_subsection_filterx`). + *
+ */ + filter: invokeLaterAndSetModuleName('$filterProvider', 'register'), + + /** + * @ngdoc method + * @name angular.Module#controller + * @module ng + * @param {string|Object} name Controller name, or an object map of controllers where the + * keys are the names and the values are the constructors. + * @param {Function} constructor Controller constructor function. + * @description + * See {@link ng.$controllerProvider#register $controllerProvider.register()}. + */ + controller: invokeLaterAndSetModuleName('$controllerProvider', 'register'), + + /** + * @ngdoc method + * @name angular.Module#directive + * @module ng + * @param {string|Object} name Directive name, or an object map of directives where the + * keys are the names and the values are the factories. + * @param {Function} directiveFactory Factory function for creating new instance of + * directives. + * @description + * See {@link ng.$compileProvider#directive $compileProvider.directive()}. + */ + directive: invokeLaterAndSetModuleName('$compileProvider', 'directive'), + + /** + * @ngdoc method + * @name angular.Module#config + * @module ng + * @param {Function} configFn Execute this function on module load. Useful for service + * configuration. + * @description + * Use this method to register work which needs to be performed on module loading. + * For more about how to configure services, see + * {@link providers#provider-recipe Provider Recipe}. + */ + config: config, + + /** + * @ngdoc method + * @name angular.Module#run + * @module ng + * @param {Function} initializationFn Execute this function after injector creation. + * Useful for application initialization. + * @description + * Use this method to register work which should be performed when the injector is done + * loading all modules. + */ + run: function(block) { + runBlocks.push(block); + return this; + } + }; + + if (configFn) { + config(configFn); + } + + return moduleInstance; + + /** + * @param {string} provider + * @param {string} method + * @param {String=} insertMethod + * @returns {angular.Module} + */ + function invokeLater(provider, method, insertMethod, queue) { + if (!queue) queue = invokeQueue; + return function() { + queue[insertMethod || 'push']([provider, method, arguments]); + return moduleInstance; + }; + } + + /** + * @param {string} provider + * @param {string} method + * @returns {angular.Module} + */ + function invokeLaterAndSetModuleName(provider, method) { + return function(recipeName, factoryFunction) { + if (factoryFunction && isFunction(factoryFunction)) factoryFunction.$$moduleName = name; + invokeQueue.push([provider, method, arguments]); + return moduleInstance; + }; + } + }); + }; + }); + +} + +/* global: toDebugString: true */ + +function serializeObject(obj) { + var seen = []; + + return JSON.stringify(obj, function(key, val) { + val = toJsonReplacer(key, val); + if (isObject(val)) { + + if (seen.indexOf(val) >= 0) return '...'; + + seen.push(val); + } + return val; + }); +} + +function toDebugString(obj) { + if (typeof obj === 'function') { + return obj.toString().replace(/ \{[\s\S]*$/, ''); + } else if (isUndefined(obj)) { + return 'undefined'; + } else if (typeof obj !== 'string') { + return serializeObject(obj); + } + return obj; +} + +/* global angularModule: true, + version: true, + + $CompileProvider, + + htmlAnchorDirective, + inputDirective, + inputDirective, + formDirective, + scriptDirective, + selectDirective, + styleDirective, + optionDirective, + ngBindDirective, + ngBindHtmlDirective, + ngBindTemplateDirective, + ngClassDirective, + ngClassEvenDirective, + ngClassOddDirective, + ngCloakDirective, + ngControllerDirective, + ngFormDirective, + ngHideDirective, + ngIfDirective, + ngIncludeDirective, + ngIncludeFillContentDirective, + ngInitDirective, + ngNonBindableDirective, + ngPluralizeDirective, + ngRepeatDirective, + ngShowDirective, + ngStyleDirective, + ngSwitchDirective, + ngSwitchWhenDirective, + ngSwitchDefaultDirective, + ngOptionsDirective, + ngTranscludeDirective, + ngModelDirective, + ngListDirective, + ngChangeDirective, + patternDirective, + patternDirective, + requiredDirective, + requiredDirective, + minlengthDirective, + minlengthDirective, + maxlengthDirective, + maxlengthDirective, + ngValueDirective, + ngModelOptionsDirective, + ngAttributeAliasDirectives, + ngEventDirectives, + + $AnchorScrollProvider, + $AnimateProvider, + $CoreAnimateCssProvider, + $$CoreAnimateJsProvider, + $$CoreAnimateQueueProvider, + $$AnimateRunnerFactoryProvider, + $$AnimateAsyncRunFactoryProvider, + $BrowserProvider, + $CacheFactoryProvider, + $ControllerProvider, + $DocumentProvider, + $ExceptionHandlerProvider, + $FilterProvider, + $$ForceReflowProvider, + $InterpolateProvider, + $IntervalProvider, + $$HashMapProvider, + $HttpProvider, + $HttpParamSerializerProvider, + $HttpParamSerializerJQLikeProvider, + $HttpBackendProvider, + $xhrFactoryProvider, + $LocationProvider, + $LogProvider, + $ParseProvider, + $RootScopeProvider, + $QProvider, + $$QProvider, + $$SanitizeUriProvider, + $SceProvider, + $SceDelegateProvider, + $SnifferProvider, + $TemplateCacheProvider, + $TemplateRequestProvider, + $$TestabilityProvider, + $TimeoutProvider, + $$RAFProvider, + $WindowProvider, + $$jqLiteProvider, + $$CookieReaderProvider +*/ + + +/** + * @ngdoc object + * @name angular.version + * @module ng + * @description + * An object that contains information about the current AngularJS version. + * + * This object has the following properties: + * + * - `full` – `{string}` – Full version string, such as "0.9.18". + * - `major` – `{number}` – Major version number, such as "0". + * - `minor` – `{number}` – Minor version number, such as "9". + * - `dot` – `{number}` – Dot version number, such as "18". + * - `codeName` – `{string}` – Code name of the release, such as "jiggling-armfat". + */ +var version = { + full: '1.4.10', // all of these placeholder strings will be replaced by grunt's + major: 1, // package task + minor: 4, + dot: 10, + codeName: 'benignant-oscillation' +}; + + +function publishExternalAPI(angular) { + extend(angular, { + 'bootstrap': bootstrap, + 'copy': copy, + 'extend': extend, + 'merge': merge, + 'equals': equals, + 'element': jqLite, + 'forEach': forEach, + 'injector': createInjector, + 'noop': noop, + 'bind': bind, + 'toJson': toJson, + 'fromJson': fromJson, + 'identity': identity, + 'isUndefined': isUndefined, + 'isDefined': isDefined, + 'isString': isString, + 'isFunction': isFunction, + 'isObject': isObject, + 'isNumber': isNumber, + 'isElement': isElement, + 'isArray': isArray, + 'version': version, + 'isDate': isDate, + 'lowercase': lowercase, + 'uppercase': uppercase, + 'callbacks': {counter: 0}, + 'getTestability': getTestability, + '$$minErr': minErr, + '$$csp': csp, + 'reloadWithDebugInfo': reloadWithDebugInfo + }); + + angularModule = setupModuleLoader(window); + + angularModule('ng', ['ngLocale'], ['$provide', + function ngModule($provide) { + // $$sanitizeUriProvider needs to be before $compileProvider as it is used by it. + $provide.provider({ + $$sanitizeUri: $$SanitizeUriProvider + }); + $provide.provider('$compile', $CompileProvider). + directive({ + a: htmlAnchorDirective, + input: inputDirective, + textarea: inputDirective, + form: formDirective, + script: scriptDirective, + select: selectDirective, + style: styleDirective, + option: optionDirective, + ngBind: ngBindDirective, + ngBindHtml: ngBindHtmlDirective, + ngBindTemplate: ngBindTemplateDirective, + ngClass: ngClassDirective, + ngClassEven: ngClassEvenDirective, + ngClassOdd: ngClassOddDirective, + ngCloak: ngCloakDirective, + ngController: ngControllerDirective, + ngForm: ngFormDirective, + ngHide: ngHideDirective, + ngIf: ngIfDirective, + ngInclude: ngIncludeDirective, + ngInit: ngInitDirective, + ngNonBindable: ngNonBindableDirective, + ngPluralize: ngPluralizeDirective, + ngRepeat: ngRepeatDirective, + ngShow: ngShowDirective, + ngStyle: ngStyleDirective, + ngSwitch: ngSwitchDirective, + ngSwitchWhen: ngSwitchWhenDirective, + ngSwitchDefault: ngSwitchDefaultDirective, + ngOptions: ngOptionsDirective, + ngTransclude: ngTranscludeDirective, + ngModel: ngModelDirective, + ngList: ngListDirective, + ngChange: ngChangeDirective, + pattern: patternDirective, + ngPattern: patternDirective, + required: requiredDirective, + ngRequired: requiredDirective, + minlength: minlengthDirective, + ngMinlength: minlengthDirective, + maxlength: maxlengthDirective, + ngMaxlength: maxlengthDirective, + ngValue: ngValueDirective, + ngModelOptions: ngModelOptionsDirective + }). + directive({ + ngInclude: ngIncludeFillContentDirective + }). + directive(ngAttributeAliasDirectives). + directive(ngEventDirectives); + $provide.provider({ + $anchorScroll: $AnchorScrollProvider, + $animate: $AnimateProvider, + $animateCss: $CoreAnimateCssProvider, + $$animateJs: $$CoreAnimateJsProvider, + $$animateQueue: $$CoreAnimateQueueProvider, + $$AnimateRunner: $$AnimateRunnerFactoryProvider, + $$animateAsyncRun: $$AnimateAsyncRunFactoryProvider, + $browser: $BrowserProvider, + $cacheFactory: $CacheFactoryProvider, + $controller: $ControllerProvider, + $document: $DocumentProvider, + $exceptionHandler: $ExceptionHandlerProvider, + $filter: $FilterProvider, + $$forceReflow: $$ForceReflowProvider, + $interpolate: $InterpolateProvider, + $interval: $IntervalProvider, + $http: $HttpProvider, + $httpParamSerializer: $HttpParamSerializerProvider, + $httpParamSerializerJQLike: $HttpParamSerializerJQLikeProvider, + $httpBackend: $HttpBackendProvider, + $xhrFactory: $xhrFactoryProvider, + $location: $LocationProvider, + $log: $LogProvider, + $parse: $ParseProvider, + $rootScope: $RootScopeProvider, + $q: $QProvider, + $$q: $$QProvider, + $sce: $SceProvider, + $sceDelegate: $SceDelegateProvider, + $sniffer: $SnifferProvider, + $templateCache: $TemplateCacheProvider, + $templateRequest: $TemplateRequestProvider, + $$testability: $$TestabilityProvider, + $timeout: $TimeoutProvider, + $window: $WindowProvider, + $$rAF: $$RAFProvider, + $$jqLite: $$jqLiteProvider, + $$HashMap: $$HashMapProvider, + $$cookieReader: $$CookieReaderProvider + }); + } + ]); +} + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Any commits to this file should be reviewed with security in mind. * + * Changes to this file can potentially create security vulnerabilities. * + * An approval from 2 Core members with history of modifying * + * this file is required. * + * * + * Does the change somehow allow for arbitrary javascript to be executed? * + * Or allows for someone to change the prototype of built-in objects? * + * Or gives undesired access to variables likes document or window? * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* global JQLitePrototype: true, + addEventListenerFn: true, + removeEventListenerFn: true, + BOOLEAN_ATTR: true, + ALIASED_ATTR: true, +*/ + +////////////////////////////////// +//JQLite +////////////////////////////////// + +/** + * @ngdoc function + * @name angular.element + * @module ng + * @kind function + * + * @description + * Wraps a raw DOM element or HTML string as a [jQuery](http://jquery.com) element. + * + * If jQuery is available, `angular.element` is an alias for the + * [jQuery](http://api.jquery.com/jQuery/) function. If jQuery is not available, `angular.element` + * delegates to Angular's built-in subset of jQuery, called "jQuery lite" or **jqLite**. + * + * jqLite is a tiny, API-compatible subset of jQuery that allows + * Angular to manipulate the DOM in a cross-browser compatible way. jqLite implements only the most + * commonly needed functionality with the goal of having a very small footprint. + * + * To use `jQuery`, simply ensure it is loaded before the `angular.js` file. You can also use the + * {@link ngJq `ngJq`} directive to specify that jqlite should be used over jQuery, or to use a + * specific version of jQuery if multiple versions exist on the page. + * + *
**Note:** All element references in Angular are always wrapped with jQuery or + * jqLite (such as the element argument in a directive's compile / link function). They are never raw DOM references.
+ * + *
**Note:** Keep in mind that this function will not find elements + * by tag name / CSS selector. For lookups by tag name, try instead `angular.element(document).find(...)` + * or `$document.find()`, or use the standard DOM APIs, e.g. `document.querySelectorAll()`.
+ * + * ## Angular's jqLite + * jqLite provides only the following jQuery methods: + * + * - [`addClass()`](http://api.jquery.com/addClass/) + * - [`after()`](http://api.jquery.com/after/) + * - [`append()`](http://api.jquery.com/append/) + * - [`attr()`](http://api.jquery.com/attr/) - Does not support functions as parameters + * - [`bind()`](http://api.jquery.com/bind/) - Does not support namespaces, selectors or eventData + * - [`children()`](http://api.jquery.com/children/) - Does not support selectors + * - [`clone()`](http://api.jquery.com/clone/) + * - [`contents()`](http://api.jquery.com/contents/) + * - [`css()`](http://api.jquery.com/css/) - Only retrieves inline-styles, does not call `getComputedStyle()`. + * As a setter, does not convert numbers to strings or append 'px', and also does not have automatic property prefixing. + * - [`data()`](http://api.jquery.com/data/) + * - [`detach()`](http://api.jquery.com/detach/) + * - [`empty()`](http://api.jquery.com/empty/) + * - [`eq()`](http://api.jquery.com/eq/) + * - [`find()`](http://api.jquery.com/find/) - Limited to lookups by tag name + * - [`hasClass()`](http://api.jquery.com/hasClass/) + * - [`html()`](http://api.jquery.com/html/) + * - [`next()`](http://api.jquery.com/next/) - Does not support selectors + * - [`on()`](http://api.jquery.com/on/) - Does not support namespaces, selectors or eventData + * - [`off()`](http://api.jquery.com/off/) - Does not support namespaces, selectors or event object as parameter + * - [`one()`](http://api.jquery.com/one/) - Does not support namespaces or selectors + * - [`parent()`](http://api.jquery.com/parent/) - Does not support selectors + * - [`prepend()`](http://api.jquery.com/prepend/) + * - [`prop()`](http://api.jquery.com/prop/) + * - [`ready()`](http://api.jquery.com/ready/) + * - [`remove()`](http://api.jquery.com/remove/) + * - [`removeAttr()`](http://api.jquery.com/removeAttr/) + * - [`removeClass()`](http://api.jquery.com/removeClass/) + * - [`removeData()`](http://api.jquery.com/removeData/) + * - [`replaceWith()`](http://api.jquery.com/replaceWith/) + * - [`text()`](http://api.jquery.com/text/) + * - [`toggleClass()`](http://api.jquery.com/toggleClass/) + * - [`triggerHandler()`](http://api.jquery.com/triggerHandler/) - Passes a dummy event object to handlers. + * - [`unbind()`](http://api.jquery.com/unbind/) - Does not support namespaces or event object as parameter + * - [`val()`](http://api.jquery.com/val/) + * - [`wrap()`](http://api.jquery.com/wrap/) + * + * ## jQuery/jqLite Extras + * Angular also provides the following additional methods and events to both jQuery and jqLite: + * + * ### Events + * - `$destroy` - AngularJS intercepts all jqLite/jQuery's DOM destruction apis and fires this event + * on all DOM nodes being removed. This can be used to clean up any 3rd party bindings to the DOM + * element before it is removed. + * + * ### Methods + * - `controller(name)` - retrieves the controller of the current element or its parent. By default + * retrieves controller associated with the `ngController` directive. If `name` is provided as + * camelCase directive name, then the controller for this directive will be retrieved (e.g. + * `'ngModel'`). + * - `injector()` - retrieves the injector of the current element or its parent. + * - `scope()` - retrieves the {@link ng.$rootScope.Scope scope} of the current + * element or its parent. Requires {@link guide/production#disabling-debug-data Debug Data} to + * be enabled. + * - `isolateScope()` - retrieves an isolate {@link ng.$rootScope.Scope scope} if one is attached directly to the + * current element. This getter should be used only on elements that contain a directive which starts a new isolate + * scope. Calling `scope()` on this element always returns the original non-isolate scope. + * Requires {@link guide/production#disabling-debug-data Debug Data} to be enabled. + * - `inheritedData()` - same as `data()`, but walks up the DOM until a value is found or the top + * parent element is reached. + * + * @param {string|DOMElement} element HTML string or DOMElement to be wrapped into jQuery. + * @returns {Object} jQuery object. + */ + +JQLite.expando = 'ng339'; + +var jqCache = JQLite.cache = {}, + jqId = 1, + addEventListenerFn = function(element, type, fn) { + element.addEventListener(type, fn, false); + }, + removeEventListenerFn = function(element, type, fn) { + element.removeEventListener(type, fn, false); + }; + +/* + * !!! This is an undocumented "private" function !!! + */ +JQLite._data = function(node) { + //jQuery always returns an object on cache miss + return this.cache[node[this.expando]] || {}; +}; + +function jqNextId() { return ++jqId; } + + +var SPECIAL_CHARS_REGEXP = /([\:\-\_]+(.))/g; +var MOZ_HACK_REGEXP = /^moz([A-Z])/; +var MOUSE_EVENT_MAP= { mouseleave: "mouseout", mouseenter: "mouseover"}; +var jqLiteMinErr = minErr('jqLite'); + +/** + * Converts snake_case to camelCase. + * Also there is special case for Moz prefix starting with upper case letter. + * @param name Name to normalize + */ +function camelCase(name) { + return name. + replace(SPECIAL_CHARS_REGEXP, function(_, separator, letter, offset) { + return offset ? letter.toUpperCase() : letter; + }). + replace(MOZ_HACK_REGEXP, 'Moz$1'); +} + +var SINGLE_TAG_REGEXP = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/; +var HTML_REGEXP = /<|&#?\w+;/; +var TAG_NAME_REGEXP = /<([\w:-]+)/; +var XHTML_TAG_REGEXP = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi; + +var wrapMap = { + 'option': [1, ''], + + 'thead': [1, '', '
'], + 'col': [2, '', '
'], + 'tr': [2, '', '
'], + 'td': [3, '', '
'], + '_default': [0, "", ""] +}; + +wrapMap.optgroup = wrapMap.option; +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + + +function jqLiteIsTextNode(html) { + return !HTML_REGEXP.test(html); +} + +function jqLiteAcceptsData(node) { + // The window object can accept data but has no nodeType + // Otherwise we are only interested in elements (1) and documents (9) + var nodeType = node.nodeType; + return nodeType === NODE_TYPE_ELEMENT || !nodeType || nodeType === NODE_TYPE_DOCUMENT; +} + +function jqLiteHasData(node) { + for (var key in jqCache[node.ng339]) { + return true; + } + return false; +} + +function jqLiteBuildFragment(html, context) { + var tmp, tag, wrap, + fragment = context.createDocumentFragment(), + nodes = [], i; + + if (jqLiteIsTextNode(html)) { + // Convert non-html into a text node + nodes.push(context.createTextNode(html)); + } else { + // Convert html into DOM nodes + tmp = tmp || fragment.appendChild(context.createElement("div")); + tag = (TAG_NAME_REGEXP.exec(html) || ["", ""])[1].toLowerCase(); + wrap = wrapMap[tag] || wrapMap._default; + tmp.innerHTML = wrap[1] + html.replace(XHTML_TAG_REGEXP, "<$1>") + wrap[2]; + + // Descend through wrappers to the right content + i = wrap[0]; + while (i--) { + tmp = tmp.lastChild; + } + + nodes = concat(nodes, tmp.childNodes); + + tmp = fragment.firstChild; + tmp.textContent = ""; + } + + // Remove wrapper from fragment + fragment.textContent = ""; + fragment.innerHTML = ""; // Clear inner HTML + forEach(nodes, function(node) { + fragment.appendChild(node); + }); + + return fragment; +} + +function jqLiteParseHTML(html, context) { + context = context || document; + var parsed; + + if ((parsed = SINGLE_TAG_REGEXP.exec(html))) { + return [context.createElement(parsed[1])]; + } + + if ((parsed = jqLiteBuildFragment(html, context))) { + return parsed.childNodes; + } + + return []; +} + +function jqLiteWrapNode(node, wrapper) { + var parent = node.parentNode; + + if (parent) { + parent.replaceChild(wrapper, node); + } + + wrapper.appendChild(node); +} + + +// IE9-11 has no method "contains" in SVG element and in Node.prototype. Bug #10259. +var jqLiteContains = Node.prototype.contains || function(arg) { + // jshint bitwise: false + return !!(this.compareDocumentPosition(arg) & 16); + // jshint bitwise: true +}; + +///////////////////////////////////////////// +function JQLite(element) { + if (element instanceof JQLite) { + return element; + } + + var argIsString; + + if (isString(element)) { + element = trim(element); + argIsString = true; + } + if (!(this instanceof JQLite)) { + if (argIsString && element.charAt(0) != '<') { + throw jqLiteMinErr('nosel', 'Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element'); + } + return new JQLite(element); + } + + if (argIsString) { + jqLiteAddNodes(this, jqLiteParseHTML(element)); + } else { + jqLiteAddNodes(this, element); + } +} + +function jqLiteClone(element) { + return element.cloneNode(true); +} + +function jqLiteDealoc(element, onlyDescendants) { + if (!onlyDescendants) jqLiteRemoveData(element); + + if (element.querySelectorAll) { + var descendants = element.querySelectorAll('*'); + for (var i = 0, l = descendants.length; i < l; i++) { + jqLiteRemoveData(descendants[i]); + } + } +} + +function jqLiteOff(element, type, fn, unsupported) { + if (isDefined(unsupported)) throw jqLiteMinErr('offargs', 'jqLite#off() does not support the `selector` argument'); + + var expandoStore = jqLiteExpandoStore(element); + var events = expandoStore && expandoStore.events; + var handle = expandoStore && expandoStore.handle; + + if (!handle) return; //no listeners registered + + if (!type) { + for (type in events) { + if (type !== '$destroy') { + removeEventListenerFn(element, type, handle); + } + delete events[type]; + } + } else { + + var removeHandler = function(type) { + var listenerFns = events[type]; + if (isDefined(fn)) { + arrayRemove(listenerFns || [], fn); + } + if (!(isDefined(fn) && listenerFns && listenerFns.length > 0)) { + removeEventListenerFn(element, type, handle); + delete events[type]; + } + }; + + forEach(type.split(' '), function(type) { + removeHandler(type); + if (MOUSE_EVENT_MAP[type]) { + removeHandler(MOUSE_EVENT_MAP[type]); + } + }); + } +} + +function jqLiteRemoveData(element, name) { + var expandoId = element.ng339; + var expandoStore = expandoId && jqCache[expandoId]; + + if (expandoStore) { + if (name) { + delete expandoStore.data[name]; + return; + } + + if (expandoStore.handle) { + if (expandoStore.events.$destroy) { + expandoStore.handle({}, '$destroy'); + } + jqLiteOff(element); + } + delete jqCache[expandoId]; + element.ng339 = undefined; // don't delete DOM expandos. IE and Chrome don't like it + } +} + + +function jqLiteExpandoStore(element, createIfNecessary) { + var expandoId = element.ng339, + expandoStore = expandoId && jqCache[expandoId]; + + if (createIfNecessary && !expandoStore) { + element.ng339 = expandoId = jqNextId(); + expandoStore = jqCache[expandoId] = {events: {}, data: {}, handle: undefined}; + } + + return expandoStore; +} + + +function jqLiteData(element, key, value) { + if (jqLiteAcceptsData(element)) { + + var isSimpleSetter = isDefined(value); + var isSimpleGetter = !isSimpleSetter && key && !isObject(key); + var massGetter = !key; + var expandoStore = jqLiteExpandoStore(element, !isSimpleGetter); + var data = expandoStore && expandoStore.data; + + if (isSimpleSetter) { // data('key', value) + data[key] = value; + } else { + if (massGetter) { // data() + return data; + } else { + if (isSimpleGetter) { // data('key') + // don't force creation of expandoStore if it doesn't exist yet + return data && data[key]; + } else { // mass-setter: data({key1: val1, key2: val2}) + extend(data, key); + } + } + } + } +} + +function jqLiteHasClass(element, selector) { + if (!element.getAttribute) return false; + return ((" " + (element.getAttribute('class') || '') + " ").replace(/[\n\t]/g, " "). + indexOf(" " + selector + " ") > -1); +} + +function jqLiteRemoveClass(element, cssClasses) { + if (cssClasses && element.setAttribute) { + forEach(cssClasses.split(' '), function(cssClass) { + element.setAttribute('class', trim( + (" " + (element.getAttribute('class') || '') + " ") + .replace(/[\n\t]/g, " ") + .replace(" " + trim(cssClass) + " ", " ")) + ); + }); + } +} + +function jqLiteAddClass(element, cssClasses) { + if (cssClasses && element.setAttribute) { + var existingClasses = (' ' + (element.getAttribute('class') || '') + ' ') + .replace(/[\n\t]/g, " "); + + forEach(cssClasses.split(' '), function(cssClass) { + cssClass = trim(cssClass); + if (existingClasses.indexOf(' ' + cssClass + ' ') === -1) { + existingClasses += cssClass + ' '; + } + }); + + element.setAttribute('class', trim(existingClasses)); + } +} + + +function jqLiteAddNodes(root, elements) { + // THIS CODE IS VERY HOT. Don't make changes without benchmarking. + + if (elements) { + + // if a Node (the most common case) + if (elements.nodeType) { + root[root.length++] = elements; + } else { + var length = elements.length; + + // if an Array or NodeList and not a Window + if (typeof length === 'number' && elements.window !== elements) { + if (length) { + for (var i = 0; i < length; i++) { + root[root.length++] = elements[i]; + } + } + } else { + root[root.length++] = elements; + } + } + } +} + + +function jqLiteController(element, name) { + return jqLiteInheritedData(element, '$' + (name || 'ngController') + 'Controller'); +} + +function jqLiteInheritedData(element, name, value) { + // if element is the document object work with the html element instead + // this makes $(document).scope() possible + if (element.nodeType == NODE_TYPE_DOCUMENT) { + element = element.documentElement; + } + var names = isArray(name) ? name : [name]; + + while (element) { + for (var i = 0, ii = names.length; i < ii; i++) { + if (isDefined(value = jqLite.data(element, names[i]))) return value; + } + + // If dealing with a document fragment node with a host element, and no parent, use the host + // element as the parent. This enables directives within a Shadow DOM or polyfilled Shadow DOM + // to lookup parent controllers. + element = element.parentNode || (element.nodeType === NODE_TYPE_DOCUMENT_FRAGMENT && element.host); + } +} + +function jqLiteEmpty(element) { + jqLiteDealoc(element, true); + while (element.firstChild) { + element.removeChild(element.firstChild); + } +} + +function jqLiteRemove(element, keepData) { + if (!keepData) jqLiteDealoc(element); + var parent = element.parentNode; + if (parent) parent.removeChild(element); +} + + +function jqLiteDocumentLoaded(action, win) { + win = win || window; + if (win.document.readyState === 'complete') { + // Force the action to be run async for consistent behaviour + // from the action's point of view + // i.e. it will definitely not be in a $apply + win.setTimeout(action); + } else { + // No need to unbind this handler as load is only ever called once + jqLite(win).on('load', action); + } +} + +////////////////////////////////////////// +// Functions which are declared directly. +////////////////////////////////////////// +var JQLitePrototype = JQLite.prototype = { + ready: function(fn) { + var fired = false; + + function trigger() { + if (fired) return; + fired = true; + fn(); + } + + // check if document is already loaded + if (document.readyState === 'complete') { + setTimeout(trigger); + } else { + this.on('DOMContentLoaded', trigger); // works for modern browsers and IE9 + // we can not use jqLite since we are not done loading and jQuery could be loaded later. + // jshint -W064 + JQLite(window).on('load', trigger); // fallback to window.onload for others + // jshint +W064 + } + }, + toString: function() { + var value = []; + forEach(this, function(e) { value.push('' + e);}); + return '[' + value.join(', ') + ']'; + }, + + eq: function(index) { + return (index >= 0) ? jqLite(this[index]) : jqLite(this[this.length + index]); + }, + + length: 0, + push: push, + sort: [].sort, + splice: [].splice +}; + +////////////////////////////////////////// +// Functions iterating getter/setters. +// these functions return self on setter and +// value on get. +////////////////////////////////////////// +var BOOLEAN_ATTR = {}; +forEach('multiple,selected,checked,disabled,readOnly,required,open'.split(','), function(value) { + BOOLEAN_ATTR[lowercase(value)] = value; +}); +var BOOLEAN_ELEMENTS = {}; +forEach('input,select,option,textarea,button,form,details'.split(','), function(value) { + BOOLEAN_ELEMENTS[value] = true; +}); +var ALIASED_ATTR = { + 'ngMinlength': 'minlength', + 'ngMaxlength': 'maxlength', + 'ngMin': 'min', + 'ngMax': 'max', + 'ngPattern': 'pattern' +}; + +function getBooleanAttrName(element, name) { + // check dom last since we will most likely fail on name + var booleanAttr = BOOLEAN_ATTR[name.toLowerCase()]; + + // booleanAttr is here twice to minimize DOM access + return booleanAttr && BOOLEAN_ELEMENTS[nodeName_(element)] && booleanAttr; +} + +function getAliasedAttrName(name) { + return ALIASED_ATTR[name]; +} + +forEach({ + data: jqLiteData, + removeData: jqLiteRemoveData, + hasData: jqLiteHasData +}, function(fn, name) { + JQLite[name] = fn; +}); + +forEach({ + data: jqLiteData, + inheritedData: jqLiteInheritedData, + + scope: function(element) { + // Can't use jqLiteData here directly so we stay compatible with jQuery! + return jqLite.data(element, '$scope') || jqLiteInheritedData(element.parentNode || element, ['$isolateScope', '$scope']); + }, + + isolateScope: function(element) { + // Can't use jqLiteData here directly so we stay compatible with jQuery! + return jqLite.data(element, '$isolateScope') || jqLite.data(element, '$isolateScopeNoTemplate'); + }, + + controller: jqLiteController, + + injector: function(element) { + return jqLiteInheritedData(element, '$injector'); + }, + + removeAttr: function(element, name) { + element.removeAttribute(name); + }, + + hasClass: jqLiteHasClass, + + css: function(element, name, value) { + name = camelCase(name); + + if (isDefined(value)) { + element.style[name] = value; + } else { + return element.style[name]; + } + }, + + attr: function(element, name, value) { + var nodeType = element.nodeType; + if (nodeType === NODE_TYPE_TEXT || nodeType === NODE_TYPE_ATTRIBUTE || nodeType === NODE_TYPE_COMMENT) { + return; + } + var lowercasedName = lowercase(name); + if (BOOLEAN_ATTR[lowercasedName]) { + if (isDefined(value)) { + if (!!value) { + element[name] = true; + element.setAttribute(name, lowercasedName); + } else { + element[name] = false; + element.removeAttribute(lowercasedName); + } + } else { + return (element[name] || + (element.attributes.getNamedItem(name) || noop).specified) + ? lowercasedName + : undefined; + } + } else if (isDefined(value)) { + element.setAttribute(name, value); + } else if (element.getAttribute) { + // the extra argument "2" is to get the right thing for a.href in IE, see jQuery code + // some elements (e.g. Document) don't have get attribute, so return undefined + var ret = element.getAttribute(name, 2); + // normalize non-existing attributes to undefined (as jQuery) + return ret === null ? undefined : ret; + } + }, + + prop: function(element, name, value) { + if (isDefined(value)) { + element[name] = value; + } else { + return element[name]; + } + }, + + text: (function() { + getText.$dv = ''; + return getText; + + function getText(element, value) { + if (isUndefined(value)) { + var nodeType = element.nodeType; + return (nodeType === NODE_TYPE_ELEMENT || nodeType === NODE_TYPE_TEXT) ? element.textContent : ''; + } + element.textContent = value; + } + })(), + + val: function(element, value) { + if (isUndefined(value)) { + if (element.multiple && nodeName_(element) === 'select') { + var result = []; + forEach(element.options, function(option) { + if (option.selected) { + result.push(option.value || option.text); + } + }); + return result.length === 0 ? null : result; + } + return element.value; + } + element.value = value; + }, + + html: function(element, value) { + if (isUndefined(value)) { + return element.innerHTML; + } + jqLiteDealoc(element, true); + element.innerHTML = value; + }, + + empty: jqLiteEmpty +}, function(fn, name) { + /** + * Properties: writes return selection, reads return first value + */ + JQLite.prototype[name] = function(arg1, arg2) { + var i, key; + var nodeCount = this.length; + + // jqLiteHasClass has only two arguments, but is a getter-only fn, so we need to special-case it + // in a way that survives minification. + // jqLiteEmpty takes no arguments but is a setter. + if (fn !== jqLiteEmpty && + (isUndefined((fn.length == 2 && (fn !== jqLiteHasClass && fn !== jqLiteController)) ? arg1 : arg2))) { + if (isObject(arg1)) { + + // we are a write, but the object properties are the key/values + for (i = 0; i < nodeCount; i++) { + if (fn === jqLiteData) { + // data() takes the whole object in jQuery + fn(this[i], arg1); + } else { + for (key in arg1) { + fn(this[i], key, arg1[key]); + } + } + } + // return self for chaining + return this; + } else { + // we are a read, so read the first child. + // TODO: do we still need this? + var value = fn.$dv; + // Only if we have $dv do we iterate over all, otherwise it is just the first element. + var jj = (isUndefined(value)) ? Math.min(nodeCount, 1) : nodeCount; + for (var j = 0; j < jj; j++) { + var nodeValue = fn(this[j], arg1, arg2); + value = value ? value + nodeValue : nodeValue; + } + return value; + } + } else { + // we are a write, so apply to all children + for (i = 0; i < nodeCount; i++) { + fn(this[i], arg1, arg2); + } + // return self for chaining + return this; + } + }; +}); + +function createEventHandler(element, events) { + var eventHandler = function(event, type) { + // jQuery specific api + event.isDefaultPrevented = function() { + return event.defaultPrevented; + }; + + var eventFns = events[type || event.type]; + var eventFnsLength = eventFns ? eventFns.length : 0; + + if (!eventFnsLength) return; + + if (isUndefined(event.immediatePropagationStopped)) { + var originalStopImmediatePropagation = event.stopImmediatePropagation; + event.stopImmediatePropagation = function() { + event.immediatePropagationStopped = true; + + if (event.stopPropagation) { + event.stopPropagation(); + } + + if (originalStopImmediatePropagation) { + originalStopImmediatePropagation.call(event); + } + }; + } + + event.isImmediatePropagationStopped = function() { + return event.immediatePropagationStopped === true; + }; + + // Some events have special handlers that wrap the real handler + var handlerWrapper = eventFns.specialHandlerWrapper || defaultHandlerWrapper; + + // Copy event handlers in case event handlers array is modified during execution. + if ((eventFnsLength > 1)) { + eventFns = shallowCopy(eventFns); + } + + for (var i = 0; i < eventFnsLength; i++) { + if (!event.isImmediatePropagationStopped()) { + handlerWrapper(element, event, eventFns[i]); + } + } + }; + + // TODO: this is a hack for angularMocks/clearDataCache that makes it possible to deregister all + // events on `element` + eventHandler.elem = element; + return eventHandler; +} + +function defaultHandlerWrapper(element, event, handler) { + handler.call(element, event); +} + +function specialMouseHandlerWrapper(target, event, handler) { + // Refer to jQuery's implementation of mouseenter & mouseleave + // Read about mouseenter and mouseleave: + // http://www.quirksmode.org/js/events_mouse.html#link8 + var related = event.relatedTarget; + // 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 && !jqLiteContains.call(target, related))) { + handler.call(target, event); + } +} + +////////////////////////////////////////// +// Functions iterating traversal. +// These functions chain results into a single +// selector. +////////////////////////////////////////// +forEach({ + removeData: jqLiteRemoveData, + + on: function jqLiteOn(element, type, fn, unsupported) { + if (isDefined(unsupported)) throw jqLiteMinErr('onargs', 'jqLite#on() does not support the `selector` or `eventData` parameters'); + + // Do not add event handlers to non-elements because they will not be cleaned up. + if (!jqLiteAcceptsData(element)) { + return; + } + + var expandoStore = jqLiteExpandoStore(element, true); + var events = expandoStore.events; + var handle = expandoStore.handle; + + if (!handle) { + handle = expandoStore.handle = createEventHandler(element, events); + } + + // http://jsperf.com/string-indexof-vs-split + var types = type.indexOf(' ') >= 0 ? type.split(' ') : [type]; + var i = types.length; + + var addHandler = function(type, specialHandlerWrapper, noEventListener) { + var eventFns = events[type]; + + if (!eventFns) { + eventFns = events[type] = []; + eventFns.specialHandlerWrapper = specialHandlerWrapper; + if (type !== '$destroy' && !noEventListener) { + addEventListenerFn(element, type, handle); + } + } + + eventFns.push(fn); + }; + + while (i--) { + type = types[i]; + if (MOUSE_EVENT_MAP[type]) { + addHandler(MOUSE_EVENT_MAP[type], specialMouseHandlerWrapper); + addHandler(type, undefined, true); + } else { + addHandler(type); + } + } + }, + + off: jqLiteOff, + + one: function(element, type, fn) { + element = jqLite(element); + + //add the listener twice so that when it is called + //you can remove the original function and still be + //able to call element.off(ev, fn) normally + element.on(type, function onFn() { + element.off(type, fn); + element.off(type, onFn); + }); + element.on(type, fn); + }, + + replaceWith: function(element, replaceNode) { + var index, parent = element.parentNode; + jqLiteDealoc(element); + forEach(new JQLite(replaceNode), function(node) { + if (index) { + parent.insertBefore(node, index.nextSibling); + } else { + parent.replaceChild(node, element); + } + index = node; + }); + }, + + children: function(element) { + var children = []; + forEach(element.childNodes, function(element) { + if (element.nodeType === NODE_TYPE_ELEMENT) { + children.push(element); + } + }); + return children; + }, + + contents: function(element) { + return element.contentDocument || element.childNodes || []; + }, + + append: function(element, node) { + var nodeType = element.nodeType; + if (nodeType !== NODE_TYPE_ELEMENT && nodeType !== NODE_TYPE_DOCUMENT_FRAGMENT) return; + + node = new JQLite(node); + + for (var i = 0, ii = node.length; i < ii; i++) { + var child = node[i]; + element.appendChild(child); + } + }, + + prepend: function(element, node) { + if (element.nodeType === NODE_TYPE_ELEMENT) { + var index = element.firstChild; + forEach(new JQLite(node), function(child) { + element.insertBefore(child, index); + }); + } + }, + + wrap: function(element, wrapNode) { + jqLiteWrapNode(element, jqLite(wrapNode).eq(0).clone()[0]); + }, + + remove: jqLiteRemove, + + detach: function(element) { + jqLiteRemove(element, true); + }, + + after: function(element, newElement) { + var index = element, parent = element.parentNode; + newElement = new JQLite(newElement); + + for (var i = 0, ii = newElement.length; i < ii; i++) { + var node = newElement[i]; + parent.insertBefore(node, index.nextSibling); + index = node; + } + }, + + addClass: jqLiteAddClass, + removeClass: jqLiteRemoveClass, + + toggleClass: function(element, selector, condition) { + if (selector) { + forEach(selector.split(' '), function(className) { + var classCondition = condition; + if (isUndefined(classCondition)) { + classCondition = !jqLiteHasClass(element, className); + } + (classCondition ? jqLiteAddClass : jqLiteRemoveClass)(element, className); + }); + } + }, + + parent: function(element) { + var parent = element.parentNode; + return parent && parent.nodeType !== NODE_TYPE_DOCUMENT_FRAGMENT ? parent : null; + }, + + next: function(element) { + return element.nextElementSibling; + }, + + find: function(element, selector) { + if (element.getElementsByTagName) { + return element.getElementsByTagName(selector); + } else { + return []; + } + }, + + clone: jqLiteClone, + + triggerHandler: function(element, event, extraParameters) { + + var dummyEvent, eventFnsCopy, handlerArgs; + var eventName = event.type || event; + var expandoStore = jqLiteExpandoStore(element); + var events = expandoStore && expandoStore.events; + var eventFns = events && events[eventName]; + + if (eventFns) { + // Create a dummy event to pass to the handlers + dummyEvent = { + preventDefault: function() { this.defaultPrevented = true; }, + isDefaultPrevented: function() { return this.defaultPrevented === true; }, + stopImmediatePropagation: function() { this.immediatePropagationStopped = true; }, + isImmediatePropagationStopped: function() { return this.immediatePropagationStopped === true; }, + stopPropagation: noop, + type: eventName, + target: element + }; + + // If a custom event was provided then extend our dummy event with it + if (event.type) { + dummyEvent = extend(dummyEvent, event); + } + + // Copy event handlers in case event handlers array is modified during execution. + eventFnsCopy = shallowCopy(eventFns); + handlerArgs = extraParameters ? [dummyEvent].concat(extraParameters) : [dummyEvent]; + + forEach(eventFnsCopy, function(fn) { + if (!dummyEvent.isImmediatePropagationStopped()) { + fn.apply(element, handlerArgs); + } + }); + } + } +}, function(fn, name) { + /** + * chaining functions + */ + JQLite.prototype[name] = function(arg1, arg2, arg3) { + var value; + + for (var i = 0, ii = this.length; i < ii; i++) { + if (isUndefined(value)) { + value = fn(this[i], arg1, arg2, arg3); + if (isDefined(value)) { + // any function which returns a value needs to be wrapped + value = jqLite(value); + } + } else { + jqLiteAddNodes(value, fn(this[i], arg1, arg2, arg3)); + } + } + return isDefined(value) ? value : this; + }; + + // bind legacy bind/unbind to on/off + JQLite.prototype.bind = JQLite.prototype.on; + JQLite.prototype.unbind = JQLite.prototype.off; +}); + + +// Provider for private $$jqLite service +function $$jqLiteProvider() { + this.$get = function $$jqLite() { + return extend(JQLite, { + hasClass: function(node, classes) { + if (node.attr) node = node[0]; + return jqLiteHasClass(node, classes); + }, + addClass: function(node, classes) { + if (node.attr) node = node[0]; + return jqLiteAddClass(node, classes); + }, + removeClass: function(node, classes) { + if (node.attr) node = node[0]; + return jqLiteRemoveClass(node, classes); + } + }); + }; +} + +/** + * Computes a hash of an 'obj'. + * Hash of a: + * string is string + * number is number as string + * object is either result of calling $$hashKey function on the object or uniquely generated id, + * that is also assigned to the $$hashKey property of the object. + * + * @param obj + * @returns {string} hash string such that the same input will have the same hash string. + * The resulting string key is in 'type:hashKey' format. + */ +function hashKey(obj, nextUidFn) { + var key = obj && obj.$$hashKey; + + if (key) { + if (typeof key === 'function') { + key = obj.$$hashKey(); + } + return key; + } + + var objType = typeof obj; + if (objType == 'function' || (objType == 'object' && obj !== null)) { + key = obj.$$hashKey = objType + ':' + (nextUidFn || nextUid)(); + } else { + key = objType + ':' + obj; + } + + return key; +} + +/** + * HashMap which can use objects as keys + */ +function HashMap(array, isolatedUid) { + if (isolatedUid) { + var uid = 0; + this.nextUid = function() { + return ++uid; + }; + } + forEach(array, this.put, this); +} +HashMap.prototype = { + /** + * Store key value pair + * @param key key to store can be any type + * @param value value to store can be any type + */ + put: function(key, value) { + this[hashKey(key, this.nextUid)] = value; + }, + + /** + * @param key + * @returns {Object} the value for the key + */ + get: function(key) { + return this[hashKey(key, this.nextUid)]; + }, + + /** + * Remove the key/value pair + * @param key + */ + remove: function(key) { + var value = this[key = hashKey(key, this.nextUid)]; + delete this[key]; + return value; + } +}; + +var $$HashMapProvider = [function() { + this.$get = [function() { + return HashMap; + }]; +}]; + +/** + * @ngdoc function + * @module ng + * @name angular.injector + * @kind function + * + * @description + * Creates an injector object that can be used for retrieving services as well as for + * dependency injection (see {@link guide/di dependency injection}). + * + * @param {Array.} modules A list of module functions or their aliases. See + * {@link angular.module}. The `ng` module must be explicitly added. + * @param {boolean=} [strictDi=false] Whether the injector should be in strict mode, which + * disallows argument name annotation inference. + * @returns {injector} Injector object. See {@link auto.$injector $injector}. + * + * @example + * Typical usage + * ```js + * // create an injector + * var $injector = angular.injector(['ng']); + * + * // use the injector to kick off your application + * // use the type inference to auto inject arguments, or use implicit injection + * $injector.invoke(function($rootScope, $compile, $document) { + * $compile($document)($rootScope); + * $rootScope.$digest(); + * }); + * ``` + * + * Sometimes you want to get access to the injector of a currently running Angular app + * from outside Angular. Perhaps, you want to inject and compile some markup after the + * application has been bootstrapped. You can do this using the extra `injector()` added + * to JQuery/jqLite elements. See {@link angular.element}. + * + * *This is fairly rare but could be the case if a third party library is injecting the + * markup.* + * + * In the following example a new block of HTML containing a `ng-controller` + * directive is added to the end of the document body by JQuery. We then compile and link + * it into the current AngularJS scope. + * + * ```js + * var $div = $('
{{content.label}}
'); + * $(document.body).append($div); + * + * angular.element(document).injector().invoke(function($compile) { + * var scope = angular.element($div).scope(); + * $compile($div)(scope); + * }); + * ``` + */ + + +/** + * @ngdoc module + * @name auto + * @description + * + * Implicit module which gets automatically added to each {@link auto.$injector $injector}. + */ + +var FN_ARGS = /^[^\(]*\(\s*([^\)]*)\)/m; +var FN_ARG_SPLIT = /,/; +var FN_ARG = /^\s*(_?)(\S+?)\1\s*$/; +var STRIP_COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg; +var $injectorMinErr = minErr('$injector'); + +function anonFn(fn) { + // For anonymous functions, showing at the very least the function signature can help in + // debugging. + var fnText = fn.toString().replace(STRIP_COMMENTS, ''), + args = fnText.match(FN_ARGS); + if (args) { + return 'function(' + (args[1] || '').replace(/[\s\r\n]+/, ' ') + ')'; + } + return 'fn'; +} + +function annotate(fn, strictDi, name) { + var $inject, + fnText, + argDecl, + last; + + if (typeof fn === 'function') { + if (!($inject = fn.$inject)) { + $inject = []; + if (fn.length) { + if (strictDi) { + if (!isString(name) || !name) { + name = fn.name || anonFn(fn); + } + throw $injectorMinErr('strictdi', + '{0} is not using explicit annotation and cannot be invoked in strict mode', name); + } + fnText = fn.toString().replace(STRIP_COMMENTS, ''); + argDecl = fnText.match(FN_ARGS); + forEach(argDecl[1].split(FN_ARG_SPLIT), function(arg) { + arg.replace(FN_ARG, function(all, underscore, name) { + $inject.push(name); + }); + }); + } + fn.$inject = $inject; + } + } else if (isArray(fn)) { + last = fn.length - 1; + assertArgFn(fn[last], 'fn'); + $inject = fn.slice(0, last); + } else { + assertArgFn(fn, 'fn', true); + } + return $inject; +} + +/////////////////////////////////////// + +/** + * @ngdoc service + * @name $injector + * + * @description + * + * `$injector` is used to retrieve object instances as defined by + * {@link auto.$provide provider}, instantiate types, invoke methods, + * and load modules. + * + * The following always holds true: + * + * ```js + * var $injector = angular.injector(); + * expect($injector.get('$injector')).toBe($injector); + * expect($injector.invoke(function($injector) { + * return $injector; + * })).toBe($injector); + * ``` + * + * # Injection Function Annotation + * + * JavaScript does not have annotations, and annotations are needed for dependency injection. The + * following are all valid ways of annotating function with injection arguments and are equivalent. + * + * ```js + * // inferred (only works if code not minified/obfuscated) + * $injector.invoke(function(serviceA){}); + * + * // annotated + * function explicit(serviceA) {}; + * explicit.$inject = ['serviceA']; + * $injector.invoke(explicit); + * + * // inline + * $injector.invoke(['serviceA', function(serviceA){}]); + * ``` + * + * ## Inference + * + * In JavaScript calling `toString()` on a function returns the function definition. The definition + * can then be parsed and the function arguments can be extracted. This method of discovering + * annotations is disallowed when the injector is in strict mode. + * *NOTE:* This does not work with minification, and obfuscation tools since these tools change the + * argument names. + * + * ## `$inject` Annotation + * By adding an `$inject` property onto a function the injection parameters can be specified. + * + * ## Inline + * As an array of injection names, where the last item in the array is the function to call. + */ + +/** + * @ngdoc method + * @name $injector#get + * + * @description + * Return an instance of the service. + * + * @param {string} name The name of the instance to retrieve. + * @param {string=} caller An optional string to provide the origin of the function call for error messages. + * @return {*} The instance. + */ + +/** + * @ngdoc method + * @name $injector#invoke + * + * @description + * Invoke the method and supply the method arguments from the `$injector`. + * + * @param {Function|Array.} fn The injectable function to invoke. Function parameters are + * injected according to the {@link guide/di $inject Annotation} rules. + * @param {Object=} self The `this` for the invoked method. + * @param {Object=} locals Optional object. If preset then any argument names are read from this + * object first, before the `$injector` is consulted. + * @returns {*} the value returned by the invoked `fn` function. + */ + +/** + * @ngdoc method + * @name $injector#has + * + * @description + * Allows the user to query if the particular service exists. + * + * @param {string} name Name of the service to query. + * @returns {boolean} `true` if injector has given service. + */ + +/** + * @ngdoc method + * @name $injector#instantiate + * @description + * Create a new instance of JS type. The method takes a constructor function, invokes the new + * operator, and supplies all of the arguments to the constructor function as specified by the + * constructor annotation. + * + * @param {Function} Type Annotated constructor function. + * @param {Object=} locals Optional object. If preset then any argument names are read from this + * object first, before the `$injector` is consulted. + * @returns {Object} new instance of `Type`. + */ + +/** + * @ngdoc method + * @name $injector#annotate + * + * @description + * Returns an array of service names which the function is requesting for injection. This API is + * used by the injector to determine which services need to be injected into the function when the + * function is invoked. There are three ways in which the function can be annotated with the needed + * dependencies. + * + * # Argument names + * + * The simplest form is to extract the dependencies from the arguments of the function. This is done + * by converting the function into a string using `toString()` method and extracting the argument + * names. + * ```js + * // Given + * function MyController($scope, $route) { + * // ... + * } + * + * // Then + * expect(injector.annotate(MyController)).toEqual(['$scope', '$route']); + * ``` + * + * You can disallow this method by using strict injection mode. + * + * This method does not work with code minification / obfuscation. For this reason the following + * annotation strategies are supported. + * + * # The `$inject` property + * + * If a function has an `$inject` property and its value is an array of strings, then the strings + * represent names of services to be injected into the function. + * ```js + * // Given + * var MyController = function(obfuscatedScope, obfuscatedRoute) { + * // ... + * } + * // Define function dependencies + * MyController['$inject'] = ['$scope', '$route']; + * + * // Then + * expect(injector.annotate(MyController)).toEqual(['$scope', '$route']); + * ``` + * + * # The array notation + * + * It is often desirable to inline Injected functions and that's when setting the `$inject` property + * is very inconvenient. In these situations using the array notation to specify the dependencies in + * a way that survives minification is a better choice: + * + * ```js + * // We wish to write this (not minification / obfuscation safe) + * injector.invoke(function($compile, $rootScope) { + * // ... + * }); + * + * // We are forced to write break inlining + * var tmpFn = function(obfuscatedCompile, obfuscatedRootScope) { + * // ... + * }; + * tmpFn.$inject = ['$compile', '$rootScope']; + * injector.invoke(tmpFn); + * + * // To better support inline function the inline annotation is supported + * injector.invoke(['$compile', '$rootScope', function(obfCompile, obfRootScope) { + * // ... + * }]); + * + * // Therefore + * expect(injector.annotate( + * ['$compile', '$rootScope', function(obfus_$compile, obfus_$rootScope) {}]) + * ).toEqual(['$compile', '$rootScope']); + * ``` + * + * @param {Function|Array.} fn Function for which dependent service names need to + * be retrieved as described above. + * + * @param {boolean=} [strictDi=false] Disallow argument name annotation inference. + * + * @returns {Array.} The names of the services which the function requires. + */ + + + + +/** + * @ngdoc service + * @name $provide + * + * @description + * + * The {@link auto.$provide $provide} service has a number of methods for registering components + * with the {@link auto.$injector $injector}. Many of these functions are also exposed on + * {@link angular.Module}. + * + * An Angular **service** is a singleton object created by a **service factory**. These **service + * factories** are functions which, in turn, are created by a **service provider**. + * The **service providers** are constructor functions. When instantiated they must contain a + * property called `$get`, which holds the **service factory** function. + * + * When you request a service, the {@link auto.$injector $injector} is responsible for finding the + * correct **service provider**, instantiating it and then calling its `$get` **service factory** + * function to get the instance of the **service**. + * + * Often services have no configuration options and there is no need to add methods to the service + * provider. The provider will be no more than a constructor function with a `$get` property. For + * these cases the {@link auto.$provide $provide} service has additional helper methods to register + * services without specifying a provider. + * + * * {@link auto.$provide#provider provider(provider)} - registers a **service provider** with the + * {@link auto.$injector $injector} + * * {@link auto.$provide#constant constant(obj)} - registers a value/object that can be accessed by + * providers and services. + * * {@link auto.$provide#value value(obj)} - registers a value/object that can only be accessed by + * services, not providers. + * * {@link auto.$provide#factory factory(fn)} - registers a service **factory function**, `fn`, + * that will be wrapped in a **service provider** object, whose `$get` property will contain the + * given factory function. + * * {@link auto.$provide#service service(class)} - registers a **constructor function**, `class` + * that will be wrapped in a **service provider** object, whose `$get` property will instantiate + * a new object using the given constructor function. + * + * See the individual methods for more information and examples. + */ + +/** + * @ngdoc method + * @name $provide#provider + * @description + * + * Register a **provider function** with the {@link auto.$injector $injector}. Provider functions + * are constructor functions, whose instances are responsible for "providing" a factory for a + * service. + * + * Service provider names start with the name of the service they provide followed by `Provider`. + * For example, the {@link ng.$log $log} service has a provider called + * {@link ng.$logProvider $logProvider}. + * + * Service provider objects can have additional methods which allow configuration of the provider + * and its service. Importantly, you can configure what kind of service is created by the `$get` + * method, or how that service will act. For example, the {@link ng.$logProvider $logProvider} has a + * method {@link ng.$logProvider#debugEnabled debugEnabled} + * which lets you specify whether the {@link ng.$log $log} service will log debug messages to the + * console or not. + * + * @param {string} name The name of the instance. NOTE: the provider will be available under `name + + 'Provider'` key. + * @param {(Object|function())} provider If the provider is: + * + * - `Object`: then it should have a `$get` method. The `$get` method will be invoked using + * {@link auto.$injector#invoke $injector.invoke()} when an instance needs to be created. + * - `Constructor`: a new instance of the provider will be created using + * {@link auto.$injector#instantiate $injector.instantiate()}, then treated as `object`. + * + * @returns {Object} registered provider instance + + * @example + * + * The following example shows how to create a simple event tracking service and register it using + * {@link auto.$provide#provider $provide.provider()}. + * + * ```js + * // Define the eventTracker provider + * function EventTrackerProvider() { + * var trackingUrl = '/track'; + * + * // A provider method for configuring where the tracked events should been saved + * this.setTrackingUrl = function(url) { + * trackingUrl = url; + * }; + * + * // The service factory function + * this.$get = ['$http', function($http) { + * var trackedEvents = {}; + * return { + * // Call this to track an event + * event: function(event) { + * var count = trackedEvents[event] || 0; + * count += 1; + * trackedEvents[event] = count; + * return count; + * }, + * // Call this to save the tracked events to the trackingUrl + * save: function() { + * $http.post(trackingUrl, trackedEvents); + * } + * }; + * }]; + * } + * + * describe('eventTracker', function() { + * var postSpy; + * + * beforeEach(module(function($provide) { + * // Register the eventTracker provider + * $provide.provider('eventTracker', EventTrackerProvider); + * })); + * + * beforeEach(module(function(eventTrackerProvider) { + * // Configure eventTracker provider + * eventTrackerProvider.setTrackingUrl('/custom-track'); + * })); + * + * it('tracks events', inject(function(eventTracker) { + * expect(eventTracker.event('login')).toEqual(1); + * expect(eventTracker.event('login')).toEqual(2); + * })); + * + * it('saves to the tracking url', inject(function(eventTracker, $http) { + * postSpy = spyOn($http, 'post'); + * eventTracker.event('login'); + * eventTracker.save(); + * expect(postSpy).toHaveBeenCalled(); + * expect(postSpy.mostRecentCall.args[0]).not.toEqual('/track'); + * expect(postSpy.mostRecentCall.args[0]).toEqual('/custom-track'); + * expect(postSpy.mostRecentCall.args[1]).toEqual({ 'login': 1 }); + * })); + * }); + * ``` + */ + +/** + * @ngdoc method + * @name $provide#factory + * @description + * + * Register a **service factory**, which will be called to return the service instance. + * This is short for registering a service where its provider consists of only a `$get` property, + * which is the given service factory function. + * You should use {@link auto.$provide#factory $provide.factory(getFn)} if you do not need to + * configure your service in a provider. + * + * @param {string} name The name of the instance. + * @param {Function|Array.} $getFn The injectable $getFn for the instance creation. + * Internally this is a short hand for `$provide.provider(name, {$get: $getFn})`. + * @returns {Object} registered provider instance + * + * @example + * Here is an example of registering a service + * ```js + * $provide.factory('ping', ['$http', function($http) { + * return function ping() { + * return $http.send('/ping'); + * }; + * }]); + * ``` + * You would then inject and use this service like this: + * ```js + * someModule.controller('Ctrl', ['ping', function(ping) { + * ping(); + * }]); + * ``` + */ + + +/** + * @ngdoc method + * @name $provide#service + * @description + * + * Register a **service constructor**, which will be invoked with `new` to create the service + * instance. + * This is short for registering a service where its provider's `$get` property is a factory + * function that returns an instance instantiated by the injector from the service constructor + * function. + * + * Internally it looks a bit like this: + * + * ``` + * { + * $get: function() { + * return $injector.instantiate(constructor); + * } + * } + * ``` + * + * + * You should use {@link auto.$provide#service $provide.service(class)} if you define your service + * as a type/class. + * + * @param {string} name The name of the instance. + * @param {Function|Array.} constructor An injectable class (constructor function) + * that will be instantiated. + * @returns {Object} registered provider instance + * + * @example + * Here is an example of registering a service using + * {@link auto.$provide#service $provide.service(class)}. + * ```js + * var Ping = function($http) { + * this.$http = $http; + * }; + * + * Ping.$inject = ['$http']; + * + * Ping.prototype.send = function() { + * return this.$http.get('/ping'); + * }; + * $provide.service('ping', Ping); + * ``` + * You would then inject and use this service like this: + * ```js + * someModule.controller('Ctrl', ['ping', function(ping) { + * ping.send(); + * }]); + * ``` + */ + + +/** + * @ngdoc method + * @name $provide#value + * @description + * + * Register a **value service** with the {@link auto.$injector $injector}, such as a string, a + * number, an array, an object or a function. This is short for registering a service where its + * provider's `$get` property is a factory function that takes no arguments and returns the **value + * service**. That also means it is not possible to inject other services into a value service. + * + * Value services are similar to constant services, except that they cannot be injected into a + * module configuration function (see {@link angular.Module#config}) but they can be overridden by + * an Angular {@link auto.$provide#decorator decorator}. + * + * @param {string} name The name of the instance. + * @param {*} value The value. + * @returns {Object} registered provider instance + * + * @example + * Here are some examples of creating value services. + * ```js + * $provide.value('ADMIN_USER', 'admin'); + * + * $provide.value('RoleLookup', { admin: 0, writer: 1, reader: 2 }); + * + * $provide.value('halfOf', function(value) { + * return value / 2; + * }); + * ``` + */ + + +/** + * @ngdoc method + * @name $provide#constant + * @description + * + * Register a **constant service** with the {@link auto.$injector $injector}, such as a string, + * a number, an array, an object or a function. Like the {@link auto.$provide#value value}, it is not + * possible to inject other services into a constant. + * + * But unlike {@link auto.$provide#value value}, a constant can be + * injected into a module configuration function (see {@link angular.Module#config}) and it cannot + * be overridden by an Angular {@link auto.$provide#decorator decorator}. + * + * @param {string} name The name of the constant. + * @param {*} value The constant value. + * @returns {Object} registered instance + * + * @example + * Here a some examples of creating constants: + * ```js + * $provide.constant('SHARD_HEIGHT', 306); + * + * $provide.constant('MY_COLOURS', ['red', 'blue', 'grey']); + * + * $provide.constant('double', function(value) { + * return value * 2; + * }); + * ``` + */ + + +/** + * @ngdoc method + * @name $provide#decorator + * @description + * + * Register a **service decorator** with the {@link auto.$injector $injector}. A service decorator + * intercepts the creation of a service, allowing it to override or modify the behavior of the + * service. The object returned by the decorator may be the original service, or a new service + * object which replaces or wraps and delegates to the original service. + * + * @param {string} name The name of the service to decorate. + * @param {Function|Array.} decorator This function will be invoked when the service needs to be + * instantiated and should return the decorated service instance. The function is called using + * the {@link auto.$injector#invoke injector.invoke} method and is therefore fully injectable. + * Local injection arguments: + * + * * `$delegate` - The original service instance, which can be monkey patched, configured, + * decorated or delegated to. + * + * @example + * Here we decorate the {@link ng.$log $log} service to convert warnings to errors by intercepting + * calls to {@link ng.$log#error $log.warn()}. + * ```js + * $provide.decorator('$log', ['$delegate', function($delegate) { + * $delegate.warn = $delegate.error; + * return $delegate; + * }]); + * ``` + */ + + +function createInjector(modulesToLoad, strictDi) { + strictDi = (strictDi === true); + var INSTANTIATING = {}, + providerSuffix = 'Provider', + path = [], + loadedModules = new HashMap([], true), + providerCache = { + $provide: { + provider: supportObject(provider), + factory: supportObject(factory), + service: supportObject(service), + value: supportObject(value), + constant: supportObject(constant), + decorator: decorator + } + }, + providerInjector = (providerCache.$injector = + createInternalInjector(providerCache, function(serviceName, caller) { + if (angular.isString(caller)) { + path.push(caller); + } + throw $injectorMinErr('unpr', "Unknown provider: {0}", path.join(' <- ')); + })), + instanceCache = {}, + instanceInjector = (instanceCache.$injector = + createInternalInjector(instanceCache, function(serviceName, caller) { + var provider = providerInjector.get(serviceName + providerSuffix, caller); + return instanceInjector.invoke(provider.$get, provider, undefined, serviceName); + })); + + + forEach(loadModules(modulesToLoad), function(fn) { if (fn) instanceInjector.invoke(fn); }); + + return instanceInjector; + + //////////////////////////////////// + // $provider + //////////////////////////////////// + + function supportObject(delegate) { + return function(key, value) { + if (isObject(key)) { + forEach(key, reverseParams(delegate)); + } else { + return delegate(key, value); + } + }; + } + + function provider(name, provider_) { + assertNotHasOwnProperty(name, 'service'); + if (isFunction(provider_) || isArray(provider_)) { + provider_ = providerInjector.instantiate(provider_); + } + if (!provider_.$get) { + throw $injectorMinErr('pget', "Provider '{0}' must define $get factory method.", name); + } + return providerCache[name + providerSuffix] = provider_; + } + + function enforceReturnValue(name, factory) { + return function enforcedReturnValue() { + var result = instanceInjector.invoke(factory, this); + if (isUndefined(result)) { + throw $injectorMinErr('undef', "Provider '{0}' must return a value from $get factory method.", name); + } + return result; + }; + } + + function factory(name, factoryFn, enforce) { + return provider(name, { + $get: enforce !== false ? enforceReturnValue(name, factoryFn) : factoryFn + }); + } + + function service(name, constructor) { + return factory(name, ['$injector', function($injector) { + return $injector.instantiate(constructor); + }]); + } + + function value(name, val) { return factory(name, valueFn(val), false); } + + function constant(name, value) { + assertNotHasOwnProperty(name, 'constant'); + providerCache[name] = value; + instanceCache[name] = value; + } + + function decorator(serviceName, decorFn) { + var origProvider = providerInjector.get(serviceName + providerSuffix), + orig$get = origProvider.$get; + + origProvider.$get = function() { + var origInstance = instanceInjector.invoke(orig$get, origProvider); + return instanceInjector.invoke(decorFn, null, {$delegate: origInstance}); + }; + } + + //////////////////////////////////// + // Module Loading + //////////////////////////////////// + function loadModules(modulesToLoad) { + assertArg(isUndefined(modulesToLoad) || isArray(modulesToLoad), 'modulesToLoad', 'not an array'); + var runBlocks = [], moduleFn; + forEach(modulesToLoad, function(module) { + if (loadedModules.get(module)) return; + loadedModules.put(module, true); + + function runInvokeQueue(queue) { + var i, ii; + for (i = 0, ii = queue.length; i < ii; i++) { + var invokeArgs = queue[i], + provider = providerInjector.get(invokeArgs[0]); + + provider[invokeArgs[1]].apply(provider, invokeArgs[2]); + } + } + + try { + if (isString(module)) { + moduleFn = angularModule(module); + runBlocks = runBlocks.concat(loadModules(moduleFn.requires)).concat(moduleFn._runBlocks); + runInvokeQueue(moduleFn._invokeQueue); + runInvokeQueue(moduleFn._configBlocks); + } else if (isFunction(module)) { + runBlocks.push(providerInjector.invoke(module)); + } else if (isArray(module)) { + runBlocks.push(providerInjector.invoke(module)); + } else { + assertArgFn(module, 'module'); + } + } catch (e) { + if (isArray(module)) { + module = module[module.length - 1]; + } + if (e.message && e.stack && e.stack.indexOf(e.message) == -1) { + // Safari & FF's stack traces don't contain error.message content + // unlike those of Chrome and IE + // So if stack doesn't contain message, we create a new string that contains both. + // Since error.stack is read-only in Safari, I'm overriding e and not e.stack here. + /* jshint -W022 */ + e = e.message + '\n' + e.stack; + } + throw $injectorMinErr('modulerr', "Failed to instantiate module {0} due to:\n{1}", + module, e.stack || e.message || e); + } + }); + return runBlocks; + } + + //////////////////////////////////// + // internal Injector + //////////////////////////////////// + + function createInternalInjector(cache, factory) { + + function getService(serviceName, caller) { + if (cache.hasOwnProperty(serviceName)) { + if (cache[serviceName] === INSTANTIATING) { + throw $injectorMinErr('cdep', 'Circular dependency found: {0}', + serviceName + ' <- ' + path.join(' <- ')); + } + return cache[serviceName]; + } else { + try { + path.unshift(serviceName); + cache[serviceName] = INSTANTIATING; + return cache[serviceName] = factory(serviceName, caller); + } catch (err) { + if (cache[serviceName] === INSTANTIATING) { + delete cache[serviceName]; + } + throw err; + } finally { + path.shift(); + } + } + } + + function invoke(fn, self, locals, serviceName) { + if (typeof locals === 'string') { + serviceName = locals; + locals = null; + } + + var args = [], + $inject = createInjector.$$annotate(fn, strictDi, serviceName), + length, i, + key; + + for (i = 0, length = $inject.length; i < length; i++) { + key = $inject[i]; + if (typeof key !== 'string') { + throw $injectorMinErr('itkn', + 'Incorrect injection token! Expected service name as string, got {0}', key); + } + args.push( + locals && locals.hasOwnProperty(key) + ? locals[key] + : getService(key, serviceName) + ); + } + if (isArray(fn)) { + fn = fn[length]; + } + + // http://jsperf.com/angularjs-invoke-apply-vs-switch + // #5388 + return fn.apply(self, args); + } + + function instantiate(Type, locals, serviceName) { + // Check if Type is annotated and use just the given function at n-1 as parameter + // e.g. someModule.factory('greeter', ['$window', function(renamed$window) {}]); + // Object creation: http://jsperf.com/create-constructor/2 + var instance = Object.create((isArray(Type) ? Type[Type.length - 1] : Type).prototype || null); + var returnedValue = invoke(Type, instance, locals, serviceName); + + return isObject(returnedValue) || isFunction(returnedValue) ? returnedValue : instance; + } + + return { + invoke: invoke, + instantiate: instantiate, + get: getService, + annotate: createInjector.$$annotate, + has: function(name) { + return providerCache.hasOwnProperty(name + providerSuffix) || cache.hasOwnProperty(name); + } + }; + } +} + +createInjector.$$annotate = annotate; + +/** + * @ngdoc provider + * @name $anchorScrollProvider + * + * @description + * Use `$anchorScrollProvider` to disable automatic scrolling whenever + * {@link ng.$location#hash $location.hash()} changes. + */ +function $AnchorScrollProvider() { + + var autoScrollingEnabled = true; + + /** + * @ngdoc method + * @name $anchorScrollProvider#disableAutoScrolling + * + * @description + * By default, {@link ng.$anchorScroll $anchorScroll()} will automatically detect changes to + * {@link ng.$location#hash $location.hash()} and scroll to the element matching the new hash.
+ * Use this method to disable automatic scrolling. + * + * If automatic scrolling is disabled, one must explicitly call + * {@link ng.$anchorScroll $anchorScroll()} in order to scroll to the element related to the + * current hash. + */ + this.disableAutoScrolling = function() { + autoScrollingEnabled = false; + }; + + /** + * @ngdoc service + * @name $anchorScroll + * @kind function + * @requires $window + * @requires $location + * @requires $rootScope + * + * @description + * When called, it scrolls to the element related to the specified `hash` or (if omitted) to the + * current value of {@link ng.$location#hash $location.hash()}, according to the rules specified + * in the + * [HTML5 spec](http://www.w3.org/html/wg/drafts/html/master/browsers.html#the-indicated-part-of-the-document). + * + * It also watches the {@link ng.$location#hash $location.hash()} and automatically scrolls to + * match any anchor whenever it changes. This can be disabled by calling + * {@link ng.$anchorScrollProvider#disableAutoScrolling $anchorScrollProvider.disableAutoScrolling()}. + * + * Additionally, you can use its {@link ng.$anchorScroll#yOffset yOffset} property to specify a + * vertical scroll-offset (either fixed or dynamic). + * + * @param {string=} hash The hash specifying the element to scroll to. If omitted, the value of + * {@link ng.$location#hash $location.hash()} will be used. + * + * @property {(number|function|jqLite)} yOffset + * If set, specifies a vertical scroll-offset. This is often useful when there are fixed + * positioned elements at the top of the page, such as navbars, headers etc. + * + * `yOffset` can be specified in various ways: + * - **number**: A fixed number of pixels to be used as offset.

+ * - **function**: A getter function called everytime `$anchorScroll()` is executed. Must return + * a number representing the offset (in pixels).

+ * - **jqLite**: A jqLite/jQuery element to be used for specifying the offset. The distance from + * the top of the page to the element's bottom will be used as offset.
+ * **Note**: The element will be taken into account only as long as its `position` is set to + * `fixed`. This option is useful, when dealing with responsive navbars/headers that adjust + * their height and/or positioning according to the viewport's size. + * + *
+ *
+ * In order for `yOffset` to work properly, scrolling should take place on the document's root and + * not some child element. + *
+ * + * @example + + +
+ Go to bottom + You're at the bottom! +
+
+ + angular.module('anchorScrollExample', []) + .controller('ScrollController', ['$scope', '$location', '$anchorScroll', + function ($scope, $location, $anchorScroll) { + $scope.gotoBottom = function() { + // set the location.hash to the id of + // the element you wish to scroll to. + $location.hash('bottom'); + + // call $anchorScroll() + $anchorScroll(); + }; + }]); + + + #scrollArea { + height: 280px; + overflow: auto; + } + + #bottom { + display: block; + margin-top: 2000px; + } + +
+ * + *
+ * The example below illustrates the use of a vertical scroll-offset (specified as a fixed value). + * See {@link ng.$anchorScroll#yOffset $anchorScroll.yOffset} for more details. + * + * @example + + + +
+ Anchor {{x}} of 5 +
+
+ + angular.module('anchorScrollOffsetExample', []) + .run(['$anchorScroll', function($anchorScroll) { + $anchorScroll.yOffset = 50; // always scroll by 50 extra pixels + }]) + .controller('headerCtrl', ['$anchorScroll', '$location', '$scope', + function ($anchorScroll, $location, $scope) { + $scope.gotoAnchor = function(x) { + var newHash = 'anchor' + x; + if ($location.hash() !== newHash) { + // set the $location.hash to `newHash` and + // $anchorScroll will automatically scroll to it + $location.hash('anchor' + x); + } else { + // call $anchorScroll() explicitly, + // since $location.hash hasn't changed + $anchorScroll(); + } + }; + } + ]); + + + body { + padding-top: 50px; + } + + .anchor { + border: 2px dashed DarkOrchid; + padding: 10px 10px 200px 10px; + } + + .fixed-header { + background-color: rgba(0, 0, 0, 0.2); + height: 50px; + position: fixed; + top: 0; left: 0; right: 0; + } + + .fixed-header > a { + display: inline-block; + margin: 5px 15px; + } + +
+ */ + this.$get = ['$window', '$location', '$rootScope', function($window, $location, $rootScope) { + var document = $window.document; + + // Helper function to get first anchor from a NodeList + // (using `Array#some()` instead of `angular#forEach()` since it's more performant + // and working in all supported browsers.) + function getFirstAnchor(list) { + var result = null; + Array.prototype.some.call(list, function(element) { + if (nodeName_(element) === 'a') { + result = element; + return true; + } + }); + return result; + } + + function getYOffset() { + + var offset = scroll.yOffset; + + if (isFunction(offset)) { + offset = offset(); + } else if (isElement(offset)) { + var elem = offset[0]; + var style = $window.getComputedStyle(elem); + if (style.position !== 'fixed') { + offset = 0; + } else { + offset = elem.getBoundingClientRect().bottom; + } + } else if (!isNumber(offset)) { + offset = 0; + } + + return offset; + } + + function scrollTo(elem) { + if (elem) { + elem.scrollIntoView(); + + var offset = getYOffset(); + + if (offset) { + // `offset` is the number of pixels we should scroll UP in order to align `elem` properly. + // This is true ONLY if the call to `elem.scrollIntoView()` initially aligns `elem` at the + // top of the viewport. + // + // IF the number of pixels from the top of `elem` to the end of the page's content is less + // than the height of the viewport, then `elem.scrollIntoView()` will align the `elem` some + // way down the page. + // + // This is often the case for elements near the bottom of the page. + // + // In such cases we do not need to scroll the whole `offset` up, just the difference between + // the top of the element and the offset, which is enough to align the top of `elem` at the + // desired position. + var elemTop = elem.getBoundingClientRect().top; + $window.scrollBy(0, elemTop - offset); + } + } else { + $window.scrollTo(0, 0); + } + } + + function scroll(hash) { + hash = isString(hash) ? hash : $location.hash(); + var elm; + + // empty hash, scroll to the top of the page + if (!hash) scrollTo(null); + + // element with given id + else if ((elm = document.getElementById(hash))) scrollTo(elm); + + // first anchor with given name :-D + else if ((elm = getFirstAnchor(document.getElementsByName(hash)))) scrollTo(elm); + + // no element and hash == 'top', scroll to the top of the page + else if (hash === 'top') scrollTo(null); + } + + // does not scroll when user clicks on anchor link that is currently on + // (no url change, no $location.hash() change), browser native does scroll + if (autoScrollingEnabled) { + $rootScope.$watch(function autoScrollWatch() {return $location.hash();}, + function autoScrollWatchAction(newVal, oldVal) { + // skip the initial scroll if $location.hash is empty + if (newVal === oldVal && newVal === '') return; + + jqLiteDocumentLoaded(function() { + $rootScope.$evalAsync(scroll); + }); + }); + } + + return scroll; + }]; +} + +var $animateMinErr = minErr('$animate'); +var ELEMENT_NODE = 1; +var NG_ANIMATE_CLASSNAME = 'ng-animate'; + +function mergeClasses(a,b) { + if (!a && !b) return ''; + if (!a) return b; + if (!b) return a; + if (isArray(a)) a = a.join(' '); + if (isArray(b)) b = b.join(' '); + return a + ' ' + b; +} + +function extractElementNode(element) { + for (var i = 0; i < element.length; i++) { + var elm = element[i]; + if (elm.nodeType === ELEMENT_NODE) { + return elm; + } + } +} + +function splitClasses(classes) { + if (isString(classes)) { + classes = classes.split(' '); + } + + // Use createMap() to prevent class assumptions involving property names in + // Object.prototype + var obj = createMap(); + forEach(classes, function(klass) { + // sometimes the split leaves empty string values + // incase extra spaces were applied to the options + if (klass.length) { + obj[klass] = true; + } + }); + return obj; +} + +// if any other type of options value besides an Object value is +// passed into the $animate.method() animation then this helper code +// will be run which will ignore it. While this patch is not the +// greatest solution to this, a lot of existing plugins depend on +// $animate to either call the callback (< 1.2) or return a promise +// that can be changed. This helper function ensures that the options +// are wiped clean incase a callback function is provided. +function prepareAnimateOptions(options) { + return isObject(options) + ? options + : {}; +} + +var $$CoreAnimateJsProvider = function() { + this.$get = function() {}; +}; + +// this is prefixed with Core since it conflicts with +// the animateQueueProvider defined in ngAnimate/animateQueue.js +var $$CoreAnimateQueueProvider = function() { + var postDigestQueue = new HashMap(); + var postDigestElements = []; + + this.$get = ['$$AnimateRunner', '$rootScope', + function($$AnimateRunner, $rootScope) { + return { + enabled: noop, + on: noop, + off: noop, + pin: noop, + + push: function(element, event, options, domOperation) { + domOperation && domOperation(); + + options = options || {}; + options.from && element.css(options.from); + options.to && element.css(options.to); + + if (options.addClass || options.removeClass) { + addRemoveClassesPostDigest(element, options.addClass, options.removeClass); + } + + var runner = new $$AnimateRunner(); // jshint ignore:line + + // since there are no animations to run the runner needs to be + // notified that the animation call is complete. + runner.complete(); + return runner; + } + }; + + + function updateData(data, classes, value) { + var changed = false; + if (classes) { + classes = isString(classes) ? classes.split(' ') : + isArray(classes) ? classes : []; + forEach(classes, function(className) { + if (className) { + changed = true; + data[className] = value; + } + }); + } + return changed; + } + + function handleCSSClassChanges() { + forEach(postDigestElements, function(element) { + var data = postDigestQueue.get(element); + if (data) { + var existing = splitClasses(element.attr('class')); + var toAdd = ''; + var toRemove = ''; + forEach(data, function(status, className) { + var hasClass = !!existing[className]; + if (status !== hasClass) { + if (status) { + toAdd += (toAdd.length ? ' ' : '') + className; + } else { + toRemove += (toRemove.length ? ' ' : '') + className; + } + } + }); + + forEach(element, function(elm) { + toAdd && jqLiteAddClass(elm, toAdd); + toRemove && jqLiteRemoveClass(elm, toRemove); + }); + postDigestQueue.remove(element); + } + }); + postDigestElements.length = 0; + } + + + function addRemoveClassesPostDigest(element, add, remove) { + var data = postDigestQueue.get(element) || {}; + + var classesAdded = updateData(data, add, true); + var classesRemoved = updateData(data, remove, false); + + if (classesAdded || classesRemoved) { + + postDigestQueue.put(element, data); + postDigestElements.push(element); + + if (postDigestElements.length === 1) { + $rootScope.$$postDigest(handleCSSClassChanges); + } + } + } + }]; +}; + +/** + * @ngdoc provider + * @name $animateProvider + * + * @description + * Default implementation of $animate that doesn't perform any animations, instead just + * synchronously performs DOM updates and resolves the returned runner promise. + * + * In order to enable animations the `ngAnimate` module has to be loaded. + * + * To see the functional implementation check out `src/ngAnimate/animate.js`. + */ +var $AnimateProvider = ['$provide', function($provide) { + var provider = this; + + this.$$registeredAnimations = Object.create(null); + + /** + * @ngdoc method + * @name $animateProvider#register + * + * @description + * Registers a new injectable animation factory function. The factory function produces the + * animation object which contains callback functions for each event that is expected to be + * animated. + * + * * `eventFn`: `function(element, ... , doneFunction, options)` + * The element to animate, the `doneFunction` and the options fed into the animation. Depending + * on the type of animation additional arguments will be injected into the animation function. The + * list below explains the function signatures for the different animation methods: + * + * - setClass: function(element, addedClasses, removedClasses, doneFunction, options) + * - addClass: function(element, addedClasses, doneFunction, options) + * - removeClass: function(element, removedClasses, doneFunction, options) + * - enter, leave, move: function(element, doneFunction, options) + * - animate: function(element, fromStyles, toStyles, doneFunction, options) + * + * Make sure to trigger the `doneFunction` once the animation is fully complete. + * + * ```js + * return { + * //enter, leave, move signature + * eventFn : function(element, done, options) { + * //code to run the animation + * //once complete, then run done() + * return function endFunction(wasCancelled) { + * //code to cancel the animation + * } + * } + * } + * ``` + * + * @param {string} name The name of the animation (this is what the class-based CSS value will be compared to). + * @param {Function} factory The factory function that will be executed to return the animation + * object. + */ + this.register = function(name, factory) { + if (name && name.charAt(0) !== '.') { + throw $animateMinErr('notcsel', "Expecting class selector starting with '.' got '{0}'.", name); + } + + var key = name + '-animation'; + provider.$$registeredAnimations[name.substr(1)] = key; + $provide.factory(key, factory); + }; + + /** + * @ngdoc method + * @name $animateProvider#classNameFilter + * + * @description + * Sets and/or returns the CSS class regular expression that is checked when performing + * an animation. Upon bootstrap the classNameFilter value is not set at all and will + * therefore enable $animate to attempt to perform an animation on any element that is triggered. + * When setting the `classNameFilter` value, animations will only be performed on elements + * that successfully match the filter expression. This in turn can boost performance + * for low-powered devices as well as applications containing a lot of structural operations. + * @param {RegExp=} expression The className expression which will be checked against all animations + * @return {RegExp} The current CSS className expression value. If null then there is no expression value + */ + this.classNameFilter = function(expression) { + if (arguments.length === 1) { + this.$$classNameFilter = (expression instanceof RegExp) ? expression : null; + if (this.$$classNameFilter) { + var reservedRegex = new RegExp("(\\s+|\\/)" + NG_ANIMATE_CLASSNAME + "(\\s+|\\/)"); + if (reservedRegex.test(this.$$classNameFilter.toString())) { + throw $animateMinErr('nongcls','$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the "{0}" CSS class.', NG_ANIMATE_CLASSNAME); + + } + } + } + return this.$$classNameFilter; + }; + + this.$get = ['$$animateQueue', function($$animateQueue) { + function domInsert(element, parentElement, afterElement) { + // if for some reason the previous element was removed + // from the dom sometime before this code runs then let's + // just stick to using the parent element as the anchor + if (afterElement) { + var afterNode = extractElementNode(afterElement); + if (afterNode && !afterNode.parentNode && !afterNode.previousElementSibling) { + afterElement = null; + } + } + afterElement ? afterElement.after(element) : parentElement.prepend(element); + } + + /** + * @ngdoc service + * @name $animate + * @description The $animate service exposes a series of DOM utility methods that provide support + * for animation hooks. The default behavior is the application of DOM operations, however, + * when an animation is detected (and animations are enabled), $animate will do the heavy lifting + * to ensure that animation runs with the triggered DOM operation. + * + * By default $animate doesn't trigger any animations. This is because the `ngAnimate` module isn't + * included and only when it is active then the animation hooks that `$animate` triggers will be + * functional. Once active then all structural `ng-` directives will trigger animations as they perform + * their DOM-related operations (enter, leave and move). Other directives such as `ngClass`, + * `ngShow`, `ngHide` and `ngMessages` also provide support for animations. + * + * It is recommended that the`$animate` service is always used when executing DOM-related procedures within directives. + * + * To learn more about enabling animation support, click here to visit the + * {@link ngAnimate ngAnimate module page}. + */ + return { + // we don't call it directly since non-existant arguments may + // be interpreted as null within the sub enabled function + + /** + * + * @ngdoc method + * @name $animate#on + * @kind function + * @description Sets up an event listener to fire whenever the animation event (enter, leave, move, etc...) + * has fired on the given element or among any of its children. Once the listener is fired, the provided callback + * is fired with the following params: + * + * ```js + * $animate.on('enter', container, + * function callback(element, phase) { + * // cool we detected an enter animation within the container + * } + * ); + * ``` + * + * @param {string} event the animation event that will be captured (e.g. enter, leave, move, addClass, removeClass, etc...) + * @param {DOMElement} container the container element that will capture each of the animation events that are fired on itself + * as well as among its children + * @param {Function} callback the callback function that will be fired when the listener is triggered + * + * The arguments present in the callback function are: + * * `element` - The captured DOM element that the animation was fired on. + * * `phase` - The phase of the animation. The two possible phases are **start** (when the animation starts) and **close** (when it ends). + */ + on: $$animateQueue.on, + + /** + * + * @ngdoc method + * @name $animate#off + * @kind function + * @description Deregisters an event listener based on the event which has been associated with the provided element. This method + * can be used in three different ways depending on the arguments: + * + * ```js + * // remove all the animation event listeners listening for `enter` + * $animate.off('enter'); + * + * // remove all the animation event listeners listening for `enter` on the given element and its children + * $animate.off('enter', container); + * + * // remove the event listener function provided by `listenerFn` that is set + * // to listen for `enter` on the given `element` as well as its children + * $animate.off('enter', container, callback); + * ``` + * + * @param {string} event the animation event (e.g. enter, leave, move, addClass, removeClass, etc...) + * @param {DOMElement=} container the container element the event listener was placed on + * @param {Function=} callback the callback function that was registered as the listener + */ + off: $$animateQueue.off, + + /** + * @ngdoc method + * @name $animate#pin + * @kind function + * @description Associates the provided element with a host parent element to allow the element to be animated even if it exists + * outside of the DOM structure of the Angular application. By doing so, any animation triggered via `$animate` can be issued on the + * element despite being outside the realm of the application or within another application. Say for example if the application + * was bootstrapped on an element that is somewhere inside of the `` tag, but we wanted to allow for an element to be situated + * as a direct child of `document.body`, then this can be achieved by pinning the element via `$animate.pin(element)`. Keep in mind + * that calling `$animate.pin(element, parentElement)` will not actually insert into the DOM anywhere; it will just create the association. + * + * Note that this feature is only active when the `ngAnimate` module is used. + * + * @param {DOMElement} element the external element that will be pinned + * @param {DOMElement} parentElement the host parent element that will be associated with the external element + */ + pin: $$animateQueue.pin, + + /** + * + * @ngdoc method + * @name $animate#enabled + * @kind function + * @description Used to get and set whether animations are enabled or not on the entire application or on an element and its children. This + * function can be called in four ways: + * + * ```js + * // returns true or false + * $animate.enabled(); + * + * // changes the enabled state for all animations + * $animate.enabled(false); + * $animate.enabled(true); + * + * // returns true or false if animations are enabled for an element + * $animate.enabled(element); + * + * // changes the enabled state for an element and its children + * $animate.enabled(element, true); + * $animate.enabled(element, false); + * ``` + * + * @param {DOMElement=} element the element that will be considered for checking/setting the enabled state + * @param {boolean=} enabled whether or not the animations will be enabled for the element + * + * @return {boolean} whether or not animations are enabled + */ + enabled: $$animateQueue.enabled, + + /** + * @ngdoc method + * @name $animate#cancel + * @kind function + * @description Cancels the provided animation. + * + * @param {Promise} animationPromise The animation promise that is returned when an animation is started. + */ + cancel: function(runner) { + runner.end && runner.end(); + }, + + /** + * + * @ngdoc method + * @name $animate#enter + * @kind function + * @description Inserts the element into the DOM either after the `after` element (if provided) or + * as the first child within the `parent` element and then triggers an animation. + * A promise is returned that will be resolved during the next digest once the animation + * has completed. + * + * @param {DOMElement} element the element which will be inserted into the DOM + * @param {DOMElement} parent the parent element which will append the element as + * a child (so long as the after element is not present) + * @param {DOMElement=} after the sibling element after which the element will be appended + * @param {object=} options an optional collection of options/styles that will be applied to the element + * + * @return {Promise} the animation callback promise + */ + enter: function(element, parent, after, options) { + parent = parent && jqLite(parent); + after = after && jqLite(after); + parent = parent || after.parent(); + domInsert(element, parent, after); + return $$animateQueue.push(element, 'enter', prepareAnimateOptions(options)); + }, + + /** + * + * @ngdoc method + * @name $animate#move + * @kind function + * @description Inserts (moves) the element into its new position in the DOM either after + * the `after` element (if provided) or as the first child within the `parent` element + * and then triggers an animation. A promise is returned that will be resolved + * during the next digest once the animation has completed. + * + * @param {DOMElement} element the element which will be moved into the new DOM position + * @param {DOMElement} parent the parent element which will append the element as + * a child (so long as the after element is not present) + * @param {DOMElement=} after the sibling element after which the element will be appended + * @param {object=} options an optional collection of options/styles that will be applied to the element + * + * @return {Promise} the animation callback promise + */ + move: function(element, parent, after, options) { + parent = parent && jqLite(parent); + after = after && jqLite(after); + parent = parent || after.parent(); + domInsert(element, parent, after); + return $$animateQueue.push(element, 'move', prepareAnimateOptions(options)); + }, + + /** + * @ngdoc method + * @name $animate#leave + * @kind function + * @description Triggers an animation and then removes the element from the DOM. + * When the function is called a promise is returned that will be resolved during the next + * digest once the animation has completed. + * + * @param {DOMElement} element the element which will be removed from the DOM + * @param {object=} options an optional collection of options/styles that will be applied to the element + * + * @return {Promise} the animation callback promise + */ + leave: function(element, options) { + return $$animateQueue.push(element, 'leave', prepareAnimateOptions(options), function() { + element.remove(); + }); + }, + + /** + * @ngdoc method + * @name $animate#addClass + * @kind function + * + * @description Triggers an addClass animation surrounding the addition of the provided CSS class(es). Upon + * execution, the addClass operation will only be handled after the next digest and it will not trigger an + * animation if element already contains the CSS class or if the class is removed at a later step. + * Note that class-based animations are treated differently compared to structural animations + * (like enter, move and leave) since the CSS classes may be added/removed at different points + * depending if CSS or JavaScript animations are used. + * + * @param {DOMElement} element the element which the CSS classes will be applied to + * @param {string} className the CSS class(es) that will be added (multiple classes are separated via spaces) + * @param {object=} options an optional collection of options/styles that will be applied to the element + * + * @return {Promise} the animation callback promise + */ + addClass: function(element, className, options) { + options = prepareAnimateOptions(options); + options.addClass = mergeClasses(options.addclass, className); + return $$animateQueue.push(element, 'addClass', options); + }, + + /** + * @ngdoc method + * @name $animate#removeClass + * @kind function + * + * @description Triggers a removeClass animation surrounding the removal of the provided CSS class(es). Upon + * execution, the removeClass operation will only be handled after the next digest and it will not trigger an + * animation if element does not contain the CSS class or if the class is added at a later step. + * Note that class-based animations are treated differently compared to structural animations + * (like enter, move and leave) since the CSS classes may be added/removed at different points + * depending if CSS or JavaScript animations are used. + * + * @param {DOMElement} element the element which the CSS classes will be applied to + * @param {string} className the CSS class(es) that will be removed (multiple classes are separated via spaces) + * @param {object=} options an optional collection of options/styles that will be applied to the element + * + * @return {Promise} the animation callback promise + */ + removeClass: function(element, className, options) { + options = prepareAnimateOptions(options); + options.removeClass = mergeClasses(options.removeClass, className); + return $$animateQueue.push(element, 'removeClass', options); + }, + + /** + * @ngdoc method + * @name $animate#setClass + * @kind function + * + * @description Performs both the addition and removal of a CSS classes on an element and (during the process) + * triggers an animation surrounding the class addition/removal. Much like `$animate.addClass` and + * `$animate.removeClass`, `setClass` will only evaluate the classes being added/removed once a digest has + * passed. Note that class-based animations are treated differently compared to structural animations + * (like enter, move and leave) since the CSS classes may be added/removed at different points + * depending if CSS or JavaScript animations are used. + * + * @param {DOMElement} element the element which the CSS classes will be applied to + * @param {string} add the CSS class(es) that will be added (multiple classes are separated via spaces) + * @param {string} remove the CSS class(es) that will be removed (multiple classes are separated via spaces) + * @param {object=} options an optional collection of options/styles that will be applied to the element + * + * @return {Promise} the animation callback promise + */ + setClass: function(element, add, remove, options) { + options = prepareAnimateOptions(options); + options.addClass = mergeClasses(options.addClass, add); + options.removeClass = mergeClasses(options.removeClass, remove); + return $$animateQueue.push(element, 'setClass', options); + }, + + /** + * @ngdoc method + * @name $animate#animate + * @kind function + * + * @description Performs an inline animation on the element which applies the provided to and from CSS styles to the element. + * If any detected CSS transition, keyframe or JavaScript matches the provided className value, then the animation will take + * on the provided styles. For example, if a transition animation is set for the given className, then the provided `from` and + * `to` styles will be applied alongside the given transition. If the CSS style provided in `from` does not have a corresponding + * style in `to`, the style in `from` is applied immediately, and no animation is run. + * If a JavaScript animation is detected then the provided styles will be given in as function parameters into the `animate` + * method (or as part of the `options` parameter): + * + * ```js + * ngModule.animation('.my-inline-animation', function() { + * return { + * animate : function(element, from, to, done, options) { + * //animation + * done(); + * } + * } + * }); + * ``` + * + * @param {DOMElement} element the element which the CSS styles will be applied to + * @param {object} from the from (starting) CSS styles that will be applied to the element and across the animation. + * @param {object} to the to (destination) CSS styles that will be applied to the element and across the animation. + * @param {string=} className an optional CSS class that will be applied to the element for the duration of the animation. If + * this value is left as empty then a CSS class of `ng-inline-animate` will be applied to the element. + * (Note that if no animation is detected then this value will not be appplied to the element.) + * @param {object=} options an optional collection of options/styles that will be applied to the element + * + * @return {Promise} the animation callback promise + */ + animate: function(element, from, to, className, options) { + options = prepareAnimateOptions(options); + options.from = options.from ? extend(options.from, from) : from; + options.to = options.to ? extend(options.to, to) : to; + + className = className || 'ng-inline-animate'; + options.tempClasses = mergeClasses(options.tempClasses, className); + return $$animateQueue.push(element, 'animate', options); + } + }; + }]; +}]; + +var $$AnimateAsyncRunFactoryProvider = function() { + this.$get = ['$$rAF', function($$rAF) { + var waitQueue = []; + + function waitForTick(fn) { + waitQueue.push(fn); + if (waitQueue.length > 1) return; + $$rAF(function() { + for (var i = 0; i < waitQueue.length; i++) { + waitQueue[i](); + } + waitQueue = []; + }); + } + + return function() { + var passed = false; + waitForTick(function() { + passed = true; + }); + return function(callback) { + passed ? callback() : waitForTick(callback); + }; + }; + }]; +}; + +var $$AnimateRunnerFactoryProvider = function() { + this.$get = ['$q', '$sniffer', '$$animateAsyncRun', '$document', '$timeout', + function($q, $sniffer, $$animateAsyncRun, $document, $timeout) { + + var INITIAL_STATE = 0; + var DONE_PENDING_STATE = 1; + var DONE_COMPLETE_STATE = 2; + + AnimateRunner.chain = function(chain, callback) { + var index = 0; + + next(); + function next() { + if (index === chain.length) { + callback(true); + return; + } + + chain[index](function(response) { + if (response === false) { + callback(false); + return; + } + index++; + next(); + }); + } + }; + + AnimateRunner.all = function(runners, callback) { + var count = 0; + var status = true; + forEach(runners, function(runner) { + runner.done(onProgress); + }); + + function onProgress(response) { + status = status && response; + if (++count === runners.length) { + callback(status); + } + } + }; + + function AnimateRunner(host) { + this.setHost(host); + + var rafTick = $$animateAsyncRun(); + var timeoutTick = function(fn) { + $timeout(fn, 0, false); + }; + + this._doneCallbacks = []; + this._tick = function(fn) { + var doc = $document[0]; + + // the document may not be ready or attached + // to the module for some internal tests + if (doc && doc.hidden) { + timeoutTick(fn); + } else { + rafTick(fn); + } + }; + this._state = 0; + } + + AnimateRunner.prototype = { + setHost: function(host) { + this.host = host || {}; + }, + + done: function(fn) { + if (this._state === DONE_COMPLETE_STATE) { + fn(); + } else { + this._doneCallbacks.push(fn); + } + }, + + progress: noop, + + getPromise: function() { + if (!this.promise) { + var self = this; + this.promise = $q(function(resolve, reject) { + self.done(function(status) { + status === false ? reject() : resolve(); + }); + }); + } + return this.promise; + }, + + then: function(resolveHandler, rejectHandler) { + return this.getPromise().then(resolveHandler, rejectHandler); + }, + + 'catch': function(handler) { + return this.getPromise()['catch'](handler); + }, + + 'finally': function(handler) { + return this.getPromise()['finally'](handler); + }, + + pause: function() { + if (this.host.pause) { + this.host.pause(); + } + }, + + resume: function() { + if (this.host.resume) { + this.host.resume(); + } + }, + + end: function() { + if (this.host.end) { + this.host.end(); + } + this._resolve(true); + }, + + cancel: function() { + if (this.host.cancel) { + this.host.cancel(); + } + this._resolve(false); + }, + + complete: function(response) { + var self = this; + if (self._state === INITIAL_STATE) { + self._state = DONE_PENDING_STATE; + self._tick(function() { + self._resolve(response); + }); + } + }, + + _resolve: function(response) { + if (this._state !== DONE_COMPLETE_STATE) { + forEach(this._doneCallbacks, function(fn) { + fn(response); + }); + this._doneCallbacks.length = 0; + this._state = DONE_COMPLETE_STATE; + } + } + }; + + return AnimateRunner; + }]; +}; + +/** + * @ngdoc service + * @name $animateCss + * @kind object + * + * @description + * This is the core version of `$animateCss`. By default, only when the `ngAnimate` is included, + * then the `$animateCss` service will actually perform animations. + * + * Click here {@link ngAnimate.$animateCss to read the documentation for $animateCss}. + */ +var $CoreAnimateCssProvider = function() { + this.$get = ['$$rAF', '$q', '$$AnimateRunner', function($$rAF, $q, $$AnimateRunner) { + + return function(element, initialOptions) { + // all of the animation functions should create + // a copy of the options data, however, if a + // parent service has already created a copy then + // we should stick to using that + var options = initialOptions || {}; + if (!options.$$prepared) { + options = copy(options); + } + + // there is no point in applying the styles since + // there is no animation that goes on at all in + // this version of $animateCss. + if (options.cleanupStyles) { + options.from = options.to = null; + } + + if (options.from) { + element.css(options.from); + options.from = null; + } + + /* jshint newcap: false*/ + var closed, runner = new $$AnimateRunner(); + return { + start: run, + end: run + }; + + function run() { + $$rAF(function() { + applyAnimationContents(); + if (!closed) { + runner.complete(); + } + closed = true; + }); + return runner; + } + + function applyAnimationContents() { + if (options.addClass) { + element.addClass(options.addClass); + options.addClass = null; + } + if (options.removeClass) { + element.removeClass(options.removeClass); + options.removeClass = null; + } + if (options.to) { + element.css(options.to); + options.to = null; + } + } + }; + }]; +}; + +/* global stripHash: true */ + +/** + * ! This is a private undocumented service ! + * + * @name $browser + * @requires $log + * @description + * This object has two goals: + * + * - hide all the global state in the browser caused by the window object + * - abstract away all the browser specific features and inconsistencies + * + * For tests we provide {@link ngMock.$browser mock implementation} of the `$browser` + * service, which can be used for convenient testing of the application without the interaction with + * the real browser apis. + */ +/** + * @param {object} window The global window object. + * @param {object} document jQuery wrapped document. + * @param {object} $log window.console or an object with the same interface. + * @param {object} $sniffer $sniffer service + */ +function Browser(window, document, $log, $sniffer) { + var self = this, + rawDocument = document[0], + location = window.location, + history = window.history, + setTimeout = window.setTimeout, + clearTimeout = window.clearTimeout, + pendingDeferIds = {}; + + self.isMock = false; + + var outstandingRequestCount = 0; + var outstandingRequestCallbacks = []; + + // TODO(vojta): remove this temporary api + self.$$completeOutstandingRequest = completeOutstandingRequest; + self.$$incOutstandingRequestCount = function() { outstandingRequestCount++; }; + + /** + * Executes the `fn` function(supports currying) and decrements the `outstandingRequestCallbacks` + * counter. If the counter reaches 0, all the `outstandingRequestCallbacks` are executed. + */ + function completeOutstandingRequest(fn) { + try { + fn.apply(null, sliceArgs(arguments, 1)); + } finally { + outstandingRequestCount--; + if (outstandingRequestCount === 0) { + while (outstandingRequestCallbacks.length) { + try { + outstandingRequestCallbacks.pop()(); + } catch (e) { + $log.error(e); + } + } + } + } + } + + function getHash(url) { + var index = url.indexOf('#'); + return index === -1 ? '' : url.substr(index); + } + + /** + * @private + * Note: this method is used only by scenario runner + * TODO(vojta): prefix this method with $$ ? + * @param {function()} callback Function that will be called when no outstanding request + */ + self.notifyWhenNoOutstandingRequests = function(callback) { + if (outstandingRequestCount === 0) { + callback(); + } else { + outstandingRequestCallbacks.push(callback); + } + }; + + ////////////////////////////////////////////////////////////// + // URL API + ////////////////////////////////////////////////////////////// + + var cachedState, lastHistoryState, + lastBrowserUrl = location.href, + baseElement = document.find('base'), + pendingLocation = null; + + cacheState(); + lastHistoryState = cachedState; + + /** + * @name $browser#url + * + * @description + * GETTER: + * Without any argument, this method just returns current value of location.href. + * + * SETTER: + * With at least one argument, this method sets url to new value. + * If html5 history api supported, pushState/replaceState is used, otherwise + * location.href/location.replace is used. + * Returns its own instance to allow chaining + * + * NOTE: this api is intended for use only by the $location service. Please use the + * {@link ng.$location $location service} to change url. + * + * @param {string} url New url (when used as setter) + * @param {boolean=} replace Should new url replace current history record? + * @param {object=} state object to use with pushState/replaceState + */ + self.url = function(url, replace, state) { + // In modern browsers `history.state` is `null` by default; treating it separately + // from `undefined` would cause `$browser.url('/foo')` to change `history.state` + // to undefined via `pushState`. Instead, let's change `undefined` to `null` here. + if (isUndefined(state)) { + state = null; + } + + // Android Browser BFCache causes location, history reference to become stale. + if (location !== window.location) location = window.location; + if (history !== window.history) history = window.history; + + // setter + if (url) { + var sameState = lastHistoryState === state; + + // Don't change anything if previous and current URLs and states match. This also prevents + // IE<10 from getting into redirect loop when in LocationHashbangInHtml5Url mode. + // See https://github.com/angular/angular.js/commit/ffb2701 + if (lastBrowserUrl === url && (!$sniffer.history || sameState)) { + return self; + } + var sameBase = lastBrowserUrl && stripHash(lastBrowserUrl) === stripHash(url); + lastBrowserUrl = url; + lastHistoryState = state; + // Don't use history API if only the hash changed + // due to a bug in IE10/IE11 which leads + // to not firing a `hashchange` nor `popstate` event + // in some cases (see #9143). + if ($sniffer.history && (!sameBase || !sameState)) { + history[replace ? 'replaceState' : 'pushState'](state, '', url); + cacheState(); + // Do the assignment again so that those two variables are referentially identical. + lastHistoryState = cachedState; + } else { + if (!sameBase || pendingLocation) { + pendingLocation = url; + } + if (replace) { + location.replace(url); + } else if (!sameBase) { + location.href = url; + } else { + location.hash = getHash(url); + } + if (location.href !== url) { + pendingLocation = url; + } + } + return self; + // getter + } else { + // - pendingLocation is needed as browsers don't allow to read out + // the new location.href if a reload happened or if there is a bug like in iOS 9 (see + // https://openradar.appspot.com/22186109). + // - the replacement is a workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=407172 + return pendingLocation || location.href.replace(/%27/g,"'"); + } + }; + + /** + * @name $browser#state + * + * @description + * This method is a getter. + * + * Return history.state or null if history.state is undefined. + * + * @returns {object} state + */ + self.state = function() { + return cachedState; + }; + + var urlChangeListeners = [], + urlChangeInit = false; + + function cacheStateAndFireUrlChange() { + pendingLocation = null; + cacheState(); + fireUrlChange(); + } + + function getCurrentState() { + try { + return history.state; + } catch (e) { + // MSIE can reportedly throw when there is no state (UNCONFIRMED). + } + } + + // This variable should be used *only* inside the cacheState function. + var lastCachedState = null; + function cacheState() { + // This should be the only place in $browser where `history.state` is read. + cachedState = getCurrentState(); + cachedState = isUndefined(cachedState) ? null : cachedState; + + // Prevent callbacks fo fire twice if both hashchange & popstate were fired. + if (equals(cachedState, lastCachedState)) { + cachedState = lastCachedState; + } + lastCachedState = cachedState; + } + + function fireUrlChange() { + if (lastBrowserUrl === self.url() && lastHistoryState === cachedState) { + return; + } + + lastBrowserUrl = self.url(); + lastHistoryState = cachedState; + forEach(urlChangeListeners, function(listener) { + listener(self.url(), cachedState); + }); + } + + /** + * @name $browser#onUrlChange + * + * @description + * Register callback function that will be called, when url changes. + * + * It's only called when the url is changed from outside of angular: + * - user types different url into address bar + * - user clicks on history (forward/back) button + * - user clicks on a link + * + * It's not called when url is changed by $browser.url() method + * + * The listener gets called with new url as parameter. + * + * NOTE: this api is intended for use only by the $location service. Please use the + * {@link ng.$location $location service} to monitor url changes in angular apps. + * + * @param {function(string)} listener Listener function to be called when url changes. + * @return {function(string)} Returns the registered listener fn - handy if the fn is anonymous. + */ + self.onUrlChange = function(callback) { + // TODO(vojta): refactor to use node's syntax for events + if (!urlChangeInit) { + // We listen on both (hashchange/popstate) when available, as some browsers (e.g. Opera) + // don't fire popstate when user change the address bar and don't fire hashchange when url + // changed by push/replaceState + + // html5 history api - popstate event + if ($sniffer.history) jqLite(window).on('popstate', cacheStateAndFireUrlChange); + // hashchange event + jqLite(window).on('hashchange', cacheStateAndFireUrlChange); + + urlChangeInit = true; + } + + urlChangeListeners.push(callback); + return callback; + }; + + /** + * @private + * Remove popstate and hashchange handler from window. + * + * NOTE: this api is intended for use only by $rootScope. + */ + self.$$applicationDestroyed = function() { + jqLite(window).off('hashchange popstate', cacheStateAndFireUrlChange); + }; + + /** + * Checks whether the url has changed outside of Angular. + * Needs to be exported to be able to check for changes that have been done in sync, + * as hashchange/popstate events fire in async. + */ + self.$$checkUrlChange = fireUrlChange; + + ////////////////////////////////////////////////////////////// + // Misc API + ////////////////////////////////////////////////////////////// + + /** + * @name $browser#baseHref + * + * @description + * Returns current + * (always relative - without domain) + * + * @returns {string} The current base href + */ + self.baseHref = function() { + var href = baseElement.attr('href'); + return href ? href.replace(/^(https?\:)?\/\/[^\/]*/, '') : ''; + }; + + /** + * @name $browser#defer + * @param {function()} fn A function, who's execution should be deferred. + * @param {number=} [delay=0] of milliseconds to defer the function execution. + * @returns {*} DeferId that can be used to cancel the task via `$browser.defer.cancel()`. + * + * @description + * Executes a fn asynchronously via `setTimeout(fn, delay)`. + * + * Unlike when calling `setTimeout` directly, in test this function is mocked and instead of using + * `setTimeout` in tests, the fns are queued in an array, which can be programmatically flushed + * via `$browser.defer.flush()`. + * + */ + self.defer = function(fn, delay) { + var timeoutId; + outstandingRequestCount++; + timeoutId = setTimeout(function() { + delete pendingDeferIds[timeoutId]; + completeOutstandingRequest(fn); + }, delay || 0); + pendingDeferIds[timeoutId] = true; + return timeoutId; + }; + + + /** + * @name $browser#defer.cancel + * + * @description + * Cancels a deferred task identified with `deferId`. + * + * @param {*} deferId Token returned by the `$browser.defer` function. + * @returns {boolean} Returns `true` if the task hasn't executed yet and was successfully + * canceled. + */ + self.defer.cancel = function(deferId) { + if (pendingDeferIds[deferId]) { + delete pendingDeferIds[deferId]; + clearTimeout(deferId); + completeOutstandingRequest(noop); + return true; + } + return false; + }; + +} + +function $BrowserProvider() { + this.$get = ['$window', '$log', '$sniffer', '$document', + function($window, $log, $sniffer, $document) { + return new Browser($window, $document, $log, $sniffer); + }]; +} + +/** + * @ngdoc service + * @name $cacheFactory + * + * @description + * Factory that constructs {@link $cacheFactory.Cache Cache} objects and gives access to + * them. + * + * ```js + * + * var cache = $cacheFactory('cacheId'); + * expect($cacheFactory.get('cacheId')).toBe(cache); + * expect($cacheFactory.get('noSuchCacheId')).not.toBeDefined(); + * + * cache.put("key", "value"); + * cache.put("another key", "another value"); + * + * // We've specified no options on creation + * expect(cache.info()).toEqual({id: 'cacheId', size: 2}); + * + * ``` + * + * + * @param {string} cacheId Name or id of the newly created cache. + * @param {object=} options Options object that specifies the cache behavior. Properties: + * + * - `{number=}` `capacity` — turns the cache into LRU cache. + * + * @returns {object} Newly created cache object with the following set of methods: + * + * - `{object}` `info()` — Returns id, size, and options of cache. + * - `{{*}}` `put({string} key, {*} value)` — Puts a new key-value pair into the cache and returns + * it. + * - `{{*}}` `get({string} key)` — Returns cached value for `key` or undefined for cache miss. + * - `{void}` `remove({string} key)` — Removes a key-value pair from the cache. + * - `{void}` `removeAll()` — Removes all cached values. + * - `{void}` `destroy()` — Removes references to this cache from $cacheFactory. + * + * @example + + +
+ + + + +

Cached Values

+
+ + : + +
+ +

Cache Info

+
+ + : + +
+
+
+ + angular.module('cacheExampleApp', []). + controller('CacheController', ['$scope', '$cacheFactory', function($scope, $cacheFactory) { + $scope.keys = []; + $scope.cache = $cacheFactory('cacheId'); + $scope.put = function(key, value) { + if (angular.isUndefined($scope.cache.get(key))) { + $scope.keys.push(key); + } + $scope.cache.put(key, angular.isUndefined(value) ? null : value); + }; + }]); + + + p { + margin: 10px 0 3px; + } + +
+ */ +function $CacheFactoryProvider() { + + this.$get = function() { + var caches = {}; + + function cacheFactory(cacheId, options) { + if (cacheId in caches) { + throw minErr('$cacheFactory')('iid', "CacheId '{0}' is already taken!", cacheId); + } + + var size = 0, + stats = extend({}, options, {id: cacheId}), + data = createMap(), + capacity = (options && options.capacity) || Number.MAX_VALUE, + lruHash = createMap(), + freshEnd = null, + staleEnd = null; + + /** + * @ngdoc type + * @name $cacheFactory.Cache + * + * @description + * A cache object used to store and retrieve data, primarily used by + * {@link $http $http} and the {@link ng.directive:script script} directive to cache + * templates and other data. + * + * ```js + * angular.module('superCache') + * .factory('superCache', ['$cacheFactory', function($cacheFactory) { + * return $cacheFactory('super-cache'); + * }]); + * ``` + * + * Example test: + * + * ```js + * it('should behave like a cache', inject(function(superCache) { + * superCache.put('key', 'value'); + * superCache.put('another key', 'another value'); + * + * expect(superCache.info()).toEqual({ + * id: 'super-cache', + * size: 2 + * }); + * + * superCache.remove('another key'); + * expect(superCache.get('another key')).toBeUndefined(); + * + * superCache.removeAll(); + * expect(superCache.info()).toEqual({ + * id: 'super-cache', + * size: 0 + * }); + * })); + * ``` + */ + return caches[cacheId] = { + + /** + * @ngdoc method + * @name $cacheFactory.Cache#put + * @kind function + * + * @description + * Inserts a named entry into the {@link $cacheFactory.Cache Cache} object to be + * retrieved later, and incrementing the size of the cache if the key was not already + * present in the cache. If behaving like an LRU cache, it will also remove stale + * entries from the set. + * + * It will not insert undefined values into the cache. + * + * @param {string} key the key under which the cached data is stored. + * @param {*} value the value to store alongside the key. If it is undefined, the key + * will not be stored. + * @returns {*} the value stored. + */ + put: function(key, value) { + if (isUndefined(value)) return; + if (capacity < Number.MAX_VALUE) { + var lruEntry = lruHash[key] || (lruHash[key] = {key: key}); + + refresh(lruEntry); + } + + if (!(key in data)) size++; + data[key] = value; + + if (size > capacity) { + this.remove(staleEnd.key); + } + + return value; + }, + + /** + * @ngdoc method + * @name $cacheFactory.Cache#get + * @kind function + * + * @description + * Retrieves named data stored in the {@link $cacheFactory.Cache Cache} object. + * + * @param {string} key the key of the data to be retrieved + * @returns {*} the value stored. + */ + get: function(key) { + if (capacity < Number.MAX_VALUE) { + var lruEntry = lruHash[key]; + + if (!lruEntry) return; + + refresh(lruEntry); + } + + return data[key]; + }, + + + /** + * @ngdoc method + * @name $cacheFactory.Cache#remove + * @kind function + * + * @description + * Removes an entry from the {@link $cacheFactory.Cache Cache} object. + * + * @param {string} key the key of the entry to be removed + */ + remove: function(key) { + if (capacity < Number.MAX_VALUE) { + var lruEntry = lruHash[key]; + + if (!lruEntry) return; + + if (lruEntry == freshEnd) freshEnd = lruEntry.p; + if (lruEntry == staleEnd) staleEnd = lruEntry.n; + link(lruEntry.n,lruEntry.p); + + delete lruHash[key]; + } + + if (!(key in data)) return; + + delete data[key]; + size--; + }, + + + /** + * @ngdoc method + * @name $cacheFactory.Cache#removeAll + * @kind function + * + * @description + * Clears the cache object of any entries. + */ + removeAll: function() { + data = createMap(); + size = 0; + lruHash = createMap(); + freshEnd = staleEnd = null; + }, + + + /** + * @ngdoc method + * @name $cacheFactory.Cache#destroy + * @kind function + * + * @description + * Destroys the {@link $cacheFactory.Cache Cache} object entirely, + * removing it from the {@link $cacheFactory $cacheFactory} set. + */ + destroy: function() { + data = null; + stats = null; + lruHash = null; + delete caches[cacheId]; + }, + + + /** + * @ngdoc method + * @name $cacheFactory.Cache#info + * @kind function + * + * @description + * Retrieve information regarding a particular {@link $cacheFactory.Cache Cache}. + * + * @returns {object} an object with the following properties: + *
    + *
  • **id**: the id of the cache instance
  • + *
  • **size**: the number of entries kept in the cache instance
  • + *
  • **...**: any additional properties from the options object when creating the + * cache.
  • + *
+ */ + info: function() { + return extend({}, stats, {size: size}); + } + }; + + + /** + * makes the `entry` the freshEnd of the LRU linked list + */ + function refresh(entry) { + if (entry != freshEnd) { + if (!staleEnd) { + staleEnd = entry; + } else if (staleEnd == entry) { + staleEnd = entry.n; + } + + link(entry.n, entry.p); + link(entry, freshEnd); + freshEnd = entry; + freshEnd.n = null; + } + } + + + /** + * bidirectionally links two entries of the LRU linked list + */ + function link(nextEntry, prevEntry) { + if (nextEntry != prevEntry) { + if (nextEntry) nextEntry.p = prevEntry; //p stands for previous, 'prev' didn't minify + if (prevEntry) prevEntry.n = nextEntry; //n stands for next, 'next' didn't minify + } + } + } + + + /** + * @ngdoc method + * @name $cacheFactory#info + * + * @description + * Get information about all the caches that have been created + * + * @returns {Object} - key-value map of `cacheId` to the result of calling `cache#info` + */ + cacheFactory.info = function() { + var info = {}; + forEach(caches, function(cache, cacheId) { + info[cacheId] = cache.info(); + }); + return info; + }; + + + /** + * @ngdoc method + * @name $cacheFactory#get + * + * @description + * Get access to a cache object by the `cacheId` used when it was created. + * + * @param {string} cacheId Name or id of a cache to access. + * @returns {object} Cache object identified by the cacheId or undefined if no such cache. + */ + cacheFactory.get = function(cacheId) { + return caches[cacheId]; + }; + + + return cacheFactory; + }; +} + +/** + * @ngdoc service + * @name $templateCache + * + * @description + * The first time a template is used, it is loaded in the template cache for quick retrieval. You + * can load templates directly into the cache in a `script` tag, or by consuming the + * `$templateCache` service directly. + * + * Adding via the `script` tag: + * + * ```html + * + * ``` + * + * **Note:** the `script` tag containing the template does not need to be included in the `head` of + * the document, but it must be a descendent of the {@link ng.$rootElement $rootElement} (IE, + * element with ng-app attribute), otherwise the template will be ignored. + * + * Adding via the `$templateCache` service: + * + * ```js + * var myApp = angular.module('myApp', []); + * myApp.run(function($templateCache) { + * $templateCache.put('templateId.html', 'This is the content of the template'); + * }); + * ``` + * + * To retrieve the template later, simply use it in your HTML: + * ```html + *
+ * ``` + * + * or get it via Javascript: + * ```js + * $templateCache.get('templateId.html') + * ``` + * + * See {@link ng.$cacheFactory $cacheFactory}. + * + */ +function $TemplateCacheProvider() { + this.$get = ['$cacheFactory', function($cacheFactory) { + return $cacheFactory('templates'); + }]; +} + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Any commits to this file should be reviewed with security in mind. * + * Changes to this file can potentially create security vulnerabilities. * + * An approval from 2 Core members with history of modifying * + * this file is required. * + * * + * Does the change somehow allow for arbitrary javascript to be executed? * + * Or allows for someone to change the prototype of built-in objects? * + * Or gives undesired access to variables likes document or window? * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* ! VARIABLE/FUNCTION NAMING CONVENTIONS THAT APPLY TO THIS FILE! + * + * DOM-related variables: + * + * - "node" - DOM Node + * - "element" - DOM Element or Node + * - "$node" or "$element" - jqLite-wrapped node or element + * + * + * Compiler related stuff: + * + * - "linkFn" - linking fn of a single directive + * - "nodeLinkFn" - function that aggregates all linking fns for a particular node + * - "childLinkFn" - function that aggregates all linking fns for child nodes of a particular node + * - "compositeLinkFn" - function that aggregates all linking fns for a compilation root (nodeList) + */ + + +/** + * @ngdoc service + * @name $compile + * @kind function + * + * @description + * Compiles an HTML string or DOM into a template and produces a template function, which + * can then be used to link {@link ng.$rootScope.Scope `scope`} and the template together. + * + * The compilation is a process of walking the DOM tree and matching DOM elements to + * {@link ng.$compileProvider#directive directives}. + * + *
+ * **Note:** This document is an in-depth reference of all directive options. + * For a gentle introduction to directives with examples of common use cases, + * see the {@link guide/directive directive guide}. + *
+ * + * ## Comprehensive Directive API + * + * There are many different options for a directive. + * + * The difference resides in the return value of the factory function. + * You can either return a "Directive Definition Object" (see below) that defines the directive properties, + * or just the `postLink` function (all other properties will have the default values). + * + *
+ * **Best Practice:** It's recommended to use the "directive definition object" form. + *
+ * + * Here's an example directive declared with a Directive Definition Object: + * + * ```js + * var myModule = angular.module(...); + * + * myModule.directive('directiveName', function factory(injectables) { + * var directiveDefinitionObject = { + * priority: 0, + * template: '
', // or // function(tElement, tAttrs) { ... }, + * // or + * // templateUrl: 'directive.html', // or // function(tElement, tAttrs) { ... }, + * transclude: false, + * restrict: 'A', + * templateNamespace: 'html', + * scope: false, + * controller: function($scope, $element, $attrs, $transclude, otherInjectables) { ... }, + * controllerAs: 'stringIdentifier', + * bindToController: false, + * require: 'siblingDirectiveName', // or // ['^parentDirectiveName', '?optionalDirectiveName', '?^optionalParent'], + * compile: function compile(tElement, tAttrs, transclude) { + * return { + * pre: function preLink(scope, iElement, iAttrs, controller) { ... }, + * post: function postLink(scope, iElement, iAttrs, controller) { ... } + * } + * // or + * // return function postLink( ... ) { ... } + * }, + * // or + * // link: { + * // pre: function preLink(scope, iElement, iAttrs, controller) { ... }, + * // post: function postLink(scope, iElement, iAttrs, controller) { ... } + * // } + * // or + * // link: function postLink( ... ) { ... } + * }; + * return directiveDefinitionObject; + * }); + * ``` + * + *
+ * **Note:** Any unspecified options will use the default value. You can see the default values below. + *
+ * + * Therefore the above can be simplified as: + * + * ```js + * var myModule = angular.module(...); + * + * myModule.directive('directiveName', function factory(injectables) { + * var directiveDefinitionObject = { + * link: function postLink(scope, iElement, iAttrs) { ... } + * }; + * return directiveDefinitionObject; + * // or + * // return function postLink(scope, iElement, iAttrs) { ... } + * }); + * ``` + * + * + * + * ### Directive Definition Object + * + * The directive definition object provides instructions to the {@link ng.$compile + * compiler}. The attributes are: + * + * #### `multiElement` + * When this property is set to true, the HTML compiler will collect DOM nodes between + * nodes with the attributes `directive-name-start` and `directive-name-end`, and group them + * together as the directive elements. It is recommended that this feature be used on directives + * which are not strictly behavioural (such as {@link ngClick}), and which + * do not manipulate or replace child nodes (such as {@link ngInclude}). + * + * #### `priority` + * When there are multiple directives defined on a single DOM element, sometimes it + * is necessary to specify the order in which the directives are applied. The `priority` is used + * to sort the directives before their `compile` functions get called. Priority is defined as a + * number. Directives with greater numerical `priority` are compiled first. Pre-link functions + * are also run in priority order, but post-link functions are run in reverse order. The order + * of directives with the same priority is undefined. The default priority is `0`. + * + * #### `terminal` + * If set to true then the current `priority` will be the last set of directives + * which will execute (any directives at the current priority will still execute + * as the order of execution on same `priority` is undefined). Note that expressions + * and other directives used in the directive's template will also be excluded from execution. + * + * #### `scope` + * The scope property can be `true`, an object or a falsy value: + * + * * **falsy:** No scope will be created for the directive. The directive will use its parent's scope. + * + * * **`true`:** A new child scope that prototypically inherits from its parent will be created for + * the directive's element. If multiple directives on the same element request a new scope, + * only one new scope is created. The new scope rule does not apply for the root of the template + * since the root of the template always gets a new scope. + * + * * **`{...}` (an object hash):** A new "isolate" scope is created for the directive's element. The + * 'isolate' scope differs from normal scope in that it does not prototypically inherit from its parent + * scope. This is useful when creating reusable components, which should not accidentally read or modify + * data in the parent scope. + * + * The 'isolate' scope object hash defines a set of local scope properties derived from attributes on the + * directive's element. These local properties are useful for aliasing values for templates. The keys in + * the object hash map to the name of the property on the isolate scope; the values define how the property + * is bound to the parent scope, via matching attributes on the directive's element: + * + * * `@` or `@attr` - bind a local scope property to the value of DOM attribute. The result is + * always a string since DOM attributes are strings. If no `attr` name is specified then the + * attribute name is assumed to be the same as the local name. Given `` and the isolate scope definition `scope: { localName:'@myAttr' }`, + * the directive's scope property `localName` will reflect the interpolated value of `hello + * {{name}}`. As the `name` attribute changes so will the `localName` property on the directive's + * scope. The `name` is read from the parent scope (not the directive's scope). + * + * * `=` or `=attr` - set up a bidirectional binding between a local scope property and an expression + * passed via the attribute `attr`. The expression is evaluated in the context of the parent scope. + * If no `attr` name is specified then the attribute name is assumed to be the same as the local + * name. Given `` and the isolate scope definition `scope: { + * localModel: '=myAttr' }`, the property `localModel` on the directive's scope will reflect the + * value of `parentModel` on the parent scope. Changes to `parentModel` will be reflected in + * `localModel` and vice versa. Optional attributes should be marked as such with a question mark: + * `=?` or `=?attr`. If the binding expression is non-assignable, or if the attribute isn't + * optional and doesn't exist, an exception ({@link error/$compile/nonassign `$compile:nonassign`}) + * will be thrown upon discovering changes to the local value, since it will be impossible to sync + * them back to the parent scope. By default, the {@link ng.$rootScope.Scope#$watch `$watch`} + * method is used for tracking changes, and the equality check is based on object identity. + * However, if an object literal or an array literal is passed as the binding expression, the + * equality check is done by value (using the {@link angular.equals} function). It's also possible + * to watch the evaluated value shallowly with {@link ng.$rootScope.Scope#$watchCollection + * `$watchCollection`}: use `=*` or `=*attr` (`=*?` or `=*?attr` if the attribute is optional). + * + * * `&` or `&attr` - provides a way to execute an expression in the context of the parent scope. If + * no `attr` name is specified then the attribute name is assumed to be the same as the local name. + * Given `` and the isolate scope definition `scope: { + * localFn:'&myAttr' }`, the isolate scope property `localFn` will point to a function wrapper for + * the `count = count + value` expression. Often it's desirable to pass data from the isolated scope + * via an expression to the parent scope. This can be done by passing a map of local variable names + * and values into the expression wrapper fn. For example, if the expression is `increment(amount)` + * then we can specify the amount value by calling the `localFn` as `localFn({amount: 22})`. + * + * In general it's possible to apply more than one directive to one element, but there might be limitations + * depending on the type of scope required by the directives. The following points will help explain these limitations. + * For simplicity only two directives are taken into account, but it is also applicable for several directives: + * + * * **no scope** + **no scope** => Two directives which don't require their own scope will use their parent's scope + * * **child scope** + **no scope** => Both directives will share one single child scope + * * **child scope** + **child scope** => Both directives will share one single child scope + * * **isolated scope** + **no scope** => The isolated directive will use it's own created isolated scope. The other directive will use + * its parent's scope + * * **isolated scope** + **child scope** => **Won't work!** Only one scope can be related to one element. Therefore these directives cannot + * be applied to the same element. + * * **isolated scope** + **isolated scope** => **Won't work!** Only one scope can be related to one element. Therefore these directives + * cannot be applied to the same element. + * + * + * #### `bindToController` + * This property is used to bind scope properties directly to the controller. It can be either + * `true` or an object hash with the same format as the `scope` property. Additionally, a controller + * alias must be set, either by using `controllerAs: 'myAlias'` or by specifying the alias in the controller + * definition: `controller: 'myCtrl as myAlias'`. + * + * When an isolate scope is used for a directive (see above), `bindToController: true` will + * allow a component to have its properties bound to the controller, rather than to scope. When the controller + * is instantiated, the initial values of the isolate scope bindings are already available. + * + * It is also possible to set `bindToController` to an object hash with the same format as the `scope` property. + * This will set up the scope bindings to the controller directly. Note that `scope` can still be used + * to define which kind of scope is created. By default, no scope is created. Use `scope: {}` to create an isolate + * scope (useful for component directives). + * + * If both `bindToController` and `scope` are defined and have object hashes, `bindToController` overrides `scope`. + * + * + * #### `controller` + * Controller constructor function. The controller is instantiated before the + * pre-linking phase and can be accessed by other directives (see + * `require` attribute). This allows the directives to communicate with each other and augment + * each other's behavior. The controller is injectable (and supports bracket notation) with the following locals: + * + * * `$scope` - Current scope associated with the element + * * `$element` - Current element + * * `$attrs` - Current attributes object for the element + * * `$transclude` - A transclude linking function pre-bound to the correct transclusion scope: + * `function([scope], cloneLinkingFn, futureParentElement)`. + * * `scope`: optional argument to override the scope. + * * `cloneLinkingFn`: optional argument to create clones of the original transcluded content. + * * `futureParentElement`: + * * defines the parent to which the `cloneLinkingFn` will add the cloned elements. + * * default: `$element.parent()` resp. `$element` for `transclude:'element'` resp. `transclude:true`. + * * only needed for transcludes that are allowed to contain non html elements (e.g. SVG elements) + * and when the `cloneLinkinFn` is passed, + * as those elements need to created and cloned in a special way when they are defined outside their + * usual containers (e.g. like ``). + * * See also the `directive.templateNamespace` property. + * + * + * #### `require` + * Require another directive and inject its controller as the fourth argument to the linking function. The + * `require` takes a string name (or array of strings) of the directive(s) to pass in. If an array is used, the + * injected argument will be an array in corresponding order. If no such directive can be + * found, or if the directive does not have a controller, then an error is raised (unless no link function + * is specified, in which case error checking is skipped). The name can be prefixed with: + * + * * (no prefix) - Locate the required controller on the current element. Throw an error if not found. + * * `?` - Attempt to locate the required controller or pass `null` to the `link` fn if not found. + * * `^` - Locate the required controller by searching the element and its parents. Throw an error if not found. + * * `^^` - Locate the required controller by searching the element's parents. Throw an error if not found. + * * `?^` - Attempt to locate the required controller by searching the element and its parents or pass + * `null` to the `link` fn if not found. + * * `?^^` - Attempt to locate the required controller by searching the element's parents, or pass + * `null` to the `link` fn if not found. + * + * + * #### `controllerAs` + * Identifier name for a reference to the controller in the directive's scope. + * This allows the controller to be referenced from the directive template. This is especially + * useful when a directive is used as component, i.e. with an `isolate` scope. It's also possible + * to use it in a directive without an `isolate` / `new` scope, but you need to be aware that the + * `controllerAs` reference might overwrite a property that already exists on the parent scope. + * + * + * #### `restrict` + * String of subset of `EACM` which restricts the directive to a specific directive + * declaration style. If omitted, the defaults (elements and attributes) are used. + * + * * `E` - Element name (default): `` + * * `A` - Attribute (default): `
` + * * `C` - Class: `
` + * * `M` - Comment: `` + * + * + * #### `templateNamespace` + * String representing the document type used by the markup in the template. + * AngularJS needs this information as those elements need to be created and cloned + * in a special way when they are defined outside their usual containers like `` and ``. + * + * * `html` - All root nodes in the template are HTML. Root nodes may also be + * top-level elements such as `` or ``. + * * `svg` - The root nodes in the template are SVG elements (excluding ``). + * * `math` - The root nodes in the template are MathML elements (excluding ``). + * + * If no `templateNamespace` is specified, then the namespace is considered to be `html`. + * + * #### `template` + * HTML markup that may: + * * Replace the contents of the directive's element (default). + * * Replace the directive's element itself (if `replace` is true - DEPRECATED). + * * Wrap the contents of the directive's element (if `transclude` is true). + * + * Value may be: + * + * * A string. For example `
{{delete_str}}
`. + * * A function which takes two arguments `tElement` and `tAttrs` (described in the `compile` + * function api below) and returns a string value. + * + * + * #### `templateUrl` + * This is similar to `template` but the template is loaded from the specified URL, asynchronously. + * + * Because template loading is asynchronous the compiler will suspend compilation of directives on that element + * for later when the template has been resolved. In the meantime it will continue to compile and link + * sibling and parent elements as though this element had not contained any directives. + * + * The compiler does not suspend the entire compilation to wait for templates to be loaded because this + * would result in the whole app "stalling" until all templates are loaded asynchronously - even in the + * case when only one deeply nested directive has `templateUrl`. + * + * Template loading is asynchronous even if the template has been preloaded into the {@link $templateCache} + * + * You can specify `templateUrl` as a string representing the URL or as a function which takes two + * arguments `tElement` and `tAttrs` (described in the `compile` function api below) and returns + * a string value representing the url. In either case, the template URL is passed through {@link + * $sce#getTrustedResourceUrl $sce.getTrustedResourceUrl}. + * + * + * #### `replace` ([*DEPRECATED*!], will be removed in next major release - i.e. v2.0) + * specify what the template should replace. Defaults to `false`. + * + * * `true` - the template will replace the directive's element. + * * `false` - the template will replace the contents of the directive's element. + * + * The replacement process migrates all of the attributes / classes from the old element to the new + * one. See the {@link guide/directive#template-expanding-directive + * Directives Guide} for an example. + * + * There are very few scenarios where element replacement is required for the application function, + * the main one being reusable custom components that are used within SVG contexts + * (because SVG doesn't work with custom elements in the DOM tree). + * + * #### `transclude` + * Extract the contents of the element where the directive appears and make it available to the directive. + * The contents are compiled and provided to the directive as a **transclusion function**. See the + * {@link $compile#transclusion Transclusion} section below. + * + * There are two kinds of transclusion depending upon whether you want to transclude just the contents of the + * directive's element or the entire element: + * + * * `true` - transclude the content (i.e. the child nodes) of the directive's element. + * * `'element'` - transclude the whole of the directive's element including any directives on this + * element that defined at a lower priority than this directive. When used, the `template` + * property is ignored. + * + * + * #### `compile` + * + * ```js + * function compile(tElement, tAttrs, transclude) { ... } + * ``` + * + * The compile function deals with transforming the template DOM. Since most directives do not do + * template transformation, it is not used often. The compile function takes the following arguments: + * + * * `tElement` - template element - The element where the directive has been declared. It is + * safe to do template transformation on the element and child elements only. + * + * * `tAttrs` - template attributes - Normalized list of attributes declared on this element shared + * between all directive compile functions. + * + * * `transclude` - [*DEPRECATED*!] A transclude linking function: `function(scope, cloneLinkingFn)` + * + *
+ * **Note:** The template instance and the link instance may be different objects if the template has + * been cloned. For this reason it is **not** safe to do anything other than DOM transformations that + * apply to all cloned DOM nodes within the compile function. Specifically, DOM listener registration + * should be done in a linking function rather than in a compile function. + *
+ + *
+ * **Note:** The compile function cannot handle directives that recursively use themselves in their + * own templates or compile functions. Compiling these directives results in an infinite loop and + * stack overflow errors. + * + * This can be avoided by manually using $compile in the postLink function to imperatively compile + * a directive's template instead of relying on automatic template compilation via `template` or + * `templateUrl` declaration or manual compilation inside the compile function. + *
+ * + *
+ * **Note:** The `transclude` function that is passed to the compile function is deprecated, as it + * e.g. does not know about the right outer scope. Please use the transclude function that is passed + * to the link function instead. + *
+ + * A compile function can have a return value which can be either a function or an object. + * + * * returning a (post-link) function - is equivalent to registering the linking function via the + * `link` property of the config object when the compile function is empty. + * + * * returning an object with function(s) registered via `pre` and `post` properties - allows you to + * control when a linking function should be called during the linking phase. See info about + * pre-linking and post-linking functions below. + * + * + * #### `link` + * This property is used only if the `compile` property is not defined. + * + * ```js + * function link(scope, iElement, iAttrs, controller, transcludeFn) { ... } + * ``` + * + * The link function is responsible for registering DOM listeners as well as updating the DOM. It is + * executed after the template has been cloned. This is where most of the directive logic will be + * put. + * + * * `scope` - {@link ng.$rootScope.Scope Scope} - The scope to be used by the + * directive for registering {@link ng.$rootScope.Scope#$watch watches}. + * + * * `iElement` - instance element - The element where the directive is to be used. It is safe to + * manipulate the children of the element only in `postLink` function since the children have + * already been linked. + * + * * `iAttrs` - instance attributes - Normalized list of attributes declared on this element shared + * between all directive linking functions. + * + * * `controller` - the directive's required controller instance(s) - Instances are shared + * among all directives, which allows the directives to use the controllers as a communication + * channel. The exact value depends on the directive's `require` property: + * * no controller(s) required: the directive's own controller, or `undefined` if it doesn't have one + * * `string`: the controller instance + * * `array`: array of controller instances + * + * If a required controller cannot be found, and it is optional, the instance is `null`, + * otherwise the {@link error:$compile:ctreq Missing Required Controller} error is thrown. + * + * Note that you can also require the directive's own controller - it will be made available like + * any other controller. + * + * * `transcludeFn` - A transclude linking function pre-bound to the correct transclusion scope. + * This is the same as the `$transclude` + * parameter of directive controllers, see there for details. + * `function([scope], cloneLinkingFn, futureParentElement)`. + * + * #### Pre-linking function + * + * Executed before the child elements are linked. Not safe to do DOM transformation since the + * compiler linking function will fail to locate the correct elements for linking. + * + * #### Post-linking function + * + * Executed after the child elements are linked. + * + * Note that child elements that contain `templateUrl` directives will not have been compiled + * and linked since they are waiting for their template to load asynchronously and their own + * compilation and linking has been suspended until that occurs. + * + * It is safe to do DOM transformation in the post-linking function on elements that are not waiting + * for their async templates to be resolved. + * + * + * ### Transclusion + * + * Transclusion is the process of extracting a collection of DOM elements from one part of the DOM and + * copying them to another part of the DOM, while maintaining their connection to the original AngularJS + * scope from where they were taken. + * + * Transclusion is used (often with {@link ngTransclude}) to insert the + * original contents of a directive's element into a specified place in the template of the directive. + * The benefit of transclusion, over simply moving the DOM elements manually, is that the transcluded + * content has access to the properties on the scope from which it was taken, even if the directive + * has isolated scope. + * See the {@link guide/directive#creating-a-directive-that-wraps-other-elements Directives Guide}. + * + * This makes it possible for the widget to have private state for its template, while the transcluded + * content has access to its originating scope. + * + *
+ * **Note:** When testing an element transclude directive you must not place the directive at the root of the + * DOM fragment that is being compiled. See {@link guide/unit-testing#testing-transclusion-directives + * Testing Transclusion Directives}. + *
+ * + * #### Transclusion Functions + * + * When a directive requests transclusion, the compiler extracts its contents and provides a **transclusion + * function** to the directive's `link` function and `controller`. This transclusion function is a special + * **linking function** that will return the compiled contents linked to a new transclusion scope. + * + *
+ * If you are just using {@link ngTransclude} then you don't need to worry about this function, since + * ngTransclude will deal with it for us. + *
+ * + * If you want to manually control the insertion and removal of the transcluded content in your directive + * then you must use this transclude function. When you call a transclude function it returns a a jqLite/JQuery + * object that contains the compiled DOM, which is linked to the correct transclusion scope. + * + * When you call a transclusion function you can pass in a **clone attach function**. This function accepts + * two parameters, `function(clone, scope) { ... }`, where the `clone` is a fresh compiled copy of your transcluded + * content and the `scope` is the newly created transclusion scope, to which the clone is bound. + * + *
+ * **Best Practice**: Always provide a `cloneFn` (clone attach function) when you call a translude function + * since you then get a fresh clone of the original DOM and also have access to the new transclusion scope. + *
+ * + * It is normal practice to attach your transcluded content (`clone`) to the DOM inside your **clone + * attach function**: + * + * ```js + * var transcludedContent, transclusionScope; + * + * $transclude(function(clone, scope) { + * element.append(clone); + * transcludedContent = clone; + * transclusionScope = scope; + * }); + * ``` + * + * Later, if you want to remove the transcluded content from your DOM then you should also destroy the + * associated transclusion scope: + * + * ```js + * transcludedContent.remove(); + * transclusionScope.$destroy(); + * ``` + * + *
+ * **Best Practice**: if you intend to add and remove transcluded content manually in your directive + * (by calling the transclude function to get the DOM and calling `element.remove()` to remove it), + * then you are also responsible for calling `$destroy` on the transclusion scope. + *
+ * + * The built-in DOM manipulation directives, such as {@link ngIf}, {@link ngSwitch} and {@link ngRepeat} + * automatically destroy their transluded clones as necessary so you do not need to worry about this if + * you are simply using {@link ngTransclude} to inject the transclusion into your directive. + * + * + * #### Transclusion Scopes + * + * When you call a transclude function it returns a DOM fragment that is pre-bound to a **transclusion + * scope**. This scope is special, in that it is a child of the directive's scope (and so gets destroyed + * when the directive's scope gets destroyed) but it inherits the properties of the scope from which it + * was taken. + * + * For example consider a directive that uses transclusion and isolated scope. The DOM hierarchy might look + * like this: + * + * ```html + *
+ *
+ *
+ *
+ *
+ *
+ * ``` + * + * The `$parent` scope hierarchy will look like this: + * + ``` + - $rootScope + - isolate + - transclusion + ``` + * + * but the scopes will inherit prototypically from different scopes to their `$parent`. + * + ``` + - $rootScope + - transclusion + - isolate + ``` + * + * + * ### Attributes + * + * The {@link ng.$compile.directive.Attributes Attributes} object - passed as a parameter in the + * `link()` or `compile()` functions. It has a variety of uses. + * + * * *Accessing normalized attribute names:* Directives like 'ngBind' can be expressed in many ways: + * 'ng:bind', `data-ng-bind`, or 'x-ng-bind'. The attributes object allows for normalized access + * to the attributes. + * + * * *Directive inter-communication:* All directives share the same instance of the attributes + * object which allows the directives to use the attributes object as inter directive + * communication. + * + * * *Supports interpolation:* Interpolation attributes are assigned to the attribute object + * allowing other directives to read the interpolated value. + * + * * *Observing interpolated attributes:* Use `$observe` to observe the value changes of attributes + * that contain interpolation (e.g. `src="{{bar}}"`). Not only is this very efficient but it's also + * the only way to easily get the actual value because during the linking phase the interpolation + * hasn't been evaluated yet and so the value is at this time set to `undefined`. + * + * ```js + * function linkingFn(scope, elm, attrs, ctrl) { + * // get the attribute value + * console.log(attrs.ngModel); + * + * // change the attribute + * attrs.$set('ngModel', 'new value'); + * + * // observe changes to interpolated attribute + * attrs.$observe('ngModel', function(value) { + * console.log('ngModel has changed value to ' + value); + * }); + * } + * ``` + * + * ## Example + * + *
+ * **Note**: Typically directives are registered with `module.directive`. The example below is + * to illustrate how `$compile` works. + *
+ * + + + +
+
+
+
+
+
+ + it('should auto compile', function() { + var textarea = $('textarea'); + var output = $('div[compile]'); + // The initial state reads 'Hello Angular'. + expect(output.getText()).toBe('Hello Angular'); + textarea.clear(); + textarea.sendKeys('{{name}}!'); + expect(output.getText()).toBe('Angular!'); + }); + +
+ + * + * + * @param {string|DOMElement} element Element or HTML string to compile into a template function. + * @param {function(angular.Scope, cloneAttachFn=)} transclude function available to directives - DEPRECATED. + * + *
+ * **Note:** Passing a `transclude` function to the $compile function is deprecated, as it + * e.g. will not use the right outer scope. Please pass the transclude function as a + * `parentBoundTranscludeFn` to the link function instead. + *
+ * + * @param {number} maxPriority only apply directives lower than given priority (Only effects the + * root element(s), not their children) + * @returns {function(scope, cloneAttachFn=, options=)} a link function which is used to bind template + * (a DOM element/tree) to a scope. Where: + * + * * `scope` - A {@link ng.$rootScope.Scope Scope} to bind to. + * * `cloneAttachFn` - If `cloneAttachFn` is provided, then the link function will clone the + * `template` and call the `cloneAttachFn` function allowing the caller to attach the + * cloned elements to the DOM document at the appropriate place. The `cloneAttachFn` is + * called as:
`cloneAttachFn(clonedElement, scope)` where: + * + * * `clonedElement` - is a clone of the original `element` passed into the compiler. + * * `scope` - is the current scope with which the linking function is working with. + * + * * `options` - An optional object hash with linking options. If `options` is provided, then the following + * keys may be used to control linking behavior: + * + * * `parentBoundTranscludeFn` - the transclude function made available to + * directives; if given, it will be passed through to the link functions of + * directives found in `element` during compilation. + * * `transcludeControllers` - an object hash with keys that map controller names + * to a hash with the key `instance`, which maps to the controller instance; + * if given, it will make the controllers available to directives on the compileNode: + * ``` + * { + * parent: { + * instance: parentControllerInstance + * } + * } + * ``` + * * `futureParentElement` - defines the parent to which the `cloneAttachFn` will add + * the cloned elements; only needed for transcludes that are allowed to contain non html + * elements (e.g. SVG elements). See also the directive.controller property. + * + * Calling the linking function returns the element of the template. It is either the original + * element passed in, or the clone of the element if the `cloneAttachFn` is provided. + * + * After linking the view is not updated until after a call to $digest which typically is done by + * Angular automatically. + * + * If you need access to the bound view, there are two ways to do it: + * + * - If you are not asking the linking function to clone the template, create the DOM element(s) + * before you send them to the compiler and keep this reference around. + * ```js + * var element = $compile('

{{total}}

')(scope); + * ``` + * + * - if on the other hand, you need the element to be cloned, the view reference from the original + * example would not point to the clone, but rather to the original template that was cloned. In + * this case, you can access the clone via the cloneAttachFn: + * ```js + * var templateElement = angular.element('

{{total}}

'), + * scope = ....; + * + * var clonedElement = $compile(templateElement)(scope, function(clonedElement, scope) { + * //attach the clone to DOM document at the right place + * }); + * + * //now we have reference to the cloned DOM via `clonedElement` + * ``` + * + * + * For information on how the compiler works, see the + * {@link guide/compiler Angular HTML Compiler} section of the Developer Guide. + */ + +var $compileMinErr = minErr('$compile'); + +/** + * @ngdoc provider + * @name $compileProvider + * + * @description + */ +$CompileProvider.$inject = ['$provide', '$$sanitizeUriProvider']; +function $CompileProvider($provide, $$sanitizeUriProvider) { + var hasDirectives = {}, + Suffix = 'Directive', + COMMENT_DIRECTIVE_REGEXP = /^\s*directive\:\s*([\w\-]+)\s+(.*)$/, + CLASS_DIRECTIVE_REGEXP = /(([\w\-]+)(?:\:([^;]+))?;?)/, + ALL_OR_NOTHING_ATTRS = makeMap('ngSrc,ngSrcset,src,srcset'), + REQUIRE_PREFIX_REGEXP = /^(?:(\^\^?)?(\?)?(\^\^?)?)?/; + + // Ref: http://developers.whatwg.org/webappapis.html#event-handler-idl-attributes + // The assumption is that future DOM event attribute names will begin with + // 'on' and be composed of only English letters. + var EVENT_HANDLER_ATTR_REGEXP = /^(on[a-z]+|formaction)$/; + var bindingCache = createMap(); + + function parseIsolateBindings(scope, directiveName, isController) { + var LOCAL_REGEXP = /^\s*([@&]|=(\*?))(\??)\s*(\w*)\s*$/; + + var bindings = {}; + + forEach(scope, function(definition, scopeName) { + if (definition in bindingCache) { + bindings[scopeName] = bindingCache[definition]; + return; + } + var match = definition.match(LOCAL_REGEXP); + + if (!match) { + throw $compileMinErr('iscp', + "Invalid {3} for directive '{0}'." + + " Definition: {... {1}: '{2}' ...}", + directiveName, scopeName, definition, + (isController ? "controller bindings definition" : + "isolate scope definition")); + } + + bindings[scopeName] = { + mode: match[1][0], + collection: match[2] === '*', + optional: match[3] === '?', + attrName: match[4] || scopeName + }; + if (match[4]) { + bindingCache[definition] = bindings[scopeName]; + } + }); + + return bindings; + } + + function parseDirectiveBindings(directive, directiveName) { + var bindings = { + isolateScope: null, + bindToController: null + }; + if (isObject(directive.scope)) { + if (directive.bindToController === true) { + bindings.bindToController = parseIsolateBindings(directive.scope, + directiveName, true); + bindings.isolateScope = {}; + } else { + bindings.isolateScope = parseIsolateBindings(directive.scope, + directiveName, false); + } + } + if (isObject(directive.bindToController)) { + bindings.bindToController = + parseIsolateBindings(directive.bindToController, directiveName, true); + } + if (isObject(bindings.bindToController)) { + var controller = directive.controller; + var controllerAs = directive.controllerAs; + if (!controller) { + // There is no controller, there may or may not be a controllerAs property + throw $compileMinErr('noctrl', + "Cannot bind to controller without directive '{0}'s controller.", + directiveName); + } else if (!identifierForController(controller, controllerAs)) { + // There is a controller, but no identifier or controllerAs property + throw $compileMinErr('noident', + "Cannot bind to controller without identifier for directive '{0}'.", + directiveName); + } + } + return bindings; + } + + function assertValidDirectiveName(name) { + var letter = name.charAt(0); + if (!letter || letter !== lowercase(letter)) { + throw $compileMinErr('baddir', "Directive name '{0}' is invalid. The first character must be a lowercase letter", name); + } + if (name !== name.trim()) { + throw $compileMinErr('baddir', + "Directive name '{0}' is invalid. The name should not contain leading or trailing whitespaces", + name); + } + } + + /** + * @ngdoc method + * @name $compileProvider#directive + * @kind function + * + * @description + * Register a new directive with the compiler. + * + * @param {string|Object} name Name of the directive in camel-case (i.e. ngBind which + * will match as ng-bind), or an object map of directives where the keys are the + * names and the values are the factories. + * @param {Function|Array} directiveFactory An injectable directive factory function. See + * {@link guide/directive} for more info. + * @returns {ng.$compileProvider} Self for chaining. + */ + this.directive = function registerDirective(name, directiveFactory) { + assertNotHasOwnProperty(name, 'directive'); + if (isString(name)) { + assertValidDirectiveName(name); + assertArg(directiveFactory, 'directiveFactory'); + if (!hasDirectives.hasOwnProperty(name)) { + hasDirectives[name] = []; + $provide.factory(name + Suffix, ['$injector', '$exceptionHandler', + function($injector, $exceptionHandler) { + var directives = []; + forEach(hasDirectives[name], function(directiveFactory, index) { + try { + var directive = $injector.invoke(directiveFactory); + if (isFunction(directive)) { + directive = { compile: valueFn(directive) }; + } else if (!directive.compile && directive.link) { + directive.compile = valueFn(directive.link); + } + directive.priority = directive.priority || 0; + directive.index = index; + directive.name = directive.name || name; + directive.require = directive.require || (directive.controller && directive.name); + directive.restrict = directive.restrict || 'EA'; + directive.$$moduleName = directiveFactory.$$moduleName; + directives.push(directive); + } catch (e) { + $exceptionHandler(e); + } + }); + return directives; + }]); + } + hasDirectives[name].push(directiveFactory); + } else { + forEach(name, reverseParams(registerDirective)); + } + return this; + }; + + + /** + * @ngdoc method + * @name $compileProvider#aHrefSanitizationWhitelist + * @kind function + * + * @description + * Retrieves or overrides the default regular expression that is used for whitelisting of safe + * urls during a[href] sanitization. + * + * The sanitization is a security measure aimed at preventing XSS attacks via html links. + * + * Any url about to be assigned to a[href] via data-binding is first normalized and turned into + * an absolute url. Afterwards, the url is matched against the `aHrefSanitizationWhitelist` + * regular expression. If a match is found, the original url is written into the dom. Otherwise, + * the absolute url is prefixed with `'unsafe:'` string and only then is it written into the DOM. + * + * @param {RegExp=} regexp New regexp to whitelist urls with. + * @returns {RegExp|ng.$compileProvider} Current RegExp if called without value or self for + * chaining otherwise. + */ + this.aHrefSanitizationWhitelist = function(regexp) { + if (isDefined(regexp)) { + $$sanitizeUriProvider.aHrefSanitizationWhitelist(regexp); + return this; + } else { + return $$sanitizeUriProvider.aHrefSanitizationWhitelist(); + } + }; + + + /** + * @ngdoc method + * @name $compileProvider#imgSrcSanitizationWhitelist + * @kind function + * + * @description + * Retrieves or overrides the default regular expression that is used for whitelisting of safe + * urls during img[src] sanitization. + * + * The sanitization is a security measure aimed at prevent XSS attacks via html links. + * + * Any url about to be assigned to img[src] via data-binding is first normalized and turned into + * an absolute url. Afterwards, the url is matched against the `imgSrcSanitizationWhitelist` + * regular expression. If a match is found, the original url is written into the dom. Otherwise, + * the absolute url is prefixed with `'unsafe:'` string and only then is it written into the DOM. + * + * @param {RegExp=} regexp New regexp to whitelist urls with. + * @returns {RegExp|ng.$compileProvider} Current RegExp if called without value or self for + * chaining otherwise. + */ + this.imgSrcSanitizationWhitelist = function(regexp) { + if (isDefined(regexp)) { + $$sanitizeUriProvider.imgSrcSanitizationWhitelist(regexp); + return this; + } else { + return $$sanitizeUriProvider.imgSrcSanitizationWhitelist(); + } + }; + + /** + * @ngdoc method + * @name $compileProvider#debugInfoEnabled + * + * @param {boolean=} enabled update the debugInfoEnabled state if provided, otherwise just return the + * current debugInfoEnabled state + * @returns {*} current value if used as getter or itself (chaining) if used as setter + * + * @kind function + * + * @description + * Call this method to enable/disable various debug runtime information in the compiler such as adding + * binding information and a reference to the current scope on to DOM elements. + * If enabled, the compiler will add the following to DOM elements that have been bound to the scope + * * `ng-binding` CSS class + * * `$binding` data property containing an array of the binding expressions + * + * You may want to disable this in production for a significant performance boost. See + * {@link guide/production#disabling-debug-data Disabling Debug Data} for more. + * + * The default value is true. + */ + var debugInfoEnabled = true; + this.debugInfoEnabled = function(enabled) { + if (isDefined(enabled)) { + debugInfoEnabled = enabled; + return this; + } + return debugInfoEnabled; + }; + + this.$get = [ + '$injector', '$interpolate', '$exceptionHandler', '$templateRequest', '$parse', + '$controller', '$rootScope', '$sce', '$animate', '$$sanitizeUri', + function($injector, $interpolate, $exceptionHandler, $templateRequest, $parse, + $controller, $rootScope, $sce, $animate, $$sanitizeUri) { + + var Attributes = function(element, attributesToCopy) { + if (attributesToCopy) { + var keys = Object.keys(attributesToCopy); + var i, l, key; + + for (i = 0, l = keys.length; i < l; i++) { + key = keys[i]; + this[key] = attributesToCopy[key]; + } + } else { + this.$attr = {}; + } + + this.$$element = element; + }; + + Attributes.prototype = { + /** + * @ngdoc method + * @name $compile.directive.Attributes#$normalize + * @kind function + * + * @description + * Converts an attribute name (e.g. dash/colon/underscore-delimited string, optionally prefixed with `x-` or + * `data-`) to its normalized, camelCase form. + * + * Also there is special case for Moz prefix starting with upper case letter. + * + * For further information check out the guide on {@link guide/directive#matching-directives Matching Directives} + * + * @param {string} name Name to normalize + */ + $normalize: directiveNormalize, + + + /** + * @ngdoc method + * @name $compile.directive.Attributes#$addClass + * @kind function + * + * @description + * Adds the CSS class value specified by the classVal parameter to the element. If animations + * are enabled then an animation will be triggered for the class addition. + * + * @param {string} classVal The className value that will be added to the element + */ + $addClass: function(classVal) { + if (classVal && classVal.length > 0) { + $animate.addClass(this.$$element, classVal); + } + }, + + /** + * @ngdoc method + * @name $compile.directive.Attributes#$removeClass + * @kind function + * + * @description + * Removes the CSS class value specified by the classVal parameter from the element. If + * animations are enabled then an animation will be triggered for the class removal. + * + * @param {string} classVal The className value that will be removed from the element + */ + $removeClass: function(classVal) { + if (classVal && classVal.length > 0) { + $animate.removeClass(this.$$element, classVal); + } + }, + + /** + * @ngdoc method + * @name $compile.directive.Attributes#$updateClass + * @kind function + * + * @description + * Adds and removes the appropriate CSS class values to the element based on the difference + * between the new and old CSS class values (specified as newClasses and oldClasses). + * + * @param {string} newClasses The current CSS className value + * @param {string} oldClasses The former CSS className value + */ + $updateClass: function(newClasses, oldClasses) { + var toAdd = tokenDifference(newClasses, oldClasses); + if (toAdd && toAdd.length) { + $animate.addClass(this.$$element, toAdd); + } + + var toRemove = tokenDifference(oldClasses, newClasses); + if (toRemove && toRemove.length) { + $animate.removeClass(this.$$element, toRemove); + } + }, + + /** + * Set a normalized attribute on the element in a way such that all directives + * can share the attribute. This function properly handles boolean attributes. + * @param {string} key Normalized key. (ie ngAttribute) + * @param {string|boolean} value The value to set. If `null` attribute will be deleted. + * @param {boolean=} writeAttr If false, does not write the value to DOM element attribute. + * Defaults to true. + * @param {string=} attrName Optional none normalized name. Defaults to key. + */ + $set: function(key, value, writeAttr, attrName) { + // TODO: decide whether or not to throw an error if "class" + //is set through this function since it may cause $updateClass to + //become unstable. + + var node = this.$$element[0], + booleanKey = getBooleanAttrName(node, key), + aliasedKey = getAliasedAttrName(key), + observer = key, + nodeName; + + if (booleanKey) { + this.$$element.prop(key, value); + attrName = booleanKey; + } else if (aliasedKey) { + this[aliasedKey] = value; + observer = aliasedKey; + } + + this[key] = value; + + // translate normalized key to actual key + if (attrName) { + this.$attr[key] = attrName; + } else { + attrName = this.$attr[key]; + if (!attrName) { + this.$attr[key] = attrName = snake_case(key, '-'); + } + } + + nodeName = nodeName_(this.$$element); + + if ((nodeName === 'a' && key === 'href') || + (nodeName === 'img' && key === 'src')) { + // sanitize a[href] and img[src] values + this[key] = value = $$sanitizeUri(value, key === 'src'); + } else if (nodeName === 'img' && key === 'srcset') { + // sanitize img[srcset] values + var result = ""; + + // first check if there are spaces because it's not the same pattern + var trimmedSrcset = trim(value); + // ( 999x ,| 999w ,| ,|, ) + var srcPattern = /(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/; + var pattern = /\s/.test(trimmedSrcset) ? srcPattern : /(,)/; + + // split srcset into tuple of uri and descriptor except for the last item + var rawUris = trimmedSrcset.split(pattern); + + // for each tuples + var nbrUrisWith2parts = Math.floor(rawUris.length / 2); + for (var i = 0; i < nbrUrisWith2parts; i++) { + var innerIdx = i * 2; + // sanitize the uri + result += $$sanitizeUri(trim(rawUris[innerIdx]), true); + // add the descriptor + result += (" " + trim(rawUris[innerIdx + 1])); + } + + // split the last item into uri and descriptor + var lastTuple = trim(rawUris[i * 2]).split(/\s/); + + // sanitize the last uri + result += $$sanitizeUri(trim(lastTuple[0]), true); + + // and add the last descriptor if any + if (lastTuple.length === 2) { + result += (" " + trim(lastTuple[1])); + } + this[key] = value = result; + } + + if (writeAttr !== false) { + if (value === null || isUndefined(value)) { + this.$$element.removeAttr(attrName); + } else { + this.$$element.attr(attrName, value); + } + } + + // fire observers + var $$observers = this.$$observers; + $$observers && forEach($$observers[observer], function(fn) { + try { + fn(value); + } catch (e) { + $exceptionHandler(e); + } + }); + }, + + + /** + * @ngdoc method + * @name $compile.directive.Attributes#$observe + * @kind function + * + * @description + * Observes an interpolated attribute. + * + * The observer function will be invoked once during the next `$digest` following + * compilation. The observer is then invoked whenever the interpolated value + * changes. + * + * @param {string} key Normalized key. (ie ngAttribute) . + * @param {function(interpolatedValue)} fn Function that will be called whenever + the interpolated value of the attribute changes. + * See the {@link guide/interpolation#how-text-and-attribute-bindings-work Interpolation + * guide} for more info. + * @returns {function()} Returns a deregistration function for this observer. + */ + $observe: function(key, fn) { + var attrs = this, + $$observers = (attrs.$$observers || (attrs.$$observers = createMap())), + listeners = ($$observers[key] || ($$observers[key] = [])); + + listeners.push(fn); + $rootScope.$evalAsync(function() { + if (!listeners.$$inter && attrs.hasOwnProperty(key) && !isUndefined(attrs[key])) { + // no one registered attribute interpolation function, so lets call it manually + fn(attrs[key]); + } + }); + + return function() { + arrayRemove(listeners, fn); + }; + } + }; + + + function safeAddClass($element, className) { + try { + $element.addClass(className); + } catch (e) { + // ignore, since it means that we are trying to set class on + // SVG element, where class name is read-only. + } + } + + + var startSymbol = $interpolate.startSymbol(), + endSymbol = $interpolate.endSymbol(), + denormalizeTemplate = (startSymbol == '{{' && endSymbol == '}}') + ? identity + : function denormalizeTemplate(template) { + return template.replace(/\{\{/g, startSymbol).replace(/}}/g, endSymbol); + }, + NG_ATTR_BINDING = /^ngAttr[A-Z]/; + var MULTI_ELEMENT_DIR_RE = /^(.+)Start$/; + + compile.$$addBindingInfo = debugInfoEnabled ? function $$addBindingInfo($element, binding) { + var bindings = $element.data('$binding') || []; + + if (isArray(binding)) { + bindings = bindings.concat(binding); + } else { + bindings.push(binding); + } + + $element.data('$binding', bindings); + } : noop; + + compile.$$addBindingClass = debugInfoEnabled ? function $$addBindingClass($element) { + safeAddClass($element, 'ng-binding'); + } : noop; + + compile.$$addScopeInfo = debugInfoEnabled ? function $$addScopeInfo($element, scope, isolated, noTemplate) { + var dataName = isolated ? (noTemplate ? '$isolateScopeNoTemplate' : '$isolateScope') : '$scope'; + $element.data(dataName, scope); + } : noop; + + compile.$$addScopeClass = debugInfoEnabled ? function $$addScopeClass($element, isolated) { + safeAddClass($element, isolated ? 'ng-isolate-scope' : 'ng-scope'); + } : noop; + + return compile; + + //================================ + + function compile($compileNodes, transcludeFn, maxPriority, ignoreDirective, + previousCompileContext) { + if (!($compileNodes instanceof jqLite)) { + // jquery always rewraps, whereas we need to preserve the original selector so that we can + // modify it. + $compileNodes = jqLite($compileNodes); + } + + var NOT_EMPTY = /\S+/; + + // We can not compile top level text elements since text nodes can be merged and we will + // not be able to attach scope data to them, so we will wrap them in + for (var i = 0, len = $compileNodes.length; i < len; i++) { + var domNode = $compileNodes[i]; + + if (domNode.nodeType === NODE_TYPE_TEXT && domNode.nodeValue.match(NOT_EMPTY) /* non-empty */) { + jqLiteWrapNode(domNode, $compileNodes[i] = document.createElement('span')); + } + } + + var compositeLinkFn = + compileNodes($compileNodes, transcludeFn, $compileNodes, + maxPriority, ignoreDirective, previousCompileContext); + compile.$$addScopeClass($compileNodes); + var namespace = null; + return function publicLinkFn(scope, cloneConnectFn, options) { + assertArg(scope, 'scope'); + + if (previousCompileContext && previousCompileContext.needsNewScope) { + // A parent directive did a replace and a directive on this element asked + // for transclusion, which caused us to lose a layer of element on which + // we could hold the new transclusion scope, so we will create it manually + // here. + scope = scope.$parent.$new(); + } + + options = options || {}; + var parentBoundTranscludeFn = options.parentBoundTranscludeFn, + transcludeControllers = options.transcludeControllers, + futureParentElement = options.futureParentElement; + + // When `parentBoundTranscludeFn` is passed, it is a + // `controllersBoundTransclude` function (it was previously passed + // as `transclude` to directive.link) so we must unwrap it to get + // its `boundTranscludeFn` + if (parentBoundTranscludeFn && parentBoundTranscludeFn.$$boundTransclude) { + parentBoundTranscludeFn = parentBoundTranscludeFn.$$boundTransclude; + } + + if (!namespace) { + namespace = detectNamespaceForChildElements(futureParentElement); + } + var $linkNode; + if (namespace !== 'html') { + // When using a directive with replace:true and templateUrl the $compileNodes + // (or a child element inside of them) + // might change, so we need to recreate the namespace adapted compileNodes + // for call to the link function. + // Note: This will already clone the nodes... + $linkNode = jqLite( + wrapTemplate(namespace, jqLite('
').append($compileNodes).html()) + ); + } else if (cloneConnectFn) { + // important!!: we must call our jqLite.clone() since the jQuery one is trying to be smart + // and sometimes changes the structure of the DOM. + $linkNode = JQLitePrototype.clone.call($compileNodes); + } else { + $linkNode = $compileNodes; + } + + if (transcludeControllers) { + for (var controllerName in transcludeControllers) { + $linkNode.data('$' + controllerName + 'Controller', transcludeControllers[controllerName].instance); + } + } + + compile.$$addScopeInfo($linkNode, scope); + + if (cloneConnectFn) cloneConnectFn($linkNode, scope); + if (compositeLinkFn) compositeLinkFn(scope, $linkNode, $linkNode, parentBoundTranscludeFn); + return $linkNode; + }; + } + + function detectNamespaceForChildElements(parentElement) { + // TODO: Make this detect MathML as well... + var node = parentElement && parentElement[0]; + if (!node) { + return 'html'; + } else { + return nodeName_(node) !== 'foreignobject' && node.toString().match(/SVG/) ? 'svg' : 'html'; + } + } + + /** + * Compile function matches each node in nodeList against the directives. Once all directives + * for a particular node are collected their compile functions are executed. The compile + * functions return values - the linking functions - are combined into a composite linking + * function, which is the a linking function for the node. + * + * @param {NodeList} nodeList an array of nodes or NodeList to compile + * @param {function(angular.Scope, cloneAttachFn=)} transcludeFn A linking function, where the + * scope argument is auto-generated to the new child of the transcluded parent scope. + * @param {DOMElement=} $rootElement If the nodeList is the root of the compilation tree then + * the rootElement must be set the jqLite collection of the compile root. This is + * needed so that the jqLite collection items can be replaced with widgets. + * @param {number=} maxPriority Max directive priority. + * @returns {Function} A composite linking function of all of the matched directives or null. + */ + function compileNodes(nodeList, transcludeFn, $rootElement, maxPriority, ignoreDirective, + previousCompileContext) { + var linkFns = [], + attrs, directives, nodeLinkFn, childNodes, childLinkFn, linkFnFound, nodeLinkFnFound; + + for (var i = 0; i < nodeList.length; i++) { + attrs = new Attributes(); + + // we must always refer to nodeList[i] since the nodes can be replaced underneath us. + directives = collectDirectives(nodeList[i], [], attrs, i === 0 ? maxPriority : undefined, + ignoreDirective); + + nodeLinkFn = (directives.length) + ? applyDirectivesToNode(directives, nodeList[i], attrs, transcludeFn, $rootElement, + null, [], [], previousCompileContext) + : null; + + if (nodeLinkFn && nodeLinkFn.scope) { + compile.$$addScopeClass(attrs.$$element); + } + + childLinkFn = (nodeLinkFn && nodeLinkFn.terminal || + !(childNodes = nodeList[i].childNodes) || + !childNodes.length) + ? null + : compileNodes(childNodes, + nodeLinkFn ? ( + (nodeLinkFn.transcludeOnThisElement || !nodeLinkFn.templateOnThisElement) + && nodeLinkFn.transclude) : transcludeFn); + + if (nodeLinkFn || childLinkFn) { + linkFns.push(i, nodeLinkFn, childLinkFn); + linkFnFound = true; + nodeLinkFnFound = nodeLinkFnFound || nodeLinkFn; + } + + //use the previous context only for the first element in the virtual group + previousCompileContext = null; + } + + // return a linking function if we have found anything, null otherwise + return linkFnFound ? compositeLinkFn : null; + + function compositeLinkFn(scope, nodeList, $rootElement, parentBoundTranscludeFn) { + var nodeLinkFn, childLinkFn, node, childScope, i, ii, idx, childBoundTranscludeFn; + var stableNodeList; + + + if (nodeLinkFnFound) { + // copy nodeList so that if a nodeLinkFn removes or adds an element at this DOM level our + // offsets don't get screwed up + var nodeListLength = nodeList.length; + stableNodeList = new Array(nodeListLength); + + // create a sparse array by only copying the elements which have a linkFn + for (i = 0; i < linkFns.length; i+=3) { + idx = linkFns[i]; + stableNodeList[idx] = nodeList[idx]; + } + } else { + stableNodeList = nodeList; + } + + for (i = 0, ii = linkFns.length; i < ii;) { + node = stableNodeList[linkFns[i++]]; + nodeLinkFn = linkFns[i++]; + childLinkFn = linkFns[i++]; + + if (nodeLinkFn) { + if (nodeLinkFn.scope) { + childScope = scope.$new(); + compile.$$addScopeInfo(jqLite(node), childScope); + } else { + childScope = scope; + } + + if (nodeLinkFn.transcludeOnThisElement) { + childBoundTranscludeFn = createBoundTranscludeFn( + scope, nodeLinkFn.transclude, parentBoundTranscludeFn); + + } else if (!nodeLinkFn.templateOnThisElement && parentBoundTranscludeFn) { + childBoundTranscludeFn = parentBoundTranscludeFn; + + } else if (!parentBoundTranscludeFn && transcludeFn) { + childBoundTranscludeFn = createBoundTranscludeFn(scope, transcludeFn); + + } else { + childBoundTranscludeFn = null; + } + + nodeLinkFn(childLinkFn, childScope, node, $rootElement, childBoundTranscludeFn); + + } else if (childLinkFn) { + childLinkFn(scope, node.childNodes, undefined, parentBoundTranscludeFn); + } + } + } + } + + function createBoundTranscludeFn(scope, transcludeFn, previousBoundTranscludeFn) { + + var boundTranscludeFn = function(transcludedScope, cloneFn, controllers, futureParentElement, containingScope) { + + if (!transcludedScope) { + transcludedScope = scope.$new(false, containingScope); + transcludedScope.$$transcluded = true; + } + + return transcludeFn(transcludedScope, cloneFn, { + parentBoundTranscludeFn: previousBoundTranscludeFn, + transcludeControllers: controllers, + futureParentElement: futureParentElement + }); + }; + + return boundTranscludeFn; + } + + /** + * Looks for directives on the given node and adds them to the directive collection which is + * sorted. + * + * @param node Node to search. + * @param directives An array to which the directives are added to. This array is sorted before + * the function returns. + * @param attrs The shared attrs object which is used to populate the normalized attributes. + * @param {number=} maxPriority Max directive priority. + */ + function collectDirectives(node, directives, attrs, maxPriority, ignoreDirective) { + var nodeType = node.nodeType, + attrsMap = attrs.$attr, + match, + className; + + switch (nodeType) { + case NODE_TYPE_ELEMENT: /* Element */ + // use the node name: + addDirective(directives, + directiveNormalize(nodeName_(node)), 'E', maxPriority, ignoreDirective); + + // iterate over the attributes + for (var attr, name, nName, ngAttrName, value, isNgAttr, nAttrs = node.attributes, + j = 0, jj = nAttrs && nAttrs.length; j < jj; j++) { + var attrStartName = false; + var attrEndName = false; + + attr = nAttrs[j]; + name = attr.name; + value = trim(attr.value); + + // support ngAttr attribute binding + ngAttrName = directiveNormalize(name); + if (isNgAttr = NG_ATTR_BINDING.test(ngAttrName)) { + name = name.replace(PREFIX_REGEXP, '') + .substr(8).replace(/_(.)/g, function(match, letter) { + return letter.toUpperCase(); + }); + } + + var multiElementMatch = ngAttrName.match(MULTI_ELEMENT_DIR_RE); + if (multiElementMatch && directiveIsMultiElement(multiElementMatch[1])) { + attrStartName = name; + attrEndName = name.substr(0, name.length - 5) + 'end'; + name = name.substr(0, name.length - 6); + } + + nName = directiveNormalize(name.toLowerCase()); + attrsMap[nName] = name; + if (isNgAttr || !attrs.hasOwnProperty(nName)) { + attrs[nName] = value; + if (getBooleanAttrName(node, nName)) { + attrs[nName] = true; // presence means true + } + } + addAttrInterpolateDirective(node, directives, value, nName, isNgAttr); + addDirective(directives, nName, 'A', maxPriority, ignoreDirective, attrStartName, + attrEndName); + } + + // use class as directive + className = node.className; + if (isObject(className)) { + // Maybe SVGAnimatedString + className = className.animVal; + } + if (isString(className) && className !== '') { + while (match = CLASS_DIRECTIVE_REGEXP.exec(className)) { + nName = directiveNormalize(match[2]); + if (addDirective(directives, nName, 'C', maxPriority, ignoreDirective)) { + attrs[nName] = trim(match[3]); + } + className = className.substr(match.index + match[0].length); + } + } + break; + case NODE_TYPE_TEXT: /* Text Node */ + if (msie === 11) { + // Workaround for #11781 + while (node.parentNode && node.nextSibling && node.nextSibling.nodeType === NODE_TYPE_TEXT) { + node.nodeValue = node.nodeValue + node.nextSibling.nodeValue; + node.parentNode.removeChild(node.nextSibling); + } + } + addTextInterpolateDirective(directives, node.nodeValue); + break; + case NODE_TYPE_COMMENT: /* Comment */ + try { + match = COMMENT_DIRECTIVE_REGEXP.exec(node.nodeValue); + if (match) { + nName = directiveNormalize(match[1]); + if (addDirective(directives, nName, 'M', maxPriority, ignoreDirective)) { + attrs[nName] = trim(match[2]); + } + } + } catch (e) { + // turns out that under some circumstances IE9 throws errors when one attempts to read + // comment's node value. + // Just ignore it and continue. (Can't seem to reproduce in test case.) + } + break; + } + + directives.sort(byPriority); + return directives; + } + + /** + * Given a node with an directive-start it collects all of the siblings until it finds + * directive-end. + * @param node + * @param attrStart + * @param attrEnd + * @returns {*} + */ + function groupScan(node, attrStart, attrEnd) { + var nodes = []; + var depth = 0; + if (attrStart && node.hasAttribute && node.hasAttribute(attrStart)) { + do { + if (!node) { + throw $compileMinErr('uterdir', + "Unterminated attribute, found '{0}' but no matching '{1}' found.", + attrStart, attrEnd); + } + if (node.nodeType == NODE_TYPE_ELEMENT) { + if (node.hasAttribute(attrStart)) depth++; + if (node.hasAttribute(attrEnd)) depth--; + } + nodes.push(node); + node = node.nextSibling; + } while (depth > 0); + } else { + nodes.push(node); + } + + return jqLite(nodes); + } + + /** + * Wrapper for linking function which converts normal linking function into a grouped + * linking function. + * @param linkFn + * @param attrStart + * @param attrEnd + * @returns {Function} + */ + function groupElementsLinkFnWrapper(linkFn, attrStart, attrEnd) { + return function(scope, element, attrs, controllers, transcludeFn) { + element = groupScan(element[0], attrStart, attrEnd); + return linkFn(scope, element, attrs, controllers, transcludeFn); + }; + } + + /** + * Once the directives have been collected, their compile functions are executed. This method + * is responsible for inlining directive templates as well as terminating the application + * of the directives if the terminal directive has been reached. + * + * @param {Array} directives Array of collected directives to execute their compile function. + * this needs to be pre-sorted by priority order. + * @param {Node} compileNode The raw DOM node to apply the compile functions to + * @param {Object} templateAttrs The shared attribute function + * @param {function(angular.Scope, cloneAttachFn=)} transcludeFn A linking function, where the + * scope argument is auto-generated to the new + * child of the transcluded parent scope. + * @param {JQLite} jqCollection If we are working on the root of the compile tree then this + * argument has the root jqLite array so that we can replace nodes + * on it. + * @param {Object=} originalReplaceDirective An optional directive that will be ignored when + * compiling the transclusion. + * @param {Array.} preLinkFns + * @param {Array.} postLinkFns + * @param {Object} previousCompileContext Context used for previous compilation of the current + * node + * @returns {Function} linkFn + */ + function applyDirectivesToNode(directives, compileNode, templateAttrs, transcludeFn, + jqCollection, originalReplaceDirective, preLinkFns, postLinkFns, + previousCompileContext) { + previousCompileContext = previousCompileContext || {}; + + var terminalPriority = -Number.MAX_VALUE, + newScopeDirective = previousCompileContext.newScopeDirective, + controllerDirectives = previousCompileContext.controllerDirectives, + newIsolateScopeDirective = previousCompileContext.newIsolateScopeDirective, + templateDirective = previousCompileContext.templateDirective, + nonTlbTranscludeDirective = previousCompileContext.nonTlbTranscludeDirective, + hasTranscludeDirective = false, + hasTemplate = false, + hasElementTranscludeDirective = previousCompileContext.hasElementTranscludeDirective, + $compileNode = templateAttrs.$$element = jqLite(compileNode), + directive, + directiveName, + $template, + replaceDirective = originalReplaceDirective, + childTranscludeFn = transcludeFn, + linkFn, + directiveValue; + + // executes all directives on the current element + for (var i = 0, ii = directives.length; i < ii; i++) { + directive = directives[i]; + var attrStart = directive.$$start; + var attrEnd = directive.$$end; + + // collect multiblock sections + if (attrStart) { + $compileNode = groupScan(compileNode, attrStart, attrEnd); + } + $template = undefined; + + if (terminalPriority > directive.priority) { + break; // prevent further processing of directives + } + + if (directiveValue = directive.scope) { + + // skip the check for directives with async templates, we'll check the derived sync + // directive when the template arrives + if (!directive.templateUrl) { + if (isObject(directiveValue)) { + // This directive is trying to add an isolated scope. + // Check that there is no scope of any kind already + assertNoDuplicate('new/isolated scope', newIsolateScopeDirective || newScopeDirective, + directive, $compileNode); + newIsolateScopeDirective = directive; + } else { + // This directive is trying to add a child scope. + // Check that there is no isolated scope already + assertNoDuplicate('new/isolated scope', newIsolateScopeDirective, directive, + $compileNode); + } + } + + newScopeDirective = newScopeDirective || directive; + } + + directiveName = directive.name; + + if (!directive.templateUrl && directive.controller) { + directiveValue = directive.controller; + controllerDirectives = controllerDirectives || createMap(); + assertNoDuplicate("'" + directiveName + "' controller", + controllerDirectives[directiveName], directive, $compileNode); + controllerDirectives[directiveName] = directive; + } + + if (directiveValue = directive.transclude) { + hasTranscludeDirective = true; + + // Special case ngIf and ngRepeat so that we don't complain about duplicate transclusion. + // This option should only be used by directives that know how to safely handle element transclusion, + // where the transcluded nodes are added or replaced after linking. + if (!directive.$$tlb) { + assertNoDuplicate('transclusion', nonTlbTranscludeDirective, directive, $compileNode); + nonTlbTranscludeDirective = directive; + } + + if (directiveValue == 'element') { + hasElementTranscludeDirective = true; + terminalPriority = directive.priority; + $template = $compileNode; + $compileNode = templateAttrs.$$element = + jqLite(document.createComment(' ' + directiveName + ': ' + + templateAttrs[directiveName] + ' ')); + compileNode = $compileNode[0]; + replaceWith(jqCollection, sliceArgs($template), compileNode); + + childTranscludeFn = compile($template, transcludeFn, terminalPriority, + replaceDirective && replaceDirective.name, { + // Don't pass in: + // - controllerDirectives - otherwise we'll create duplicates controllers + // - newIsolateScopeDirective or templateDirective - combining templates with + // element transclusion doesn't make sense. + // + // We need only nonTlbTranscludeDirective so that we prevent putting transclusion + // on the same element more than once. + nonTlbTranscludeDirective: nonTlbTranscludeDirective + }); + } else { + $template = jqLite(jqLiteClone(compileNode)).contents(); + $compileNode.empty(); // clear contents + childTranscludeFn = compile($template, transcludeFn, undefined, + undefined, { needsNewScope: directive.$$isolateScope || directive.$$newScope}); + } + } + + if (directive.template) { + hasTemplate = true; + assertNoDuplicate('template', templateDirective, directive, $compileNode); + templateDirective = directive; + + directiveValue = (isFunction(directive.template)) + ? directive.template($compileNode, templateAttrs) + : directive.template; + + directiveValue = denormalizeTemplate(directiveValue); + + if (directive.replace) { + replaceDirective = directive; + if (jqLiteIsTextNode(directiveValue)) { + $template = []; + } else { + $template = removeComments(wrapTemplate(directive.templateNamespace, trim(directiveValue))); + } + compileNode = $template[0]; + + if ($template.length != 1 || compileNode.nodeType !== NODE_TYPE_ELEMENT) { + throw $compileMinErr('tplrt', + "Template for directive '{0}' must have exactly one root element. {1}", + directiveName, ''); + } + + replaceWith(jqCollection, $compileNode, compileNode); + + var newTemplateAttrs = {$attr: {}}; + + // combine directives from the original node and from the template: + // - take the array of directives for this element + // - split it into two parts, those that already applied (processed) and those that weren't (unprocessed) + // - collect directives from the template and sort them by priority + // - combine directives as: processed + template + unprocessed + var templateDirectives = collectDirectives(compileNode, [], newTemplateAttrs); + var unprocessedDirectives = directives.splice(i + 1, directives.length - (i + 1)); + + if (newIsolateScopeDirective || newScopeDirective) { + // The original directive caused the current element to be replaced but this element + // also needs to have a new scope, so we need to tell the template directives + // that they would need to get their scope from further up, if they require transclusion + markDirectiveScope(templateDirectives, newIsolateScopeDirective, newScopeDirective); + } + directives = directives.concat(templateDirectives).concat(unprocessedDirectives); + mergeTemplateAttributes(templateAttrs, newTemplateAttrs); + + ii = directives.length; + } else { + $compileNode.html(directiveValue); + } + } + + if (directive.templateUrl) { + hasTemplate = true; + assertNoDuplicate('template', templateDirective, directive, $compileNode); + templateDirective = directive; + + if (directive.replace) { + replaceDirective = directive; + } + + nodeLinkFn = compileTemplateUrl(directives.splice(i, directives.length - i), $compileNode, + templateAttrs, jqCollection, hasTranscludeDirective && childTranscludeFn, preLinkFns, postLinkFns, { + controllerDirectives: controllerDirectives, + newScopeDirective: (newScopeDirective !== directive) && newScopeDirective, + newIsolateScopeDirective: newIsolateScopeDirective, + templateDirective: templateDirective, + nonTlbTranscludeDirective: nonTlbTranscludeDirective + }); + ii = directives.length; + } else if (directive.compile) { + try { + linkFn = directive.compile($compileNode, templateAttrs, childTranscludeFn); + if (isFunction(linkFn)) { + addLinkFns(null, linkFn, attrStart, attrEnd); + } else if (linkFn) { + addLinkFns(linkFn.pre, linkFn.post, attrStart, attrEnd); + } + } catch (e) { + $exceptionHandler(e, startingTag($compileNode)); + } + } + + if (directive.terminal) { + nodeLinkFn.terminal = true; + terminalPriority = Math.max(terminalPriority, directive.priority); + } + + } + + nodeLinkFn.scope = newScopeDirective && newScopeDirective.scope === true; + nodeLinkFn.transcludeOnThisElement = hasTranscludeDirective; + nodeLinkFn.templateOnThisElement = hasTemplate; + nodeLinkFn.transclude = childTranscludeFn; + + previousCompileContext.hasElementTranscludeDirective = hasElementTranscludeDirective; + + // might be normal or delayed nodeLinkFn depending on if templateUrl is present + return nodeLinkFn; + + //////////////////// + + function addLinkFns(pre, post, attrStart, attrEnd) { + if (pre) { + if (attrStart) pre = groupElementsLinkFnWrapper(pre, attrStart, attrEnd); + pre.require = directive.require; + pre.directiveName = directiveName; + if (newIsolateScopeDirective === directive || directive.$$isolateScope) { + pre = cloneAndAnnotateFn(pre, {isolateScope: true}); + } + preLinkFns.push(pre); + } + if (post) { + if (attrStart) post = groupElementsLinkFnWrapper(post, attrStart, attrEnd); + post.require = directive.require; + post.directiveName = directiveName; + if (newIsolateScopeDirective === directive || directive.$$isolateScope) { + post = cloneAndAnnotateFn(post, {isolateScope: true}); + } + postLinkFns.push(post); + } + } + + + function getControllers(directiveName, require, $element, elementControllers) { + var value; + + if (isString(require)) { + var match = require.match(REQUIRE_PREFIX_REGEXP); + var name = require.substring(match[0].length); + var inheritType = match[1] || match[3]; + var optional = match[2] === '?'; + + //If only parents then start at the parent element + if (inheritType === '^^') { + $element = $element.parent(); + //Otherwise attempt getting the controller from elementControllers in case + //the element is transcluded (and has no data) and to avoid .data if possible + } else { + value = elementControllers && elementControllers[name]; + value = value && value.instance; + } + + if (!value) { + var dataName = '$' + name + 'Controller'; + value = inheritType ? $element.inheritedData(dataName) : $element.data(dataName); + } + + if (!value && !optional) { + throw $compileMinErr('ctreq', + "Controller '{0}', required by directive '{1}', can't be found!", + name, directiveName); + } + } else if (isArray(require)) { + value = []; + for (var i = 0, ii = require.length; i < ii; i++) { + value[i] = getControllers(directiveName, require[i], $element, elementControllers); + } + } + + return value || null; + } + + function setupControllers($element, attrs, transcludeFn, controllerDirectives, isolateScope, scope) { + var elementControllers = createMap(); + for (var controllerKey in controllerDirectives) { + var directive = controllerDirectives[controllerKey]; + var locals = { + $scope: directive === newIsolateScopeDirective || directive.$$isolateScope ? isolateScope : scope, + $element: $element, + $attrs: attrs, + $transclude: transcludeFn + }; + + var controller = directive.controller; + if (controller == '@') { + controller = attrs[directive.name]; + } + + var controllerInstance = $controller(controller, locals, true, directive.controllerAs); + + // For directives with element transclusion the element is a comment. + // In this case .data will not attach any data. + // Instead, we save the controllers for the element in a local hash and attach to .data + // later, once we have the actual element. + elementControllers[directive.name] = controllerInstance; + $element.data('$' + directive.name + 'Controller', controllerInstance.instance); + } + return elementControllers; + } + + function nodeLinkFn(childLinkFn, scope, linkNode, $rootElement, boundTranscludeFn) { + var linkFn, isolateScope, controllerScope, elementControllers, transcludeFn, $element, + attrs, removeScopeBindingWatches, removeControllerBindingWatches; + + if (compileNode === linkNode) { + attrs = templateAttrs; + $element = templateAttrs.$$element; + } else { + $element = jqLite(linkNode); + attrs = new Attributes($element, templateAttrs); + } + + controllerScope = scope; + if (newIsolateScopeDirective) { + isolateScope = scope.$new(true); + } else if (newScopeDirective) { + controllerScope = scope.$parent; + } + + if (boundTranscludeFn) { + // track `boundTranscludeFn` so it can be unwrapped if `transcludeFn` + // is later passed as `parentBoundTranscludeFn` to `publicLinkFn` + transcludeFn = controllersBoundTransclude; + transcludeFn.$$boundTransclude = boundTranscludeFn; + } + + if (controllerDirectives) { + elementControllers = setupControllers($element, attrs, transcludeFn, controllerDirectives, isolateScope, scope); + } + + if (newIsolateScopeDirective) { + // Initialize isolate scope bindings for new isolate scope directive. + compile.$$addScopeInfo($element, isolateScope, true, !(templateDirective && (templateDirective === newIsolateScopeDirective || + templateDirective === newIsolateScopeDirective.$$originalDirective))); + compile.$$addScopeClass($element, true); + isolateScope.$$isolateBindings = + newIsolateScopeDirective.$$isolateBindings; + removeScopeBindingWatches = initializeDirectiveBindings(scope, attrs, isolateScope, + isolateScope.$$isolateBindings, + newIsolateScopeDirective); + if (removeScopeBindingWatches) { + isolateScope.$on('$destroy', removeScopeBindingWatches); + } + } + + // Initialize bindToController bindings + for (var name in elementControllers) { + var controllerDirective = controllerDirectives[name]; + var controller = elementControllers[name]; + var bindings = controllerDirective.$$bindings.bindToController; + + if (controller.identifier && bindings) { + removeControllerBindingWatches = + initializeDirectiveBindings(controllerScope, attrs, controller.instance, bindings, controllerDirective); + } + + var controllerResult = controller(); + if (controllerResult !== controller.instance) { + // If the controller constructor has a return value, overwrite the instance + // from setupControllers + controller.instance = controllerResult; + $element.data('$' + controllerDirective.name + 'Controller', controllerResult); + removeControllerBindingWatches && removeControllerBindingWatches(); + removeControllerBindingWatches = + initializeDirectiveBindings(controllerScope, attrs, controller.instance, bindings, controllerDirective); + } + } + + // PRELINKING + for (i = 0, ii = preLinkFns.length; i < ii; i++) { + linkFn = preLinkFns[i]; + invokeLinkFn(linkFn, + linkFn.isolateScope ? isolateScope : scope, + $element, + attrs, + linkFn.require && getControllers(linkFn.directiveName, linkFn.require, $element, elementControllers), + transcludeFn + ); + } + + // RECURSION + // We only pass the isolate scope, if the isolate directive has a template, + // otherwise the child elements do not belong to the isolate directive. + var scopeToChild = scope; + if (newIsolateScopeDirective && (newIsolateScopeDirective.template || newIsolateScopeDirective.templateUrl === null)) { + scopeToChild = isolateScope; + } + childLinkFn && childLinkFn(scopeToChild, linkNode.childNodes, undefined, boundTranscludeFn); + + // POSTLINKING + for (i = postLinkFns.length - 1; i >= 0; i--) { + linkFn = postLinkFns[i]; + invokeLinkFn(linkFn, + linkFn.isolateScope ? isolateScope : scope, + $element, + attrs, + linkFn.require && getControllers(linkFn.directiveName, linkFn.require, $element, elementControllers), + transcludeFn + ); + } + + // This is the function that is injected as `$transclude`. + // Note: all arguments are optional! + function controllersBoundTransclude(scope, cloneAttachFn, futureParentElement) { + var transcludeControllers; + + // No scope passed in: + if (!isScope(scope)) { + futureParentElement = cloneAttachFn; + cloneAttachFn = scope; + scope = undefined; + } + + if (hasElementTranscludeDirective) { + transcludeControllers = elementControllers; + } + if (!futureParentElement) { + futureParentElement = hasElementTranscludeDirective ? $element.parent() : $element; + } + return boundTranscludeFn(scope, cloneAttachFn, transcludeControllers, futureParentElement, scopeToChild); + } + } + } + + // Depending upon the context in which a directive finds itself it might need to have a new isolated + // or child scope created. For instance: + // * if the directive has been pulled into a template because another directive with a higher priority + // asked for element transclusion + // * if the directive itself asks for transclusion but it is at the root of a template and the original + // element was replaced. See https://github.com/angular/angular.js/issues/12936 + function markDirectiveScope(directives, isolateScope, newScope) { + for (var j = 0, jj = directives.length; j < jj; j++) { + directives[j] = inherit(directives[j], {$$isolateScope: isolateScope, $$newScope: newScope}); + } + } + + /** + * looks up the directive and decorates it with exception handling and proper parameters. We + * call this the boundDirective. + * + * @param {string} name name of the directive to look up. + * @param {string} location The directive must be found in specific format. + * String containing any of theses characters: + * + * * `E`: element name + * * `A': attribute + * * `C`: class + * * `M`: comment + * @returns {boolean} true if directive was added. + */ + function addDirective(tDirectives, name, location, maxPriority, ignoreDirective, startAttrName, + endAttrName) { + if (name === ignoreDirective) return null; + var match = null; + if (hasDirectives.hasOwnProperty(name)) { + for (var directive, directives = $injector.get(name + Suffix), + i = 0, ii = directives.length; i < ii; i++) { + try { + directive = directives[i]; + if ((isUndefined(maxPriority) || maxPriority > directive.priority) && + directive.restrict.indexOf(location) != -1) { + if (startAttrName) { + directive = inherit(directive, {$$start: startAttrName, $$end: endAttrName}); + } + if (!directive.$$bindings) { + var bindings = directive.$$bindings = + parseDirectiveBindings(directive, directive.name); + if (isObject(bindings.isolateScope)) { + directive.$$isolateBindings = bindings.isolateScope; + } + } + tDirectives.push(directive); + match = directive; + } + } catch (e) { $exceptionHandler(e); } + } + } + return match; + } + + + /** + * looks up the directive and returns true if it is a multi-element directive, + * and therefore requires DOM nodes between -start and -end markers to be grouped + * together. + * + * @param {string} name name of the directive to look up. + * @returns true if directive was registered as multi-element. + */ + function directiveIsMultiElement(name) { + if (hasDirectives.hasOwnProperty(name)) { + for (var directive, directives = $injector.get(name + Suffix), + i = 0, ii = directives.length; i < ii; i++) { + directive = directives[i]; + if (directive.multiElement) { + return true; + } + } + } + return false; + } + + /** + * When the element is replaced with HTML template then the new attributes + * on the template need to be merged with the existing attributes in the DOM. + * The desired effect is to have both of the attributes present. + * + * @param {object} dst destination attributes (original DOM) + * @param {object} src source attributes (from the directive template) + */ + function mergeTemplateAttributes(dst, src) { + var srcAttr = src.$attr, + dstAttr = dst.$attr, + $element = dst.$$element; + + // reapply the old attributes to the new element + forEach(dst, function(value, key) { + if (key.charAt(0) != '$') { + if (src[key] && src[key] !== value) { + value += (key === 'style' ? ';' : ' ') + src[key]; + } + dst.$set(key, value, true, srcAttr[key]); + } + }); + + // copy the new attributes on the old attrs object + forEach(src, function(value, key) { + if (key == 'class') { + safeAddClass($element, value); + dst['class'] = (dst['class'] ? dst['class'] + ' ' : '') + value; + } else if (key == 'style') { + $element.attr('style', $element.attr('style') + ';' + value); + dst['style'] = (dst['style'] ? dst['style'] + ';' : '') + value; + // `dst` will never contain hasOwnProperty as DOM parser won't let it. + // You will get an "InvalidCharacterError: DOM Exception 5" error if you + // have an attribute like "has-own-property" or "data-has-own-property", etc. + } else if (key.charAt(0) != '$' && !dst.hasOwnProperty(key)) { + dst[key] = value; + dstAttr[key] = srcAttr[key]; + } + }); + } + + + function compileTemplateUrl(directives, $compileNode, tAttrs, + $rootElement, childTranscludeFn, preLinkFns, postLinkFns, previousCompileContext) { + var linkQueue = [], + afterTemplateNodeLinkFn, + afterTemplateChildLinkFn, + beforeTemplateCompileNode = $compileNode[0], + origAsyncDirective = directives.shift(), + derivedSyncDirective = inherit(origAsyncDirective, { + templateUrl: null, transclude: null, replace: null, $$originalDirective: origAsyncDirective + }), + templateUrl = (isFunction(origAsyncDirective.templateUrl)) + ? origAsyncDirective.templateUrl($compileNode, tAttrs) + : origAsyncDirective.templateUrl, + templateNamespace = origAsyncDirective.templateNamespace; + + $compileNode.empty(); + + $templateRequest(templateUrl) + .then(function(content) { + var compileNode, tempTemplateAttrs, $template, childBoundTranscludeFn; + + content = denormalizeTemplate(content); + + if (origAsyncDirective.replace) { + if (jqLiteIsTextNode(content)) { + $template = []; + } else { + $template = removeComments(wrapTemplate(templateNamespace, trim(content))); + } + compileNode = $template[0]; + + if ($template.length != 1 || compileNode.nodeType !== NODE_TYPE_ELEMENT) { + throw $compileMinErr('tplrt', + "Template for directive '{0}' must have exactly one root element. {1}", + origAsyncDirective.name, templateUrl); + } + + tempTemplateAttrs = {$attr: {}}; + replaceWith($rootElement, $compileNode, compileNode); + var templateDirectives = collectDirectives(compileNode, [], tempTemplateAttrs); + + if (isObject(origAsyncDirective.scope)) { + // the original directive that caused the template to be loaded async required + // an isolate scope + markDirectiveScope(templateDirectives, true); + } + directives = templateDirectives.concat(directives); + mergeTemplateAttributes(tAttrs, tempTemplateAttrs); + } else { + compileNode = beforeTemplateCompileNode; + $compileNode.html(content); + } + + directives.unshift(derivedSyncDirective); + + afterTemplateNodeLinkFn = applyDirectivesToNode(directives, compileNode, tAttrs, + childTranscludeFn, $compileNode, origAsyncDirective, preLinkFns, postLinkFns, + previousCompileContext); + forEach($rootElement, function(node, i) { + if (node == compileNode) { + $rootElement[i] = $compileNode[0]; + } + }); + afterTemplateChildLinkFn = compileNodes($compileNode[0].childNodes, childTranscludeFn); + + while (linkQueue.length) { + var scope = linkQueue.shift(), + beforeTemplateLinkNode = linkQueue.shift(), + linkRootElement = linkQueue.shift(), + boundTranscludeFn = linkQueue.shift(), + linkNode = $compileNode[0]; + + if (scope.$$destroyed) continue; + + if (beforeTemplateLinkNode !== beforeTemplateCompileNode) { + var oldClasses = beforeTemplateLinkNode.className; + + if (!(previousCompileContext.hasElementTranscludeDirective && + origAsyncDirective.replace)) { + // it was cloned therefore we have to clone as well. + linkNode = jqLiteClone(compileNode); + } + replaceWith(linkRootElement, jqLite(beforeTemplateLinkNode), linkNode); + + // Copy in CSS classes from original node + safeAddClass(jqLite(linkNode), oldClasses); + } + if (afterTemplateNodeLinkFn.transcludeOnThisElement) { + childBoundTranscludeFn = createBoundTranscludeFn(scope, afterTemplateNodeLinkFn.transclude, boundTranscludeFn); + } else { + childBoundTranscludeFn = boundTranscludeFn; + } + afterTemplateNodeLinkFn(afterTemplateChildLinkFn, scope, linkNode, $rootElement, + childBoundTranscludeFn); + } + linkQueue = null; + }); + + return function delayedNodeLinkFn(ignoreChildLinkFn, scope, node, rootElement, boundTranscludeFn) { + var childBoundTranscludeFn = boundTranscludeFn; + if (scope.$$destroyed) return; + if (linkQueue) { + linkQueue.push(scope, + node, + rootElement, + childBoundTranscludeFn); + } else { + if (afterTemplateNodeLinkFn.transcludeOnThisElement) { + childBoundTranscludeFn = createBoundTranscludeFn(scope, afterTemplateNodeLinkFn.transclude, boundTranscludeFn); + } + afterTemplateNodeLinkFn(afterTemplateChildLinkFn, scope, node, rootElement, childBoundTranscludeFn); + } + }; + } + + + /** + * Sorting function for bound directives. + */ + function byPriority(a, b) { + var diff = b.priority - a.priority; + if (diff !== 0) return diff; + if (a.name !== b.name) return (a.name < b.name) ? -1 : 1; + return a.index - b.index; + } + + function assertNoDuplicate(what, previousDirective, directive, element) { + + function wrapModuleNameIfDefined(moduleName) { + return moduleName ? + (' (module: ' + moduleName + ')') : + ''; + } + + if (previousDirective) { + throw $compileMinErr('multidir', 'Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}', + previousDirective.name, wrapModuleNameIfDefined(previousDirective.$$moduleName), + directive.name, wrapModuleNameIfDefined(directive.$$moduleName), what, startingTag(element)); + } + } + + + function addTextInterpolateDirective(directives, text) { + var interpolateFn = $interpolate(text, true); + if (interpolateFn) { + directives.push({ + priority: 0, + compile: function textInterpolateCompileFn(templateNode) { + var templateNodeParent = templateNode.parent(), + hasCompileParent = !!templateNodeParent.length; + + // When transcluding a template that has bindings in the root + // we don't have a parent and thus need to add the class during linking fn. + if (hasCompileParent) compile.$$addBindingClass(templateNodeParent); + + return function textInterpolateLinkFn(scope, node) { + var parent = node.parent(); + if (!hasCompileParent) compile.$$addBindingClass(parent); + compile.$$addBindingInfo(parent, interpolateFn.expressions); + scope.$watch(interpolateFn, function interpolateFnWatchAction(value) { + node[0].nodeValue = value; + }); + }; + } + }); + } + } + + + function wrapTemplate(type, template) { + type = lowercase(type || 'html'); + switch (type) { + case 'svg': + case 'math': + var wrapper = document.createElement('div'); + wrapper.innerHTML = '<' + type + '>' + template + ''; + return wrapper.childNodes[0].childNodes; + default: + return template; + } + } + + + function getTrustedContext(node, attrNormalizedName) { + if (attrNormalizedName == "srcdoc") { + return $sce.HTML; + } + var tag = nodeName_(node); + // maction[xlink:href] can source SVG. It's not limited to . + if (attrNormalizedName == "xlinkHref" || + (tag == "form" && attrNormalizedName == "action") || + (tag != "img" && (attrNormalizedName == "src" || + attrNormalizedName == "ngSrc"))) { + return $sce.RESOURCE_URL; + } + } + + + function addAttrInterpolateDirective(node, directives, value, name, allOrNothing) { + var trustedContext = getTrustedContext(node, name); + allOrNothing = ALL_OR_NOTHING_ATTRS[name] || allOrNothing; + + var interpolateFn = $interpolate(value, true, trustedContext, allOrNothing); + + // no interpolation found -> ignore + if (!interpolateFn) return; + + + if (name === "multiple" && nodeName_(node) === "select") { + throw $compileMinErr("selmulti", + "Binding to the 'multiple' attribute is not supported. Element: {0}", + startingTag(node)); + } + + directives.push({ + priority: 100, + compile: function() { + return { + pre: function attrInterpolatePreLinkFn(scope, element, attr) { + var $$observers = (attr.$$observers || (attr.$$observers = createMap())); + + if (EVENT_HANDLER_ATTR_REGEXP.test(name)) { + throw $compileMinErr('nodomevents', + "Interpolations for HTML DOM event attributes are disallowed. Please use the " + + "ng- versions (such as ng-click instead of onclick) instead."); + } + + // If the attribute has changed since last $interpolate()ed + var newValue = attr[name]; + if (newValue !== value) { + // we need to interpolate again since the attribute value has been updated + // (e.g. by another directive's compile function) + // ensure unset/empty values make interpolateFn falsy + interpolateFn = newValue && $interpolate(newValue, true, trustedContext, allOrNothing); + value = newValue; + } + + // if attribute was updated so that there is no interpolation going on we don't want to + // register any observers + if (!interpolateFn) return; + + // initialize attr object so that it's ready in case we need the value for isolate + // scope initialization, otherwise the value would not be available from isolate + // directive's linking fn during linking phase + attr[name] = interpolateFn(scope); + + ($$observers[name] || ($$observers[name] = [])).$$inter = true; + (attr.$$observers && attr.$$observers[name].$$scope || scope). + $watch(interpolateFn, function interpolateFnWatchAction(newValue, oldValue) { + //special case for class attribute addition + removal + //so that class changes can tap into the animation + //hooks provided by the $animate service. Be sure to + //skip animations when the first digest occurs (when + //both the new and the old values are the same) since + //the CSS classes are the non-interpolated values + if (name === 'class' && newValue != oldValue) { + attr.$updateClass(newValue, oldValue); + } else { + attr.$set(name, newValue); + } + }); + } + }; + } + }); + } + + + /** + * This is a special jqLite.replaceWith, which can replace items which + * have no parents, provided that the containing jqLite collection is provided. + * + * @param {JqLite=} $rootElement The root of the compile tree. Used so that we can replace nodes + * in the root of the tree. + * @param {JqLite} elementsToRemove The jqLite element which we are going to replace. We keep + * the shell, but replace its DOM node reference. + * @param {Node} newNode The new DOM node. + */ + function replaceWith($rootElement, elementsToRemove, newNode) { + var firstElementToRemove = elementsToRemove[0], + removeCount = elementsToRemove.length, + parent = firstElementToRemove.parentNode, + i, ii; + + if ($rootElement) { + for (i = 0, ii = $rootElement.length; i < ii; i++) { + if ($rootElement[i] == firstElementToRemove) { + $rootElement[i++] = newNode; + for (var j = i, j2 = j + removeCount - 1, + jj = $rootElement.length; + j < jj; j++, j2++) { + if (j2 < jj) { + $rootElement[j] = $rootElement[j2]; + } else { + delete $rootElement[j]; + } + } + $rootElement.length -= removeCount - 1; + + // If the replaced element is also the jQuery .context then replace it + // .context is a deprecated jQuery api, so we should set it only when jQuery set it + // http://api.jquery.com/context/ + if ($rootElement.context === firstElementToRemove) { + $rootElement.context = newNode; + } + break; + } + } + } + + if (parent) { + parent.replaceChild(newNode, firstElementToRemove); + } + + // TODO(perf): what's this document fragment for? is it needed? can we at least reuse it? + var fragment = document.createDocumentFragment(); + fragment.appendChild(firstElementToRemove); + + if (jqLite.hasData(firstElementToRemove)) { + // Copy over user data (that includes Angular's $scope etc.). Don't copy private + // data here because there's no public interface in jQuery to do that and copying over + // event listeners (which is the main use of private data) wouldn't work anyway. + jqLite.data(newNode, jqLite.data(firstElementToRemove)); + + // Remove data of the replaced element. We cannot just call .remove() + // on the element it since that would deallocate scope that is needed + // for the new node. Instead, remove the data "manually". + if (!jQuery) { + delete jqLite.cache[firstElementToRemove[jqLite.expando]]; + } else { + // jQuery 2.x doesn't expose the data storage. Use jQuery.cleanData to clean up after + // the replaced element. The cleanData version monkey-patched by Angular would cause + // the scope to be trashed and we do need the very same scope to work with the new + // element. However, we cannot just cache the non-patched version and use it here as + // that would break if another library patches the method after Angular does (one + // example is jQuery UI). Instead, set a flag indicating scope destroying should be + // skipped this one time. + skipDestroyOnNextJQueryCleanData = true; + jQuery.cleanData([firstElementToRemove]); + } + } + + for (var k = 1, kk = elementsToRemove.length; k < kk; k++) { + var element = elementsToRemove[k]; + jqLite(element).remove(); // must do this way to clean up expando + fragment.appendChild(element); + delete elementsToRemove[k]; + } + + elementsToRemove[0] = newNode; + elementsToRemove.length = 1; + } + + + function cloneAndAnnotateFn(fn, annotation) { + return extend(function() { return fn.apply(null, arguments); }, fn, annotation); + } + + + function invokeLinkFn(linkFn, scope, $element, attrs, controllers, transcludeFn) { + try { + linkFn(scope, $element, attrs, controllers, transcludeFn); + } catch (e) { + $exceptionHandler(e, startingTag($element)); + } + } + + + // Set up $watches for isolate scope and controller bindings. This process + // only occurs for isolate scopes and new scopes with controllerAs. + function initializeDirectiveBindings(scope, attrs, destination, bindings, directive) { + var removeWatchCollection = []; + forEach(bindings, function(definition, scopeName) { + var attrName = definition.attrName, + optional = definition.optional, + mode = definition.mode, // @, =, or & + lastValue, + parentGet, parentSet, compare; + + switch (mode) { + + case '@': + if (!optional && !hasOwnProperty.call(attrs, attrName)) { + destination[scopeName] = attrs[attrName] = void 0; + } + attrs.$observe(attrName, function(value) { + if (isString(value)) { + destination[scopeName] = value; + } + }); + attrs.$$observers[attrName].$$scope = scope; + lastValue = attrs[attrName]; + if (isString(lastValue)) { + // If the attribute has been provided then we trigger an interpolation to ensure + // the value is there for use in the link fn + destination[scopeName] = $interpolate(lastValue)(scope); + } else if (isBoolean(lastValue)) { + // If the attributes is one of the BOOLEAN_ATTR then Angular will have converted + // the value to boolean rather than a string, so we special case this situation + destination[scopeName] = lastValue; + } + break; + + case '=': + if (!hasOwnProperty.call(attrs, attrName)) { + if (optional) break; + attrs[attrName] = void 0; + } + if (optional && !attrs[attrName]) break; + + parentGet = $parse(attrs[attrName]); + if (parentGet.literal) { + compare = equals; + } else { + compare = function(a, b) { return a === b || (a !== a && b !== b); }; + } + parentSet = parentGet.assign || function() { + // reset the change, or we will throw this exception on every $digest + lastValue = destination[scopeName] = parentGet(scope); + throw $compileMinErr('nonassign', + "Expression '{0}' in attribute '{1}' used with directive '{2}' is non-assignable!", + attrs[attrName], attrName, directive.name); + }; + lastValue = destination[scopeName] = parentGet(scope); + var parentValueWatch = function parentValueWatch(parentValue) { + if (!compare(parentValue, destination[scopeName])) { + // we are out of sync and need to copy + if (!compare(parentValue, lastValue)) { + // parent changed and it has precedence + destination[scopeName] = parentValue; + } else { + // if the parent can be assigned then do so + parentSet(scope, parentValue = destination[scopeName]); + } + } + return lastValue = parentValue; + }; + parentValueWatch.$stateful = true; + var removeWatch; + if (definition.collection) { + removeWatch = scope.$watchCollection(attrs[attrName], parentValueWatch); + } else { + removeWatch = scope.$watch($parse(attrs[attrName], parentValueWatch), null, parentGet.literal); + } + removeWatchCollection.push(removeWatch); + break; + + case '&': + // Don't assign Object.prototype method to scope + parentGet = attrs.hasOwnProperty(attrName) ? $parse(attrs[attrName]) : noop; + + // Don't assign noop to destination if expression is not valid + if (parentGet === noop && optional) break; + + destination[scopeName] = function(locals) { + return parentGet(scope, locals); + }; + break; + } + }); + + return removeWatchCollection.length && function removeWatches() { + for (var i = 0, ii = removeWatchCollection.length; i < ii; ++i) { + removeWatchCollection[i](); + } + }; + } + }]; +} + +var PREFIX_REGEXP = /^((?:x|data)[\:\-_])/i; +/** + * Converts all accepted directives format into proper directive name. + * @param name Name to normalize + */ +function directiveNormalize(name) { + return camelCase(name.replace(PREFIX_REGEXP, '')); +} + +/** + * @ngdoc type + * @name $compile.directive.Attributes + * + * @description + * A shared object between directive compile / linking functions which contains normalized DOM + * element attributes. The values reflect current binding state `{{ }}`. The normalization is + * needed since all of these are treated as equivalent in Angular: + * + * ``` + * + * ``` + */ + +/** + * @ngdoc property + * @name $compile.directive.Attributes#$attr + * + * @description + * A map of DOM element attribute names to the normalized name. This is + * needed to do reverse lookup from normalized name back to actual name. + */ + + +/** + * @ngdoc method + * @name $compile.directive.Attributes#$set + * @kind function + * + * @description + * Set DOM element attribute value. + * + * + * @param {string} name Normalized element attribute name of the property to modify. The name is + * reverse-translated using the {@link ng.$compile.directive.Attributes#$attr $attr} + * property to the original name. + * @param {string} value Value to set the attribute to. The value can be an interpolated string. + */ + + + +/** + * Closure compiler type information + */ + +function nodesetLinkingFn( + /* angular.Scope */ scope, + /* NodeList */ nodeList, + /* Element */ rootElement, + /* function(Function) */ boundTranscludeFn +) {} + +function directiveLinkingFn( + /* nodesetLinkingFn */ nodesetLinkingFn, + /* angular.Scope */ scope, + /* Node */ node, + /* Element */ rootElement, + /* function(Function) */ boundTranscludeFn +) {} + +function tokenDifference(str1, str2) { + var values = '', + tokens1 = str1.split(/\s+/), + tokens2 = str2.split(/\s+/); + + outer: + for (var i = 0; i < tokens1.length; i++) { + var token = tokens1[i]; + for (var j = 0; j < tokens2.length; j++) { + if (token == tokens2[j]) continue outer; + } + values += (values.length > 0 ? ' ' : '') + token; + } + return values; +} + +function removeComments(jqNodes) { + jqNodes = jqLite(jqNodes); + var i = jqNodes.length; + + if (i <= 1) { + return jqNodes; + } + + while (i--) { + var node = jqNodes[i]; + if (node.nodeType === NODE_TYPE_COMMENT) { + splice.call(jqNodes, i, 1); + } + } + return jqNodes; +} + +var $controllerMinErr = minErr('$controller'); + + +var CNTRL_REG = /^(\S+)(\s+as\s+([\w$]+))?$/; +function identifierForController(controller, ident) { + if (ident && isString(ident)) return ident; + if (isString(controller)) { + var match = CNTRL_REG.exec(controller); + if (match) return match[3]; + } +} + + +/** + * @ngdoc provider + * @name $controllerProvider + * @description + * The {@link ng.$controller $controller service} is used by Angular to create new + * controllers. + * + * This provider allows controller registration via the + * {@link ng.$controllerProvider#register register} method. + */ +function $ControllerProvider() { + var controllers = {}, + globals = false; + + /** + * @ngdoc method + * @name $controllerProvider#register + * @param {string|Object} name Controller name, or an object map of controllers where the keys are + * the names and the values are the constructors. + * @param {Function|Array} constructor Controller constructor fn (optionally decorated with DI + * annotations in the array notation). + */ + this.register = function(name, constructor) { + assertNotHasOwnProperty(name, 'controller'); + if (isObject(name)) { + extend(controllers, name); + } else { + controllers[name] = constructor; + } + }; + + /** + * @ngdoc method + * @name $controllerProvider#allowGlobals + * @description If called, allows `$controller` to find controller constructors on `window` + */ + this.allowGlobals = function() { + globals = true; + }; + + + this.$get = ['$injector', '$window', function($injector, $window) { + + /** + * @ngdoc service + * @name $controller + * @requires $injector + * + * @param {Function|string} constructor If called with a function then it's considered to be the + * controller constructor function. Otherwise it's considered to be a string which is used + * to retrieve the controller constructor using the following steps: + * + * * check if a controller with given name is registered via `$controllerProvider` + * * check if evaluating the string on the current scope returns a constructor + * * if $controllerProvider#allowGlobals, check `window[constructor]` on the global + * `window` object (not recommended) + * + * The string can use the `controller as property` syntax, where the controller instance is published + * as the specified property on the `scope`; the `scope` must be injected into `locals` param for this + * to work correctly. + * + * @param {Object} locals Injection locals for Controller. + * @return {Object} Instance of given controller. + * + * @description + * `$controller` service is responsible for instantiating controllers. + * + * It's just a simple call to {@link auto.$injector $injector}, but extracted into + * a service, so that one can override this service with [BC version](https://gist.github.com/1649788). + */ + return function(expression, locals, later, ident) { + // PRIVATE API: + // param `later` --- indicates that the controller's constructor is invoked at a later time. + // If true, $controller will allocate the object with the correct + // prototype chain, but will not invoke the controller until a returned + // callback is invoked. + // param `ident` --- An optional label which overrides the label parsed from the controller + // expression, if any. + var instance, match, constructor, identifier; + later = later === true; + if (ident && isString(ident)) { + identifier = ident; + } + + if (isString(expression)) { + match = expression.match(CNTRL_REG); + if (!match) { + throw $controllerMinErr('ctrlfmt', + "Badly formed controller string '{0}'. " + + "Must match `__name__ as __id__` or `__name__`.", expression); + } + constructor = match[1], + identifier = identifier || match[3]; + expression = controllers.hasOwnProperty(constructor) + ? controllers[constructor] + : getter(locals.$scope, constructor, true) || + (globals ? getter($window, constructor, true) : undefined); + + assertArgFn(expression, constructor, true); + } + + if (later) { + // Instantiate controller later: + // This machinery is used to create an instance of the object before calling the + // controller's constructor itself. + // + // This allows properties to be added to the controller before the constructor is + // invoked. Primarily, this is used for isolate scope bindings in $compile. + // + // This feature is not intended for use by applications, and is thus not documented + // publicly. + // Object creation: http://jsperf.com/create-constructor/2 + var controllerPrototype = (isArray(expression) ? + expression[expression.length - 1] : expression).prototype; + instance = Object.create(controllerPrototype || null); + + if (identifier) { + addIdentifier(locals, identifier, instance, constructor || expression.name); + } + + var instantiate; + return instantiate = extend(function() { + var result = $injector.invoke(expression, instance, locals, constructor); + if (result !== instance && (isObject(result) || isFunction(result))) { + instance = result; + if (identifier) { + // If result changed, re-assign controllerAs value to scope. + addIdentifier(locals, identifier, instance, constructor || expression.name); + } + } + return instance; + }, { + instance: instance, + identifier: identifier + }); + } + + instance = $injector.instantiate(expression, locals, constructor); + + if (identifier) { + addIdentifier(locals, identifier, instance, constructor || expression.name); + } + + return instance; + }; + + function addIdentifier(locals, identifier, instance, name) { + if (!(locals && isObject(locals.$scope))) { + throw minErr('$controller')('noscp', + "Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.", + name, identifier); + } + + locals.$scope[identifier] = instance; + } + }]; +} + +/** + * @ngdoc service + * @name $document + * @requires $window + * + * @description + * A {@link angular.element jQuery or jqLite} wrapper for the browser's `window.document` object. + * + * @example + + +
+

$document title:

+

window.document title:

+
+
+ + angular.module('documentExample', []) + .controller('ExampleController', ['$scope', '$document', function($scope, $document) { + $scope.title = $document[0].title; + $scope.windowTitle = angular.element(window.document)[0].title; + }]); + +
+ */ +function $DocumentProvider() { + this.$get = ['$window', function(window) { + return jqLite(window.document); + }]; +} + +/** + * @ngdoc service + * @name $exceptionHandler + * @requires ng.$log + * + * @description + * Any uncaught exception in angular expressions is delegated to this service. + * The default implementation simply delegates to `$log.error` which logs it into + * the browser console. + * + * In unit tests, if `angular-mocks.js` is loaded, this service is overridden by + * {@link ngMock.$exceptionHandler mock $exceptionHandler} which aids in testing. + * + * ## Example: + * + * ```js + * angular.module('exceptionOverride', []).factory('$exceptionHandler', function() { + * return function(exception, cause) { + * exception.message += ' (caused by "' + cause + '")'; + * throw exception; + * }; + * }); + * ``` + * + * This example will override the normal action of `$exceptionHandler`, to make angular + * exceptions fail hard when they happen, instead of just logging to the console. + * + *
+ * Note, that code executed in event-listeners (even those registered using jqLite's `on`/`bind` + * methods) does not delegate exceptions to the {@link ng.$exceptionHandler $exceptionHandler} + * (unless executed during a digest). + * + * If you wish, you can manually delegate exceptions, e.g. + * `try { ... } catch(e) { $exceptionHandler(e); }` + * + * @param {Error} exception Exception associated with the error. + * @param {string=} cause optional information about the context in which + * the error was thrown. + * + */ +function $ExceptionHandlerProvider() { + this.$get = ['$log', function($log) { + return function(exception, cause) { + $log.error.apply($log, arguments); + }; + }]; +} + +var $$ForceReflowProvider = function() { + this.$get = ['$document', function($document) { + return function(domNode) { + //the line below will force the browser to perform a repaint so + //that all the animated elements within the animation frame will + //be properly updated and drawn on screen. This is required to + //ensure that the preparation animation is properly flushed so that + //the active state picks up from there. DO NOT REMOVE THIS LINE. + //DO NOT OPTIMIZE THIS LINE. THE MINIFIER WILL REMOVE IT OTHERWISE WHICH + //WILL RESULT IN AN UNPREDICTABLE BUG THAT IS VERY HARD TO TRACK DOWN AND + //WILL TAKE YEARS AWAY FROM YOUR LIFE. + if (domNode) { + if (!domNode.nodeType && domNode instanceof jqLite) { + domNode = domNode[0]; + } + } else { + domNode = $document[0].body; + } + return domNode.offsetWidth + 1; + }; + }]; +}; + +var APPLICATION_JSON = 'application/json'; +var CONTENT_TYPE_APPLICATION_JSON = {'Content-Type': APPLICATION_JSON + ';charset=utf-8'}; +var JSON_START = /^\[|^\{(?!\{)/; +var JSON_ENDS = { + '[': /]$/, + '{': /}$/ +}; +var JSON_PROTECTION_PREFIX = /^\)\]\}',?\n/; +var $httpMinErr = minErr('$http'); +var $httpMinErrLegacyFn = function(method) { + return function() { + throw $httpMinErr('legacy', 'The method `{0}` on the promise returned from `$http` has been disabled.', method); + }; +}; + +function serializeValue(v) { + if (isObject(v)) { + return isDate(v) ? v.toISOString() : toJson(v); + } + return v; +} + + +function $HttpParamSerializerProvider() { + /** + * @ngdoc service + * @name $httpParamSerializer + * @description + * + * Default {@link $http `$http`} params serializer that converts objects to strings + * according to the following rules: + * + * * `{'foo': 'bar'}` results in `foo=bar` + * * `{'foo': Date.now()}` results in `foo=2015-04-01T09%3A50%3A49.262Z` (`toISOString()` and encoded representation of a Date object) + * * `{'foo': ['bar', 'baz']}` results in `foo=bar&foo=baz` (repeated key for each array element) + * * `{'foo': {'bar':'baz'}}` results in `foo=%7B%22bar%22%3A%22baz%22%7D"` (stringified and encoded representation of an object) + * + * Note that serializer will sort the request parameters alphabetically. + * */ + + this.$get = function() { + return function ngParamSerializer(params) { + if (!params) return ''; + var parts = []; + forEachSorted(params, function(value, key) { + if (value === null || isUndefined(value)) return; + if (isArray(value)) { + forEach(value, function(v, k) { + parts.push(encodeUriQuery(key) + '=' + encodeUriQuery(serializeValue(v))); + }); + } else { + parts.push(encodeUriQuery(key) + '=' + encodeUriQuery(serializeValue(value))); + } + }); + + return parts.join('&'); + }; + }; +} + +function $HttpParamSerializerJQLikeProvider() { + /** + * @ngdoc service + * @name $httpParamSerializerJQLike + * @description + * + * Alternative {@link $http `$http`} params serializer that follows + * jQuery's [`param()`](http://api.jquery.com/jquery.param/) method logic. + * The serializer will also sort the params alphabetically. + * + * To use it for serializing `$http` request parameters, set it as the `paramSerializer` property: + * + * ```js + * $http({ + * url: myUrl, + * method: 'GET', + * params: myParams, + * paramSerializer: '$httpParamSerializerJQLike' + * }); + * ``` + * + * It is also possible to set it as the default `paramSerializer` in the + * {@link $httpProvider#defaults `$httpProvider`}. + * + * Additionally, you can inject the serializer and use it explicitly, for example to serialize + * form data for submission: + * + * ```js + * .controller(function($http, $httpParamSerializerJQLike) { + * //... + * + * $http({ + * url: myUrl, + * method: 'POST', + * data: $httpParamSerializerJQLike(myData), + * headers: { + * 'Content-Type': 'application/x-www-form-urlencoded' + * } + * }); + * + * }); + * ``` + * + * */ + this.$get = function() { + return function jQueryLikeParamSerializer(params) { + if (!params) return ''; + var parts = []; + serialize(params, '', true); + return parts.join('&'); + + function serialize(toSerialize, prefix, topLevel) { + if (toSerialize === null || isUndefined(toSerialize)) return; + if (isArray(toSerialize)) { + forEach(toSerialize, function(value, index) { + serialize(value, prefix + '[' + (isObject(value) ? index : '') + ']'); + }); + } else if (isObject(toSerialize) && !isDate(toSerialize)) { + forEachSorted(toSerialize, function(value, key) { + serialize(value, prefix + + (topLevel ? '' : '[') + + key + + (topLevel ? '' : ']')); + }); + } else { + parts.push(encodeUriQuery(prefix) + '=' + encodeUriQuery(serializeValue(toSerialize))); + } + } + }; + }; +} + +function defaultHttpResponseTransform(data, headers) { + if (isString(data)) { + // Strip json vulnerability protection prefix and trim whitespace + var tempData = data.replace(JSON_PROTECTION_PREFIX, '').trim(); + + if (tempData) { + var contentType = headers('Content-Type'); + if ((contentType && (contentType.indexOf(APPLICATION_JSON) === 0)) || isJsonLike(tempData)) { + data = fromJson(tempData); + } + } + } + + return data; +} + +function isJsonLike(str) { + var jsonStart = str.match(JSON_START); + return jsonStart && JSON_ENDS[jsonStart[0]].test(str); +} + +/** + * Parse headers into key value object + * + * @param {string} headers Raw headers as a string + * @returns {Object} Parsed headers as key value object + */ +function parseHeaders(headers) { + var parsed = createMap(), i; + + function fillInParsed(key, val) { + if (key) { + parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; + } + } + + if (isString(headers)) { + forEach(headers.split('\n'), function(line) { + i = line.indexOf(':'); + fillInParsed(lowercase(trim(line.substr(0, i))), trim(line.substr(i + 1))); + }); + } else if (isObject(headers)) { + forEach(headers, function(headerVal, headerKey) { + fillInParsed(lowercase(headerKey), trim(headerVal)); + }); + } + + return parsed; +} + + +/** + * Returns a function that provides access to parsed headers. + * + * Headers are lazy parsed when first requested. + * @see parseHeaders + * + * @param {(string|Object)} headers Headers to provide access to. + * @returns {function(string=)} Returns a getter function which if called with: + * + * - if called with single an argument returns a single header value or null + * - if called with no arguments returns an object containing all headers. + */ +function headersGetter(headers) { + var headersObj; + + return function(name) { + if (!headersObj) headersObj = parseHeaders(headers); + + if (name) { + var value = headersObj[lowercase(name)]; + if (value === void 0) { + value = null; + } + return value; + } + + return headersObj; + }; +} + + +/** + * Chain all given functions + * + * This function is used for both request and response transforming + * + * @param {*} data Data to transform. + * @param {function(string=)} headers HTTP headers getter fn. + * @param {number} status HTTP status code of the response. + * @param {(Function|Array.)} fns Function or an array of functions. + * @returns {*} Transformed data. + */ +function transformData(data, headers, status, fns) { + if (isFunction(fns)) { + return fns(data, headers, status); + } + + forEach(fns, function(fn) { + data = fn(data, headers, status); + }); + + return data; +} + + +function isSuccess(status) { + return 200 <= status && status < 300; +} + + +/** + * @ngdoc provider + * @name $httpProvider + * @description + * Use `$httpProvider` to change the default behavior of the {@link ng.$http $http} service. + * */ +function $HttpProvider() { + /** + * @ngdoc property + * @name $httpProvider#defaults + * @description + * + * Object containing default values for all {@link ng.$http $http} requests. + * + * - **`defaults.cache`** - {boolean|Object} - A boolean value or object created with + * {@link ng.$cacheFactory `$cacheFactory`} to enable or disable caching of HTTP responses + * by default. See {@link $http#caching $http Caching} for more information. + * + * - **`defaults.xsrfCookieName`** - {string} - Name of cookie containing the XSRF token. + * Defaults value is `'XSRF-TOKEN'`. + * + * - **`defaults.xsrfHeaderName`** - {string} - Name of HTTP header to populate with the + * XSRF token. Defaults value is `'X-XSRF-TOKEN'`. + * + * - **`defaults.headers`** - {Object} - Default headers for all $http requests. + * Refer to {@link ng.$http#setting-http-headers $http} for documentation on + * setting default headers. + * - **`defaults.headers.common`** + * - **`defaults.headers.post`** + * - **`defaults.headers.put`** + * - **`defaults.headers.patch`** + * + * + * - **`defaults.paramSerializer`** - `{string|function(Object):string}` - A function + * used to the prepare string representation of request parameters (specified as an object). + * If specified as string, it is interpreted as a function registered with the {@link auto.$injector $injector}. + * Defaults to {@link ng.$httpParamSerializer $httpParamSerializer}. + * + **/ + var defaults = this.defaults = { + // transform incoming response data + transformResponse: [defaultHttpResponseTransform], + + // transform outgoing request data + transformRequest: [function(d) { + return isObject(d) && !isFile(d) && !isBlob(d) && !isFormData(d) ? toJson(d) : d; + }], + + // default headers + headers: { + common: { + 'Accept': 'application/json, text/plain, */*' + }, + post: shallowCopy(CONTENT_TYPE_APPLICATION_JSON), + put: shallowCopy(CONTENT_TYPE_APPLICATION_JSON), + patch: shallowCopy(CONTENT_TYPE_APPLICATION_JSON) + }, + + xsrfCookieName: 'XSRF-TOKEN', + xsrfHeaderName: 'X-XSRF-TOKEN', + + paramSerializer: '$httpParamSerializer' + }; + + var useApplyAsync = false; + /** + * @ngdoc method + * @name $httpProvider#useApplyAsync + * @description + * + * Configure $http service to combine processing of multiple http responses received at around + * the same time via {@link ng.$rootScope.Scope#$applyAsync $rootScope.$applyAsync}. This can result in + * significant performance improvement for bigger applications that make many HTTP requests + * concurrently (common during application bootstrap). + * + * Defaults to false. If no value is specified, returns the current configured value. + * + * @param {boolean=} value If true, when requests are loaded, they will schedule a deferred + * "apply" on the next tick, giving time for subsequent requests in a roughly ~10ms window + * to load and share the same digest cycle. + * + * @returns {boolean|Object} If a value is specified, returns the $httpProvider for chaining. + * otherwise, returns the current configured value. + **/ + this.useApplyAsync = function(value) { + if (isDefined(value)) { + useApplyAsync = !!value; + return this; + } + return useApplyAsync; + }; + + var useLegacyPromise = true; + /** + * @ngdoc method + * @name $httpProvider#useLegacyPromiseExtensions + * @description + * + * Configure `$http` service to return promises without the shorthand methods `success` and `error`. + * This should be used to make sure that applications work without these methods. + * + * Defaults to true. If no value is specified, returns the current configured value. + * + * @param {boolean=} value If true, `$http` will return a promise with the deprecated legacy `success` and `error` methods. + * + * @returns {boolean|Object} If a value is specified, returns the $httpProvider for chaining. + * otherwise, returns the current configured value. + **/ + this.useLegacyPromiseExtensions = function(value) { + if (isDefined(value)) { + useLegacyPromise = !!value; + return this; + } + return useLegacyPromise; + }; + + /** + * @ngdoc property + * @name $httpProvider#interceptors + * @description + * + * Array containing service factories for all synchronous or asynchronous {@link ng.$http $http} + * pre-processing of request or postprocessing of responses. + * + * These service factories are ordered by request, i.e. they are applied in the same order as the + * array, on request, but reverse order, on response. + * + * {@link ng.$http#interceptors Interceptors detailed info} + **/ + var interceptorFactories = this.interceptors = []; + + this.$get = ['$httpBackend', '$$cookieReader', '$cacheFactory', '$rootScope', '$q', '$injector', + function($httpBackend, $$cookieReader, $cacheFactory, $rootScope, $q, $injector) { + + var defaultCache = $cacheFactory('$http'); + + /** + * Make sure that default param serializer is exposed as a function + */ + defaults.paramSerializer = isString(defaults.paramSerializer) ? + $injector.get(defaults.paramSerializer) : defaults.paramSerializer; + + /** + * Interceptors stored in reverse order. Inner interceptors before outer interceptors. + * The reversal is needed so that we can build up the interception chain around the + * server request. + */ + var reversedInterceptors = []; + + forEach(interceptorFactories, function(interceptorFactory) { + reversedInterceptors.unshift(isString(interceptorFactory) + ? $injector.get(interceptorFactory) : $injector.invoke(interceptorFactory)); + }); + + /** + * @ngdoc service + * @kind function + * @name $http + * @requires ng.$httpBackend + * @requires $cacheFactory + * @requires $rootScope + * @requires $q + * @requires $injector + * + * @description + * The `$http` service is a core Angular service that facilitates communication with the remote + * HTTP servers via the browser's [XMLHttpRequest](https://developer.mozilla.org/en/xmlhttprequest) + * object or via [JSONP](http://en.wikipedia.org/wiki/JSONP). + * + * For unit testing applications that use `$http` service, see + * {@link ngMock.$httpBackend $httpBackend mock}. + * + * For a higher level of abstraction, please check out the {@link ngResource.$resource + * $resource} service. + * + * The $http API is based on the {@link ng.$q deferred/promise APIs} exposed by + * the $q service. While for simple usage patterns this doesn't matter much, for advanced usage + * it is important to familiarize yourself with these APIs and the guarantees they provide. + * + * + * ## General usage + * The `$http` service is a function which takes a single argument — a {@link $http#usage configuration object} — + * that is used to generate an HTTP request and returns a {@link ng.$q promise}. + * + * ```js + * // Simple GET request example: + * $http({ + * method: 'GET', + * url: '/someUrl' + * }).then(function successCallback(response) { + * // this callback will be called asynchronously + * // when the response is available + * }, function errorCallback(response) { + * // called asynchronously if an error occurs + * // or server returns response with an error status. + * }); + * ``` + * + * The response object has these properties: + * + * - **data** – `{string|Object}` – The response body transformed with the transform + * functions. + * - **status** – `{number}` – HTTP status code of the response. + * - **headers** – `{function([headerName])}` – Header getter function. + * - **config** – `{Object}` – The configuration object that was used to generate the request. + * - **statusText** – `{string}` – HTTP status text of the response. + * + * A response status code between 200 and 299 is considered a success status and + * will result in the success callback being called. Note that if the response is a redirect, + * XMLHttpRequest will transparently follow it, meaning that the error callback will not be + * called for such responses. + * + * + * ## Shortcut methods + * + * Shortcut methods are also available. All shortcut methods require passing in the URL, and + * request data must be passed in for POST/PUT requests. An optional config can be passed as the + * last argument. + * + * ```js + * $http.get('/someUrl', config).then(successCallback, errorCallback); + * $http.post('/someUrl', data, config).then(successCallback, errorCallback); + * ``` + * + * Complete list of shortcut methods: + * + * - {@link ng.$http#get $http.get} + * - {@link ng.$http#head $http.head} + * - {@link ng.$http#post $http.post} + * - {@link ng.$http#put $http.put} + * - {@link ng.$http#delete $http.delete} + * - {@link ng.$http#jsonp $http.jsonp} + * - {@link ng.$http#patch $http.patch} + * + * + * ## Writing Unit Tests that use $http + * When unit testing (using {@link ngMock ngMock}), it is necessary to call + * {@link ngMock.$httpBackend#flush $httpBackend.flush()} to flush each pending + * request using trained responses. + * + * ``` + * $httpBackend.expectGET(...); + * $http.get(...); + * $httpBackend.flush(); + * ``` + * + * ## Deprecation Notice + *
+ * The `$http` legacy promise methods `success` and `error` have been deprecated. + * Use the standard `then` method instead. + * If {@link $httpProvider#useLegacyPromiseExtensions `$httpProvider.useLegacyPromiseExtensions`} is set to + * `false` then these methods will throw {@link $http:legacy `$http/legacy`} error. + *
+ * + * ## Setting HTTP Headers + * + * The $http service will automatically add certain HTTP headers to all requests. These defaults + * can be fully configured by accessing the `$httpProvider.defaults.headers` configuration + * object, which currently contains this default configuration: + * + * - `$httpProvider.defaults.headers.common` (headers that are common for all requests): + * - `Accept: application/json, text/plain, * / *` + * - `$httpProvider.defaults.headers.post`: (header defaults for POST requests) + * - `Content-Type: application/json` + * - `$httpProvider.defaults.headers.put` (header defaults for PUT requests) + * - `Content-Type: application/json` + * + * To add or overwrite these defaults, simply add or remove a property from these configuration + * objects. To add headers for an HTTP method other than POST or PUT, simply add a new object + * with the lowercased HTTP method name as the key, e.g. + * `$httpProvider.defaults.headers.get = { 'My-Header' : 'value' }`. + * + * The defaults can also be set at runtime via the `$http.defaults` object in the same + * fashion. For example: + * + * ``` + * module.run(function($http) { + * $http.defaults.headers.common.Authorization = 'Basic YmVlcDpib29w' + * }); + * ``` + * + * In addition, you can supply a `headers` property in the config object passed when + * calling `$http(config)`, which overrides the defaults without changing them globally. + * + * To explicitly remove a header automatically added via $httpProvider.defaults.headers on a per request basis, + * Use the `headers` property, setting the desired header to `undefined`. For example: + * + * ```js + * var req = { + * method: 'POST', + * url: 'http://example.com', + * headers: { + * 'Content-Type': undefined + * }, + * data: { test: 'test' } + * } + * + * $http(req).then(function(){...}, function(){...}); + * ``` + * + * ## Transforming Requests and Responses + * + * Both requests and responses can be transformed using transformation functions: `transformRequest` + * and `transformResponse`. These properties can be a single function that returns + * the transformed value (`function(data, headersGetter, status)`) or an array of such transformation functions, + * which allows you to `push` or `unshift` a new transformation function into the transformation chain. + * + *
+ * **Note:** Angular does not make a copy of the `data` parameter before it is passed into the `transformRequest` pipeline. + * That means changes to the properties of `data` are not local to the transform function (since Javascript passes objects by reference). + * For example, when calling `$http.get(url, $scope.myObject)`, modifications to the object's properties in a transformRequest + * function will be reflected on the scope and in any templates where the object is data-bound. + * To prevent his, transform functions should have no side-effects. + * If you need to modify properties, it is recommended to make a copy of the data, or create new object to return. + *
+ * + * ### Default Transformations + * + * The `$httpProvider` provider and `$http` service expose `defaults.transformRequest` and + * `defaults.transformResponse` properties. If a request does not provide its own transformations + * then these will be applied. + * + * You can augment or replace the default transformations by modifying these properties by adding to or + * replacing the array. + * + * Angular provides the following default transformations: + * + * Request transformations (`$httpProvider.defaults.transformRequest` and `$http.defaults.transformRequest`): + * + * - If the `data` property of the request configuration object contains an object, serialize it + * into JSON format. + * + * Response transformations (`$httpProvider.defaults.transformResponse` and `$http.defaults.transformResponse`): + * + * - If XSRF prefix is detected, strip it (see Security Considerations section below). + * - If JSON response is detected, deserialize it using a JSON parser. + * + * + * ### Overriding the Default Transformations Per Request + * + * If you wish override the request/response transformations only for a single request then provide + * `transformRequest` and/or `transformResponse` properties on the configuration object passed + * into `$http`. + * + * Note that if you provide these properties on the config object the default transformations will be + * overwritten. If you wish to augment the default transformations then you must include them in your + * local transformation array. + * + * The following code demonstrates adding a new response transformation to be run after the default response + * transformations have been run. + * + * ```js + * function appendTransform(defaults, transform) { + * + * // We can't guarantee that the default transformation is an array + * defaults = angular.isArray(defaults) ? defaults : [defaults]; + * + * // Append the new transformation to the defaults + * return defaults.concat(transform); + * } + * + * $http({ + * url: '...', + * method: 'GET', + * transformResponse: appendTransform($http.defaults.transformResponse, function(value) { + * return doTransform(value); + * }) + * }); + * ``` + * + * + * ## Caching + * + * {@link ng.$http `$http`} responses are not cached by default. To enable caching, you must + * set the config.cache value or the default cache value to TRUE or to a cache object (created + * with {@link ng.$cacheFactory `$cacheFactory`}). If defined, the value of config.cache takes + * precedence over the default cache value. + * + * In order to: + * * cache all responses - set the default cache value to TRUE or to a cache object + * * cache a specific response - set config.cache value to TRUE or to a cache object + * + * If caching is enabled, but neither the default cache nor config.cache are set to a cache object, + * then the default `$cacheFactory($http)` object is used. + * + * The default cache value can be set by updating the + * {@link ng.$http#defaults `$http.defaults.cache`} property or the + * {@link $httpProvider#defaults `$httpProvider.defaults.cache`} property. + * + * When caching is enabled, {@link ng.$http `$http`} stores the response from the server using + * the relevant cache object. The next time the same request is made, the response is returned + * from the cache without sending a request to the server. + * + * Take note that: + * + * * Only GET and JSONP requests are cached. + * * The cache key is the request URL including search parameters; headers are not considered. + * * Cached responses are returned asynchronously, in the same way as responses from the server. + * * If multiple identical requests are made using the same cache, which is not yet populated, + * one request will be made to the server and remaining requests will return the same response. + * * A cache-control header on the response does not affect if or how responses are cached. + * + * + * ## Interceptors + * + * Before you start creating interceptors, be sure to understand the + * {@link ng.$q $q and deferred/promise APIs}. + * + * For purposes of global error handling, authentication, or any kind of synchronous or + * asynchronous pre-processing of request or postprocessing of responses, it is desirable to be + * able to intercept requests before they are handed to the server and + * responses before they are handed over to the application code that + * initiated these requests. The interceptors leverage the {@link ng.$q + * promise APIs} to fulfill this need for both synchronous and asynchronous pre-processing. + * + * The interceptors are service factories that are registered with the `$httpProvider` by + * adding them to the `$httpProvider.interceptors` array. The factory is called and + * injected with dependencies (if specified) and returns the interceptor. + * + * There are two kinds of interceptors (and two kinds of rejection interceptors): + * + * * `request`: interceptors get called with a http {@link $http#usage config} object. The function is free to + * modify the `config` object or create a new one. The function needs to return the `config` + * object directly, or a promise containing the `config` or a new `config` object. + * * `requestError`: interceptor gets called when a previous interceptor threw an error or + * resolved with a rejection. + * * `response`: interceptors get called with http `response` object. The function is free to + * modify the `response` object or create a new one. The function needs to return the `response` + * object directly, or as a promise containing the `response` or a new `response` object. + * * `responseError`: interceptor gets called when a previous interceptor threw an error or + * resolved with a rejection. + * + * + * ```js + * // register the interceptor as a service + * $provide.factory('myHttpInterceptor', function($q, dependency1, dependency2) { + * return { + * // optional method + * 'request': function(config) { + * // do something on success + * return config; + * }, + * + * // optional method + * 'requestError': function(rejection) { + * // do something on error + * if (canRecover(rejection)) { + * return responseOrNewPromise + * } + * return $q.reject(rejection); + * }, + * + * + * + * // optional method + * 'response': function(response) { + * // do something on success + * return response; + * }, + * + * // optional method + * 'responseError': function(rejection) { + * // do something on error + * if (canRecover(rejection)) { + * return responseOrNewPromise + * } + * return $q.reject(rejection); + * } + * }; + * }); + * + * $httpProvider.interceptors.push('myHttpInterceptor'); + * + * + * // alternatively, register the interceptor via an anonymous factory + * $httpProvider.interceptors.push(function($q, dependency1, dependency2) { + * return { + * 'request': function(config) { + * // same as above + * }, + * + * 'response': function(response) { + * // same as above + * } + * }; + * }); + * ``` + * + * ## Security Considerations + * + * When designing web applications, consider security threats from: + * + * - [JSON vulnerability](http://haacked.com/archive/2008/11/20/anatomy-of-a-subtle-json-vulnerability.aspx) + * - [XSRF](http://en.wikipedia.org/wiki/Cross-site_request_forgery) + * + * Both server and the client must cooperate in order to eliminate these threats. Angular comes + * pre-configured with strategies that address these issues, but for this to work backend server + * cooperation is required. + * + * ### JSON Vulnerability Protection + * + * A [JSON vulnerability](http://haacked.com/archive/2008/11/20/anatomy-of-a-subtle-json-vulnerability.aspx) + * allows third party website to turn your JSON resource URL into + * [JSONP](http://en.wikipedia.org/wiki/JSONP) request under some conditions. To + * counter this your server can prefix all JSON requests with following string `")]}',\n"`. + * Angular will automatically strip the prefix before processing it as JSON. + * + * For example if your server needs to return: + * ```js + * ['one','two'] + * ``` + * + * which is vulnerable to attack, your server can return: + * ```js + * )]}', + * ['one','two'] + * ``` + * + * Angular will strip the prefix, before processing the JSON. + * + * + * ### Cross Site Request Forgery (XSRF) Protection + * + * [XSRF](http://en.wikipedia.org/wiki/Cross-site_request_forgery) is an attack technique by + * which the attacker can trick an authenticated user into unknowingly executing actions on your + * website. Angular provides a mechanism to counter XSRF. When performing XHR requests, the + * $http service reads a token from a cookie (by default, `XSRF-TOKEN`) and sets it as an HTTP + * header (`X-XSRF-TOKEN`). Since only JavaScript that runs on your domain could read the + * cookie, your server can be assured that the XHR came from JavaScript running on your domain. + * The header will not be set for cross-domain requests. + * + * To take advantage of this, your server needs to set a token in a JavaScript readable session + * cookie called `XSRF-TOKEN` on the first HTTP GET request. On subsequent XHR requests the + * server can verify that the cookie matches `X-XSRF-TOKEN` HTTP header, and therefore be sure + * that only JavaScript running on your domain could have sent the request. The token must be + * unique for each user and must be verifiable by the server (to prevent the JavaScript from + * making up its own tokens). We recommend that the token is a digest of your site's + * authentication cookie with a [salt](https://en.wikipedia.org/wiki/Salt_(cryptography)) + * for added security. + * + * The name of the headers can be specified using the xsrfHeaderName and xsrfCookieName + * properties of either $httpProvider.defaults at config-time, $http.defaults at run-time, + * or the per-request config object. + * + * In order to prevent collisions in environments where multiple Angular apps share the + * same domain or subdomain, we recommend that each application uses unique cookie name. + * + * @param {object} config Object describing the request to be made and how it should be + * processed. The object has following properties: + * + * - **method** – `{string}` – HTTP method (e.g. 'GET', 'POST', etc) + * - **url** – `{string}` – Absolute or relative URL of the resource that is being requested. + * - **params** – `{Object.}` – Map of strings or objects which will be serialized + * with the `paramSerializer` and appended as GET parameters. + * - **data** – `{string|Object}` – Data to be sent as the request message data. + * - **headers** – `{Object}` – Map of strings or functions which return strings representing + * HTTP headers to send to the server. If the return value of a function is null, the + * header will not be sent. Functions accept a config object as an argument. + * - **xsrfHeaderName** – `{string}` – Name of HTTP header to populate with the XSRF token. + * - **xsrfCookieName** – `{string}` – Name of cookie containing the XSRF token. + * - **transformRequest** – + * `{function(data, headersGetter)|Array.}` – + * transform function or an array of such functions. The transform function takes the http + * request body and headers and returns its transformed (typically serialized) version. + * See {@link ng.$http#overriding-the-default-transformations-per-request + * Overriding the Default Transformations} + * - **transformResponse** – + * `{function(data, headersGetter, status)|Array.}` – + * transform function or an array of such functions. The transform function takes the http + * response body, headers and status and returns its transformed (typically deserialized) version. + * See {@link ng.$http#overriding-the-default-transformations-per-request + * Overriding the Default Transformations} + * - **paramSerializer** - `{string|function(Object):string}` - A function used to + * prepare the string representation of request parameters (specified as an object). + * If specified as string, it is interpreted as function registered with the + * {@link $injector $injector}, which means you can create your own serializer + * by registering it as a {@link auto.$provide#service service}. + * The default serializer is the {@link $httpParamSerializer $httpParamSerializer}; + * alternatively, you can use the {@link $httpParamSerializerJQLike $httpParamSerializerJQLike} + * - **cache** – `{boolean|Object}` – A boolean value or object created with + * {@link ng.$cacheFactory `$cacheFactory`} to enable or disable caching of the HTTP response. + * See {@link $http#caching $http Caching} for more information. + * - **timeout** – `{number|Promise}` – timeout in milliseconds, or {@link ng.$q promise} + * that should abort the request when resolved. + * - **withCredentials** - `{boolean}` - whether to set the `withCredentials` flag on the + * XHR object. See [requests with credentials](https://developer.mozilla.org/docs/Web/HTTP/Access_control_CORS#Requests_with_credentials) + * for more information. + * - **responseType** - `{string}` - see + * [XMLHttpRequest.responseType](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#xmlhttprequest-responsetype). + * + * @returns {HttpPromise} Returns a {@link ng.$q `Promise}` that will be resolved to a response object + * when the request succeeds or fails. + * + * + * @property {Array.} pendingRequests Array of config objects for currently pending + * requests. This is primarily meant to be used for debugging purposes. + * + * + * @example + + +
+ + +
+ + + +
http status code: {{status}}
+
http response data: {{data}}
+
+
+ + angular.module('httpExample', []) + .controller('FetchController', ['$scope', '$http', '$templateCache', + function($scope, $http, $templateCache) { + $scope.method = 'GET'; + $scope.url = 'http-hello.html'; + + $scope.fetch = function() { + $scope.code = null; + $scope.response = null; + + $http({method: $scope.method, url: $scope.url, cache: $templateCache}). + then(function(response) { + $scope.status = response.status; + $scope.data = response.data; + }, function(response) { + $scope.data = response.data || "Request failed"; + $scope.status = response.status; + }); + }; + + $scope.updateModel = function(method, url) { + $scope.method = method; + $scope.url = url; + }; + }]); + + + Hello, $http! + + + var status = element(by.binding('status')); + var data = element(by.binding('data')); + var fetchBtn = element(by.id('fetchbtn')); + var sampleGetBtn = element(by.id('samplegetbtn')); + var sampleJsonpBtn = element(by.id('samplejsonpbtn')); + var invalidJsonpBtn = element(by.id('invalidjsonpbtn')); + + it('should make an xhr GET request', function() { + sampleGetBtn.click(); + fetchBtn.click(); + expect(status.getText()).toMatch('200'); + expect(data.getText()).toMatch(/Hello, \$http!/); + }); + +// Commented out due to flakes. See https://github.com/angular/angular.js/issues/9185 +// it('should make a JSONP request to angularjs.org', function() { +// sampleJsonpBtn.click(); +// fetchBtn.click(); +// expect(status.getText()).toMatch('200'); +// expect(data.getText()).toMatch(/Super Hero!/); +// }); + + it('should make JSONP request to invalid URL and invoke the error handler', + function() { + invalidJsonpBtn.click(); + fetchBtn.click(); + expect(status.getText()).toMatch('0'); + expect(data.getText()).toMatch('Request failed'); + }); + +
+ */ + function $http(requestConfig) { + + if (!angular.isObject(requestConfig)) { + throw minErr('$http')('badreq', 'Http request configuration must be an object. Received: {0}', requestConfig); + } + + if (!isString(requestConfig.url)) { + throw minErr('$http')('badreq', 'Http request configuration url must be a string. Received: {0}', requestConfig.url); + } + + var config = extend({ + method: 'get', + transformRequest: defaults.transformRequest, + transformResponse: defaults.transformResponse, + paramSerializer: defaults.paramSerializer + }, requestConfig); + + config.headers = mergeHeaders(requestConfig); + config.method = uppercase(config.method); + config.paramSerializer = isString(config.paramSerializer) ? + $injector.get(config.paramSerializer) : config.paramSerializer; + + var serverRequest = function(config) { + var headers = config.headers; + var reqData = transformData(config.data, headersGetter(headers), undefined, config.transformRequest); + + // strip content-type if data is undefined + if (isUndefined(reqData)) { + forEach(headers, function(value, header) { + if (lowercase(header) === 'content-type') { + delete headers[header]; + } + }); + } + + if (isUndefined(config.withCredentials) && !isUndefined(defaults.withCredentials)) { + config.withCredentials = defaults.withCredentials; + } + + // send request + return sendReq(config, reqData).then(transformResponse, transformResponse); + }; + + var chain = [serverRequest, undefined]; + var promise = $q.when(config); + + // apply interceptors + forEach(reversedInterceptors, function(interceptor) { + if (interceptor.request || interceptor.requestError) { + chain.unshift(interceptor.request, interceptor.requestError); + } + if (interceptor.response || interceptor.responseError) { + chain.push(interceptor.response, interceptor.responseError); + } + }); + + while (chain.length) { + var thenFn = chain.shift(); + var rejectFn = chain.shift(); + + promise = promise.then(thenFn, rejectFn); + } + + if (useLegacyPromise) { + promise.success = function(fn) { + assertArgFn(fn, 'fn'); + + promise.then(function(response) { + fn(response.data, response.status, response.headers, config); + }); + return promise; + }; + + promise.error = function(fn) { + assertArgFn(fn, 'fn'); + + promise.then(null, function(response) { + fn(response.data, response.status, response.headers, config); + }); + return promise; + }; + } else { + promise.success = $httpMinErrLegacyFn('success'); + promise.error = $httpMinErrLegacyFn('error'); + } + + return promise; + + function transformResponse(response) { + // make a copy since the response must be cacheable + var resp = extend({}, response); + resp.data = transformData(response.data, response.headers, response.status, + config.transformResponse); + return (isSuccess(response.status)) + ? resp + : $q.reject(resp); + } + + function executeHeaderFns(headers, config) { + var headerContent, processedHeaders = {}; + + forEach(headers, function(headerFn, header) { + if (isFunction(headerFn)) { + headerContent = headerFn(config); + if (headerContent != null) { + processedHeaders[header] = headerContent; + } + } else { + processedHeaders[header] = headerFn; + } + }); + + return processedHeaders; + } + + function mergeHeaders(config) { + var defHeaders = defaults.headers, + reqHeaders = extend({}, config.headers), + defHeaderName, lowercaseDefHeaderName, reqHeaderName; + + defHeaders = extend({}, defHeaders.common, defHeaders[lowercase(config.method)]); + + // using for-in instead of forEach to avoid unecessary iteration after header has been found + defaultHeadersIteration: + for (defHeaderName in defHeaders) { + lowercaseDefHeaderName = lowercase(defHeaderName); + + for (reqHeaderName in reqHeaders) { + if (lowercase(reqHeaderName) === lowercaseDefHeaderName) { + continue defaultHeadersIteration; + } + } + + reqHeaders[defHeaderName] = defHeaders[defHeaderName]; + } + + // execute if header value is a function for merged headers + return executeHeaderFns(reqHeaders, shallowCopy(config)); + } + } + + $http.pendingRequests = []; + + /** + * @ngdoc method + * @name $http#get + * + * @description + * Shortcut method to perform `GET` request. + * + * @param {string} url Relative or absolute URL specifying the destination of the request + * @param {Object=} config Optional configuration object + * @returns {HttpPromise} Future object + */ + + /** + * @ngdoc method + * @name $http#delete + * + * @description + * Shortcut method to perform `DELETE` request. + * + * @param {string} url Relative or absolute URL specifying the destination of the request + * @param {Object=} config Optional configuration object + * @returns {HttpPromise} Future object + */ + + /** + * @ngdoc method + * @name $http#head + * + * @description + * Shortcut method to perform `HEAD` request. + * + * @param {string} url Relative or absolute URL specifying the destination of the request + * @param {Object=} config Optional configuration object + * @returns {HttpPromise} Future object + */ + + /** + * @ngdoc method + * @name $http#jsonp + * + * @description + * Shortcut method to perform `JSONP` request. + * + * @param {string} url Relative or absolute URL specifying the destination of the request. + * The name of the callback should be the string `JSON_CALLBACK`. + * @param {Object=} config Optional configuration object + * @returns {HttpPromise} Future object + */ + createShortMethods('get', 'delete', 'head', 'jsonp'); + + /** + * @ngdoc method + * @name $http#post + * + * @description + * Shortcut method to perform `POST` request. + * + * @param {string} url Relative or absolute URL specifying the destination of the request + * @param {*} data Request content + * @param {Object=} config Optional configuration object + * @returns {HttpPromise} Future object + */ + + /** + * @ngdoc method + * @name $http#put + * + * @description + * Shortcut method to perform `PUT` request. + * + * @param {string} url Relative or absolute URL specifying the destination of the request + * @param {*} data Request content + * @param {Object=} config Optional configuration object + * @returns {HttpPromise} Future object + */ + + /** + * @ngdoc method + * @name $http#patch + * + * @description + * Shortcut method to perform `PATCH` request. + * + * @param {string} url Relative or absolute URL specifying the destination of the request + * @param {*} data Request content + * @param {Object=} config Optional configuration object + * @returns {HttpPromise} Future object + */ + createShortMethodsWithData('post', 'put', 'patch'); + + /** + * @ngdoc property + * @name $http#defaults + * + * @description + * Runtime equivalent of the `$httpProvider.defaults` property. Allows configuration of + * default headers, withCredentials as well as request and response transformations. + * + * See "Setting HTTP Headers" and "Transforming Requests and Responses" sections above. + */ + $http.defaults = defaults; + + + return $http; + + + function createShortMethods(names) { + forEach(arguments, function(name) { + $http[name] = function(url, config) { + return $http(extend({}, config || {}, { + method: name, + url: url + })); + }; + }); + } + + + function createShortMethodsWithData(name) { + forEach(arguments, function(name) { + $http[name] = function(url, data, config) { + return $http(extend({}, config || {}, { + method: name, + url: url, + data: data + })); + }; + }); + } + + + /** + * Makes the request. + * + * !!! ACCESSES CLOSURE VARS: + * $httpBackend, defaults, $log, $rootScope, defaultCache, $http.pendingRequests + */ + function sendReq(config, reqData) { + var deferred = $q.defer(), + promise = deferred.promise, + cache, + cachedResp, + reqHeaders = config.headers, + url = buildUrl(config.url, config.paramSerializer(config.params)); + + $http.pendingRequests.push(config); + promise.then(removePendingReq, removePendingReq); + + + if ((config.cache || defaults.cache) && config.cache !== false && + (config.method === 'GET' || config.method === 'JSONP')) { + cache = isObject(config.cache) ? config.cache + : isObject(defaults.cache) ? defaults.cache + : defaultCache; + } + + if (cache) { + cachedResp = cache.get(url); + if (isDefined(cachedResp)) { + if (isPromiseLike(cachedResp)) { + // cached request has already been sent, but there is no response yet + cachedResp.then(resolvePromiseWithResult, resolvePromiseWithResult); + } else { + // serving from cache + if (isArray(cachedResp)) { + resolvePromise(cachedResp[1], cachedResp[0], shallowCopy(cachedResp[2]), cachedResp[3]); + } else { + resolvePromise(cachedResp, 200, {}, 'OK'); + } + } + } else { + // put the promise for the non-transformed response into cache as a placeholder + cache.put(url, promise); + } + } + + + // if we won't have the response in cache, set the xsrf headers and + // send the request to the backend + if (isUndefined(cachedResp)) { + var xsrfValue = urlIsSameOrigin(config.url) + ? $$cookieReader()[config.xsrfCookieName || defaults.xsrfCookieName] + : undefined; + if (xsrfValue) { + reqHeaders[(config.xsrfHeaderName || defaults.xsrfHeaderName)] = xsrfValue; + } + + $httpBackend(config.method, url, reqData, done, reqHeaders, config.timeout, + config.withCredentials, config.responseType); + } + + return promise; + + + /** + * Callback registered to $httpBackend(): + * - caches the response if desired + * - resolves the raw $http promise + * - calls $apply + */ + function done(status, response, headersString, statusText) { + if (cache) { + if (isSuccess(status)) { + cache.put(url, [status, response, parseHeaders(headersString), statusText]); + } else { + // remove promise from the cache + cache.remove(url); + } + } + + function resolveHttpPromise() { + resolvePromise(response, status, headersString, statusText); + } + + if (useApplyAsync) { + $rootScope.$applyAsync(resolveHttpPromise); + } else { + resolveHttpPromise(); + if (!$rootScope.$$phase) $rootScope.$apply(); + } + } + + + /** + * Resolves the raw $http promise. + */ + function resolvePromise(response, status, headers, statusText) { + //status: HTTP response status code, 0, -1 (aborted by timeout / promise) + status = status >= -1 ? status : 0; + + (isSuccess(status) ? deferred.resolve : deferred.reject)({ + data: response, + status: status, + headers: headersGetter(headers), + config: config, + statusText: statusText + }); + } + + function resolvePromiseWithResult(result) { + resolvePromise(result.data, result.status, shallowCopy(result.headers()), result.statusText); + } + + function removePendingReq() { + var idx = $http.pendingRequests.indexOf(config); + if (idx !== -1) $http.pendingRequests.splice(idx, 1); + } + } + + + function buildUrl(url, serializedParams) { + if (serializedParams.length > 0) { + url += ((url.indexOf('?') == -1) ? '?' : '&') + serializedParams; + } + return url; + } + }]; +} + +/** + * @ngdoc service + * @name $xhrFactory + * + * @description + * Factory function used to create XMLHttpRequest objects. + * + * Replace or decorate this service to create your own custom XMLHttpRequest objects. + * + * ``` + * angular.module('myApp', []) + * .factory('$xhrFactory', function() { + * return function createXhr(method, url) { + * return new window.XMLHttpRequest({mozSystem: true}); + * }; + * }); + * ``` + * + * @param {string} method HTTP method of the request (GET, POST, PUT, ..) + * @param {string} url URL of the request. + */ +function $xhrFactoryProvider() { + this.$get = function() { + return function createXhr() { + return new window.XMLHttpRequest(); + }; + }; +} + +/** + * @ngdoc service + * @name $httpBackend + * @requires $window + * @requires $document + * @requires $xhrFactory + * + * @description + * HTTP backend used by the {@link ng.$http service} that delegates to + * XMLHttpRequest object or JSONP and deals with browser incompatibilities. + * + * You should never need to use this service directly, instead use the higher-level abstractions: + * {@link ng.$http $http} or {@link ngResource.$resource $resource}. + * + * During testing this implementation is swapped with {@link ngMock.$httpBackend mock + * $httpBackend} which can be trained with responses. + */ +function $HttpBackendProvider() { + this.$get = ['$browser', '$window', '$document', '$xhrFactory', function($browser, $window, $document, $xhrFactory) { + return createHttpBackend($browser, $xhrFactory, $browser.defer, $window.angular.callbacks, $document[0]); + }]; +} + +function createHttpBackend($browser, createXhr, $browserDefer, callbacks, rawDocument) { + // TODO(vojta): fix the signature + return function(method, url, post, callback, headers, timeout, withCredentials, responseType) { + $browser.$$incOutstandingRequestCount(); + url = url || $browser.url(); + + if (lowercase(method) == 'jsonp') { + var callbackId = '_' + (callbacks.counter++).toString(36); + callbacks[callbackId] = function(data) { + callbacks[callbackId].data = data; + callbacks[callbackId].called = true; + }; + + var jsonpDone = jsonpReq(url.replace('JSON_CALLBACK', 'angular.callbacks.' + callbackId), + callbackId, function(status, text) { + completeRequest(callback, status, callbacks[callbackId].data, "", text); + callbacks[callbackId] = noop; + }); + } else { + + var xhr = createXhr(method, url); + + xhr.open(method, url, true); + forEach(headers, function(value, key) { + if (isDefined(value)) { + xhr.setRequestHeader(key, value); + } + }); + + xhr.onload = function requestLoaded() { + var statusText = xhr.statusText || ''; + + // responseText is the old-school way of retrieving response (supported by IE9) + // response/responseType properties were introduced in XHR Level2 spec (supported by IE10) + var response = ('response' in xhr) ? xhr.response : xhr.responseText; + + // normalize IE9 bug (http://bugs.jquery.com/ticket/1450) + var status = xhr.status === 1223 ? 204 : xhr.status; + + // fix status code when it is 0 (0 status is undocumented). + // Occurs when accessing file resources or on Android 4.1 stock browser + // while retrieving files from application cache. + if (status === 0) { + status = response ? 200 : urlResolve(url).protocol == 'file' ? 404 : 0; + } + + completeRequest(callback, + status, + response, + xhr.getAllResponseHeaders(), + statusText); + }; + + var requestError = function() { + // The response is always empty + // See https://xhr.spec.whatwg.org/#request-error-steps and https://fetch.spec.whatwg.org/#concept-network-error + completeRequest(callback, -1, null, null, ''); + }; + + xhr.onerror = requestError; + xhr.onabort = requestError; + + if (withCredentials) { + xhr.withCredentials = true; + } + + if (responseType) { + try { + xhr.responseType = responseType; + } catch (e) { + // WebKit added support for the json responseType value on 09/03/2013 + // https://bugs.webkit.org/show_bug.cgi?id=73648. Versions of Safari prior to 7 are + // known to throw when setting the value "json" as the response type. Other older + // browsers implementing the responseType + // + // The json response type can be ignored if not supported, because JSON payloads are + // parsed on the client-side regardless. + if (responseType !== 'json') { + throw e; + } + } + } + + xhr.send(isUndefined(post) ? null : post); + } + + if (timeout > 0) { + var timeoutId = $browserDefer(timeoutRequest, timeout); + } else if (isPromiseLike(timeout)) { + timeout.then(timeoutRequest); + } + + + function timeoutRequest() { + jsonpDone && jsonpDone(); + xhr && xhr.abort(); + } + + function completeRequest(callback, status, response, headersString, statusText) { + // cancel timeout and subsequent timeout promise resolution + if (isDefined(timeoutId)) { + $browserDefer.cancel(timeoutId); + } + jsonpDone = xhr = null; + + callback(status, response, headersString, statusText); + $browser.$$completeOutstandingRequest(noop); + } + }; + + function jsonpReq(url, callbackId, done) { + // we can't use jQuery/jqLite here because jQuery does crazy stuff with script elements, e.g.: + // - fetches local scripts via XHR and evals them + // - adds and immediately removes script elements from the document + var script = rawDocument.createElement('script'), callback = null; + script.type = "text/javascript"; + script.src = url; + script.async = true; + + callback = function(event) { + removeEventListenerFn(script, "load", callback); + removeEventListenerFn(script, "error", callback); + rawDocument.body.removeChild(script); + script = null; + var status = -1; + var text = "unknown"; + + if (event) { + if (event.type === "load" && !callbacks[callbackId].called) { + event = { type: "error" }; + } + text = event.type; + status = event.type === "error" ? 404 : 200; + } + + if (done) { + done(status, text); + } + }; + + addEventListenerFn(script, "load", callback); + addEventListenerFn(script, "error", callback); + rawDocument.body.appendChild(script); + return callback; + } +} + +var $interpolateMinErr = angular.$interpolateMinErr = minErr('$interpolate'); +$interpolateMinErr.throwNoconcat = function(text) { + throw $interpolateMinErr('noconcat', + "Error while interpolating: {0}\nStrict Contextual Escaping disallows " + + "interpolations that concatenate multiple expressions when a trusted value is " + + "required. See http://docs.angularjs.org/api/ng.$sce", text); +}; + +$interpolateMinErr.interr = function(text, err) { + return $interpolateMinErr('interr', "Can't interpolate: {0}\n{1}", text, err.toString()); +}; + +/** + * @ngdoc provider + * @name $interpolateProvider + * + * @description + * + * Used for configuring the interpolation markup. Defaults to `{{` and `}}`. + * + * @example + + + +
+ //demo.label// +
+
+ + it('should interpolate binding with custom symbols', function() { + expect(element(by.binding('demo.label')).getText()).toBe('This binding is brought you by // interpolation symbols.'); + }); + +
+ */ +function $InterpolateProvider() { + var startSymbol = '{{'; + var endSymbol = '}}'; + + /** + * @ngdoc method + * @name $interpolateProvider#startSymbol + * @description + * Symbol to denote start of expression in the interpolated string. Defaults to `{{`. + * + * @param {string=} value new value to set the starting symbol to. + * @returns {string|self} Returns the symbol when used as getter and self if used as setter. + */ + this.startSymbol = function(value) { + if (value) { + startSymbol = value; + return this; + } else { + return startSymbol; + } + }; + + /** + * @ngdoc method + * @name $interpolateProvider#endSymbol + * @description + * Symbol to denote the end of expression in the interpolated string. Defaults to `}}`. + * + * @param {string=} value new value to set the ending symbol to. + * @returns {string|self} Returns the symbol when used as getter and self if used as setter. + */ + this.endSymbol = function(value) { + if (value) { + endSymbol = value; + return this; + } else { + return endSymbol; + } + }; + + + this.$get = ['$parse', '$exceptionHandler', '$sce', function($parse, $exceptionHandler, $sce) { + var startSymbolLength = startSymbol.length, + endSymbolLength = endSymbol.length, + escapedStartRegexp = new RegExp(startSymbol.replace(/./g, escape), 'g'), + escapedEndRegexp = new RegExp(endSymbol.replace(/./g, escape), 'g'); + + function escape(ch) { + return '\\\\\\' + ch; + } + + function unescapeText(text) { + return text.replace(escapedStartRegexp, startSymbol). + replace(escapedEndRegexp, endSymbol); + } + + function stringify(value) { + if (value == null) { // null || undefined + return ''; + } + switch (typeof value) { + case 'string': + break; + case 'number': + value = '' + value; + break; + default: + value = toJson(value); + } + + return value; + } + + /** + * @ngdoc service + * @name $interpolate + * @kind function + * + * @requires $parse + * @requires $sce + * + * @description + * + * Compiles a string with markup into an interpolation function. This service is used by the + * HTML {@link ng.$compile $compile} service for data binding. See + * {@link ng.$interpolateProvider $interpolateProvider} for configuring the + * interpolation markup. + * + * + * ```js + * var $interpolate = ...; // injected + * var exp = $interpolate('Hello {{name | uppercase}}!'); + * expect(exp({name:'Angular'})).toEqual('Hello ANGULAR!'); + * ``` + * + * `$interpolate` takes an optional fourth argument, `allOrNothing`. If `allOrNothing` is + * `true`, the interpolation function will return `undefined` unless all embedded expressions + * evaluate to a value other than `undefined`. + * + * ```js + * var $interpolate = ...; // injected + * var context = {greeting: 'Hello', name: undefined }; + * + * // default "forgiving" mode + * var exp = $interpolate('{{greeting}} {{name}}!'); + * expect(exp(context)).toEqual('Hello !'); + * + * // "allOrNothing" mode + * exp = $interpolate('{{greeting}} {{name}}!', false, null, true); + * expect(exp(context)).toBeUndefined(); + * context.name = 'Angular'; + * expect(exp(context)).toEqual('Hello Angular!'); + * ``` + * + * `allOrNothing` is useful for interpolating URLs. `ngSrc` and `ngSrcset` use this behavior. + * + * ####Escaped Interpolation + * $interpolate provides a mechanism for escaping interpolation markers. Start and end markers + * can be escaped by preceding each of their characters with a REVERSE SOLIDUS U+005C (backslash). + * It will be rendered as a regular start/end marker, and will not be interpreted as an expression + * or binding. + * + * This enables web-servers to prevent script injection attacks and defacing attacks, to some + * degree, while also enabling code examples to work without relying on the + * {@link ng.directive:ngNonBindable ngNonBindable} directive. + * + * **For security purposes, it is strongly encouraged that web servers escape user-supplied data, + * replacing angle brackets (<, >) with &lt; and &gt; respectively, and replacing all + * interpolation start/end markers with their escaped counterparts.** + * + * Escaped interpolation markers are only replaced with the actual interpolation markers in rendered + * output when the $interpolate service processes the text. So, for HTML elements interpolated + * by {@link ng.$compile $compile}, or otherwise interpolated with the `mustHaveExpression` parameter + * set to `true`, the interpolated text must contain an unescaped interpolation expression. As such, + * this is typically useful only when user-data is used in rendering a template from the server, or + * when otherwise untrusted data is used by a directive. + * + * + * + *
+ *

{{apptitle}}: \{\{ username = "defaced value"; \}\} + *

+ *

{{username}} attempts to inject code which will deface the + * application, but fails to accomplish their task, because the server has correctly + * escaped the interpolation start/end markers with REVERSE SOLIDUS U+005C (backslash) + * characters.

+ *

Instead, the result of the attempted script injection is visible, and can be removed + * from the database by an administrator.

+ *
+ *
+ *
+ * + * @param {string} text The text with markup to interpolate. + * @param {boolean=} mustHaveExpression if set to true then the interpolation string must have + * embedded expression in order to return an interpolation function. Strings with no + * embedded expression will return null for the interpolation function. + * @param {string=} trustedContext when provided, the returned function passes the interpolated + * result through {@link ng.$sce#getTrusted $sce.getTrusted(interpolatedResult, + * trustedContext)} before returning it. Refer to the {@link ng.$sce $sce} service that + * provides Strict Contextual Escaping for details. + * @param {boolean=} allOrNothing if `true`, then the returned function returns undefined + * unless all embedded expressions evaluate to a value other than `undefined`. + * @returns {function(context)} an interpolation function which is used to compute the + * interpolated string. The function has these parameters: + * + * - `context`: evaluation context for all expressions embedded in the interpolated text + */ + function $interpolate(text, mustHaveExpression, trustedContext, allOrNothing) { + allOrNothing = !!allOrNothing; + var startIndex, + endIndex, + index = 0, + expressions = [], + parseFns = [], + textLength = text.length, + exp, + concat = [], + expressionPositions = []; + + while (index < textLength) { + if (((startIndex = text.indexOf(startSymbol, index)) != -1) && + ((endIndex = text.indexOf(endSymbol, startIndex + startSymbolLength)) != -1)) { + if (index !== startIndex) { + concat.push(unescapeText(text.substring(index, startIndex))); + } + exp = text.substring(startIndex + startSymbolLength, endIndex); + expressions.push(exp); + parseFns.push($parse(exp, parseStringifyInterceptor)); + index = endIndex + endSymbolLength; + expressionPositions.push(concat.length); + concat.push(''); + } else { + // we did not find an interpolation, so we have to add the remainder to the separators array + if (index !== textLength) { + concat.push(unescapeText(text.substring(index))); + } + break; + } + } + + // Concatenating expressions makes it hard to reason about whether some combination of + // concatenated values are unsafe to use and could easily lead to XSS. By requiring that a + // single expression be used for iframe[src], object[src], etc., we ensure that the value + // that's used is assigned or constructed by some JS code somewhere that is more testable or + // make it obvious that you bound the value to some user controlled value. This helps reduce + // the load when auditing for XSS issues. + if (trustedContext && concat.length > 1) { + $interpolateMinErr.throwNoconcat(text); + } + + if (!mustHaveExpression || expressions.length) { + var compute = function(values) { + for (var i = 0, ii = expressions.length; i < ii; i++) { + if (allOrNothing && isUndefined(values[i])) return; + concat[expressionPositions[i]] = values[i]; + } + return concat.join(''); + }; + + var getValue = function(value) { + return trustedContext ? + $sce.getTrusted(trustedContext, value) : + $sce.valueOf(value); + }; + + return extend(function interpolationFn(context) { + var i = 0; + var ii = expressions.length; + var values = new Array(ii); + + try { + for (; i < ii; i++) { + values[i] = parseFns[i](context); + } + + return compute(values); + } catch (err) { + $exceptionHandler($interpolateMinErr.interr(text, err)); + } + + }, { + // all of these properties are undocumented for now + exp: text, //just for compatibility with regular watchers created via $watch + expressions: expressions, + $$watchDelegate: function(scope, listener) { + var lastValue; + return scope.$watchGroup(parseFns, function interpolateFnWatcher(values, oldValues) { + var currValue = compute(values); + if (isFunction(listener)) { + listener.call(this, currValue, values !== oldValues ? lastValue : currValue, scope); + } + lastValue = currValue; + }); + } + }); + } + + function parseStringifyInterceptor(value) { + try { + value = getValue(value); + return allOrNothing && !isDefined(value) ? value : stringify(value); + } catch (err) { + $exceptionHandler($interpolateMinErr.interr(text, err)); + } + } + } + + + /** + * @ngdoc method + * @name $interpolate#startSymbol + * @description + * Symbol to denote the start of expression in the interpolated string. Defaults to `{{`. + * + * Use {@link ng.$interpolateProvider#startSymbol `$interpolateProvider.startSymbol`} to change + * the symbol. + * + * @returns {string} start symbol. + */ + $interpolate.startSymbol = function() { + return startSymbol; + }; + + + /** + * @ngdoc method + * @name $interpolate#endSymbol + * @description + * Symbol to denote the end of expression in the interpolated string. Defaults to `}}`. + * + * Use {@link ng.$interpolateProvider#endSymbol `$interpolateProvider.endSymbol`} to change + * the symbol. + * + * @returns {string} end symbol. + */ + $interpolate.endSymbol = function() { + return endSymbol; + }; + + return $interpolate; + }]; +} + +function $IntervalProvider() { + this.$get = ['$rootScope', '$window', '$q', '$$q', + function($rootScope, $window, $q, $$q) { + var intervals = {}; + + + /** + * @ngdoc service + * @name $interval + * + * @description + * Angular's wrapper for `window.setInterval`. The `fn` function is executed every `delay` + * milliseconds. + * + * The return value of registering an interval function is a promise. This promise will be + * notified upon each tick of the interval, and will be resolved after `count` iterations, or + * run indefinitely if `count` is not defined. The value of the notification will be the + * number of iterations that have run. + * To cancel an interval, call `$interval.cancel(promise)`. + * + * In tests you can use {@link ngMock.$interval#flush `$interval.flush(millis)`} to + * move forward by `millis` milliseconds and trigger any functions scheduled to run in that + * time. + * + *
+ * **Note**: Intervals created by this service must be explicitly destroyed when you are finished + * with them. In particular they are not automatically destroyed when a controller's scope or a + * directive's element are destroyed. + * You should take this into consideration and make sure to always cancel the interval at the + * appropriate moment. See the example below for more details on how and when to do this. + *
+ * + * @param {function()} fn A function that should be called repeatedly. + * @param {number} delay Number of milliseconds between each function call. + * @param {number=} [count=0] Number of times to repeat. If not set, or 0, will repeat + * indefinitely. + * @param {boolean=} [invokeApply=true] If set to `false` skips model dirty checking, otherwise + * will invoke `fn` within the {@link ng.$rootScope.Scope#$apply $apply} block. + * @param {...*=} Pass additional parameters to the executed function. + * @returns {promise} A promise which will be notified on each iteration. + * + * @example + * + * + * + * + *
+ *
+ *
+ * Current time is: + *
+ * Blood 1 : {{blood_1}} + * Blood 2 : {{blood_2}} + * + * + * + *
+ *
+ * + *
+ *
+ */ + function interval(fn, delay, count, invokeApply) { + var hasParams = arguments.length > 4, + args = hasParams ? sliceArgs(arguments, 4) : [], + setInterval = $window.setInterval, + clearInterval = $window.clearInterval, + iteration = 0, + skipApply = (isDefined(invokeApply) && !invokeApply), + deferred = (skipApply ? $$q : $q).defer(), + promise = deferred.promise; + + count = isDefined(count) ? count : 0; + + promise.then(null, null, (!hasParams) ? fn : function() { + fn.apply(null, args); + }); + + promise.$$intervalId = setInterval(function tick() { + deferred.notify(iteration++); + + if (count > 0 && iteration >= count) { + deferred.resolve(iteration); + clearInterval(promise.$$intervalId); + delete intervals[promise.$$intervalId]; + } + + if (!skipApply) $rootScope.$apply(); + + }, delay); + + intervals[promise.$$intervalId] = deferred; + + return promise; + } + + + /** + * @ngdoc method + * @name $interval#cancel + * + * @description + * Cancels a task associated with the `promise`. + * + * @param {Promise=} promise returned by the `$interval` function. + * @returns {boolean} Returns `true` if the task was successfully canceled. + */ + interval.cancel = function(promise) { + if (promise && promise.$$intervalId in intervals) { + intervals[promise.$$intervalId].reject('canceled'); + $window.clearInterval(promise.$$intervalId); + delete intervals[promise.$$intervalId]; + return true; + } + return false; + }; + + return interval; + }]; +} + +/** + * @ngdoc service + * @name $locale + * + * @description + * $locale service provides localization rules for various Angular components. As of right now the + * only public api is: + * + * * `id` – `{string}` – locale id formatted as `languageId-countryId` (e.g. `en-us`) + */ + +var PATH_MATCH = /^([^\?#]*)(\?([^#]*))?(#(.*))?$/, + DEFAULT_PORTS = {'http': 80, 'https': 443, 'ftp': 21}; +var $locationMinErr = minErr('$location'); + + +/** + * Encode path using encodeUriSegment, ignoring forward slashes + * + * @param {string} path Path to encode + * @returns {string} + */ +function encodePath(path) { + var segments = path.split('/'), + i = segments.length; + + while (i--) { + segments[i] = encodeUriSegment(segments[i]); + } + + return segments.join('/'); +} + +function parseAbsoluteUrl(absoluteUrl, locationObj) { + var parsedUrl = urlResolve(absoluteUrl); + + locationObj.$$protocol = parsedUrl.protocol; + locationObj.$$host = parsedUrl.hostname; + locationObj.$$port = toInt(parsedUrl.port) || DEFAULT_PORTS[parsedUrl.protocol] || null; +} + + +function parseAppUrl(relativeUrl, locationObj) { + var prefixed = (relativeUrl.charAt(0) !== '/'); + if (prefixed) { + relativeUrl = '/' + relativeUrl; + } + var match = urlResolve(relativeUrl); + locationObj.$$path = decodeURIComponent(prefixed && match.pathname.charAt(0) === '/' ? + match.pathname.substring(1) : match.pathname); + locationObj.$$search = parseKeyValue(match.search); + locationObj.$$hash = decodeURIComponent(match.hash); + + // make sure path starts with '/'; + if (locationObj.$$path && locationObj.$$path.charAt(0) != '/') { + locationObj.$$path = '/' + locationObj.$$path; + } +} + + +/** + * + * @param {string} begin + * @param {string} whole + * @returns {string} returns text from whole after begin or undefined if it does not begin with + * expected string. + */ +function beginsWith(begin, whole) { + if (whole.indexOf(begin) === 0) { + return whole.substr(begin.length); + } +} + + +function stripHash(url) { + var index = url.indexOf('#'); + return index == -1 ? url : url.substr(0, index); +} + +function trimEmptyHash(url) { + return url.replace(/(#.+)|#$/, '$1'); +} + + +function stripFile(url) { + return url.substr(0, stripHash(url).lastIndexOf('/') + 1); +} + +/* return the server only (scheme://host:port) */ +function serverBase(url) { + return url.substring(0, url.indexOf('/', url.indexOf('//') + 2)); +} + + +/** + * LocationHtml5Url represents an url + * This object is exposed as $location service when HTML5 mode is enabled and supported + * + * @constructor + * @param {string} appBase application base URL + * @param {string} appBaseNoFile application base URL stripped of any filename + * @param {string} basePrefix url path prefix + */ +function LocationHtml5Url(appBase, appBaseNoFile, basePrefix) { + this.$$html5 = true; + basePrefix = basePrefix || ''; + parseAbsoluteUrl(appBase, this); + + + /** + * Parse given html5 (regular) url string into properties + * @param {string} url HTML5 url + * @private + */ + this.$$parse = function(url) { + var pathUrl = beginsWith(appBaseNoFile, url); + if (!isString(pathUrl)) { + throw $locationMinErr('ipthprfx', 'Invalid url "{0}", missing path prefix "{1}".', url, + appBaseNoFile); + } + + parseAppUrl(pathUrl, this); + + if (!this.$$path) { + this.$$path = '/'; + } + + this.$$compose(); + }; + + /** + * Compose url and update `absUrl` property + * @private + */ + this.$$compose = function() { + var search = toKeyValue(this.$$search), + hash = this.$$hash ? '#' + encodeUriSegment(this.$$hash) : ''; + + this.$$url = encodePath(this.$$path) + (search ? '?' + search : '') + hash; + this.$$absUrl = appBaseNoFile + this.$$url.substr(1); // first char is always '/' + }; + + this.$$parseLinkUrl = function(url, relHref) { + if (relHref && relHref[0] === '#') { + // special case for links to hash fragments: + // keep the old url and only replace the hash fragment + this.hash(relHref.slice(1)); + return true; + } + var appUrl, prevAppUrl; + var rewrittenUrl; + + if (isDefined(appUrl = beginsWith(appBase, url))) { + prevAppUrl = appUrl; + if (isDefined(appUrl = beginsWith(basePrefix, appUrl))) { + rewrittenUrl = appBaseNoFile + (beginsWith('/', appUrl) || appUrl); + } else { + rewrittenUrl = appBase + prevAppUrl; + } + } else if (isDefined(appUrl = beginsWith(appBaseNoFile, url))) { + rewrittenUrl = appBaseNoFile + appUrl; + } else if (appBaseNoFile == url + '/') { + rewrittenUrl = appBaseNoFile; + } + if (rewrittenUrl) { + this.$$parse(rewrittenUrl); + } + return !!rewrittenUrl; + }; +} + + +/** + * LocationHashbangUrl represents url + * This object is exposed as $location service when developer doesn't opt into html5 mode. + * It also serves as the base class for html5 mode fallback on legacy browsers. + * + * @constructor + * @param {string} appBase application base URL + * @param {string} appBaseNoFile application base URL stripped of any filename + * @param {string} hashPrefix hashbang prefix + */ +function LocationHashbangUrl(appBase, appBaseNoFile, hashPrefix) { + + parseAbsoluteUrl(appBase, this); + + + /** + * Parse given hashbang url into properties + * @param {string} url Hashbang url + * @private + */ + this.$$parse = function(url) { + var withoutBaseUrl = beginsWith(appBase, url) || beginsWith(appBaseNoFile, url); + var withoutHashUrl; + + if (!isUndefined(withoutBaseUrl) && withoutBaseUrl.charAt(0) === '#') { + + // The rest of the url starts with a hash so we have + // got either a hashbang path or a plain hash fragment + withoutHashUrl = beginsWith(hashPrefix, withoutBaseUrl); + if (isUndefined(withoutHashUrl)) { + // There was no hashbang prefix so we just have a hash fragment + withoutHashUrl = withoutBaseUrl; + } + + } else { + // There was no hashbang path nor hash fragment: + // If we are in HTML5 mode we use what is left as the path; + // Otherwise we ignore what is left + if (this.$$html5) { + withoutHashUrl = withoutBaseUrl; + } else { + withoutHashUrl = ''; + if (isUndefined(withoutBaseUrl)) { + appBase = url; + this.replace(); + } + } + } + + parseAppUrl(withoutHashUrl, this); + + this.$$path = removeWindowsDriveName(this.$$path, withoutHashUrl, appBase); + + this.$$compose(); + + /* + * In Windows, on an anchor node on documents loaded from + * the filesystem, the browser will return a pathname + * prefixed with the drive name ('/C:/path') when a + * pathname without a drive is set: + * * a.setAttribute('href', '/foo') + * * a.pathname === '/C:/foo' //true + * + * Inside of Angular, we're always using pathnames that + * do not include drive names for routing. + */ + function removeWindowsDriveName(path, url, base) { + /* + Matches paths for file protocol on windows, + such as /C:/foo/bar, and captures only /foo/bar. + */ + var windowsFilePathExp = /^\/[A-Z]:(\/.*)/; + + var firstPathSegmentMatch; + + //Get the relative path from the input URL. + if (url.indexOf(base) === 0) { + url = url.replace(base, ''); + } + + // The input URL intentionally contains a first path segment that ends with a colon. + if (windowsFilePathExp.exec(url)) { + return path; + } + + firstPathSegmentMatch = windowsFilePathExp.exec(path); + return firstPathSegmentMatch ? firstPathSegmentMatch[1] : path; + } + }; + + /** + * Compose hashbang url and update `absUrl` property + * @private + */ + this.$$compose = function() { + var search = toKeyValue(this.$$search), + hash = this.$$hash ? '#' + encodeUriSegment(this.$$hash) : ''; + + this.$$url = encodePath(this.$$path) + (search ? '?' + search : '') + hash; + this.$$absUrl = appBase + (this.$$url ? hashPrefix + this.$$url : ''); + }; + + this.$$parseLinkUrl = function(url, relHref) { + if (stripHash(appBase) == stripHash(url)) { + this.$$parse(url); + return true; + } + return false; + }; +} + + +/** + * LocationHashbangUrl represents url + * This object is exposed as $location service when html5 history api is enabled but the browser + * does not support it. + * + * @constructor + * @param {string} appBase application base URL + * @param {string} appBaseNoFile application base URL stripped of any filename + * @param {string} hashPrefix hashbang prefix + */ +function LocationHashbangInHtml5Url(appBase, appBaseNoFile, hashPrefix) { + this.$$html5 = true; + LocationHashbangUrl.apply(this, arguments); + + this.$$parseLinkUrl = function(url, relHref) { + if (relHref && relHref[0] === '#') { + // special case for links to hash fragments: + // keep the old url and only replace the hash fragment + this.hash(relHref.slice(1)); + return true; + } + + var rewrittenUrl; + var appUrl; + + if (appBase == stripHash(url)) { + rewrittenUrl = url; + } else if ((appUrl = beginsWith(appBaseNoFile, url))) { + rewrittenUrl = appBase + hashPrefix + appUrl; + } else if (appBaseNoFile === url + '/') { + rewrittenUrl = appBaseNoFile; + } + if (rewrittenUrl) { + this.$$parse(rewrittenUrl); + } + return !!rewrittenUrl; + }; + + this.$$compose = function() { + var search = toKeyValue(this.$$search), + hash = this.$$hash ? '#' + encodeUriSegment(this.$$hash) : ''; + + this.$$url = encodePath(this.$$path) + (search ? '?' + search : '') + hash; + // include hashPrefix in $$absUrl when $$url is empty so IE9 does not reload page because of removal of '#' + this.$$absUrl = appBase + hashPrefix + this.$$url; + }; + +} + + +var locationPrototype = { + + /** + * Are we in html5 mode? + * @private + */ + $$html5: false, + + /** + * Has any change been replacing? + * @private + */ + $$replace: false, + + /** + * @ngdoc method + * @name $location#absUrl + * + * @description + * This method is getter only. + * + * Return full url representation with all segments encoded according to rules specified in + * [RFC 3986](http://www.ietf.org/rfc/rfc3986.txt). + * + * + * ```js + * // given url http://example.com/#/some/path?foo=bar&baz=xoxo + * var absUrl = $location.absUrl(); + * // => "http://example.com/#/some/path?foo=bar&baz=xoxo" + * ``` + * + * @return {string} full url + */ + absUrl: locationGetter('$$absUrl'), + + /** + * @ngdoc method + * @name $location#url + * + * @description + * This method is getter / setter. + * + * Return url (e.g. `/path?a=b#hash`) when called without any parameter. + * + * Change path, search and hash, when called with parameter and return `$location`. + * + * + * ```js + * // given url http://example.com/#/some/path?foo=bar&baz=xoxo + * var url = $location.url(); + * // => "/some/path?foo=bar&baz=xoxo" + * ``` + * + * @param {string=} url New url without base prefix (e.g. `/path?a=b#hash`) + * @return {string} url + */ + url: function(url) { + if (isUndefined(url)) { + return this.$$url; + } + + var match = PATH_MATCH.exec(url); + if (match[1] || url === '') this.path(decodeURIComponent(match[1])); + if (match[2] || match[1] || url === '') this.search(match[3] || ''); + this.hash(match[5] || ''); + + return this; + }, + + /** + * @ngdoc method + * @name $location#protocol + * + * @description + * This method is getter only. + * + * Return protocol of current url. + * + * + * ```js + * // given url http://example.com/#/some/path?foo=bar&baz=xoxo + * var protocol = $location.protocol(); + * // => "http" + * ``` + * + * @return {string} protocol of current url + */ + protocol: locationGetter('$$protocol'), + + /** + * @ngdoc method + * @name $location#host + * + * @description + * This method is getter only. + * + * Return host of current url. + * + * Note: compared to the non-angular version `location.host` which returns `hostname:port`, this returns the `hostname` portion only. + * + * + * ```js + * // given url http://example.com/#/some/path?foo=bar&baz=xoxo + * var host = $location.host(); + * // => "example.com" + * + * // given url http://user:password@example.com:8080/#/some/path?foo=bar&baz=xoxo + * host = $location.host(); + * // => "example.com" + * host = location.host; + * // => "example.com:8080" + * ``` + * + * @return {string} host of current url. + */ + host: locationGetter('$$host'), + + /** + * @ngdoc method + * @name $location#port + * + * @description + * This method is getter only. + * + * Return port of current url. + * + * + * ```js + * // given url http://example.com/#/some/path?foo=bar&baz=xoxo + * var port = $location.port(); + * // => 80 + * ``` + * + * @return {Number} port + */ + port: locationGetter('$$port'), + + /** + * @ngdoc method + * @name $location#path + * + * @description + * This method is getter / setter. + * + * Return path of current url when called without any parameter. + * + * Change path when called with parameter and return `$location`. + * + * Note: Path should always begin with forward slash (/), this method will add the forward slash + * if it is missing. + * + * + * ```js + * // given url http://example.com/#/some/path?foo=bar&baz=xoxo + * var path = $location.path(); + * // => "/some/path" + * ``` + * + * @param {(string|number)=} path New path + * @return {string} path + */ + path: locationGetterSetter('$$path', function(path) { + path = path !== null ? path.toString() : ''; + return path.charAt(0) == '/' ? path : '/' + path; + }), + + /** + * @ngdoc method + * @name $location#search + * + * @description + * This method is getter / setter. + * + * Return search part (as object) of current url when called without any parameter. + * + * Change search part when called with parameter and return `$location`. + * + * + * ```js + * // given url http://example.com/#/some/path?foo=bar&baz=xoxo + * var searchObject = $location.search(); + * // => {foo: 'bar', baz: 'xoxo'} + * + * // set foo to 'yipee' + * $location.search('foo', 'yipee'); + * // $location.search() => {foo: 'yipee', baz: 'xoxo'} + * ``` + * + * @param {string|Object.|Object.>} search New search params - string or + * hash object. + * + * When called with a single argument the method acts as a setter, setting the `search` component + * of `$location` to the specified value. + * + * If the argument is a hash object containing an array of values, these values will be encoded + * as duplicate search parameters in the url. + * + * @param {(string|Number|Array|boolean)=} paramValue If `search` is a string or number, then `paramValue` + * will override only a single search property. + * + * If `paramValue` is an array, it will override the property of the `search` component of + * `$location` specified via the first argument. + * + * If `paramValue` is `null`, the property specified via the first argument will be deleted. + * + * If `paramValue` is `true`, the property specified via the first argument will be added with no + * value nor trailing equal sign. + * + * @return {Object} If called with no arguments returns the parsed `search` object. If called with + * one or more arguments returns `$location` object itself. + */ + search: function(search, paramValue) { + switch (arguments.length) { + case 0: + return this.$$search; + case 1: + if (isString(search) || isNumber(search)) { + search = search.toString(); + this.$$search = parseKeyValue(search); + } else if (isObject(search)) { + search = copy(search, {}); + // remove object undefined or null properties + forEach(search, function(value, key) { + if (value == null) delete search[key]; + }); + + this.$$search = search; + } else { + throw $locationMinErr('isrcharg', + 'The first argument of the `$location#search()` call must be a string or an object.'); + } + break; + default: + if (isUndefined(paramValue) || paramValue === null) { + delete this.$$search[search]; + } else { + this.$$search[search] = paramValue; + } + } + + this.$$compose(); + return this; + }, + + /** + * @ngdoc method + * @name $location#hash + * + * @description + * This method is getter / setter. + * + * Returns the hash fragment when called without any parameters. + * + * Changes the hash fragment when called with a parameter and returns `$location`. + * + * + * ```js + * // given url http://example.com/#/some/path?foo=bar&baz=xoxo#hashValue + * var hash = $location.hash(); + * // => "hashValue" + * ``` + * + * @param {(string|number)=} hash New hash fragment + * @return {string} hash + */ + hash: locationGetterSetter('$$hash', function(hash) { + return hash !== null ? hash.toString() : ''; + }), + + /** + * @ngdoc method + * @name $location#replace + * + * @description + * If called, all changes to $location during the current `$digest` will replace the current history + * record, instead of adding a new one. + */ + replace: function() { + this.$$replace = true; + return this; + } +}; + +forEach([LocationHashbangInHtml5Url, LocationHashbangUrl, LocationHtml5Url], function(Location) { + Location.prototype = Object.create(locationPrototype); + + /** + * @ngdoc method + * @name $location#state + * + * @description + * This method is getter / setter. + * + * Return the history state object when called without any parameter. + * + * Change the history state object when called with one parameter and return `$location`. + * The state object is later passed to `pushState` or `replaceState`. + * + * NOTE: This method is supported only in HTML5 mode and only in browsers supporting + * the HTML5 History API (i.e. methods `pushState` and `replaceState`). If you need to support + * older browsers (like IE9 or Android < 4.0), don't use this method. + * + * @param {object=} state State object for pushState or replaceState + * @return {object} state + */ + Location.prototype.state = function(state) { + if (!arguments.length) { + return this.$$state; + } + + if (Location !== LocationHtml5Url || !this.$$html5) { + throw $locationMinErr('nostate', 'History API state support is available only ' + + 'in HTML5 mode and only in browsers supporting HTML5 History API'); + } + // The user might modify `stateObject` after invoking `$location.state(stateObject)` + // but we're changing the $$state reference to $browser.state() during the $digest + // so the modification window is narrow. + this.$$state = isUndefined(state) ? null : state; + + return this; + }; +}); + + +function locationGetter(property) { + return function() { + return this[property]; + }; +} + + +function locationGetterSetter(property, preprocess) { + return function(value) { + if (isUndefined(value)) { + return this[property]; + } + + this[property] = preprocess(value); + this.$$compose(); + + return this; + }; +} + + +/** + * @ngdoc service + * @name $location + * + * @requires $rootElement + * + * @description + * The $location service parses the URL in the browser address bar (based on the + * [window.location](https://developer.mozilla.org/en/window.location)) and makes the URL + * available to your application. Changes to the URL in the address bar are reflected into + * $location service and changes to $location are reflected into the browser address bar. + * + * **The $location service:** + * + * - Exposes the current URL in the browser address bar, so you can + * - Watch and observe the URL. + * - Change the URL. + * - Synchronizes the URL with the browser when the user + * - Changes the address bar. + * - Clicks the back or forward button (or clicks a History link). + * - Clicks on a link. + * - Represents the URL object as a set of methods (protocol, host, port, path, search, hash). + * + * For more information see {@link guide/$location Developer Guide: Using $location} + */ + +/** + * @ngdoc provider + * @name $locationProvider + * @description + * Use the `$locationProvider` to configure how the application deep linking paths are stored. + */ +function $LocationProvider() { + var hashPrefix = '', + html5Mode = { + enabled: false, + requireBase: true, + rewriteLinks: true + }; + + /** + * @ngdoc method + * @name $locationProvider#hashPrefix + * @description + * @param {string=} prefix Prefix for hash part (containing path and search) + * @returns {*} current value if used as getter or itself (chaining) if used as setter + */ + this.hashPrefix = function(prefix) { + if (isDefined(prefix)) { + hashPrefix = prefix; + return this; + } else { + return hashPrefix; + } + }; + + /** + * @ngdoc method + * @name $locationProvider#html5Mode + * @description + * @param {(boolean|Object)=} mode If boolean, sets `html5Mode.enabled` to value. + * If object, sets `enabled`, `requireBase` and `rewriteLinks` to respective values. Supported + * properties: + * - **enabled** – `{boolean}` – (default: false) If true, will rely on `history.pushState` to + * change urls where supported. Will fall back to hash-prefixed paths in browsers that do not + * support `pushState`. + * - **requireBase** - `{boolean}` - (default: `true`) When html5Mode is enabled, specifies + * whether or not a tag is required to be present. If `enabled` and `requireBase` are + * true, and a base tag is not present, an error will be thrown when `$location` is injected. + * See the {@link guide/$location $location guide for more information} + * - **rewriteLinks** - `{boolean}` - (default: `true`) When html5Mode is enabled, + * enables/disables url rewriting for relative links. + * + * @returns {Object} html5Mode object if used as getter or itself (chaining) if used as setter + */ + this.html5Mode = function(mode) { + if (isBoolean(mode)) { + html5Mode.enabled = mode; + return this; + } else if (isObject(mode)) { + + if (isBoolean(mode.enabled)) { + html5Mode.enabled = mode.enabled; + } + + if (isBoolean(mode.requireBase)) { + html5Mode.requireBase = mode.requireBase; + } + + if (isBoolean(mode.rewriteLinks)) { + html5Mode.rewriteLinks = mode.rewriteLinks; + } + + return this; + } else { + return html5Mode; + } + }; + + /** + * @ngdoc event + * @name $location#$locationChangeStart + * @eventType broadcast on root scope + * @description + * Broadcasted before a URL will change. + * + * This change can be prevented by calling + * `preventDefault` method of the event. See {@link ng.$rootScope.Scope#$on} for more + * details about event object. Upon successful change + * {@link ng.$location#$locationChangeSuccess $locationChangeSuccess} is fired. + * + * The `newState` and `oldState` parameters may be defined only in HTML5 mode and when + * the browser supports the HTML5 History API. + * + * @param {Object} angularEvent Synthetic event object. + * @param {string} newUrl New URL + * @param {string=} oldUrl URL that was before it was changed. + * @param {string=} newState New history state object + * @param {string=} oldState History state object that was before it was changed. + */ + + /** + * @ngdoc event + * @name $location#$locationChangeSuccess + * @eventType broadcast on root scope + * @description + * Broadcasted after a URL was changed. + * + * The `newState` and `oldState` parameters may be defined only in HTML5 mode and when + * the browser supports the HTML5 History API. + * + * @param {Object} angularEvent Synthetic event object. + * @param {string} newUrl New URL + * @param {string=} oldUrl URL that was before it was changed. + * @param {string=} newState New history state object + * @param {string=} oldState History state object that was before it was changed. + */ + + this.$get = ['$rootScope', '$browser', '$sniffer', '$rootElement', '$window', + function($rootScope, $browser, $sniffer, $rootElement, $window) { + var $location, + LocationMode, + baseHref = $browser.baseHref(), // if base[href] is undefined, it defaults to '' + initialUrl = $browser.url(), + appBase; + + if (html5Mode.enabled) { + if (!baseHref && html5Mode.requireBase) { + throw $locationMinErr('nobase', + "$location in HTML5 mode requires a tag to be present!"); + } + appBase = serverBase(initialUrl) + (baseHref || '/'); + LocationMode = $sniffer.history ? LocationHtml5Url : LocationHashbangInHtml5Url; + } else { + appBase = stripHash(initialUrl); + LocationMode = LocationHashbangUrl; + } + var appBaseNoFile = stripFile(appBase); + + $location = new LocationMode(appBase, appBaseNoFile, '#' + hashPrefix); + $location.$$parseLinkUrl(initialUrl, initialUrl); + + $location.$$state = $browser.state(); + + var IGNORE_URI_REGEXP = /^\s*(javascript|mailto):/i; + + function setBrowserUrlWithFallback(url, replace, state) { + var oldUrl = $location.url(); + var oldState = $location.$$state; + try { + $browser.url(url, replace, state); + + // Make sure $location.state() returns referentially identical (not just deeply equal) + // state object; this makes possible quick checking if the state changed in the digest + // loop. Checking deep equality would be too expensive. + $location.$$state = $browser.state(); + } catch (e) { + // Restore old values if pushState fails + $location.url(oldUrl); + $location.$$state = oldState; + + throw e; + } + } + + $rootElement.on('click', function(event) { + // TODO(vojta): rewrite link when opening in new tab/window (in legacy browser) + // currently we open nice url link and redirect then + + if (!html5Mode.rewriteLinks || event.ctrlKey || event.metaKey || event.shiftKey || event.which == 2 || event.button == 2) return; + + var elm = jqLite(event.target); + + // traverse the DOM up to find first A tag + while (nodeName_(elm[0]) !== 'a') { + // ignore rewriting if no A tag (reached root element, or no parent - removed from document) + if (elm[0] === $rootElement[0] || !(elm = elm.parent())[0]) return; + } + + var absHref = elm.prop('href'); + // get the actual href attribute - see + // http://msdn.microsoft.com/en-us/library/ie/dd347148(v=vs.85).aspx + var relHref = elm.attr('href') || elm.attr('xlink:href'); + + if (isObject(absHref) && absHref.toString() === '[object SVGAnimatedString]') { + // SVGAnimatedString.animVal should be identical to SVGAnimatedString.baseVal, unless during + // an animation. + absHref = urlResolve(absHref.animVal).href; + } + + // Ignore when url is started with javascript: or mailto: + if (IGNORE_URI_REGEXP.test(absHref)) return; + + if (absHref && !elm.attr('target') && !event.isDefaultPrevented()) { + if ($location.$$parseLinkUrl(absHref, relHref)) { + // We do a preventDefault for all urls that are part of the angular application, + // in html5mode and also without, so that we are able to abort navigation without + // getting double entries in the location history. + event.preventDefault(); + // update location manually + if ($location.absUrl() != $browser.url()) { + $rootScope.$apply(); + // hack to work around FF6 bug 684208 when scenario runner clicks on links + $window.angular['ff-684208-preventDefault'] = true; + } + } + } + }); + + + // rewrite hashbang url <> html5 url + if (trimEmptyHash($location.absUrl()) != trimEmptyHash(initialUrl)) { + $browser.url($location.absUrl(), true); + } + + var initializing = true; + + // update $location when $browser url changes + $browser.onUrlChange(function(newUrl, newState) { + + if (isUndefined(beginsWith(appBaseNoFile, newUrl))) { + // If we are navigating outside of the app then force a reload + $window.location.href = newUrl; + return; + } + + $rootScope.$evalAsync(function() { + var oldUrl = $location.absUrl(); + var oldState = $location.$$state; + var defaultPrevented; + newUrl = trimEmptyHash(newUrl); + $location.$$parse(newUrl); + $location.$$state = newState; + + defaultPrevented = $rootScope.$broadcast('$locationChangeStart', newUrl, oldUrl, + newState, oldState).defaultPrevented; + + // if the location was changed by a `$locationChangeStart` handler then stop + // processing this location change + if ($location.absUrl() !== newUrl) return; + + if (defaultPrevented) { + $location.$$parse(oldUrl); + $location.$$state = oldState; + setBrowserUrlWithFallback(oldUrl, false, oldState); + } else { + initializing = false; + afterLocationChange(oldUrl, oldState); + } + }); + if (!$rootScope.$$phase) $rootScope.$digest(); + }); + + // update browser + $rootScope.$watch(function $locationWatch() { + var oldUrl = trimEmptyHash($browser.url()); + var newUrl = trimEmptyHash($location.absUrl()); + var oldState = $browser.state(); + var currentReplace = $location.$$replace; + var urlOrStateChanged = oldUrl !== newUrl || + ($location.$$html5 && $sniffer.history && oldState !== $location.$$state); + + if (initializing || urlOrStateChanged) { + initializing = false; + + $rootScope.$evalAsync(function() { + var newUrl = $location.absUrl(); + var defaultPrevented = $rootScope.$broadcast('$locationChangeStart', newUrl, oldUrl, + $location.$$state, oldState).defaultPrevented; + + // if the location was changed by a `$locationChangeStart` handler then stop + // processing this location change + if ($location.absUrl() !== newUrl) return; + + if (defaultPrevented) { + $location.$$parse(oldUrl); + $location.$$state = oldState; + } else { + if (urlOrStateChanged) { + setBrowserUrlWithFallback(newUrl, currentReplace, + oldState === $location.$$state ? null : $location.$$state); + } + afterLocationChange(oldUrl, oldState); + } + }); + } + + $location.$$replace = false; + + // we don't need to return anything because $evalAsync will make the digest loop dirty when + // there is a change + }); + + return $location; + + function afterLocationChange(oldUrl, oldState) { + $rootScope.$broadcast('$locationChangeSuccess', $location.absUrl(), oldUrl, + $location.$$state, oldState); + } +}]; +} + +/** + * @ngdoc service + * @name $log + * @requires $window + * + * @description + * Simple service for logging. Default implementation safely writes the message + * into the browser's console (if present). + * + * The main purpose of this service is to simplify debugging and troubleshooting. + * + * The default is to log `debug` messages. You can use + * {@link ng.$logProvider ng.$logProvider#debugEnabled} to change this. + * + * @example + + + angular.module('logExample', []) + .controller('LogController', ['$scope', '$log', function($scope, $log) { + $scope.$log = $log; + $scope.message = 'Hello World!'; + }]); + + +
+

Reload this page with open console, enter text and hit the log button...

+ + + + + + +
+
+
+ */ + +/** + * @ngdoc provider + * @name $logProvider + * @description + * Use the `$logProvider` to configure how the application logs messages + */ +function $LogProvider() { + var debug = true, + self = this; + + /** + * @ngdoc method + * @name $logProvider#debugEnabled + * @description + * @param {boolean=} flag enable or disable debug level messages + * @returns {*} current value if used as getter or itself (chaining) if used as setter + */ + this.debugEnabled = function(flag) { + if (isDefined(flag)) { + debug = flag; + return this; + } else { + return debug; + } + }; + + this.$get = ['$window', function($window) { + return { + /** + * @ngdoc method + * @name $log#log + * + * @description + * Write a log message + */ + log: consoleLog('log'), + + /** + * @ngdoc method + * @name $log#info + * + * @description + * Write an information message + */ + info: consoleLog('info'), + + /** + * @ngdoc method + * @name $log#warn + * + * @description + * Write a warning message + */ + warn: consoleLog('warn'), + + /** + * @ngdoc method + * @name $log#error + * + * @description + * Write an error message + */ + error: consoleLog('error'), + + /** + * @ngdoc method + * @name $log#debug + * + * @description + * Write a debug message + */ + debug: (function() { + var fn = consoleLog('debug'); + + return function() { + if (debug) { + fn.apply(self, arguments); + } + }; + }()) + }; + + function formatError(arg) { + if (arg instanceof Error) { + if (arg.stack) { + arg = (arg.message && arg.stack.indexOf(arg.message) === -1) + ? 'Error: ' + arg.message + '\n' + arg.stack + : arg.stack; + } else if (arg.sourceURL) { + arg = arg.message + '\n' + arg.sourceURL + ':' + arg.line; + } + } + return arg; + } + + function consoleLog(type) { + var console = $window.console || {}, + logFn = console[type] || console.log || noop, + hasApply = false; + + // Note: reading logFn.apply throws an error in IE11 in IE8 document mode. + // The reason behind this is that console.log has type "object" in IE8... + try { + hasApply = !!logFn.apply; + } catch (e) {} + + if (hasApply) { + return function() { + var args = []; + forEach(arguments, function(arg) { + args.push(formatError(arg)); + }); + return logFn.apply(console, args); + }; + } + + // we are IE which either doesn't have window.console => this is noop and we do nothing, + // or we are IE where console.log doesn't have apply so we log at least first 2 args + return function(arg1, arg2) { + logFn(arg1, arg2 == null ? '' : arg2); + }; + } + }]; +} + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Any commits to this file should be reviewed with security in mind. * + * Changes to this file can potentially create security vulnerabilities. * + * An approval from 2 Core members with history of modifying * + * this file is required. * + * * + * Does the change somehow allow for arbitrary javascript to be executed? * + * Or allows for someone to change the prototype of built-in objects? * + * Or gives undesired access to variables likes document or window? * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +var $parseMinErr = minErr('$parse'); + +// Sandboxing Angular Expressions +// ------------------------------ +// Angular expressions are generally considered safe because these expressions only have direct +// access to `$scope` and locals. However, one can obtain the ability to execute arbitrary JS code by +// obtaining a reference to native JS functions such as the Function constructor. +// +// As an example, consider the following Angular expression: +// +// {}.toString.constructor('alert("evil JS code")') +// +// This sandboxing technique is not perfect and doesn't aim to be. The goal is to prevent exploits +// against the expression language, but not to prevent exploits that were enabled by exposing +// sensitive JavaScript or browser APIs on Scope. Exposing such objects on a Scope is never a good +// practice and therefore we are not even trying to protect against interaction with an object +// explicitly exposed in this way. +// +// In general, it is not possible to access a Window object from an angular expression unless a +// window or some DOM object that has a reference to window is published onto a Scope. +// Similarly we prevent invocations of function known to be dangerous, as well as assignments to +// native objects. +// +// See https://docs.angularjs.org/guide/security + + +function ensureSafeMemberName(name, fullExpression) { + if (name === "__defineGetter__" || name === "__defineSetter__" + || name === "__lookupGetter__" || name === "__lookupSetter__" + || name === "__proto__") { + throw $parseMinErr('isecfld', + 'Attempting to access a disallowed field in Angular expressions! ' + + 'Expression: {0}', fullExpression); + } + return name; +} + +function getStringValue(name, fullExpression) { + // From the JavaScript docs: + // Property names must be strings. This means that non-string objects cannot be used + // as keys in an object. Any non-string object, including a number, is typecasted + // into a string via the toString method. + // + // So, to ensure that we are checking the same `name` that JavaScript would use, + // we cast it to a string, if possible. + // Doing `name + ''` can cause a repl error if the result to `toString` is not a string, + // this is, this will handle objects that misbehave. + name = name + ''; + if (!isString(name)) { + throw $parseMinErr('iseccst', + 'Cannot convert object to primitive value! ' + + 'Expression: {0}', fullExpression); + } + return name; +} + +function ensureSafeObject(obj, fullExpression) { + // nifty check if obj is Function that is fast and works across iframes and other contexts + if (obj) { + if (obj.constructor === obj) { + throw $parseMinErr('isecfn', + 'Referencing Function in Angular expressions is disallowed! Expression: {0}', + fullExpression); + } else if (// isWindow(obj) + obj.window === obj) { + throw $parseMinErr('isecwindow', + 'Referencing the Window in Angular expressions is disallowed! Expression: {0}', + fullExpression); + } else if (// isElement(obj) + obj.children && (obj.nodeName || (obj.prop && obj.attr && obj.find))) { + throw $parseMinErr('isecdom', + 'Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}', + fullExpression); + } else if (// block Object so that we can't get hold of dangerous Object.* methods + obj === Object) { + throw $parseMinErr('isecobj', + 'Referencing Object in Angular expressions is disallowed! Expression: {0}', + fullExpression); + } + } + return obj; +} + +var CALL = Function.prototype.call; +var APPLY = Function.prototype.apply; +var BIND = Function.prototype.bind; + +function ensureSafeFunction(obj, fullExpression) { + if (obj) { + if (obj.constructor === obj) { + throw $parseMinErr('isecfn', + 'Referencing Function in Angular expressions is disallowed! Expression: {0}', + fullExpression); + } else if (obj === CALL || obj === APPLY || obj === BIND) { + throw $parseMinErr('isecff', + 'Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}', + fullExpression); + } + } +} + +function ensureSafeAssignContext(obj, fullExpression) { + if (obj) { + if (obj === (0).constructor || obj === (false).constructor || obj === ''.constructor || + obj === {}.constructor || obj === [].constructor || obj === Function.constructor) { + throw $parseMinErr('isecaf', + 'Assigning to a constructor is disallowed! Expression: {0}', fullExpression); + } + } +} + +var OPERATORS = createMap(); +forEach('+ - * / % === !== == != < > <= >= && || ! = |'.split(' '), function(operator) { OPERATORS[operator] = true; }); +var ESCAPE = {"n":"\n", "f":"\f", "r":"\r", "t":"\t", "v":"\v", "'":"'", '"':'"'}; + + +///////////////////////////////////////// + + +/** + * @constructor + */ +var Lexer = function(options) { + this.options = options; +}; + +Lexer.prototype = { + constructor: Lexer, + + lex: function(text) { + this.text = text; + this.index = 0; + this.tokens = []; + + while (this.index < this.text.length) { + var ch = this.text.charAt(this.index); + if (ch === '"' || ch === "'") { + this.readString(ch); + } else if (this.isNumber(ch) || ch === '.' && this.isNumber(this.peek())) { + this.readNumber(); + } else if (this.isIdent(ch)) { + this.readIdent(); + } else if (this.is(ch, '(){}[].,;:?')) { + this.tokens.push({index: this.index, text: ch}); + this.index++; + } else if (this.isWhitespace(ch)) { + this.index++; + } else { + var ch2 = ch + this.peek(); + var ch3 = ch2 + this.peek(2); + var op1 = OPERATORS[ch]; + var op2 = OPERATORS[ch2]; + var op3 = OPERATORS[ch3]; + if (op1 || op2 || op3) { + var token = op3 ? ch3 : (op2 ? ch2 : ch); + this.tokens.push({index: this.index, text: token, operator: true}); + this.index += token.length; + } else { + this.throwError('Unexpected next character ', this.index, this.index + 1); + } + } + } + return this.tokens; + }, + + is: function(ch, chars) { + return chars.indexOf(ch) !== -1; + }, + + peek: function(i) { + var num = i || 1; + return (this.index + num < this.text.length) ? this.text.charAt(this.index + num) : false; + }, + + isNumber: function(ch) { + return ('0' <= ch && ch <= '9') && typeof ch === "string"; + }, + + isWhitespace: function(ch) { + // IE treats non-breaking space as \u00A0 + return (ch === ' ' || ch === '\r' || ch === '\t' || + ch === '\n' || ch === '\v' || ch === '\u00A0'); + }, + + isIdent: function(ch) { + return ('a' <= ch && ch <= 'z' || + 'A' <= ch && ch <= 'Z' || + '_' === ch || ch === '$'); + }, + + isExpOperator: function(ch) { + return (ch === '-' || ch === '+' || this.isNumber(ch)); + }, + + throwError: function(error, start, end) { + end = end || this.index; + var colStr = (isDefined(start) + ? 's ' + start + '-' + this.index + ' [' + this.text.substring(start, end) + ']' + : ' ' + end); + throw $parseMinErr('lexerr', 'Lexer Error: {0} at column{1} in expression [{2}].', + error, colStr, this.text); + }, + + readNumber: function() { + var number = ''; + var start = this.index; + while (this.index < this.text.length) { + var ch = lowercase(this.text.charAt(this.index)); + if (ch == '.' || this.isNumber(ch)) { + number += ch; + } else { + var peekCh = this.peek(); + if (ch == 'e' && this.isExpOperator(peekCh)) { + number += ch; + } else if (this.isExpOperator(ch) && + peekCh && this.isNumber(peekCh) && + number.charAt(number.length - 1) == 'e') { + number += ch; + } else if (this.isExpOperator(ch) && + (!peekCh || !this.isNumber(peekCh)) && + number.charAt(number.length - 1) == 'e') { + this.throwError('Invalid exponent'); + } else { + break; + } + } + this.index++; + } + this.tokens.push({ + index: start, + text: number, + constant: true, + value: Number(number) + }); + }, + + readIdent: function() { + var start = this.index; + while (this.index < this.text.length) { + var ch = this.text.charAt(this.index); + if (!(this.isIdent(ch) || this.isNumber(ch))) { + break; + } + this.index++; + } + this.tokens.push({ + index: start, + text: this.text.slice(start, this.index), + identifier: true + }); + }, + + readString: function(quote) { + var start = this.index; + this.index++; + var string = ''; + var rawString = quote; + var escape = false; + while (this.index < this.text.length) { + var ch = this.text.charAt(this.index); + rawString += ch; + if (escape) { + if (ch === 'u') { + var hex = this.text.substring(this.index + 1, this.index + 5); + if (!hex.match(/[\da-f]{4}/i)) { + this.throwError('Invalid unicode escape [\\u' + hex + ']'); + } + this.index += 4; + string += String.fromCharCode(parseInt(hex, 16)); + } else { + var rep = ESCAPE[ch]; + string = string + (rep || ch); + } + escape = false; + } else if (ch === '\\') { + escape = true; + } else if (ch === quote) { + this.index++; + this.tokens.push({ + index: start, + text: rawString, + constant: true, + value: string + }); + return; + } else { + string += ch; + } + this.index++; + } + this.throwError('Unterminated quote', start); + } +}; + +var AST = function(lexer, options) { + this.lexer = lexer; + this.options = options; +}; + +AST.Program = 'Program'; +AST.ExpressionStatement = 'ExpressionStatement'; +AST.AssignmentExpression = 'AssignmentExpression'; +AST.ConditionalExpression = 'ConditionalExpression'; +AST.LogicalExpression = 'LogicalExpression'; +AST.BinaryExpression = 'BinaryExpression'; +AST.UnaryExpression = 'UnaryExpression'; +AST.CallExpression = 'CallExpression'; +AST.MemberExpression = 'MemberExpression'; +AST.Identifier = 'Identifier'; +AST.Literal = 'Literal'; +AST.ArrayExpression = 'ArrayExpression'; +AST.Property = 'Property'; +AST.ObjectExpression = 'ObjectExpression'; +AST.ThisExpression = 'ThisExpression'; + +// Internal use only +AST.NGValueParameter = 'NGValueParameter'; + +AST.prototype = { + ast: function(text) { + this.text = text; + this.tokens = this.lexer.lex(text); + + var value = this.program(); + + if (this.tokens.length !== 0) { + this.throwError('is an unexpected token', this.tokens[0]); + } + + return value; + }, + + program: function() { + var body = []; + while (true) { + if (this.tokens.length > 0 && !this.peek('}', ')', ';', ']')) + body.push(this.expressionStatement()); + if (!this.expect(';')) { + return { type: AST.Program, body: body}; + } + } + }, + + expressionStatement: function() { + return { type: AST.ExpressionStatement, expression: this.filterChain() }; + }, + + filterChain: function() { + var left = this.expression(); + var token; + while ((token = this.expect('|'))) { + left = this.filter(left); + } + return left; + }, + + expression: function() { + return this.assignment(); + }, + + assignment: function() { + var result = this.ternary(); + if (this.expect('=')) { + result = { type: AST.AssignmentExpression, left: result, right: this.assignment(), operator: '='}; + } + return result; + }, + + ternary: function() { + var test = this.logicalOR(); + var alternate; + var consequent; + if (this.expect('?')) { + alternate = this.expression(); + if (this.consume(':')) { + consequent = this.expression(); + return { type: AST.ConditionalExpression, test: test, alternate: alternate, consequent: consequent}; + } + } + return test; + }, + + logicalOR: function() { + var left = this.logicalAND(); + while (this.expect('||')) { + left = { type: AST.LogicalExpression, operator: '||', left: left, right: this.logicalAND() }; + } + return left; + }, + + logicalAND: function() { + var left = this.equality(); + while (this.expect('&&')) { + left = { type: AST.LogicalExpression, operator: '&&', left: left, right: this.equality()}; + } + return left; + }, + + equality: function() { + var left = this.relational(); + var token; + while ((token = this.expect('==','!=','===','!=='))) { + left = { type: AST.BinaryExpression, operator: token.text, left: left, right: this.relational() }; + } + return left; + }, + + relational: function() { + var left = this.additive(); + var token; + while ((token = this.expect('<', '>', '<=', '>='))) { + left = { type: AST.BinaryExpression, operator: token.text, left: left, right: this.additive() }; + } + return left; + }, + + additive: function() { + var left = this.multiplicative(); + var token; + while ((token = this.expect('+','-'))) { + left = { type: AST.BinaryExpression, operator: token.text, left: left, right: this.multiplicative() }; + } + return left; + }, + + multiplicative: function() { + var left = this.unary(); + var token; + while ((token = this.expect('*','/','%'))) { + left = { type: AST.BinaryExpression, operator: token.text, left: left, right: this.unary() }; + } + return left; + }, + + unary: function() { + var token; + if ((token = this.expect('+', '-', '!'))) { + return { type: AST.UnaryExpression, operator: token.text, prefix: true, argument: this.unary() }; + } else { + return this.primary(); + } + }, + + primary: function() { + var primary; + if (this.expect('(')) { + primary = this.filterChain(); + this.consume(')'); + } else if (this.expect('[')) { + primary = this.arrayDeclaration(); + } else if (this.expect('{')) { + primary = this.object(); + } else if (this.constants.hasOwnProperty(this.peek().text)) { + primary = copy(this.constants[this.consume().text]); + } else if (this.peek().identifier) { + primary = this.identifier(); + } else if (this.peek().constant) { + primary = this.constant(); + } else { + this.throwError('not a primary expression', this.peek()); + } + + var next; + while ((next = this.expect('(', '[', '.'))) { + if (next.text === '(') { + primary = {type: AST.CallExpression, callee: primary, arguments: this.parseArguments() }; + this.consume(')'); + } else if (next.text === '[') { + primary = { type: AST.MemberExpression, object: primary, property: this.expression(), computed: true }; + this.consume(']'); + } else if (next.text === '.') { + primary = { type: AST.MemberExpression, object: primary, property: this.identifier(), computed: false }; + } else { + this.throwError('IMPOSSIBLE'); + } + } + return primary; + }, + + filter: function(baseExpression) { + var args = [baseExpression]; + var result = {type: AST.CallExpression, callee: this.identifier(), arguments: args, filter: true}; + + while (this.expect(':')) { + args.push(this.expression()); + } + + return result; + }, + + parseArguments: function() { + var args = []; + if (this.peekToken().text !== ')') { + do { + args.push(this.expression()); + } while (this.expect(',')); + } + return args; + }, + + identifier: function() { + var token = this.consume(); + if (!token.identifier) { + this.throwError('is not a valid identifier', token); + } + return { type: AST.Identifier, name: token.text }; + }, + + constant: function() { + // TODO check that it is a constant + return { type: AST.Literal, value: this.consume().value }; + }, + + arrayDeclaration: function() { + var elements = []; + if (this.peekToken().text !== ']') { + do { + if (this.peek(']')) { + // Support trailing commas per ES5.1. + break; + } + elements.push(this.expression()); + } while (this.expect(',')); + } + this.consume(']'); + + return { type: AST.ArrayExpression, elements: elements }; + }, + + object: function() { + var properties = [], property; + if (this.peekToken().text !== '}') { + do { + if (this.peek('}')) { + // Support trailing commas per ES5.1. + break; + } + property = {type: AST.Property, kind: 'init'}; + if (this.peek().constant) { + property.key = this.constant(); + } else if (this.peek().identifier) { + property.key = this.identifier(); + } else { + this.throwError("invalid key", this.peek()); + } + this.consume(':'); + property.value = this.expression(); + properties.push(property); + } while (this.expect(',')); + } + this.consume('}'); + + return {type: AST.ObjectExpression, properties: properties }; + }, + + throwError: function(msg, token) { + throw $parseMinErr('syntax', + 'Syntax Error: Token \'{0}\' {1} at column {2} of the expression [{3}] starting at [{4}].', + token.text, msg, (token.index + 1), this.text, this.text.substring(token.index)); + }, + + consume: function(e1) { + if (this.tokens.length === 0) { + throw $parseMinErr('ueoe', 'Unexpected end of expression: {0}', this.text); + } + + var token = this.expect(e1); + if (!token) { + this.throwError('is unexpected, expecting [' + e1 + ']', this.peek()); + } + return token; + }, + + peekToken: function() { + if (this.tokens.length === 0) { + throw $parseMinErr('ueoe', 'Unexpected end of expression: {0}', this.text); + } + return this.tokens[0]; + }, + + peek: function(e1, e2, e3, e4) { + return this.peekAhead(0, e1, e2, e3, e4); + }, + + peekAhead: function(i, e1, e2, e3, e4) { + if (this.tokens.length > i) { + var token = this.tokens[i]; + var t = token.text; + if (t === e1 || t === e2 || t === e3 || t === e4 || + (!e1 && !e2 && !e3 && !e4)) { + return token; + } + } + return false; + }, + + expect: function(e1, e2, e3, e4) { + var token = this.peek(e1, e2, e3, e4); + if (token) { + this.tokens.shift(); + return token; + } + return false; + }, + + + /* `undefined` is not a constant, it is an identifier, + * but using it as an identifier is not supported + */ + constants: { + 'true': { type: AST.Literal, value: true }, + 'false': { type: AST.Literal, value: false }, + 'null': { type: AST.Literal, value: null }, + 'undefined': {type: AST.Literal, value: undefined }, + 'this': {type: AST.ThisExpression } + } +}; + +function ifDefined(v, d) { + return typeof v !== 'undefined' ? v : d; +} + +function plusFn(l, r) { + if (typeof l === 'undefined') return r; + if (typeof r === 'undefined') return l; + return l + r; +} + +function isStateless($filter, filterName) { + var fn = $filter(filterName); + return !fn.$stateful; +} + +function findConstantAndWatchExpressions(ast, $filter) { + var allConstants; + var argsToWatch; + switch (ast.type) { + case AST.Program: + allConstants = true; + forEach(ast.body, function(expr) { + findConstantAndWatchExpressions(expr.expression, $filter); + allConstants = allConstants && expr.expression.constant; + }); + ast.constant = allConstants; + break; + case AST.Literal: + ast.constant = true; + ast.toWatch = []; + break; + case AST.UnaryExpression: + findConstantAndWatchExpressions(ast.argument, $filter); + ast.constant = ast.argument.constant; + ast.toWatch = ast.argument.toWatch; + break; + case AST.BinaryExpression: + findConstantAndWatchExpressions(ast.left, $filter); + findConstantAndWatchExpressions(ast.right, $filter); + ast.constant = ast.left.constant && ast.right.constant; + ast.toWatch = ast.left.toWatch.concat(ast.right.toWatch); + break; + case AST.LogicalExpression: + findConstantAndWatchExpressions(ast.left, $filter); + findConstantAndWatchExpressions(ast.right, $filter); + ast.constant = ast.left.constant && ast.right.constant; + ast.toWatch = ast.constant ? [] : [ast]; + break; + case AST.ConditionalExpression: + findConstantAndWatchExpressions(ast.test, $filter); + findConstantAndWatchExpressions(ast.alternate, $filter); + findConstantAndWatchExpressions(ast.consequent, $filter); + ast.constant = ast.test.constant && ast.alternate.constant && ast.consequent.constant; + ast.toWatch = ast.constant ? [] : [ast]; + break; + case AST.Identifier: + ast.constant = false; + ast.toWatch = [ast]; + break; + case AST.MemberExpression: + findConstantAndWatchExpressions(ast.object, $filter); + if (ast.computed) { + findConstantAndWatchExpressions(ast.property, $filter); + } + ast.constant = ast.object.constant && (!ast.computed || ast.property.constant); + ast.toWatch = [ast]; + break; + case AST.CallExpression: + allConstants = ast.filter ? isStateless($filter, ast.callee.name) : false; + argsToWatch = []; + forEach(ast.arguments, function(expr) { + findConstantAndWatchExpressions(expr, $filter); + allConstants = allConstants && expr.constant; + if (!expr.constant) { + argsToWatch.push.apply(argsToWatch, expr.toWatch); + } + }); + ast.constant = allConstants; + ast.toWatch = ast.filter && isStateless($filter, ast.callee.name) ? argsToWatch : [ast]; + break; + case AST.AssignmentExpression: + findConstantAndWatchExpressions(ast.left, $filter); + findConstantAndWatchExpressions(ast.right, $filter); + ast.constant = ast.left.constant && ast.right.constant; + ast.toWatch = [ast]; + break; + case AST.ArrayExpression: + allConstants = true; + argsToWatch = []; + forEach(ast.elements, function(expr) { + findConstantAndWatchExpressions(expr, $filter); + allConstants = allConstants && expr.constant; + if (!expr.constant) { + argsToWatch.push.apply(argsToWatch, expr.toWatch); + } + }); + ast.constant = allConstants; + ast.toWatch = argsToWatch; + break; + case AST.ObjectExpression: + allConstants = true; + argsToWatch = []; + forEach(ast.properties, function(property) { + findConstantAndWatchExpressions(property.value, $filter); + allConstants = allConstants && property.value.constant; + if (!property.value.constant) { + argsToWatch.push.apply(argsToWatch, property.value.toWatch); + } + }); + ast.constant = allConstants; + ast.toWatch = argsToWatch; + break; + case AST.ThisExpression: + ast.constant = false; + ast.toWatch = []; + break; + } +} + +function getInputs(body) { + if (body.length != 1) return; + var lastExpression = body[0].expression; + var candidate = lastExpression.toWatch; + if (candidate.length !== 1) return candidate; + return candidate[0] !== lastExpression ? candidate : undefined; +} + +function isAssignable(ast) { + return ast.type === AST.Identifier || ast.type === AST.MemberExpression; +} + +function assignableAST(ast) { + if (ast.body.length === 1 && isAssignable(ast.body[0].expression)) { + return {type: AST.AssignmentExpression, left: ast.body[0].expression, right: {type: AST.NGValueParameter}, operator: '='}; + } +} + +function isLiteral(ast) { + return ast.body.length === 0 || + ast.body.length === 1 && ( + ast.body[0].expression.type === AST.Literal || + ast.body[0].expression.type === AST.ArrayExpression || + ast.body[0].expression.type === AST.ObjectExpression); +} + +function isConstant(ast) { + return ast.constant; +} + +function ASTCompiler(astBuilder, $filter) { + this.astBuilder = astBuilder; + this.$filter = $filter; +} + +ASTCompiler.prototype = { + compile: function(expression, expensiveChecks) { + var self = this; + var ast = this.astBuilder.ast(expression); + this.state = { + nextId: 0, + filters: {}, + expensiveChecks: expensiveChecks, + fn: {vars: [], body: [], own: {}}, + assign: {vars: [], body: [], own: {}}, + inputs: [] + }; + findConstantAndWatchExpressions(ast, self.$filter); + var extra = ''; + var assignable; + this.stage = 'assign'; + if ((assignable = assignableAST(ast))) { + this.state.computing = 'assign'; + var result = this.nextId(); + this.recurse(assignable, result); + this.return_(result); + extra = 'fn.assign=' + this.generateFunction('assign', 's,v,l'); + } + var toWatch = getInputs(ast.body); + self.stage = 'inputs'; + forEach(toWatch, function(watch, key) { + var fnKey = 'fn' + key; + self.state[fnKey] = {vars: [], body: [], own: {}}; + self.state.computing = fnKey; + var intoId = self.nextId(); + self.recurse(watch, intoId); + self.return_(intoId); + self.state.inputs.push(fnKey); + watch.watchId = key; + }); + this.state.computing = 'fn'; + this.stage = 'main'; + this.recurse(ast); + var fnString = + // The build and minification steps remove the string "use strict" from the code, but this is done using a regex. + // This is a workaround for this until we do a better job at only removing the prefix only when we should. + '"' + this.USE + ' ' + this.STRICT + '";\n' + + this.filterPrefix() + + 'var fn=' + this.generateFunction('fn', 's,l,a,i') + + extra + + this.watchFns() + + 'return fn;'; + + /* jshint -W054 */ + var fn = (new Function('$filter', + 'ensureSafeMemberName', + 'ensureSafeObject', + 'ensureSafeFunction', + 'getStringValue', + 'ensureSafeAssignContext', + 'ifDefined', + 'plus', + 'text', + fnString))( + this.$filter, + ensureSafeMemberName, + ensureSafeObject, + ensureSafeFunction, + getStringValue, + ensureSafeAssignContext, + ifDefined, + plusFn, + expression); + /* jshint +W054 */ + this.state = this.stage = undefined; + fn.literal = isLiteral(ast); + fn.constant = isConstant(ast); + return fn; + }, + + USE: 'use', + + STRICT: 'strict', + + watchFns: function() { + var result = []; + var fns = this.state.inputs; + var self = this; + forEach(fns, function(name) { + result.push('var ' + name + '=' + self.generateFunction(name, 's')); + }); + if (fns.length) { + result.push('fn.inputs=[' + fns.join(',') + '];'); + } + return result.join(''); + }, + + generateFunction: function(name, params) { + return 'function(' + params + '){' + + this.varsPrefix(name) + + this.body(name) + + '};'; + }, + + filterPrefix: function() { + var parts = []; + var self = this; + forEach(this.state.filters, function(id, filter) { + parts.push(id + '=$filter(' + self.escape(filter) + ')'); + }); + if (parts.length) return 'var ' + parts.join(',') + ';'; + return ''; + }, + + varsPrefix: function(section) { + return this.state[section].vars.length ? 'var ' + this.state[section].vars.join(',') + ';' : ''; + }, + + body: function(section) { + return this.state[section].body.join(''); + }, + + recurse: function(ast, intoId, nameId, recursionFn, create, skipWatchIdCheck) { + var left, right, self = this, args, expression; + recursionFn = recursionFn || noop; + if (!skipWatchIdCheck && isDefined(ast.watchId)) { + intoId = intoId || this.nextId(); + this.if_('i', + this.lazyAssign(intoId, this.computedMember('i', ast.watchId)), + this.lazyRecurse(ast, intoId, nameId, recursionFn, create, true) + ); + return; + } + switch (ast.type) { + case AST.Program: + forEach(ast.body, function(expression, pos) { + self.recurse(expression.expression, undefined, undefined, function(expr) { right = expr; }); + if (pos !== ast.body.length - 1) { + self.current().body.push(right, ';'); + } else { + self.return_(right); + } + }); + break; + case AST.Literal: + expression = this.escape(ast.value); + this.assign(intoId, expression); + recursionFn(expression); + break; + case AST.UnaryExpression: + this.recurse(ast.argument, undefined, undefined, function(expr) { right = expr; }); + expression = ast.operator + '(' + this.ifDefined(right, 0) + ')'; + this.assign(intoId, expression); + recursionFn(expression); + break; + case AST.BinaryExpression: + this.recurse(ast.left, undefined, undefined, function(expr) { left = expr; }); + this.recurse(ast.right, undefined, undefined, function(expr) { right = expr; }); + if (ast.operator === '+') { + expression = this.plus(left, right); + } else if (ast.operator === '-') { + expression = this.ifDefined(left, 0) + ast.operator + this.ifDefined(right, 0); + } else { + expression = '(' + left + ')' + ast.operator + '(' + right + ')'; + } + this.assign(intoId, expression); + recursionFn(expression); + break; + case AST.LogicalExpression: + intoId = intoId || this.nextId(); + self.recurse(ast.left, intoId); + self.if_(ast.operator === '&&' ? intoId : self.not(intoId), self.lazyRecurse(ast.right, intoId)); + recursionFn(intoId); + break; + case AST.ConditionalExpression: + intoId = intoId || this.nextId(); + self.recurse(ast.test, intoId); + self.if_(intoId, self.lazyRecurse(ast.alternate, intoId), self.lazyRecurse(ast.consequent, intoId)); + recursionFn(intoId); + break; + case AST.Identifier: + intoId = intoId || this.nextId(); + if (nameId) { + nameId.context = self.stage === 'inputs' ? 's' : this.assign(this.nextId(), this.getHasOwnProperty('l', ast.name) + '?l:s'); + nameId.computed = false; + nameId.name = ast.name; + } + ensureSafeMemberName(ast.name); + self.if_(self.stage === 'inputs' || self.not(self.getHasOwnProperty('l', ast.name)), + function() { + self.if_(self.stage === 'inputs' || 's', function() { + if (create && create !== 1) { + self.if_( + self.not(self.nonComputedMember('s', ast.name)), + self.lazyAssign(self.nonComputedMember('s', ast.name), '{}')); + } + self.assign(intoId, self.nonComputedMember('s', ast.name)); + }); + }, intoId && self.lazyAssign(intoId, self.nonComputedMember('l', ast.name)) + ); + if (self.state.expensiveChecks || isPossiblyDangerousMemberName(ast.name)) { + self.addEnsureSafeObject(intoId); + } + recursionFn(intoId); + break; + case AST.MemberExpression: + left = nameId && (nameId.context = this.nextId()) || this.nextId(); + intoId = intoId || this.nextId(); + self.recurse(ast.object, left, undefined, function() { + self.if_(self.notNull(left), function() { + if (create && create !== 1) { + self.addEnsureSafeAssignContext(left); + } + if (ast.computed) { + right = self.nextId(); + self.recurse(ast.property, right); + self.getStringValue(right); + self.addEnsureSafeMemberName(right); + if (create && create !== 1) { + self.if_(self.not(self.computedMember(left, right)), self.lazyAssign(self.computedMember(left, right), '{}')); + } + expression = self.ensureSafeObject(self.computedMember(left, right)); + self.assign(intoId, expression); + if (nameId) { + nameId.computed = true; + nameId.name = right; + } + } else { + ensureSafeMemberName(ast.property.name); + if (create && create !== 1) { + self.if_(self.not(self.nonComputedMember(left, ast.property.name)), self.lazyAssign(self.nonComputedMember(left, ast.property.name), '{}')); + } + expression = self.nonComputedMember(left, ast.property.name); + if (self.state.expensiveChecks || isPossiblyDangerousMemberName(ast.property.name)) { + expression = self.ensureSafeObject(expression); + } + self.assign(intoId, expression); + if (nameId) { + nameId.computed = false; + nameId.name = ast.property.name; + } + } + }, function() { + self.assign(intoId, 'undefined'); + }); + recursionFn(intoId); + }, !!create); + break; + case AST.CallExpression: + intoId = intoId || this.nextId(); + if (ast.filter) { + right = self.filter(ast.callee.name); + args = []; + forEach(ast.arguments, function(expr) { + var argument = self.nextId(); + self.recurse(expr, argument); + args.push(argument); + }); + expression = right + '(' + args.join(',') + ')'; + self.assign(intoId, expression); + recursionFn(intoId); + } else { + right = self.nextId(); + left = {}; + args = []; + self.recurse(ast.callee, right, left, function() { + self.if_(self.notNull(right), function() { + self.addEnsureSafeFunction(right); + forEach(ast.arguments, function(expr) { + self.recurse(expr, self.nextId(), undefined, function(argument) { + args.push(self.ensureSafeObject(argument)); + }); + }); + if (left.name) { + if (!self.state.expensiveChecks) { + self.addEnsureSafeObject(left.context); + } + expression = self.member(left.context, left.name, left.computed) + '(' + args.join(',') + ')'; + } else { + expression = right + '(' + args.join(',') + ')'; + } + expression = self.ensureSafeObject(expression); + self.assign(intoId, expression); + }, function() { + self.assign(intoId, 'undefined'); + }); + recursionFn(intoId); + }); + } + break; + case AST.AssignmentExpression: + right = this.nextId(); + left = {}; + if (!isAssignable(ast.left)) { + throw $parseMinErr('lval', 'Trying to assign a value to a non l-value'); + } + this.recurse(ast.left, undefined, left, function() { + self.if_(self.notNull(left.context), function() { + self.recurse(ast.right, right); + self.addEnsureSafeObject(self.member(left.context, left.name, left.computed)); + self.addEnsureSafeAssignContext(left.context); + expression = self.member(left.context, left.name, left.computed) + ast.operator + right; + self.assign(intoId, expression); + recursionFn(intoId || expression); + }); + }, 1); + break; + case AST.ArrayExpression: + args = []; + forEach(ast.elements, function(expr) { + self.recurse(expr, self.nextId(), undefined, function(argument) { + args.push(argument); + }); + }); + expression = '[' + args.join(',') + ']'; + this.assign(intoId, expression); + recursionFn(expression); + break; + case AST.ObjectExpression: + args = []; + forEach(ast.properties, function(property) { + self.recurse(property.value, self.nextId(), undefined, function(expr) { + args.push(self.escape( + property.key.type === AST.Identifier ? property.key.name : + ('' + property.key.value)) + + ':' + expr); + }); + }); + expression = '{' + args.join(',') + '}'; + this.assign(intoId, expression); + recursionFn(expression); + break; + case AST.ThisExpression: + this.assign(intoId, 's'); + recursionFn('s'); + break; + case AST.NGValueParameter: + this.assign(intoId, 'v'); + recursionFn('v'); + break; + } + }, + + getHasOwnProperty: function(element, property) { + var key = element + '.' + property; + var own = this.current().own; + if (!own.hasOwnProperty(key)) { + own[key] = this.nextId(false, element + '&&(' + this.escape(property) + ' in ' + element + ')'); + } + return own[key]; + }, + + assign: function(id, value) { + if (!id) return; + this.current().body.push(id, '=', value, ';'); + return id; + }, + + filter: function(filterName) { + if (!this.state.filters.hasOwnProperty(filterName)) { + this.state.filters[filterName] = this.nextId(true); + } + return this.state.filters[filterName]; + }, + + ifDefined: function(id, defaultValue) { + return 'ifDefined(' + id + ',' + this.escape(defaultValue) + ')'; + }, + + plus: function(left, right) { + return 'plus(' + left + ',' + right + ')'; + }, + + return_: function(id) { + this.current().body.push('return ', id, ';'); + }, + + if_: function(test, alternate, consequent) { + if (test === true) { + alternate(); + } else { + var body = this.current().body; + body.push('if(', test, '){'); + alternate(); + body.push('}'); + if (consequent) { + body.push('else{'); + consequent(); + body.push('}'); + } + } + }, + + not: function(expression) { + return '!(' + expression + ')'; + }, + + notNull: function(expression) { + return expression + '!=null'; + }, + + nonComputedMember: function(left, right) { + return left + '.' + right; + }, + + computedMember: function(left, right) { + return left + '[' + right + ']'; + }, + + member: function(left, right, computed) { + if (computed) return this.computedMember(left, right); + return this.nonComputedMember(left, right); + }, + + addEnsureSafeObject: function(item) { + this.current().body.push(this.ensureSafeObject(item), ';'); + }, + + addEnsureSafeMemberName: function(item) { + this.current().body.push(this.ensureSafeMemberName(item), ';'); + }, + + addEnsureSafeFunction: function(item) { + this.current().body.push(this.ensureSafeFunction(item), ';'); + }, + + addEnsureSafeAssignContext: function(item) { + this.current().body.push(this.ensureSafeAssignContext(item), ';'); + }, + + ensureSafeObject: function(item) { + return 'ensureSafeObject(' + item + ',text)'; + }, + + ensureSafeMemberName: function(item) { + return 'ensureSafeMemberName(' + item + ',text)'; + }, + + ensureSafeFunction: function(item) { + return 'ensureSafeFunction(' + item + ',text)'; + }, + + getStringValue: function(item) { + this.assign(item, 'getStringValue(' + item + ',text)'); + }, + + ensureSafeAssignContext: function(item) { + return 'ensureSafeAssignContext(' + item + ',text)'; + }, + + lazyRecurse: function(ast, intoId, nameId, recursionFn, create, skipWatchIdCheck) { + var self = this; + return function() { + self.recurse(ast, intoId, nameId, recursionFn, create, skipWatchIdCheck); + }; + }, + + lazyAssign: function(id, value) { + var self = this; + return function() { + self.assign(id, value); + }; + }, + + stringEscapeRegex: /[^ a-zA-Z0-9]/g, + + stringEscapeFn: function(c) { + return '\\u' + ('0000' + c.charCodeAt(0).toString(16)).slice(-4); + }, + + escape: function(value) { + if (isString(value)) return "'" + value.replace(this.stringEscapeRegex, this.stringEscapeFn) + "'"; + if (isNumber(value)) return value.toString(); + if (value === true) return 'true'; + if (value === false) return 'false'; + if (value === null) return 'null'; + if (typeof value === 'undefined') return 'undefined'; + + throw $parseMinErr('esc', 'IMPOSSIBLE'); + }, + + nextId: function(skip, init) { + var id = 'v' + (this.state.nextId++); + if (!skip) { + this.current().vars.push(id + (init ? '=' + init : '')); + } + return id; + }, + + current: function() { + return this.state[this.state.computing]; + } +}; + + +function ASTInterpreter(astBuilder, $filter) { + this.astBuilder = astBuilder; + this.$filter = $filter; +} + +ASTInterpreter.prototype = { + compile: function(expression, expensiveChecks) { + var self = this; + var ast = this.astBuilder.ast(expression); + this.expression = expression; + this.expensiveChecks = expensiveChecks; + findConstantAndWatchExpressions(ast, self.$filter); + var assignable; + var assign; + if ((assignable = assignableAST(ast))) { + assign = this.recurse(assignable); + } + var toWatch = getInputs(ast.body); + var inputs; + if (toWatch) { + inputs = []; + forEach(toWatch, function(watch, key) { + var input = self.recurse(watch); + watch.input = input; + inputs.push(input); + watch.watchId = key; + }); + } + var expressions = []; + forEach(ast.body, function(expression) { + expressions.push(self.recurse(expression.expression)); + }); + var fn = ast.body.length === 0 ? function() {} : + ast.body.length === 1 ? expressions[0] : + function(scope, locals) { + var lastValue; + forEach(expressions, function(exp) { + lastValue = exp(scope, locals); + }); + return lastValue; + }; + if (assign) { + fn.assign = function(scope, value, locals) { + return assign(scope, locals, value); + }; + } + if (inputs) { + fn.inputs = inputs; + } + fn.literal = isLiteral(ast); + fn.constant = isConstant(ast); + return fn; + }, + + recurse: function(ast, context, create) { + var left, right, self = this, args, expression; + if (ast.input) { + return this.inputs(ast.input, ast.watchId); + } + switch (ast.type) { + case AST.Literal: + return this.value(ast.value, context); + case AST.UnaryExpression: + right = this.recurse(ast.argument); + return this['unary' + ast.operator](right, context); + case AST.BinaryExpression: + left = this.recurse(ast.left); + right = this.recurse(ast.right); + return this['binary' + ast.operator](left, right, context); + case AST.LogicalExpression: + left = this.recurse(ast.left); + right = this.recurse(ast.right); + return this['binary' + ast.operator](left, right, context); + case AST.ConditionalExpression: + return this['ternary?:']( + this.recurse(ast.test), + this.recurse(ast.alternate), + this.recurse(ast.consequent), + context + ); + case AST.Identifier: + ensureSafeMemberName(ast.name, self.expression); + return self.identifier(ast.name, + self.expensiveChecks || isPossiblyDangerousMemberName(ast.name), + context, create, self.expression); + case AST.MemberExpression: + left = this.recurse(ast.object, false, !!create); + if (!ast.computed) { + ensureSafeMemberName(ast.property.name, self.expression); + right = ast.property.name; + } + if (ast.computed) right = this.recurse(ast.property); + return ast.computed ? + this.computedMember(left, right, context, create, self.expression) : + this.nonComputedMember(left, right, self.expensiveChecks, context, create, self.expression); + case AST.CallExpression: + args = []; + forEach(ast.arguments, function(expr) { + args.push(self.recurse(expr)); + }); + if (ast.filter) right = this.$filter(ast.callee.name); + if (!ast.filter) right = this.recurse(ast.callee, true); + return ast.filter ? + function(scope, locals, assign, inputs) { + var values = []; + for (var i = 0; i < args.length; ++i) { + values.push(args[i](scope, locals, assign, inputs)); + } + var value = right.apply(undefined, values, inputs); + return context ? {context: undefined, name: undefined, value: value} : value; + } : + function(scope, locals, assign, inputs) { + var rhs = right(scope, locals, assign, inputs); + var value; + if (rhs.value != null) { + ensureSafeObject(rhs.context, self.expression); + ensureSafeFunction(rhs.value, self.expression); + var values = []; + for (var i = 0; i < args.length; ++i) { + values.push(ensureSafeObject(args[i](scope, locals, assign, inputs), self.expression)); + } + value = ensureSafeObject(rhs.value.apply(rhs.context, values), self.expression); + } + return context ? {value: value} : value; + }; + case AST.AssignmentExpression: + left = this.recurse(ast.left, true, 1); + right = this.recurse(ast.right); + return function(scope, locals, assign, inputs) { + var lhs = left(scope, locals, assign, inputs); + var rhs = right(scope, locals, assign, inputs); + ensureSafeObject(lhs.value, self.expression); + ensureSafeAssignContext(lhs.context); + lhs.context[lhs.name] = rhs; + return context ? {value: rhs} : rhs; + }; + case AST.ArrayExpression: + args = []; + forEach(ast.elements, function(expr) { + args.push(self.recurse(expr)); + }); + return function(scope, locals, assign, inputs) { + var value = []; + for (var i = 0; i < args.length; ++i) { + value.push(args[i](scope, locals, assign, inputs)); + } + return context ? {value: value} : value; + }; + case AST.ObjectExpression: + args = []; + forEach(ast.properties, function(property) { + args.push({key: property.key.type === AST.Identifier ? + property.key.name : + ('' + property.key.value), + value: self.recurse(property.value) + }); + }); + return function(scope, locals, assign, inputs) { + var value = {}; + for (var i = 0; i < args.length; ++i) { + value[args[i].key] = args[i].value(scope, locals, assign, inputs); + } + return context ? {value: value} : value; + }; + case AST.ThisExpression: + return function(scope) { + return context ? {value: scope} : scope; + }; + case AST.NGValueParameter: + return function(scope, locals, assign, inputs) { + return context ? {value: assign} : assign; + }; + } + }, + + 'unary+': function(argument, context) { + return function(scope, locals, assign, inputs) { + var arg = argument(scope, locals, assign, inputs); + if (isDefined(arg)) { + arg = +arg; + } else { + arg = 0; + } + return context ? {value: arg} : arg; + }; + }, + 'unary-': function(argument, context) { + return function(scope, locals, assign, inputs) { + var arg = argument(scope, locals, assign, inputs); + if (isDefined(arg)) { + arg = -arg; + } else { + arg = 0; + } + return context ? {value: arg} : arg; + }; + }, + 'unary!': function(argument, context) { + return function(scope, locals, assign, inputs) { + var arg = !argument(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary+': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var lhs = left(scope, locals, assign, inputs); + var rhs = right(scope, locals, assign, inputs); + var arg = plusFn(lhs, rhs); + return context ? {value: arg} : arg; + }; + }, + 'binary-': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var lhs = left(scope, locals, assign, inputs); + var rhs = right(scope, locals, assign, inputs); + var arg = (isDefined(lhs) ? lhs : 0) - (isDefined(rhs) ? rhs : 0); + return context ? {value: arg} : arg; + }; + }, + 'binary*': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) * right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary/': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) / right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary%': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) % right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary===': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) === right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary!==': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) !== right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary==': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) == right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary!=': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) != right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary<': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) < right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary>': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) > right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary<=': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) <= right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary>=': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) >= right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary&&': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) && right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary||': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) || right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'ternary?:': function(test, alternate, consequent, context) { + return function(scope, locals, assign, inputs) { + var arg = test(scope, locals, assign, inputs) ? alternate(scope, locals, assign, inputs) : consequent(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + value: function(value, context) { + return function() { return context ? {context: undefined, name: undefined, value: value} : value; }; + }, + identifier: function(name, expensiveChecks, context, create, expression) { + return function(scope, locals, assign, inputs) { + var base = locals && (name in locals) ? locals : scope; + if (create && create !== 1 && base && !(base[name])) { + base[name] = {}; + } + var value = base ? base[name] : undefined; + if (expensiveChecks) { + ensureSafeObject(value, expression); + } + if (context) { + return {context: base, name: name, value: value}; + } else { + return value; + } + }; + }, + computedMember: function(left, right, context, create, expression) { + return function(scope, locals, assign, inputs) { + var lhs = left(scope, locals, assign, inputs); + var rhs; + var value; + if (lhs != null) { + rhs = right(scope, locals, assign, inputs); + rhs = getStringValue(rhs); + ensureSafeMemberName(rhs, expression); + if (create && create !== 1) { + ensureSafeAssignContext(lhs); + if (lhs && !(lhs[rhs])) { + lhs[rhs] = {}; + } + } + value = lhs[rhs]; + ensureSafeObject(value, expression); + } + if (context) { + return {context: lhs, name: rhs, value: value}; + } else { + return value; + } + }; + }, + nonComputedMember: function(left, right, expensiveChecks, context, create, expression) { + return function(scope, locals, assign, inputs) { + var lhs = left(scope, locals, assign, inputs); + if (create && create !== 1) { + ensureSafeAssignContext(lhs); + if (lhs && !(lhs[right])) { + lhs[right] = {}; + } + } + var value = lhs != null ? lhs[right] : undefined; + if (expensiveChecks || isPossiblyDangerousMemberName(right)) { + ensureSafeObject(value, expression); + } + if (context) { + return {context: lhs, name: right, value: value}; + } else { + return value; + } + }; + }, + inputs: function(input, watchId) { + return function(scope, value, locals, inputs) { + if (inputs) return inputs[watchId]; + return input(scope, value, locals); + }; + } +}; + +/** + * @constructor + */ +var Parser = function(lexer, $filter, options) { + this.lexer = lexer; + this.$filter = $filter; + this.options = options; + this.ast = new AST(this.lexer); + this.astCompiler = options.csp ? new ASTInterpreter(this.ast, $filter) : + new ASTCompiler(this.ast, $filter); +}; + +Parser.prototype = { + constructor: Parser, + + parse: function(text) { + return this.astCompiler.compile(text, this.options.expensiveChecks); + } +}; + +function isPossiblyDangerousMemberName(name) { + return name == 'constructor'; +} + +var objectValueOf = Object.prototype.valueOf; + +function getValueOf(value) { + return isFunction(value.valueOf) ? value.valueOf() : objectValueOf.call(value); +} + +/////////////////////////////////// + +/** + * @ngdoc service + * @name $parse + * @kind function + * + * @description + * + * Converts Angular {@link guide/expression expression} into a function. + * + * ```js + * var getter = $parse('user.name'); + * var setter = getter.assign; + * var context = {user:{name:'angular'}}; + * var locals = {user:{name:'local'}}; + * + * expect(getter(context)).toEqual('angular'); + * setter(context, 'newValue'); + * expect(context.user.name).toEqual('newValue'); + * expect(getter(context, locals)).toEqual('local'); + * ``` + * + * + * @param {string} expression String expression to compile. + * @returns {function(context, locals)} a function which represents the compiled expression: + * + * * `context` – `{object}` – an object against which any expressions embedded in the strings + * are evaluated against (typically a scope object). + * * `locals` – `{object=}` – local variables context object, useful for overriding values in + * `context`. + * + * The returned function also has the following properties: + * * `literal` – `{boolean}` – whether the expression's top-level node is a JavaScript + * literal. + * * `constant` – `{boolean}` – whether the expression is made entirely of JavaScript + * constant literals. + * * `assign` – `{?function(context, value)}` – if the expression is assignable, this will be + * set to a function to change its value on the given context. + * + */ + + +/** + * @ngdoc provider + * @name $parseProvider + * + * @description + * `$parseProvider` can be used for configuring the default behavior of the {@link ng.$parse $parse} + * service. + */ +function $ParseProvider() { + var cacheDefault = createMap(); + var cacheExpensive = createMap(); + + this.$get = ['$filter', function($filter) { + var noUnsafeEval = csp().noUnsafeEval; + var $parseOptions = { + csp: noUnsafeEval, + expensiveChecks: false + }, + $parseOptionsExpensive = { + csp: noUnsafeEval, + expensiveChecks: true + }; + var runningChecksEnabled = false; + + $parse.$$runningExpensiveChecks = function() { + return runningChecksEnabled; + }; + + return $parse; + + function $parse(exp, interceptorFn, expensiveChecks) { + var parsedExpression, oneTime, cacheKey; + + expensiveChecks = expensiveChecks || runningChecksEnabled; + + switch (typeof exp) { + case 'string': + exp = exp.trim(); + cacheKey = exp; + + var cache = (expensiveChecks ? cacheExpensive : cacheDefault); + parsedExpression = cache[cacheKey]; + + if (!parsedExpression) { + if (exp.charAt(0) === ':' && exp.charAt(1) === ':') { + oneTime = true; + exp = exp.substring(2); + } + var parseOptions = expensiveChecks ? $parseOptionsExpensive : $parseOptions; + var lexer = new Lexer(parseOptions); + var parser = new Parser(lexer, $filter, parseOptions); + parsedExpression = parser.parse(exp); + if (parsedExpression.constant) { + parsedExpression.$$watchDelegate = constantWatchDelegate; + } else if (oneTime) { + parsedExpression.$$watchDelegate = parsedExpression.literal ? + oneTimeLiteralWatchDelegate : oneTimeWatchDelegate; + } else if (parsedExpression.inputs) { + parsedExpression.$$watchDelegate = inputsWatchDelegate; + } + if (expensiveChecks) { + parsedExpression = expensiveChecksInterceptor(parsedExpression); + } + cache[cacheKey] = parsedExpression; + } + return addInterceptor(parsedExpression, interceptorFn); + + case 'function': + return addInterceptor(exp, interceptorFn); + + default: + return addInterceptor(noop, interceptorFn); + } + } + + function expensiveChecksInterceptor(fn) { + if (!fn) return fn; + expensiveCheckFn.$$watchDelegate = fn.$$watchDelegate; + expensiveCheckFn.assign = expensiveChecksInterceptor(fn.assign); + expensiveCheckFn.constant = fn.constant; + expensiveCheckFn.literal = fn.literal; + for (var i = 0; fn.inputs && i < fn.inputs.length; ++i) { + fn.inputs[i] = expensiveChecksInterceptor(fn.inputs[i]); + } + expensiveCheckFn.inputs = fn.inputs; + + return expensiveCheckFn; + + function expensiveCheckFn(scope, locals, assign, inputs) { + var expensiveCheckOldValue = runningChecksEnabled; + runningChecksEnabled = true; + try { + return fn(scope, locals, assign, inputs); + } finally { + runningChecksEnabled = expensiveCheckOldValue; + } + } + } + + function expressionInputDirtyCheck(newValue, oldValueOfValue) { + + if (newValue == null || oldValueOfValue == null) { // null/undefined + return newValue === oldValueOfValue; + } + + if (typeof newValue === 'object') { + + // attempt to convert the value to a primitive type + // TODO(docs): add a note to docs that by implementing valueOf even objects and arrays can + // be cheaply dirty-checked + newValue = getValueOf(newValue); + + if (typeof newValue === 'object') { + // objects/arrays are not supported - deep-watching them would be too expensive + return false; + } + + // fall-through to the primitive equality check + } + + //Primitive or NaN + return newValue === oldValueOfValue || (newValue !== newValue && oldValueOfValue !== oldValueOfValue); + } + + function inputsWatchDelegate(scope, listener, objectEquality, parsedExpression, prettyPrintExpression) { + var inputExpressions = parsedExpression.inputs; + var lastResult; + + if (inputExpressions.length === 1) { + var oldInputValueOf = expressionInputDirtyCheck; // init to something unique so that equals check fails + inputExpressions = inputExpressions[0]; + return scope.$watch(function expressionInputWatch(scope) { + var newInputValue = inputExpressions(scope); + if (!expressionInputDirtyCheck(newInputValue, oldInputValueOf)) { + lastResult = parsedExpression(scope, undefined, undefined, [newInputValue]); + oldInputValueOf = newInputValue && getValueOf(newInputValue); + } + return lastResult; + }, listener, objectEquality, prettyPrintExpression); + } + + var oldInputValueOfValues = []; + var oldInputValues = []; + for (var i = 0, ii = inputExpressions.length; i < ii; i++) { + oldInputValueOfValues[i] = expressionInputDirtyCheck; // init to something unique so that equals check fails + oldInputValues[i] = null; + } + + return scope.$watch(function expressionInputsWatch(scope) { + var changed = false; + + for (var i = 0, ii = inputExpressions.length; i < ii; i++) { + var newInputValue = inputExpressions[i](scope); + if (changed || (changed = !expressionInputDirtyCheck(newInputValue, oldInputValueOfValues[i]))) { + oldInputValues[i] = newInputValue; + oldInputValueOfValues[i] = newInputValue && getValueOf(newInputValue); + } + } + + if (changed) { + lastResult = parsedExpression(scope, undefined, undefined, oldInputValues); + } + + return lastResult; + }, listener, objectEquality, prettyPrintExpression); + } + + function oneTimeWatchDelegate(scope, listener, objectEquality, parsedExpression) { + var unwatch, lastValue; + return unwatch = scope.$watch(function oneTimeWatch(scope) { + return parsedExpression(scope); + }, function oneTimeListener(value, old, scope) { + lastValue = value; + if (isFunction(listener)) { + listener.apply(this, arguments); + } + if (isDefined(value)) { + scope.$$postDigest(function() { + if (isDefined(lastValue)) { + unwatch(); + } + }); + } + }, objectEquality); + } + + function oneTimeLiteralWatchDelegate(scope, listener, objectEquality, parsedExpression) { + var unwatch, lastValue; + return unwatch = scope.$watch(function oneTimeWatch(scope) { + return parsedExpression(scope); + }, function oneTimeListener(value, old, scope) { + lastValue = value; + if (isFunction(listener)) { + listener.call(this, value, old, scope); + } + if (isAllDefined(value)) { + scope.$$postDigest(function() { + if (isAllDefined(lastValue)) unwatch(); + }); + } + }, objectEquality); + + function isAllDefined(value) { + var allDefined = true; + forEach(value, function(val) { + if (!isDefined(val)) allDefined = false; + }); + return allDefined; + } + } + + function constantWatchDelegate(scope, listener, objectEquality, parsedExpression) { + var unwatch; + return unwatch = scope.$watch(function constantWatch(scope) { + return parsedExpression(scope); + }, function constantListener(value, old, scope) { + if (isFunction(listener)) { + listener.apply(this, arguments); + } + unwatch(); + }, objectEquality); + } + + function addInterceptor(parsedExpression, interceptorFn) { + if (!interceptorFn) return parsedExpression; + var watchDelegate = parsedExpression.$$watchDelegate; + var useInputs = false; + + var regularWatch = + watchDelegate !== oneTimeLiteralWatchDelegate && + watchDelegate !== oneTimeWatchDelegate; + + var fn = regularWatch ? function regularInterceptedExpression(scope, locals, assign, inputs) { + var value = useInputs && inputs ? inputs[0] : parsedExpression(scope, locals, assign, inputs); + return interceptorFn(value, scope, locals); + } : function oneTimeInterceptedExpression(scope, locals, assign, inputs) { + var value = parsedExpression(scope, locals, assign, inputs); + var result = interceptorFn(value, scope, locals); + // we only return the interceptor's result if the + // initial value is defined (for bind-once) + return isDefined(value) ? result : value; + }; + + // Propagate $$watchDelegates other then inputsWatchDelegate + if (parsedExpression.$$watchDelegate && + parsedExpression.$$watchDelegate !== inputsWatchDelegate) { + fn.$$watchDelegate = parsedExpression.$$watchDelegate; + } else if (!interceptorFn.$stateful) { + // If there is an interceptor, but no watchDelegate then treat the interceptor like + // we treat filters - it is assumed to be a pure function unless flagged with $stateful + fn.$$watchDelegate = inputsWatchDelegate; + useInputs = !parsedExpression.inputs; + fn.inputs = parsedExpression.inputs ? parsedExpression.inputs : [parsedExpression]; + } + + return fn; + } + }]; +} + +/** + * @ngdoc service + * @name $q + * @requires $rootScope + * + * @description + * A service that helps you run functions asynchronously, and use their return values (or exceptions) + * when they are done processing. + * + * This is an implementation of promises/deferred objects inspired by + * [Kris Kowal's Q](https://github.com/kriskowal/q). + * + * $q can be used in two fashions --- one which is more similar to Kris Kowal's Q or jQuery's Deferred + * implementations, and the other which resembles ES6 promises to some degree. + * + * # $q constructor + * + * The streamlined ES6 style promise is essentially just using $q as a constructor which takes a `resolver` + * function as the first argument. This is similar to the native Promise implementation from ES6 Harmony, + * see [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise). + * + * While the constructor-style use is supported, not all of the supporting methods from ES6 Harmony promises are + * available yet. + * + * It can be used like so: + * + * ```js + * // for the purpose of this example let's assume that variables `$q` and `okToGreet` + * // are available in the current lexical scope (they could have been injected or passed in). + * + * function asyncGreet(name) { + * // perform some asynchronous operation, resolve or reject the promise when appropriate. + * return $q(function(resolve, reject) { + * setTimeout(function() { + * if (okToGreet(name)) { + * resolve('Hello, ' + name + '!'); + * } else { + * reject('Greeting ' + name + ' is not allowed.'); + * } + * }, 1000); + * }); + * } + * + * var promise = asyncGreet('Robin Hood'); + * promise.then(function(greeting) { + * alert('Success: ' + greeting); + * }, function(reason) { + * alert('Failed: ' + reason); + * }); + * ``` + * + * Note: progress/notify callbacks are not currently supported via the ES6-style interface. + * + * Note: unlike ES6 behaviour, an exception thrown in the constructor function will NOT implicitly reject the promise. + * + * However, the more traditional CommonJS-style usage is still available, and documented below. + * + * [The CommonJS Promise proposal](http://wiki.commonjs.org/wiki/Promises) describes a promise as an + * interface for interacting with an object that represents the result of an action that is + * performed asynchronously, and may or may not be finished at any given point in time. + * + * From the perspective of dealing with error handling, deferred and promise APIs are to + * asynchronous programming what `try`, `catch` and `throw` keywords are to synchronous programming. + * + * ```js + * // for the purpose of this example let's assume that variables `$q` and `okToGreet` + * // are available in the current lexical scope (they could have been injected or passed in). + * + * function asyncGreet(name) { + * var deferred = $q.defer(); + * + * setTimeout(function() { + * deferred.notify('About to greet ' + name + '.'); + * + * if (okToGreet(name)) { + * deferred.resolve('Hello, ' + name + '!'); + * } else { + * deferred.reject('Greeting ' + name + ' is not allowed.'); + * } + * }, 1000); + * + * return deferred.promise; + * } + * + * var promise = asyncGreet('Robin Hood'); + * promise.then(function(greeting) { + * alert('Success: ' + greeting); + * }, function(reason) { + * alert('Failed: ' + reason); + * }, function(update) { + * alert('Got notification: ' + update); + * }); + * ``` + * + * At first it might not be obvious why this extra complexity is worth the trouble. The payoff + * comes in the way of guarantees that promise and deferred APIs make, see + * https://github.com/kriskowal/uncommonjs/blob/master/promises/specification.md. + * + * Additionally the promise api allows for composition that is very hard to do with the + * traditional callback ([CPS](http://en.wikipedia.org/wiki/Continuation-passing_style)) approach. + * For more on this please see the [Q documentation](https://github.com/kriskowal/q) especially the + * section on serial or parallel joining of promises. + * + * # The Deferred API + * + * A new instance of deferred is constructed by calling `$q.defer()`. + * + * The purpose of the deferred object is to expose the associated Promise instance as well as APIs + * that can be used for signaling the successful or unsuccessful completion, as well as the status + * of the task. + * + * **Methods** + * + * - `resolve(value)` – resolves the derived promise with the `value`. If the value is a rejection + * constructed via `$q.reject`, the promise will be rejected instead. + * - `reject(reason)` – rejects the derived promise with the `reason`. This is equivalent to + * resolving it with a rejection constructed via `$q.reject`. + * - `notify(value)` - provides updates on the status of the promise's execution. This may be called + * multiple times before the promise is either resolved or rejected. + * + * **Properties** + * + * - promise – `{Promise}` – promise object associated with this deferred. + * + * + * # The Promise API + * + * A new promise instance is created when a deferred instance is created and can be retrieved by + * calling `deferred.promise`. + * + * The purpose of the promise object is to allow for interested parties to get access to the result + * of the deferred task when it completes. + * + * **Methods** + * + * - `then(successCallback, errorCallback, notifyCallback)` – regardless of when the promise was or + * will be resolved or rejected, `then` calls one of the success or error callbacks asynchronously + * as soon as the result is available. The callbacks are called with a single argument: the result + * or rejection reason. Additionally, the notify callback may be called zero or more times to + * provide a progress indication, before the promise is resolved or rejected. + * + * This method *returns a new promise* which is resolved or rejected via the return value of the + * `successCallback`, `errorCallback` (unless that value is a promise, in which case it is resolved + * with the value which is resolved in that promise using + * [promise chaining](http://www.html5rocks.com/en/tutorials/es6/promises/#toc-promises-queues)). + * It also notifies via the return value of the `notifyCallback` method. The promise cannot be + * resolved or rejected from the notifyCallback method. + * + * - `catch(errorCallback)` – shorthand for `promise.then(null, errorCallback)` + * + * - `finally(callback, notifyCallback)` – allows you to observe either the fulfillment or rejection of a promise, + * but to do so without modifying the final value. This is useful to release resources or do some + * clean-up that needs to be done whether the promise was rejected or resolved. See the [full + * specification](https://github.com/kriskowal/q/wiki/API-Reference#promisefinallycallback) for + * more information. + * + * # Chaining promises + * + * Because calling the `then` method of a promise returns a new derived promise, it is easily + * possible to create a chain of promises: + * + * ```js + * promiseB = promiseA.then(function(result) { + * return result + 1; + * }); + * + * // promiseB will be resolved immediately after promiseA is resolved and its value + * // will be the result of promiseA incremented by 1 + * ``` + * + * It is possible to create chains of any length and since a promise can be resolved with another + * promise (which will defer its resolution further), it is possible to pause/defer resolution of + * the promises at any point in the chain. This makes it possible to implement powerful APIs like + * $http's response interceptors. + * + * + * # Differences between Kris Kowal's Q and $q + * + * There are two main differences: + * + * - $q is integrated with the {@link ng.$rootScope.Scope} Scope model observation + * mechanism in angular, which means faster propagation of resolution or rejection into your + * models and avoiding unnecessary browser repaints, which would result in flickering UI. + * - Q has many more features than $q, but that comes at a cost of bytes. $q is tiny, but contains + * all the important functionality needed for common async tasks. + * + * # Testing + * + * ```js + * it('should simulate promise', inject(function($q, $rootScope) { + * var deferred = $q.defer(); + * var promise = deferred.promise; + * var resolvedValue; + * + * promise.then(function(value) { resolvedValue = value; }); + * expect(resolvedValue).toBeUndefined(); + * + * // Simulate resolving of promise + * deferred.resolve(123); + * // Note that the 'then' function does not get called synchronously. + * // This is because we want the promise API to always be async, whether or not + * // it got called synchronously or asynchronously. + * expect(resolvedValue).toBeUndefined(); + * + * // Propagate promise resolution to 'then' functions using $apply(). + * $rootScope.$apply(); + * expect(resolvedValue).toEqual(123); + * })); + * ``` + * + * @param {function(function, function)} resolver Function which is responsible for resolving or + * rejecting the newly created promise. The first parameter is a function which resolves the + * promise, the second parameter is a function which rejects the promise. + * + * @returns {Promise} The newly created promise. + */ +function $QProvider() { + + this.$get = ['$rootScope', '$exceptionHandler', function($rootScope, $exceptionHandler) { + return qFactory(function(callback) { + $rootScope.$evalAsync(callback); + }, $exceptionHandler); + }]; +} + +function $$QProvider() { + this.$get = ['$browser', '$exceptionHandler', function($browser, $exceptionHandler) { + return qFactory(function(callback) { + $browser.defer(callback); + }, $exceptionHandler); + }]; +} + +/** + * Constructs a promise manager. + * + * @param {function(function)} nextTick Function for executing functions in the next turn. + * @param {function(...*)} exceptionHandler Function into which unexpected exceptions are passed for + * debugging purposes. + * @returns {object} Promise manager. + */ +function qFactory(nextTick, exceptionHandler) { + var $qMinErr = minErr('$q', TypeError); + function callOnce(self, resolveFn, rejectFn) { + var called = false; + function wrap(fn) { + return function(value) { + if (called) return; + called = true; + fn.call(self, value); + }; + } + + return [wrap(resolveFn), wrap(rejectFn)]; + } + + /** + * @ngdoc method + * @name ng.$q#defer + * @kind function + * + * @description + * Creates a `Deferred` object which represents a task which will finish in the future. + * + * @returns {Deferred} Returns a new instance of deferred. + */ + var defer = function() { + return new Deferred(); + }; + + function Promise() { + this.$$state = { status: 0 }; + } + + extend(Promise.prototype, { + then: function(onFulfilled, onRejected, progressBack) { + if (isUndefined(onFulfilled) && isUndefined(onRejected) && isUndefined(progressBack)) { + return this; + } + var result = new Deferred(); + + this.$$state.pending = this.$$state.pending || []; + this.$$state.pending.push([result, onFulfilled, onRejected, progressBack]); + if (this.$$state.status > 0) scheduleProcessQueue(this.$$state); + + return result.promise; + }, + + "catch": function(callback) { + return this.then(null, callback); + }, + + "finally": function(callback, progressBack) { + return this.then(function(value) { + return handleCallback(value, true, callback); + }, function(error) { + return handleCallback(error, false, callback); + }, progressBack); + } + }); + + //Faster, more basic than angular.bind http://jsperf.com/angular-bind-vs-custom-vs-native + function simpleBind(context, fn) { + return function(value) { + fn.call(context, value); + }; + } + + function processQueue(state) { + var fn, deferred, pending; + + pending = state.pending; + state.processScheduled = false; + state.pending = undefined; + for (var i = 0, ii = pending.length; i < ii; ++i) { + deferred = pending[i][0]; + fn = pending[i][state.status]; + try { + if (isFunction(fn)) { + deferred.resolve(fn(state.value)); + } else if (state.status === 1) { + deferred.resolve(state.value); + } else { + deferred.reject(state.value); + } + } catch (e) { + deferred.reject(e); + exceptionHandler(e); + } + } + } + + function scheduleProcessQueue(state) { + if (state.processScheduled || !state.pending) return; + state.processScheduled = true; + nextTick(function() { processQueue(state); }); + } + + function Deferred() { + this.promise = new Promise(); + //Necessary to support unbound execution :/ + this.resolve = simpleBind(this, this.resolve); + this.reject = simpleBind(this, this.reject); + this.notify = simpleBind(this, this.notify); + } + + extend(Deferred.prototype, { + resolve: function(val) { + if (this.promise.$$state.status) return; + if (val === this.promise) { + this.$$reject($qMinErr( + 'qcycle', + "Expected promise to be resolved with value other than itself '{0}'", + val)); + } else { + this.$$resolve(val); + } + + }, + + $$resolve: function(val) { + var then, fns; + + fns = callOnce(this, this.$$resolve, this.$$reject); + try { + if ((isObject(val) || isFunction(val))) then = val && val.then; + if (isFunction(then)) { + this.promise.$$state.status = -1; + then.call(val, fns[0], fns[1], this.notify); + } else { + this.promise.$$state.value = val; + this.promise.$$state.status = 1; + scheduleProcessQueue(this.promise.$$state); + } + } catch (e) { + fns[1](e); + exceptionHandler(e); + } + }, + + reject: function(reason) { + if (this.promise.$$state.status) return; + this.$$reject(reason); + }, + + $$reject: function(reason) { + this.promise.$$state.value = reason; + this.promise.$$state.status = 2; + scheduleProcessQueue(this.promise.$$state); + }, + + notify: function(progress) { + var callbacks = this.promise.$$state.pending; + + if ((this.promise.$$state.status <= 0) && callbacks && callbacks.length) { + nextTick(function() { + var callback, result; + for (var i = 0, ii = callbacks.length; i < ii; i++) { + result = callbacks[i][0]; + callback = callbacks[i][3]; + try { + result.notify(isFunction(callback) ? callback(progress) : progress); + } catch (e) { + exceptionHandler(e); + } + } + }); + } + } + }); + + /** + * @ngdoc method + * @name $q#reject + * @kind function + * + * @description + * Creates a promise that is resolved as rejected with the specified `reason`. This api should be + * used to forward rejection in a chain of promises. If you are dealing with the last promise in + * a promise chain, you don't need to worry about it. + * + * When comparing deferreds/promises to the familiar behavior of try/catch/throw, think of + * `reject` as the `throw` keyword in JavaScript. This also means that if you "catch" an error via + * a promise error callback and you want to forward the error to the promise derived from the + * current promise, you have to "rethrow" the error by returning a rejection constructed via + * `reject`. + * + * ```js + * promiseB = promiseA.then(function(result) { + * // success: do something and resolve promiseB + * // with the old or a new result + * return result; + * }, function(reason) { + * // error: handle the error if possible and + * // resolve promiseB with newPromiseOrValue, + * // otherwise forward the rejection to promiseB + * if (canHandle(reason)) { + * // handle the error and recover + * return newPromiseOrValue; + * } + * return $q.reject(reason); + * }); + * ``` + * + * @param {*} reason Constant, message, exception or an object representing the rejection reason. + * @returns {Promise} Returns a promise that was already resolved as rejected with the `reason`. + */ + var reject = function(reason) { + var result = new Deferred(); + result.reject(reason); + return result.promise; + }; + + var makePromise = function makePromise(value, resolved) { + var result = new Deferred(); + if (resolved) { + result.resolve(value); + } else { + result.reject(value); + } + return result.promise; + }; + + var handleCallback = function handleCallback(value, isResolved, callback) { + var callbackOutput = null; + try { + if (isFunction(callback)) callbackOutput = callback(); + } catch (e) { + return makePromise(e, false); + } + if (isPromiseLike(callbackOutput)) { + return callbackOutput.then(function() { + return makePromise(value, isResolved); + }, function(error) { + return makePromise(error, false); + }); + } else { + return makePromise(value, isResolved); + } + }; + + /** + * @ngdoc method + * @name $q#when + * @kind function + * + * @description + * Wraps an object that might be a value or a (3rd party) then-able promise into a $q promise. + * This is useful when you are dealing with an object that might or might not be a promise, or if + * the promise comes from a source that can't be trusted. + * + * @param {*} value Value or a promise + * @param {Function=} successCallback + * @param {Function=} errorCallback + * @param {Function=} progressCallback + * @returns {Promise} Returns a promise of the passed value or promise + */ + + + var when = function(value, callback, errback, progressBack) { + var result = new Deferred(); + result.resolve(value); + return result.promise.then(callback, errback, progressBack); + }; + + /** + * @ngdoc method + * @name $q#resolve + * @kind function + * + * @description + * Alias of {@link ng.$q#when when} to maintain naming consistency with ES6. + * + * @param {*} value Value or a promise + * @param {Function=} successCallback + * @param {Function=} errorCallback + * @param {Function=} progressCallback + * @returns {Promise} Returns a promise of the passed value or promise + */ + var resolve = when; + + /** + * @ngdoc method + * @name $q#all + * @kind function + * + * @description + * Combines multiple promises into a single promise that is resolved when all of the input + * promises are resolved. + * + * @param {Array.|Object.} promises An array or hash of promises. + * @returns {Promise} Returns a single promise that will be resolved with an array/hash of values, + * each value corresponding to the promise at the same index/key in the `promises` array/hash. + * If any of the promises is resolved with a rejection, this resulting promise will be rejected + * with the same rejection value. + */ + + function all(promises) { + var deferred = new Deferred(), + counter = 0, + results = isArray(promises) ? [] : {}; + + forEach(promises, function(promise, key) { + counter++; + when(promise).then(function(value) { + if (results.hasOwnProperty(key)) return; + results[key] = value; + if (!(--counter)) deferred.resolve(results); + }, function(reason) { + if (results.hasOwnProperty(key)) return; + deferred.reject(reason); + }); + }); + + if (counter === 0) { + deferred.resolve(results); + } + + return deferred.promise; + } + + var $Q = function Q(resolver) { + if (!isFunction(resolver)) { + throw $qMinErr('norslvr', "Expected resolverFn, got '{0}'", resolver); + } + + if (!(this instanceof Q)) { + // More useful when $Q is the Promise itself. + return new Q(resolver); + } + + var deferred = new Deferred(); + + function resolveFn(value) { + deferred.resolve(value); + } + + function rejectFn(reason) { + deferred.reject(reason); + } + + resolver(resolveFn, rejectFn); + + return deferred.promise; + }; + + $Q.defer = defer; + $Q.reject = reject; + $Q.when = when; + $Q.resolve = resolve; + $Q.all = all; + + return $Q; +} + +function $$RAFProvider() { //rAF + this.$get = ['$window', '$timeout', function($window, $timeout) { + var requestAnimationFrame = $window.requestAnimationFrame || + $window.webkitRequestAnimationFrame; + + var cancelAnimationFrame = $window.cancelAnimationFrame || + $window.webkitCancelAnimationFrame || + $window.webkitCancelRequestAnimationFrame; + + var rafSupported = !!requestAnimationFrame; + var raf = rafSupported + ? function(fn) { + var id = requestAnimationFrame(fn); + return function() { + cancelAnimationFrame(id); + }; + } + : function(fn) { + var timer = $timeout(fn, 16.66, false); // 1000 / 60 = 16.666 + return function() { + $timeout.cancel(timer); + }; + }; + + raf.supported = rafSupported; + + return raf; + }]; +} + +/** + * DESIGN NOTES + * + * The design decisions behind the scope are heavily favored for speed and memory consumption. + * + * The typical use of scope is to watch the expressions, which most of the time return the same + * value as last time so we optimize the operation. + * + * Closures construction is expensive in terms of speed as well as memory: + * - No closures, instead use prototypical inheritance for API + * - Internal state needs to be stored on scope directly, which means that private state is + * exposed as $$____ properties + * + * Loop operations are optimized by using while(count--) { ... } + * - This means that in order to keep the same order of execution as addition we have to add + * items to the array at the beginning (unshift) instead of at the end (push) + * + * Child scopes are created and removed often + * - Using an array would be slow since inserts in the middle are expensive; so we use linked lists + * + * There are fewer watches than observers. This is why you don't want the observer to be implemented + * in the same way as watch. Watch requires return of the initialization function which is expensive + * to construct. + */ + + +/** + * @ngdoc provider + * @name $rootScopeProvider + * @description + * + * Provider for the $rootScope service. + */ + +/** + * @ngdoc method + * @name $rootScopeProvider#digestTtl + * @description + * + * Sets the number of `$digest` iterations the scope should attempt to execute before giving up and + * assuming that the model is unstable. + * + * The current default is 10 iterations. + * + * In complex applications it's possible that the dependencies between `$watch`s will result in + * several digest iterations. However if an application needs more than the default 10 digest + * iterations for its model to stabilize then you should investigate what is causing the model to + * continuously change during the digest. + * + * Increasing the TTL could have performance implications, so you should not change it without + * proper justification. + * + * @param {number} limit The number of digest iterations. + */ + + +/** + * @ngdoc service + * @name $rootScope + * @description + * + * Every application has a single root {@link ng.$rootScope.Scope scope}. + * All other scopes are descendant scopes of the root scope. Scopes provide separation + * between the model and the view, via a mechanism for watching the model for changes. + * They also provide event emission/broadcast and subscription facility. See the + * {@link guide/scope developer guide on scopes}. + */ +function $RootScopeProvider() { + var TTL = 10; + var $rootScopeMinErr = minErr('$rootScope'); + var lastDirtyWatch = null; + var applyAsyncId = null; + + this.digestTtl = function(value) { + if (arguments.length) { + TTL = value; + } + return TTL; + }; + + function createChildScopeClass(parent) { + function ChildScope() { + this.$$watchers = this.$$nextSibling = + this.$$childHead = this.$$childTail = null; + this.$$listeners = {}; + this.$$listenerCount = {}; + this.$$watchersCount = 0; + this.$id = nextUid(); + this.$$ChildScope = null; + } + ChildScope.prototype = parent; + return ChildScope; + } + + this.$get = ['$injector', '$exceptionHandler', '$parse', '$browser', + function($injector, $exceptionHandler, $parse, $browser) { + + function destroyChildScope($event) { + $event.currentScope.$$destroyed = true; + } + + function cleanUpScope($scope) { + + if (msie === 9) { + // There is a memory leak in IE9 if all child scopes are not disconnected + // completely when a scope is destroyed. So this code will recurse up through + // all this scopes children + // + // See issue https://github.com/angular/angular.js/issues/10706 + $scope.$$childHead && cleanUpScope($scope.$$childHead); + $scope.$$nextSibling && cleanUpScope($scope.$$nextSibling); + } + + // The code below works around IE9 and V8's memory leaks + // + // See: + // - https://code.google.com/p/v8/issues/detail?id=2073#c26 + // - https://github.com/angular/angular.js/issues/6794#issuecomment-38648909 + // - https://github.com/angular/angular.js/issues/1313#issuecomment-10378451 + + $scope.$parent = $scope.$$nextSibling = $scope.$$prevSibling = $scope.$$childHead = + $scope.$$childTail = $scope.$root = $scope.$$watchers = null; + } + + /** + * @ngdoc type + * @name $rootScope.Scope + * + * @description + * A root scope can be retrieved using the {@link ng.$rootScope $rootScope} key from the + * {@link auto.$injector $injector}. Child scopes are created using the + * {@link ng.$rootScope.Scope#$new $new()} method. (Most scopes are created automatically when + * compiled HTML template is executed.) See also the {@link guide/scope Scopes guide} for + * an in-depth introduction and usage examples. + * + * + * # Inheritance + * A scope can inherit from a parent scope, as in this example: + * ```js + var parent = $rootScope; + var child = parent.$new(); + + parent.salutation = "Hello"; + expect(child.salutation).toEqual('Hello'); + + child.salutation = "Welcome"; + expect(child.salutation).toEqual('Welcome'); + expect(parent.salutation).toEqual('Hello'); + * ``` + * + * When interacting with `Scope` in tests, additional helper methods are available on the + * instances of `Scope` type. See {@link ngMock.$rootScope.Scope ngMock Scope} for additional + * details. + * + * + * @param {Object.=} providers Map of service factory which need to be + * provided for the current scope. Defaults to {@link ng}. + * @param {Object.=} instanceCache Provides pre-instantiated services which should + * append/override services provided by `providers`. This is handy + * when unit-testing and having the need to override a default + * service. + * @returns {Object} Newly created scope. + * + */ + function Scope() { + this.$id = nextUid(); + this.$$phase = this.$parent = this.$$watchers = + this.$$nextSibling = this.$$prevSibling = + this.$$childHead = this.$$childTail = null; + this.$root = this; + this.$$destroyed = false; + this.$$listeners = {}; + this.$$listenerCount = {}; + this.$$watchersCount = 0; + this.$$isolateBindings = null; + } + + /** + * @ngdoc property + * @name $rootScope.Scope#$id + * + * @description + * Unique scope ID (monotonically increasing) useful for debugging. + */ + + /** + * @ngdoc property + * @name $rootScope.Scope#$parent + * + * @description + * Reference to the parent scope. + */ + + /** + * @ngdoc property + * @name $rootScope.Scope#$root + * + * @description + * Reference to the root scope. + */ + + Scope.prototype = { + constructor: Scope, + /** + * @ngdoc method + * @name $rootScope.Scope#$new + * @kind function + * + * @description + * Creates a new child {@link ng.$rootScope.Scope scope}. + * + * The parent scope will propagate the {@link ng.$rootScope.Scope#$digest $digest()} event. + * The scope can be removed from the scope hierarchy using {@link ng.$rootScope.Scope#$destroy $destroy()}. + * + * {@link ng.$rootScope.Scope#$destroy $destroy()} must be called on a scope when it is + * desired for the scope and its child scopes to be permanently detached from the parent and + * thus stop participating in model change detection and listener notification by invoking. + * + * @param {boolean} isolate If true, then the scope does not prototypically inherit from the + * parent scope. The scope is isolated, as it can not see parent scope properties. + * When creating widgets, it is useful for the widget to not accidentally read parent + * state. + * + * @param {Scope} [parent=this] The {@link ng.$rootScope.Scope `Scope`} that will be the `$parent` + * of the newly created scope. Defaults to `this` scope if not provided. + * This is used when creating a transclude scope to correctly place it + * in the scope hierarchy while maintaining the correct prototypical + * inheritance. + * + * @returns {Object} The newly created child scope. + * + */ + $new: function(isolate, parent) { + var child; + + parent = parent || this; + + if (isolate) { + child = new Scope(); + child.$root = this.$root; + } else { + // Only create a child scope class if somebody asks for one, + // but cache it to allow the VM to optimize lookups. + if (!this.$$ChildScope) { + this.$$ChildScope = createChildScopeClass(this); + } + child = new this.$$ChildScope(); + } + child.$parent = parent; + child.$$prevSibling = parent.$$childTail; + if (parent.$$childHead) { + parent.$$childTail.$$nextSibling = child; + parent.$$childTail = child; + } else { + parent.$$childHead = parent.$$childTail = child; + } + + // When the new scope is not isolated or we inherit from `this`, and + // the parent scope is destroyed, the property `$$destroyed` is inherited + // prototypically. In all other cases, this property needs to be set + // when the parent scope is destroyed. + // The listener needs to be added after the parent is set + if (isolate || parent != this) child.$on('$destroy', destroyChildScope); + + return child; + }, + + /** + * @ngdoc method + * @name $rootScope.Scope#$watch + * @kind function + * + * @description + * Registers a `listener` callback to be executed whenever the `watchExpression` changes. + * + * - The `watchExpression` is called on every call to {@link ng.$rootScope.Scope#$digest + * $digest()} and should return the value that will be watched. (`watchExpression` should not change + * its value when executed multiple times with the same input because it may be executed multiple + * times by {@link ng.$rootScope.Scope#$digest $digest()}. That is, `watchExpression` should be + * [idempotent](http://en.wikipedia.org/wiki/Idempotence). + * - The `listener` is called only when the value from the current `watchExpression` and the + * previous call to `watchExpression` are not equal (with the exception of the initial run, + * see below). Inequality is determined according to reference inequality, + * [strict comparison](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators) + * via the `!==` Javascript operator, unless `objectEquality == true` + * (see next point) + * - When `objectEquality == true`, inequality of the `watchExpression` is determined + * according to the {@link angular.equals} function. To save the value of the object for + * later comparison, the {@link angular.copy} function is used. This therefore means that + * watching complex objects will have adverse memory and performance implications. + * - The watch `listener` may change the model, which may trigger other `listener`s to fire. + * This is achieved by rerunning the watchers until no changes are detected. The rerun + * iteration limit is 10 to prevent an infinite loop deadlock. + * + * + * If you want to be notified whenever {@link ng.$rootScope.Scope#$digest $digest} is called, + * you can register a `watchExpression` function with no `listener`. (Be prepared for + * multiple calls to your `watchExpression` because it will execute multiple times in a + * single {@link ng.$rootScope.Scope#$digest $digest} cycle if a change is detected.) + * + * After a watcher is registered with the scope, the `listener` fn is called asynchronously + * (via {@link ng.$rootScope.Scope#$evalAsync $evalAsync}) to initialize the + * watcher. In rare cases, this is undesirable because the listener is called when the result + * of `watchExpression` didn't change. To detect this scenario within the `listener` fn, you + * can compare the `newVal` and `oldVal`. If these two values are identical (`===`) then the + * listener was called due to initialization. + * + * + * + * # Example + * ```js + // let's assume that scope was dependency injected as the $rootScope + var scope = $rootScope; + scope.name = 'misko'; + scope.counter = 0; + + expect(scope.counter).toEqual(0); + scope.$watch('name', function(newValue, oldValue) { + scope.counter = scope.counter + 1; + }); + expect(scope.counter).toEqual(0); + + scope.$digest(); + // the listener is always called during the first $digest loop after it was registered + expect(scope.counter).toEqual(1); + + scope.$digest(); + // but now it will not be called unless the value changes + expect(scope.counter).toEqual(1); + + scope.name = 'adam'; + scope.$digest(); + expect(scope.counter).toEqual(2); + + + + // Using a function as a watchExpression + var food; + scope.foodCounter = 0; + expect(scope.foodCounter).toEqual(0); + scope.$watch( + // This function returns the value being watched. It is called for each turn of the $digest loop + function() { return food; }, + // This is the change listener, called when the value returned from the above function changes + function(newValue, oldValue) { + if ( newValue !== oldValue ) { + // Only increment the counter if the value changed + scope.foodCounter = scope.foodCounter + 1; + } + } + ); + // No digest has been run so the counter will be zero + expect(scope.foodCounter).toEqual(0); + + // Run the digest but since food has not changed count will still be zero + scope.$digest(); + expect(scope.foodCounter).toEqual(0); + + // Update food and run digest. Now the counter will increment + food = 'cheeseburger'; + scope.$digest(); + expect(scope.foodCounter).toEqual(1); + + * ``` + * + * + * + * @param {(function()|string)} watchExpression Expression that is evaluated on each + * {@link ng.$rootScope.Scope#$digest $digest} cycle. A change in the return value triggers + * a call to the `listener`. + * + * - `string`: Evaluated as {@link guide/expression expression} + * - `function(scope)`: called with current `scope` as a parameter. + * @param {function(newVal, oldVal, scope)} listener Callback called whenever the value + * of `watchExpression` changes. + * + * - `newVal` contains the current value of the `watchExpression` + * - `oldVal` contains the previous value of the `watchExpression` + * - `scope` refers to the current scope + * @param {boolean=} objectEquality Compare for object equality using {@link angular.equals} instead of + * comparing for reference equality. + * @returns {function()} Returns a deregistration function for this listener. + */ + $watch: function(watchExp, listener, objectEquality, prettyPrintExpression) { + var get = $parse(watchExp); + + if (get.$$watchDelegate) { + return get.$$watchDelegate(this, listener, objectEquality, get, watchExp); + } + var scope = this, + array = scope.$$watchers, + watcher = { + fn: listener, + last: initWatchVal, + get: get, + exp: prettyPrintExpression || watchExp, + eq: !!objectEquality + }; + + lastDirtyWatch = null; + + if (!isFunction(listener)) { + watcher.fn = noop; + } + + if (!array) { + array = scope.$$watchers = []; + } + // we use unshift since we use a while loop in $digest for speed. + // the while loop reads in reverse order. + array.unshift(watcher); + incrementWatchersCount(this, 1); + + return function deregisterWatch() { + if (arrayRemove(array, watcher) >= 0) { + incrementWatchersCount(scope, -1); + } + lastDirtyWatch = null; + }; + }, + + /** + * @ngdoc method + * @name $rootScope.Scope#$watchGroup + * @kind function + * + * @description + * A variant of {@link ng.$rootScope.Scope#$watch $watch()} where it watches an array of `watchExpressions`. + * If any one expression in the collection changes the `listener` is executed. + * + * - The items in the `watchExpressions` array are observed via standard $watch operation and are examined on every + * call to $digest() to see if any items changes. + * - The `listener` is called whenever any expression in the `watchExpressions` array changes. + * + * @param {Array.} watchExpressions Array of expressions that will be individually + * watched using {@link ng.$rootScope.Scope#$watch $watch()} + * + * @param {function(newValues, oldValues, scope)} listener Callback called whenever the return value of any + * expression in `watchExpressions` changes + * The `newValues` array contains the current values of the `watchExpressions`, with the indexes matching + * those of `watchExpression` + * and the `oldValues` array contains the previous values of the `watchExpressions`, with the indexes matching + * those of `watchExpression` + * The `scope` refers to the current scope. + * @returns {function()} Returns a de-registration function for all listeners. + */ + $watchGroup: function(watchExpressions, listener) { + var oldValues = new Array(watchExpressions.length); + var newValues = new Array(watchExpressions.length); + var deregisterFns = []; + var self = this; + var changeReactionScheduled = false; + var firstRun = true; + + if (!watchExpressions.length) { + // No expressions means we call the listener ASAP + var shouldCall = true; + self.$evalAsync(function() { + if (shouldCall) listener(newValues, newValues, self); + }); + return function deregisterWatchGroup() { + shouldCall = false; + }; + } + + if (watchExpressions.length === 1) { + // Special case size of one + return this.$watch(watchExpressions[0], function watchGroupAction(value, oldValue, scope) { + newValues[0] = value; + oldValues[0] = oldValue; + listener(newValues, (value === oldValue) ? newValues : oldValues, scope); + }); + } + + forEach(watchExpressions, function(expr, i) { + var unwatchFn = self.$watch(expr, function watchGroupSubAction(value, oldValue) { + newValues[i] = value; + oldValues[i] = oldValue; + if (!changeReactionScheduled) { + changeReactionScheduled = true; + self.$evalAsync(watchGroupAction); + } + }); + deregisterFns.push(unwatchFn); + }); + + function watchGroupAction() { + changeReactionScheduled = false; + + if (firstRun) { + firstRun = false; + listener(newValues, newValues, self); + } else { + listener(newValues, oldValues, self); + } + } + + return function deregisterWatchGroup() { + while (deregisterFns.length) { + deregisterFns.shift()(); + } + }; + }, + + + /** + * @ngdoc method + * @name $rootScope.Scope#$watchCollection + * @kind function + * + * @description + * Shallow watches the properties of an object and fires whenever any of the properties change + * (for arrays, this implies watching the array items; for object maps, this implies watching + * the properties). If a change is detected, the `listener` callback is fired. + * + * - The `obj` collection is observed via standard $watch operation and is examined on every + * call to $digest() to see if any items have been added, removed, or moved. + * - The `listener` is called whenever anything within the `obj` has changed. Examples include + * adding, removing, and moving items belonging to an object or array. + * + * + * # Example + * ```js + $scope.names = ['igor', 'matias', 'misko', 'james']; + $scope.dataCount = 4; + + $scope.$watchCollection('names', function(newNames, oldNames) { + $scope.dataCount = newNames.length; + }); + + expect($scope.dataCount).toEqual(4); + $scope.$digest(); + + //still at 4 ... no changes + expect($scope.dataCount).toEqual(4); + + $scope.names.pop(); + $scope.$digest(); + + //now there's been a change + expect($scope.dataCount).toEqual(3); + * ``` + * + * + * @param {string|function(scope)} obj Evaluated as {@link guide/expression expression}. The + * expression value should evaluate to an object or an array which is observed on each + * {@link ng.$rootScope.Scope#$digest $digest} cycle. Any shallow change within the + * collection will trigger a call to the `listener`. + * + * @param {function(newCollection, oldCollection, scope)} listener a callback function called + * when a change is detected. + * - The `newCollection` object is the newly modified data obtained from the `obj` expression + * - The `oldCollection` object is a copy of the former collection data. + * Due to performance considerations, the`oldCollection` value is computed only if the + * `listener` function declares two or more arguments. + * - The `scope` argument refers to the current scope. + * + * @returns {function()} Returns a de-registration function for this listener. When the + * de-registration function is executed, the internal watch operation is terminated. + */ + $watchCollection: function(obj, listener) { + $watchCollectionInterceptor.$stateful = true; + + var self = this; + // the current value, updated on each dirty-check run + var newValue; + // a shallow copy of the newValue from the last dirty-check run, + // updated to match newValue during dirty-check run + var oldValue; + // a shallow copy of the newValue from when the last change happened + var veryOldValue; + // only track veryOldValue if the listener is asking for it + var trackVeryOldValue = (listener.length > 1); + var changeDetected = 0; + var changeDetector = $parse(obj, $watchCollectionInterceptor); + var internalArray = []; + var internalObject = {}; + var initRun = true; + var oldLength = 0; + + function $watchCollectionInterceptor(_value) { + newValue = _value; + var newLength, key, bothNaN, newItem, oldItem; + + // If the new value is undefined, then return undefined as the watch may be a one-time watch + if (isUndefined(newValue)) return; + + if (!isObject(newValue)) { // if primitive + if (oldValue !== newValue) { + oldValue = newValue; + changeDetected++; + } + } else if (isArrayLike(newValue)) { + if (oldValue !== internalArray) { + // we are transitioning from something which was not an array into array. + oldValue = internalArray; + oldLength = oldValue.length = 0; + changeDetected++; + } + + newLength = newValue.length; + + if (oldLength !== newLength) { + // if lengths do not match we need to trigger change notification + changeDetected++; + oldValue.length = oldLength = newLength; + } + // copy the items to oldValue and look for changes. + for (var i = 0; i < newLength; i++) { + oldItem = oldValue[i]; + newItem = newValue[i]; + + bothNaN = (oldItem !== oldItem) && (newItem !== newItem); + if (!bothNaN && (oldItem !== newItem)) { + changeDetected++; + oldValue[i] = newItem; + } + } + } else { + if (oldValue !== internalObject) { + // we are transitioning from something which was not an object into object. + oldValue = internalObject = {}; + oldLength = 0; + changeDetected++; + } + // copy the items to oldValue and look for changes. + newLength = 0; + for (key in newValue) { + if (hasOwnProperty.call(newValue, key)) { + newLength++; + newItem = newValue[key]; + oldItem = oldValue[key]; + + if (key in oldValue) { + bothNaN = (oldItem !== oldItem) && (newItem !== newItem); + if (!bothNaN && (oldItem !== newItem)) { + changeDetected++; + oldValue[key] = newItem; + } + } else { + oldLength++; + oldValue[key] = newItem; + changeDetected++; + } + } + } + if (oldLength > newLength) { + // we used to have more keys, need to find them and destroy them. + changeDetected++; + for (key in oldValue) { + if (!hasOwnProperty.call(newValue, key)) { + oldLength--; + delete oldValue[key]; + } + } + } + } + return changeDetected; + } + + function $watchCollectionAction() { + if (initRun) { + initRun = false; + listener(newValue, newValue, self); + } else { + listener(newValue, veryOldValue, self); + } + + // make a copy for the next time a collection is changed + if (trackVeryOldValue) { + if (!isObject(newValue)) { + //primitive + veryOldValue = newValue; + } else if (isArrayLike(newValue)) { + veryOldValue = new Array(newValue.length); + for (var i = 0; i < newValue.length; i++) { + veryOldValue[i] = newValue[i]; + } + } else { // if object + veryOldValue = {}; + for (var key in newValue) { + if (hasOwnProperty.call(newValue, key)) { + veryOldValue[key] = newValue[key]; + } + } + } + } + } + + return this.$watch(changeDetector, $watchCollectionAction); + }, + + /** + * @ngdoc method + * @name $rootScope.Scope#$digest + * @kind function + * + * @description + * Processes all of the {@link ng.$rootScope.Scope#$watch watchers} of the current scope and + * its children. Because a {@link ng.$rootScope.Scope#$watch watcher}'s listener can change + * the model, the `$digest()` keeps calling the {@link ng.$rootScope.Scope#$watch watchers} + * until no more listeners are firing. This means that it is possible to get into an infinite + * loop. This function will throw `'Maximum iteration limit exceeded.'` if the number of + * iterations exceeds 10. + * + * Usually, you don't call `$digest()` directly in + * {@link ng.directive:ngController controllers} or in + * {@link ng.$compileProvider#directive directives}. + * Instead, you should call {@link ng.$rootScope.Scope#$apply $apply()} (typically from within + * a {@link ng.$compileProvider#directive directive}), which will force a `$digest()`. + * + * If you want to be notified whenever `$digest()` is called, + * you can register a `watchExpression` function with + * {@link ng.$rootScope.Scope#$watch $watch()} with no `listener`. + * + * In unit tests, you may need to call `$digest()` to simulate the scope life cycle. + * + * # Example + * ```js + var scope = ...; + scope.name = 'misko'; + scope.counter = 0; + + expect(scope.counter).toEqual(0); + scope.$watch('name', function(newValue, oldValue) { + scope.counter = scope.counter + 1; + }); + expect(scope.counter).toEqual(0); + + scope.$digest(); + // the listener is always called during the first $digest loop after it was registered + expect(scope.counter).toEqual(1); + + scope.$digest(); + // but now it will not be called unless the value changes + expect(scope.counter).toEqual(1); + + scope.name = 'adam'; + scope.$digest(); + expect(scope.counter).toEqual(2); + * ``` + * + */ + $digest: function() { + var watch, value, last, fn, get, + watchers, + length, + dirty, ttl = TTL, + next, current, target = this, + watchLog = [], + logIdx, logMsg, asyncTask; + + beginPhase('$digest'); + // Check for changes to browser url that happened in sync before the call to $digest + $browser.$$checkUrlChange(); + + if (this === $rootScope && applyAsyncId !== null) { + // If this is the root scope, and $applyAsync has scheduled a deferred $apply(), then + // cancel the scheduled $apply and flush the queue of expressions to be evaluated. + $browser.defer.cancel(applyAsyncId); + flushApplyAsync(); + } + + lastDirtyWatch = null; + + do { // "while dirty" loop + dirty = false; + current = target; + + while (asyncQueue.length) { + try { + asyncTask = asyncQueue.shift(); + asyncTask.scope.$eval(asyncTask.expression, asyncTask.locals); + } catch (e) { + $exceptionHandler(e); + } + lastDirtyWatch = null; + } + + traverseScopesLoop: + do { // "traverse the scopes" loop + if ((watchers = current.$$watchers)) { + // process our watches + length = watchers.length; + while (length--) { + try { + watch = watchers[length]; + // Most common watches are on primitives, in which case we can short + // circuit it with === operator, only when === fails do we use .equals + if (watch) { + get = watch.get; + if ((value = get(current)) !== (last = watch.last) && + !(watch.eq + ? equals(value, last) + : (typeof value === 'number' && typeof last === 'number' + && isNaN(value) && isNaN(last)))) { + dirty = true; + lastDirtyWatch = watch; + watch.last = watch.eq ? copy(value, null) : value; + fn = watch.fn; + fn(value, ((last === initWatchVal) ? value : last), current); + if (ttl < 5) { + logIdx = 4 - ttl; + if (!watchLog[logIdx]) watchLog[logIdx] = []; + watchLog[logIdx].push({ + msg: isFunction(watch.exp) ? 'fn: ' + (watch.exp.name || watch.exp.toString()) : watch.exp, + newVal: value, + oldVal: last + }); + } + } else if (watch === lastDirtyWatch) { + // If the most recently dirty watcher is now clean, short circuit since the remaining watchers + // have already been tested. + dirty = false; + break traverseScopesLoop; + } + } + } catch (e) { + $exceptionHandler(e); + } + } + } + + // Insanity Warning: scope depth-first traversal + // yes, this code is a bit crazy, but it works and we have tests to prove it! + // this piece should be kept in sync with the traversal in $broadcast + if (!(next = ((current.$$watchersCount && current.$$childHead) || + (current !== target && current.$$nextSibling)))) { + while (current !== target && !(next = current.$$nextSibling)) { + current = current.$parent; + } + } + } while ((current = next)); + + // `break traverseScopesLoop;` takes us to here + + if ((dirty || asyncQueue.length) && !(ttl--)) { + clearPhase(); + throw $rootScopeMinErr('infdig', + '{0} $digest() iterations reached. Aborting!\n' + + 'Watchers fired in the last 5 iterations: {1}', + TTL, watchLog); + } + + } while (dirty || asyncQueue.length); + + clearPhase(); + + while (postDigestQueue.length) { + try { + postDigestQueue.shift()(); + } catch (e) { + $exceptionHandler(e); + } + } + }, + + + /** + * @ngdoc event + * @name $rootScope.Scope#$destroy + * @eventType broadcast on scope being destroyed + * + * @description + * Broadcasted when a scope and its children are being destroyed. + * + * Note that, in AngularJS, there is also a `$destroy` jQuery event, which can be used to + * clean up DOM bindings before an element is removed from the DOM. + */ + + /** + * @ngdoc method + * @name $rootScope.Scope#$destroy + * @kind function + * + * @description + * Removes the current scope (and all of its children) from the parent scope. Removal implies + * that calls to {@link ng.$rootScope.Scope#$digest $digest()} will no longer + * propagate to the current scope and its children. Removal also implies that the current + * scope is eligible for garbage collection. + * + * The `$destroy()` is usually used by directives such as + * {@link ng.directive:ngRepeat ngRepeat} for managing the + * unrolling of the loop. + * + * Just before a scope is destroyed, a `$destroy` event is broadcasted on this scope. + * Application code can register a `$destroy` event handler that will give it a chance to + * perform any necessary cleanup. + * + * Note that, in AngularJS, there is also a `$destroy` jQuery event, which can be used to + * clean up DOM bindings before an element is removed from the DOM. + */ + $destroy: function() { + // We can't destroy a scope that has been already destroyed. + if (this.$$destroyed) return; + var parent = this.$parent; + + this.$broadcast('$destroy'); + this.$$destroyed = true; + + if (this === $rootScope) { + //Remove handlers attached to window when $rootScope is removed + $browser.$$applicationDestroyed(); + } + + incrementWatchersCount(this, -this.$$watchersCount); + for (var eventName in this.$$listenerCount) { + decrementListenerCount(this, this.$$listenerCount[eventName], eventName); + } + + // sever all the references to parent scopes (after this cleanup, the current scope should + // not be retained by any of our references and should be eligible for garbage collection) + if (parent && parent.$$childHead == this) parent.$$childHead = this.$$nextSibling; + if (parent && parent.$$childTail == this) parent.$$childTail = this.$$prevSibling; + if (this.$$prevSibling) this.$$prevSibling.$$nextSibling = this.$$nextSibling; + if (this.$$nextSibling) this.$$nextSibling.$$prevSibling = this.$$prevSibling; + + // Disable listeners, watchers and apply/digest methods + this.$destroy = this.$digest = this.$apply = this.$evalAsync = this.$applyAsync = noop; + this.$on = this.$watch = this.$watchGroup = function() { return noop; }; + this.$$listeners = {}; + + // Disconnect the next sibling to prevent `cleanUpScope` destroying those too + this.$$nextSibling = null; + cleanUpScope(this); + }, + + /** + * @ngdoc method + * @name $rootScope.Scope#$eval + * @kind function + * + * @description + * Executes the `expression` on the current scope and returns the result. Any exceptions in + * the expression are propagated (uncaught). This is useful when evaluating Angular + * expressions. + * + * # Example + * ```js + var scope = ng.$rootScope.Scope(); + scope.a = 1; + scope.b = 2; + + expect(scope.$eval('a+b')).toEqual(3); + expect(scope.$eval(function(scope){ return scope.a + scope.b; })).toEqual(3); + * ``` + * + * @param {(string|function())=} expression An angular expression to be executed. + * + * - `string`: execute using the rules as defined in {@link guide/expression expression}. + * - `function(scope)`: execute the function with the current `scope` parameter. + * + * @param {(object)=} locals Local variables object, useful for overriding values in scope. + * @returns {*} The result of evaluating the expression. + */ + $eval: function(expr, locals) { + return $parse(expr)(this, locals); + }, + + /** + * @ngdoc method + * @name $rootScope.Scope#$evalAsync + * @kind function + * + * @description + * Executes the expression on the current scope at a later point in time. + * + * The `$evalAsync` makes no guarantees as to when the `expression` will be executed, only + * that: + * + * - it will execute after the function that scheduled the evaluation (preferably before DOM + * rendering). + * - at least one {@link ng.$rootScope.Scope#$digest $digest cycle} will be performed after + * `expression` execution. + * + * Any exceptions from the execution of the expression are forwarded to the + * {@link ng.$exceptionHandler $exceptionHandler} service. + * + * __Note:__ if this function is called outside of a `$digest` cycle, a new `$digest` cycle + * will be scheduled. However, it is encouraged to always call code that changes the model + * from within an `$apply` call. That includes code evaluated via `$evalAsync`. + * + * @param {(string|function())=} expression An angular expression to be executed. + * + * - `string`: execute using the rules as defined in {@link guide/expression expression}. + * - `function(scope)`: execute the function with the current `scope` parameter. + * + * @param {(object)=} locals Local variables object, useful for overriding values in scope. + */ + $evalAsync: function(expr, locals) { + // if we are outside of an $digest loop and this is the first time we are scheduling async + // task also schedule async auto-flush + if (!$rootScope.$$phase && !asyncQueue.length) { + $browser.defer(function() { + if (asyncQueue.length) { + $rootScope.$digest(); + } + }); + } + + asyncQueue.push({scope: this, expression: $parse(expr), locals: locals}); + }, + + $$postDigest: function(fn) { + postDigestQueue.push(fn); + }, + + /** + * @ngdoc method + * @name $rootScope.Scope#$apply + * @kind function + * + * @description + * `$apply()` is used to execute an expression in angular from outside of the angular + * framework. (For example from browser DOM events, setTimeout, XHR or third party libraries). + * Because we are calling into the angular framework we need to perform proper scope life + * cycle of {@link ng.$exceptionHandler exception handling}, + * {@link ng.$rootScope.Scope#$digest executing watches}. + * + * ## Life cycle + * + * # Pseudo-Code of `$apply()` + * ```js + function $apply(expr) { + try { + return $eval(expr); + } catch (e) { + $exceptionHandler(e); + } finally { + $root.$digest(); + } + } + * ``` + * + * + * Scope's `$apply()` method transitions through the following stages: + * + * 1. The {@link guide/expression expression} is executed using the + * {@link ng.$rootScope.Scope#$eval $eval()} method. + * 2. Any exceptions from the execution of the expression are forwarded to the + * {@link ng.$exceptionHandler $exceptionHandler} service. + * 3. The {@link ng.$rootScope.Scope#$watch watch} listeners are fired immediately after the + * expression was executed using the {@link ng.$rootScope.Scope#$digest $digest()} method. + * + * + * @param {(string|function())=} exp An angular expression to be executed. + * + * - `string`: execute using the rules as defined in {@link guide/expression expression}. + * - `function(scope)`: execute the function with current `scope` parameter. + * + * @returns {*} The result of evaluating the expression. + */ + $apply: function(expr) { + try { + beginPhase('$apply'); + try { + return this.$eval(expr); + } finally { + clearPhase(); + } + } catch (e) { + $exceptionHandler(e); + } finally { + try { + $rootScope.$digest(); + } catch (e) { + $exceptionHandler(e); + throw e; + } + } + }, + + /** + * @ngdoc method + * @name $rootScope.Scope#$applyAsync + * @kind function + * + * @description + * Schedule the invocation of $apply to occur at a later time. The actual time difference + * varies across browsers, but is typically around ~10 milliseconds. + * + * This can be used to queue up multiple expressions which need to be evaluated in the same + * digest. + * + * @param {(string|function())=} exp An angular expression to be executed. + * + * - `string`: execute using the rules as defined in {@link guide/expression expression}. + * - `function(scope)`: execute the function with current `scope` parameter. + */ + $applyAsync: function(expr) { + var scope = this; + expr && applyAsyncQueue.push($applyAsyncExpression); + expr = $parse(expr); + scheduleApplyAsync(); + + function $applyAsyncExpression() { + scope.$eval(expr); + } + }, + + /** + * @ngdoc method + * @name $rootScope.Scope#$on + * @kind function + * + * @description + * Listens on events of a given type. See {@link ng.$rootScope.Scope#$emit $emit} for + * discussion of event life cycle. + * + * The event listener function format is: `function(event, args...)`. The `event` object + * passed into the listener has the following attributes: + * + * - `targetScope` - `{Scope}`: the scope on which the event was `$emit`-ed or + * `$broadcast`-ed. + * - `currentScope` - `{Scope}`: the scope that is currently handling the event. Once the + * event propagates through the scope hierarchy, this property is set to null. + * - `name` - `{string}`: name of the event. + * - `stopPropagation` - `{function=}`: calling `stopPropagation` function will cancel + * further event propagation (available only for events that were `$emit`-ed). + * - `preventDefault` - `{function}`: calling `preventDefault` sets `defaultPrevented` flag + * to true. + * - `defaultPrevented` - `{boolean}`: true if `preventDefault` was called. + * + * @param {string} name Event name to listen on. + * @param {function(event, ...args)} listener Function to call when the event is emitted. + * @returns {function()} Returns a deregistration function for this listener. + */ + $on: function(name, listener) { + var namedListeners = this.$$listeners[name]; + if (!namedListeners) { + this.$$listeners[name] = namedListeners = []; + } + namedListeners.push(listener); + + var current = this; + do { + if (!current.$$listenerCount[name]) { + current.$$listenerCount[name] = 0; + } + current.$$listenerCount[name]++; + } while ((current = current.$parent)); + + var self = this; + return function() { + var indexOfListener = namedListeners.indexOf(listener); + if (indexOfListener !== -1) { + namedListeners[indexOfListener] = null; + decrementListenerCount(self, 1, name); + } + }; + }, + + + /** + * @ngdoc method + * @name $rootScope.Scope#$emit + * @kind function + * + * @description + * Dispatches an event `name` upwards through the scope hierarchy notifying the + * registered {@link ng.$rootScope.Scope#$on} listeners. + * + * The event life cycle starts at the scope on which `$emit` was called. All + * {@link ng.$rootScope.Scope#$on listeners} listening for `name` event on this scope get + * notified. Afterwards, the event traverses upwards toward the root scope and calls all + * registered listeners along the way. The event will stop propagating if one of the listeners + * cancels it. + * + * Any exception emitted from the {@link ng.$rootScope.Scope#$on listeners} will be passed + * onto the {@link ng.$exceptionHandler $exceptionHandler} service. + * + * @param {string} name Event name to emit. + * @param {...*} args Optional one or more arguments which will be passed onto the event listeners. + * @return {Object} Event object (see {@link ng.$rootScope.Scope#$on}). + */ + $emit: function(name, args) { + var empty = [], + namedListeners, + scope = this, + stopPropagation = false, + event = { + name: name, + targetScope: scope, + stopPropagation: function() {stopPropagation = true;}, + preventDefault: function() { + event.defaultPrevented = true; + }, + defaultPrevented: false + }, + listenerArgs = concat([event], arguments, 1), + i, length; + + do { + namedListeners = scope.$$listeners[name] || empty; + event.currentScope = scope; + for (i = 0, length = namedListeners.length; i < length; i++) { + + // if listeners were deregistered, defragment the array + if (!namedListeners[i]) { + namedListeners.splice(i, 1); + i--; + length--; + continue; + } + try { + //allow all listeners attached to the current scope to run + namedListeners[i].apply(null, listenerArgs); + } catch (e) { + $exceptionHandler(e); + } + } + //if any listener on the current scope stops propagation, prevent bubbling + if (stopPropagation) { + event.currentScope = null; + return event; + } + //traverse upwards + scope = scope.$parent; + } while (scope); + + event.currentScope = null; + + return event; + }, + + + /** + * @ngdoc method + * @name $rootScope.Scope#$broadcast + * @kind function + * + * @description + * Dispatches an event `name` downwards to all child scopes (and their children) notifying the + * registered {@link ng.$rootScope.Scope#$on} listeners. + * + * The event life cycle starts at the scope on which `$broadcast` was called. All + * {@link ng.$rootScope.Scope#$on listeners} listening for `name` event on this scope get + * notified. Afterwards, the event propagates to all direct and indirect scopes of the current + * scope and calls all registered listeners along the way. The event cannot be canceled. + * + * Any exception emitted from the {@link ng.$rootScope.Scope#$on listeners} will be passed + * onto the {@link ng.$exceptionHandler $exceptionHandler} service. + * + * @param {string} name Event name to broadcast. + * @param {...*} args Optional one or more arguments which will be passed onto the event listeners. + * @return {Object} Event object, see {@link ng.$rootScope.Scope#$on} + */ + $broadcast: function(name, args) { + var target = this, + current = target, + next = target, + event = { + name: name, + targetScope: target, + preventDefault: function() { + event.defaultPrevented = true; + }, + defaultPrevented: false + }; + + if (!target.$$listenerCount[name]) return event; + + var listenerArgs = concat([event], arguments, 1), + listeners, i, length; + + //down while you can, then up and next sibling or up and next sibling until back at root + while ((current = next)) { + event.currentScope = current; + listeners = current.$$listeners[name] || []; + for (i = 0, length = listeners.length; i < length; i++) { + // if listeners were deregistered, defragment the array + if (!listeners[i]) { + listeners.splice(i, 1); + i--; + length--; + continue; + } + + try { + listeners[i].apply(null, listenerArgs); + } catch (e) { + $exceptionHandler(e); + } + } + + // Insanity Warning: scope depth-first traversal + // yes, this code is a bit crazy, but it works and we have tests to prove it! + // this piece should be kept in sync with the traversal in $digest + // (though it differs due to having the extra check for $$listenerCount) + if (!(next = ((current.$$listenerCount[name] && current.$$childHead) || + (current !== target && current.$$nextSibling)))) { + while (current !== target && !(next = current.$$nextSibling)) { + current = current.$parent; + } + } + } + + event.currentScope = null; + return event; + } + }; + + var $rootScope = new Scope(); + + //The internal queues. Expose them on the $rootScope for debugging/testing purposes. + var asyncQueue = $rootScope.$$asyncQueue = []; + var postDigestQueue = $rootScope.$$postDigestQueue = []; + var applyAsyncQueue = $rootScope.$$applyAsyncQueue = []; + + return $rootScope; + + + function beginPhase(phase) { + if ($rootScope.$$phase) { + throw $rootScopeMinErr('inprog', '{0} already in progress', $rootScope.$$phase); + } + + $rootScope.$$phase = phase; + } + + function clearPhase() { + $rootScope.$$phase = null; + } + + function incrementWatchersCount(current, count) { + do { + current.$$watchersCount += count; + } while ((current = current.$parent)); + } + + function decrementListenerCount(current, count, name) { + do { + current.$$listenerCount[name] -= count; + + if (current.$$listenerCount[name] === 0) { + delete current.$$listenerCount[name]; + } + } while ((current = current.$parent)); + } + + /** + * function used as an initial value for watchers. + * because it's unique we can easily tell it apart from other values + */ + function initWatchVal() {} + + function flushApplyAsync() { + while (applyAsyncQueue.length) { + try { + applyAsyncQueue.shift()(); + } catch (e) { + $exceptionHandler(e); + } + } + applyAsyncId = null; + } + + function scheduleApplyAsync() { + if (applyAsyncId === null) { + applyAsyncId = $browser.defer(function() { + $rootScope.$apply(flushApplyAsync); + }); + } + } + }]; +} + +/** + * @ngdoc service + * @name $rootElement + * + * @description + * The root element of Angular application. This is either the element where {@link + * ng.directive:ngApp ngApp} was declared or the element passed into + * {@link angular.bootstrap}. The element represents the root element of application. It is also the + * location where the application's {@link auto.$injector $injector} service gets + * published, and can be retrieved using `$rootElement.injector()`. + */ + + +// the implementation is in angular.bootstrap + +/** + * @description + * Private service to sanitize uris for links and images. Used by $compile and $sanitize. + */ +function $$SanitizeUriProvider() { + var aHrefSanitizationWhitelist = /^\s*(https?|ftp|mailto|tel|file):/, + imgSrcSanitizationWhitelist = /^\s*((https?|ftp|file|blob):|data:image\/)/; + + /** + * @description + * Retrieves or overrides the default regular expression that is used for whitelisting of safe + * urls during a[href] sanitization. + * + * The sanitization is a security measure aimed at prevent XSS attacks via html links. + * + * Any url about to be assigned to a[href] via data-binding is first normalized and turned into + * an absolute url. Afterwards, the url is matched against the `aHrefSanitizationWhitelist` + * regular expression. If a match is found, the original url is written into the dom. Otherwise, + * the absolute url is prefixed with `'unsafe:'` string and only then is it written into the DOM. + * + * @param {RegExp=} regexp New regexp to whitelist urls with. + * @returns {RegExp|ng.$compileProvider} Current RegExp if called without value or self for + * chaining otherwise. + */ + this.aHrefSanitizationWhitelist = function(regexp) { + if (isDefined(regexp)) { + aHrefSanitizationWhitelist = regexp; + return this; + } + return aHrefSanitizationWhitelist; + }; + + + /** + * @description + * Retrieves or overrides the default regular expression that is used for whitelisting of safe + * urls during img[src] sanitization. + * + * The sanitization is a security measure aimed at prevent XSS attacks via html links. + * + * Any url about to be assigned to img[src] via data-binding is first normalized and turned into + * an absolute url. Afterwards, the url is matched against the `imgSrcSanitizationWhitelist` + * regular expression. If a match is found, the original url is written into the dom. Otherwise, + * the absolute url is prefixed with `'unsafe:'` string and only then is it written into the DOM. + * + * @param {RegExp=} regexp New regexp to whitelist urls with. + * @returns {RegExp|ng.$compileProvider} Current RegExp if called without value or self for + * chaining otherwise. + */ + this.imgSrcSanitizationWhitelist = function(regexp) { + if (isDefined(regexp)) { + imgSrcSanitizationWhitelist = regexp; + return this; + } + return imgSrcSanitizationWhitelist; + }; + + this.$get = function() { + return function sanitizeUri(uri, isImage) { + var regex = isImage ? imgSrcSanitizationWhitelist : aHrefSanitizationWhitelist; + var normalizedVal; + normalizedVal = urlResolve(uri).href; + if (normalizedVal !== '' && !normalizedVal.match(regex)) { + return 'unsafe:' + normalizedVal; + } + return uri; + }; + }; +} + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Any commits to this file should be reviewed with security in mind. * + * Changes to this file can potentially create security vulnerabilities. * + * An approval from 2 Core members with history of modifying * + * this file is required. * + * * + * Does the change somehow allow for arbitrary javascript to be executed? * + * Or allows for someone to change the prototype of built-in objects? * + * Or gives undesired access to variables likes document or window? * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +var $sceMinErr = minErr('$sce'); + +var SCE_CONTEXTS = { + HTML: 'html', + CSS: 'css', + URL: 'url', + // RESOURCE_URL is a subtype of URL used in contexts where a privileged resource is sourced from a + // url. (e.g. ng-include, script src, templateUrl) + RESOURCE_URL: 'resourceUrl', + JS: 'js' +}; + +// Helper functions follow. + +function adjustMatcher(matcher) { + if (matcher === 'self') { + return matcher; + } else if (isString(matcher)) { + // Strings match exactly except for 2 wildcards - '*' and '**'. + // '*' matches any character except those from the set ':/.?&'. + // '**' matches any character (like .* in a RegExp). + // More than 2 *'s raises an error as it's ill defined. + if (matcher.indexOf('***') > -1) { + throw $sceMinErr('iwcard', + 'Illegal sequence *** in string matcher. String: {0}', matcher); + } + matcher = escapeForRegexp(matcher). + replace('\\*\\*', '.*'). + replace('\\*', '[^:/.?&;]*'); + return new RegExp('^' + matcher + '$'); + } else if (isRegExp(matcher)) { + // The only other type of matcher allowed is a Regexp. + // Match entire URL / disallow partial matches. + // Flags are reset (i.e. no global, ignoreCase or multiline) + return new RegExp('^' + matcher.source + '$'); + } else { + throw $sceMinErr('imatcher', + 'Matchers may only be "self", string patterns or RegExp objects'); + } +} + + +function adjustMatchers(matchers) { + var adjustedMatchers = []; + if (isDefined(matchers)) { + forEach(matchers, function(matcher) { + adjustedMatchers.push(adjustMatcher(matcher)); + }); + } + return adjustedMatchers; +} + + +/** + * @ngdoc service + * @name $sceDelegate + * @kind function + * + * @description + * + * `$sceDelegate` is a service that is used by the `$sce` service to provide {@link ng.$sce Strict + * Contextual Escaping (SCE)} services to AngularJS. + * + * Typically, you would configure or override the {@link ng.$sceDelegate $sceDelegate} instead of + * the `$sce` service to customize the way Strict Contextual Escaping works in AngularJS. This is + * because, while the `$sce` provides numerous shorthand methods, etc., you really only need to + * override 3 core functions (`trustAs`, `getTrusted` and `valueOf`) to replace the way things + * work because `$sce` delegates to `$sceDelegate` for these operations. + * + * Refer {@link ng.$sceDelegateProvider $sceDelegateProvider} to configure this service. + * + * The default instance of `$sceDelegate` should work out of the box with little pain. While you + * can override it completely to change the behavior of `$sce`, the common case would + * involve configuring the {@link ng.$sceDelegateProvider $sceDelegateProvider} instead by setting + * your own whitelists and blacklists for trusting URLs used for loading AngularJS resources such as + * templates. Refer {@link ng.$sceDelegateProvider#resourceUrlWhitelist + * $sceDelegateProvider.resourceUrlWhitelist} and {@link + * ng.$sceDelegateProvider#resourceUrlBlacklist $sceDelegateProvider.resourceUrlBlacklist} + */ + +/** + * @ngdoc provider + * @name $sceDelegateProvider + * @description + * + * The `$sceDelegateProvider` provider allows developers to configure the {@link ng.$sceDelegate + * $sceDelegate} service. This allows one to get/set the whitelists and blacklists used to ensure + * that the URLs used for sourcing Angular templates are safe. Refer {@link + * ng.$sceDelegateProvider#resourceUrlWhitelist $sceDelegateProvider.resourceUrlWhitelist} and + * {@link ng.$sceDelegateProvider#resourceUrlBlacklist $sceDelegateProvider.resourceUrlBlacklist} + * + * For the general details about this service in Angular, read the main page for {@link ng.$sce + * Strict Contextual Escaping (SCE)}. + * + * **Example**: Consider the following case. + * + * - your app is hosted at url `http://myapp.example.com/` + * - but some of your templates are hosted on other domains you control such as + * `http://srv01.assets.example.com/`,  `http://srv02.assets.example.com/`, etc. + * - and you have an open redirect at `http://myapp.example.com/clickThru?...`. + * + * Here is what a secure configuration for this scenario might look like: + * + * ``` + * angular.module('myApp', []).config(function($sceDelegateProvider) { + * $sceDelegateProvider.resourceUrlWhitelist([ + * // Allow same origin resource loads. + * 'self', + * // Allow loading from our assets domain. Notice the difference between * and **. + * 'http://srv*.assets.example.com/**' + * ]); + * + * // The blacklist overrides the whitelist so the open redirect here is blocked. + * $sceDelegateProvider.resourceUrlBlacklist([ + * 'http://myapp.example.com/clickThru**' + * ]); + * }); + * ``` + */ + +function $SceDelegateProvider() { + this.SCE_CONTEXTS = SCE_CONTEXTS; + + // Resource URLs can also be trusted by policy. + var resourceUrlWhitelist = ['self'], + resourceUrlBlacklist = []; + + /** + * @ngdoc method + * @name $sceDelegateProvider#resourceUrlWhitelist + * @kind function + * + * @param {Array=} whitelist When provided, replaces the resourceUrlWhitelist with the value + * provided. This must be an array or null. A snapshot of this array is used so further + * changes to the array are ignored. + * + * Follow {@link ng.$sce#resourceUrlPatternItem this link} for a description of the items + * allowed in this array. + * + *
+ * **Note:** an empty whitelist array will block all URLs! + *
+ * + * @return {Array} the currently set whitelist array. + * + * The **default value** when no whitelist has been explicitly set is `['self']` allowing only + * same origin resource requests. + * + * @description + * Sets/Gets the whitelist of trusted resource URLs. + */ + this.resourceUrlWhitelist = function(value) { + if (arguments.length) { + resourceUrlWhitelist = adjustMatchers(value); + } + return resourceUrlWhitelist; + }; + + /** + * @ngdoc method + * @name $sceDelegateProvider#resourceUrlBlacklist + * @kind function + * + * @param {Array=} blacklist When provided, replaces the resourceUrlBlacklist with the value + * provided. This must be an array or null. A snapshot of this array is used so further + * changes to the array are ignored. + * + * Follow {@link ng.$sce#resourceUrlPatternItem this link} for a description of the items + * allowed in this array. + * + * The typical usage for the blacklist is to **block + * [open redirects](http://cwe.mitre.org/data/definitions/601.html)** served by your domain as + * these would otherwise be trusted but actually return content from the redirected domain. + * + * Finally, **the blacklist overrides the whitelist** and has the final say. + * + * @return {Array} the currently set blacklist array. + * + * The **default value** when no whitelist has been explicitly set is the empty array (i.e. there + * is no blacklist.) + * + * @description + * Sets/Gets the blacklist of trusted resource URLs. + */ + + this.resourceUrlBlacklist = function(value) { + if (arguments.length) { + resourceUrlBlacklist = adjustMatchers(value); + } + return resourceUrlBlacklist; + }; + + this.$get = ['$injector', function($injector) { + + var htmlSanitizer = function htmlSanitizer(html) { + throw $sceMinErr('unsafe', 'Attempting to use an unsafe value in a safe context.'); + }; + + if ($injector.has('$sanitize')) { + htmlSanitizer = $injector.get('$sanitize'); + } + + + function matchUrl(matcher, parsedUrl) { + if (matcher === 'self') { + return urlIsSameOrigin(parsedUrl); + } else { + // definitely a regex. See adjustMatchers() + return !!matcher.exec(parsedUrl.href); + } + } + + function isResourceUrlAllowedByPolicy(url) { + var parsedUrl = urlResolve(url.toString()); + var i, n, allowed = false; + // Ensure that at least one item from the whitelist allows this url. + for (i = 0, n = resourceUrlWhitelist.length; i < n; i++) { + if (matchUrl(resourceUrlWhitelist[i], parsedUrl)) { + allowed = true; + break; + } + } + if (allowed) { + // Ensure that no item from the blacklist blocked this url. + for (i = 0, n = resourceUrlBlacklist.length; i < n; i++) { + if (matchUrl(resourceUrlBlacklist[i], parsedUrl)) { + allowed = false; + break; + } + } + } + return allowed; + } + + function generateHolderType(Base) { + var holderType = function TrustedValueHolderType(trustedValue) { + this.$$unwrapTrustedValue = function() { + return trustedValue; + }; + }; + if (Base) { + holderType.prototype = new Base(); + } + holderType.prototype.valueOf = function sceValueOf() { + return this.$$unwrapTrustedValue(); + }; + holderType.prototype.toString = function sceToString() { + return this.$$unwrapTrustedValue().toString(); + }; + return holderType; + } + + var trustedValueHolderBase = generateHolderType(), + byType = {}; + + byType[SCE_CONTEXTS.HTML] = generateHolderType(trustedValueHolderBase); + byType[SCE_CONTEXTS.CSS] = generateHolderType(trustedValueHolderBase); + byType[SCE_CONTEXTS.URL] = generateHolderType(trustedValueHolderBase); + byType[SCE_CONTEXTS.JS] = generateHolderType(trustedValueHolderBase); + byType[SCE_CONTEXTS.RESOURCE_URL] = generateHolderType(byType[SCE_CONTEXTS.URL]); + + /** + * @ngdoc method + * @name $sceDelegate#trustAs + * + * @description + * Returns an object that is trusted by angular for use in specified strict + * contextual escaping contexts (such as ng-bind-html, ng-include, any src + * attribute interpolation, any dom event binding attribute interpolation + * such as for onclick, etc.) that uses the provided value. + * See {@link ng.$sce $sce} for enabling strict contextual escaping. + * + * @param {string} type The kind of context in which this value is safe for use. e.g. url, + * resourceUrl, html, js and css. + * @param {*} value The value that that should be considered trusted/safe. + * @returns {*} A value that can be used to stand in for the provided `value` in places + * where Angular expects a $sce.trustAs() return value. + */ + function trustAs(type, trustedValue) { + var Constructor = (byType.hasOwnProperty(type) ? byType[type] : null); + if (!Constructor) { + throw $sceMinErr('icontext', + 'Attempted to trust a value in invalid context. Context: {0}; Value: {1}', + type, trustedValue); + } + if (trustedValue === null || isUndefined(trustedValue) || trustedValue === '') { + return trustedValue; + } + // All the current contexts in SCE_CONTEXTS happen to be strings. In order to avoid trusting + // mutable objects, we ensure here that the value passed in is actually a string. + if (typeof trustedValue !== 'string') { + throw $sceMinErr('itype', + 'Attempted to trust a non-string value in a content requiring a string: Context: {0}', + type); + } + return new Constructor(trustedValue); + } + + /** + * @ngdoc method + * @name $sceDelegate#valueOf + * + * @description + * If the passed parameter had been returned by a prior call to {@link ng.$sceDelegate#trustAs + * `$sceDelegate.trustAs`}, returns the value that had been passed to {@link + * ng.$sceDelegate#trustAs `$sceDelegate.trustAs`}. + * + * If the passed parameter is not a value that had been returned by {@link + * ng.$sceDelegate#trustAs `$sceDelegate.trustAs`}, returns it as-is. + * + * @param {*} value The result of a prior {@link ng.$sceDelegate#trustAs `$sceDelegate.trustAs`} + * call or anything else. + * @returns {*} The `value` that was originally provided to {@link ng.$sceDelegate#trustAs + * `$sceDelegate.trustAs`} if `value` is the result of such a call. Otherwise, returns + * `value` unchanged. + */ + function valueOf(maybeTrusted) { + if (maybeTrusted instanceof trustedValueHolderBase) { + return maybeTrusted.$$unwrapTrustedValue(); + } else { + return maybeTrusted; + } + } + + /** + * @ngdoc method + * @name $sceDelegate#getTrusted + * + * @description + * Takes the result of a {@link ng.$sceDelegate#trustAs `$sceDelegate.trustAs`} call and + * returns the originally supplied value if the queried context type is a supertype of the + * created type. If this condition isn't satisfied, throws an exception. + * + * @param {string} type The kind of context in which this value is to be used. + * @param {*} maybeTrusted The result of a prior {@link ng.$sceDelegate#trustAs + * `$sceDelegate.trustAs`} call. + * @returns {*} The value the was originally provided to {@link ng.$sceDelegate#trustAs + * `$sceDelegate.trustAs`} if valid in this context. Otherwise, throws an exception. + */ + function getTrusted(type, maybeTrusted) { + if (maybeTrusted === null || isUndefined(maybeTrusted) || maybeTrusted === '') { + return maybeTrusted; + } + var constructor = (byType.hasOwnProperty(type) ? byType[type] : null); + if (constructor && maybeTrusted instanceof constructor) { + return maybeTrusted.$$unwrapTrustedValue(); + } + // If we get here, then we may only take one of two actions. + // 1. sanitize the value for the requested type, or + // 2. throw an exception. + if (type === SCE_CONTEXTS.RESOURCE_URL) { + if (isResourceUrlAllowedByPolicy(maybeTrusted)) { + return maybeTrusted; + } else { + throw $sceMinErr('insecurl', + 'Blocked loading resource from url not allowed by $sceDelegate policy. URL: {0}', + maybeTrusted.toString()); + } + } else if (type === SCE_CONTEXTS.HTML) { + return htmlSanitizer(maybeTrusted); + } + throw $sceMinErr('unsafe', 'Attempting to use an unsafe value in a safe context.'); + } + + return { trustAs: trustAs, + getTrusted: getTrusted, + valueOf: valueOf }; + }]; +} + + +/** + * @ngdoc provider + * @name $sceProvider + * @description + * + * The $sceProvider provider allows developers to configure the {@link ng.$sce $sce} service. + * - enable/disable Strict Contextual Escaping (SCE) in a module + * - override the default implementation with a custom delegate + * + * Read more about {@link ng.$sce Strict Contextual Escaping (SCE)}. + */ + +/* jshint maxlen: false*/ + +/** + * @ngdoc service + * @name $sce + * @kind function + * + * @description + * + * `$sce` is a service that provides Strict Contextual Escaping services to AngularJS. + * + * # Strict Contextual Escaping + * + * Strict Contextual Escaping (SCE) is a mode in which AngularJS requires bindings in certain + * contexts to result in a value that is marked as safe to use for that context. One example of + * such a context is binding arbitrary html controlled by the user via `ng-bind-html`. We refer + * to these contexts as privileged or SCE contexts. + * + * As of version 1.2, Angular ships with SCE enabled by default. + * + * Note: When enabled (the default), IE<11 in quirks mode is not supported. In this mode, IE<11 allow + * one to execute arbitrary javascript by the use of the expression() syntax. Refer + * to learn more about them. + * You can ensure your document is in standards mode and not quirks mode by adding `` + * to the top of your HTML document. + * + * SCE assists in writing code in way that (a) is secure by default and (b) makes auditing for + * security vulnerabilities such as XSS, clickjacking, etc. a lot easier. + * + * Here's an example of a binding in a privileged context: + * + * ``` + * + *
+ * ``` + * + * Notice that `ng-bind-html` is bound to `userHtml` controlled by the user. With SCE + * disabled, this application allows the user to render arbitrary HTML into the DIV. + * In a more realistic example, one may be rendering user comments, blog articles, etc. via + * bindings. (HTML is just one example of a context where rendering user controlled input creates + * security vulnerabilities.) + * + * For the case of HTML, you might use a library, either on the client side, or on the server side, + * to sanitize unsafe HTML before binding to the value and rendering it in the document. + * + * How would you ensure that every place that used these types of bindings was bound to a value that + * was sanitized by your library (or returned as safe for rendering by your server?) How can you + * ensure that you didn't accidentally delete the line that sanitized the value, or renamed some + * properties/fields and forgot to update the binding to the sanitized value? + * + * To be secure by default, you want to ensure that any such bindings are disallowed unless you can + * determine that something explicitly says it's safe to use a value for binding in that + * context. You can then audit your code (a simple grep would do) to ensure that this is only done + * for those values that you can easily tell are safe - because they were received from your server, + * sanitized by your library, etc. You can organize your codebase to help with this - perhaps + * allowing only the files in a specific directory to do this. Ensuring that the internal API + * exposed by that code doesn't markup arbitrary values as safe then becomes a more manageable task. + * + * In the case of AngularJS' SCE service, one uses {@link ng.$sce#trustAs $sce.trustAs} + * (and shorthand methods such as {@link ng.$sce#trustAsHtml $sce.trustAsHtml}, etc.) to + * obtain values that will be accepted by SCE / privileged contexts. + * + * + * ## How does it work? + * + * In privileged contexts, directives and code will bind to the result of {@link ng.$sce#getTrusted + * $sce.getTrusted(context, value)} rather than to the value directly. Directives use {@link + * ng.$sce#parseAs $sce.parseAs} rather than `$parse` to watch attribute bindings, which performs the + * {@link ng.$sce#getTrusted $sce.getTrusted} behind the scenes on non-constant literals. + * + * As an example, {@link ng.directive:ngBindHtml ngBindHtml} uses {@link + * ng.$sce#parseAsHtml $sce.parseAsHtml(binding expression)}. Here's the actual code (slightly + * simplified): + * + * ``` + * var ngBindHtmlDirective = ['$sce', function($sce) { + * return function(scope, element, attr) { + * scope.$watch($sce.parseAsHtml(attr.ngBindHtml), function(value) { + * element.html(value || ''); + * }); + * }; + * }]; + * ``` + * + * ## Impact on loading templates + * + * This applies both to the {@link ng.directive:ngInclude `ng-include`} directive as well as + * `templateUrl`'s specified by {@link guide/directive directives}. + * + * By default, Angular only loads templates from the same domain and protocol as the application + * document. This is done by calling {@link ng.$sce#getTrustedResourceUrl + * $sce.getTrustedResourceUrl} on the template URL. To load templates from other domains and/or + * protocols, you may either {@link ng.$sceDelegateProvider#resourceUrlWhitelist whitelist + * them} or {@link ng.$sce#trustAsResourceUrl wrap it} into a trusted value. + * + * *Please note*: + * The browser's + * [Same Origin Policy](https://code.google.com/p/browsersec/wiki/Part2#Same-origin_policy_for_XMLHttpRequest) + * and [Cross-Origin Resource Sharing (CORS)](http://www.w3.org/TR/cors/) + * policy apply in addition to this and may further restrict whether the template is successfully + * loaded. This means that without the right CORS policy, loading templates from a different domain + * won't work on all browsers. Also, loading templates from `file://` URL does not work on some + * browsers. + * + * ## This feels like too much overhead + * + * It's important to remember that SCE only applies to interpolation expressions. + * + * If your expressions are constant literals, they're automatically trusted and you don't need to + * call `$sce.trustAs` on them (remember to include the `ngSanitize` module) (e.g. + * `
`) just works. + * + * Additionally, `a[href]` and `img[src]` automatically sanitize their URLs and do not pass them + * through {@link ng.$sce#getTrusted $sce.getTrusted}. SCE doesn't play a role here. + * + * The included {@link ng.$sceDelegate $sceDelegate} comes with sane defaults to allow you to load + * templates in `ng-include` from your application's domain without having to even know about SCE. + * It blocks loading templates from other domains or loading templates over http from an https + * served document. You can change these by setting your own custom {@link + * ng.$sceDelegateProvider#resourceUrlWhitelist whitelists} and {@link + * ng.$sceDelegateProvider#resourceUrlBlacklist blacklists} for matching such URLs. + * + * This significantly reduces the overhead. It is far easier to pay the small overhead and have an + * application that's secure and can be audited to verify that with much more ease than bolting + * security onto an application later. + * + * + * ## What trusted context types are supported? + * + * | Context | Notes | + * |---------------------|----------------| + * | `$sce.HTML` | For HTML that's safe to source into the application. The {@link ng.directive:ngBindHtml ngBindHtml} directive uses this context for bindings. If an unsafe value is encountered and the {@link ngSanitize $sanitize} module is present this will sanitize the value instead of throwing an error. | + * | `$sce.CSS` | For CSS that's safe to source into the application. Currently unused. Feel free to use it in your own directives. | + * | `$sce.URL` | For URLs that are safe to follow as links. Currently unused (`
Note that `$sce.RESOURCE_URL` makes a stronger statement about the URL than `$sce.URL` does and therefore contexts requiring values trusted for `$sce.RESOURCE_URL` can be used anywhere that values trusted for `$sce.URL` are required. | + * | `$sce.JS` | For JavaScript that is safe to execute in your application's context. Currently unused. Feel free to use it in your own directives. | + * + * ## Format of items in {@link ng.$sceDelegateProvider#resourceUrlWhitelist resourceUrlWhitelist}/{@link ng.$sceDelegateProvider#resourceUrlBlacklist Blacklist}
+ * + * Each element in these arrays must be one of the following: + * + * - **'self'** + * - The special **string**, `'self'`, can be used to match against all URLs of the **same + * domain** as the application document using the **same protocol**. + * - **String** (except the special value `'self'`) + * - The string is matched against the full *normalized / absolute URL* of the resource + * being tested (substring matches are not good enough.) + * - There are exactly **two wildcard sequences** - `*` and `**`. All other characters + * match themselves. + * - `*`: matches zero or more occurrences of any character other than one of the following 6 + * characters: '`:`', '`/`', '`.`', '`?`', '`&`' and '`;`'. It's a useful wildcard for use + * in a whitelist. + * - `**`: matches zero or more occurrences of *any* character. As such, it's not + * appropriate for use in a scheme, domain, etc. as it would match too much. (e.g. + * http://**.example.com/ would match http://evil.com/?ignore=.example.com/ and that might + * not have been the intention.) Its usage at the very end of the path is ok. (e.g. + * http://foo.example.com/templates/**). + * - **RegExp** (*see caveat below*) + * - *Caveat*: While regular expressions are powerful and offer great flexibility, their syntax + * (and all the inevitable escaping) makes them *harder to maintain*. It's easy to + * accidentally introduce a bug when one updates a complex expression (imho, all regexes should + * have good test coverage). For instance, the use of `.` in the regex is correct only in a + * small number of cases. A `.` character in the regex used when matching the scheme or a + * subdomain could be matched against a `:` or literal `.` that was likely not intended. It + * is highly recommended to use the string patterns and only fall back to regular expressions + * as a last resort. + * - The regular expression must be an instance of RegExp (i.e. not a string.) It is + * matched against the **entire** *normalized / absolute URL* of the resource being tested + * (even when the RegExp did not have the `^` and `$` codes.) In addition, any flags + * present on the RegExp (such as multiline, global, ignoreCase) are ignored. + * - If you are generating your JavaScript from some other templating engine (not + * recommended, e.g. in issue [#4006](https://github.com/angular/angular.js/issues/4006)), + * remember to escape your regular expression (and be aware that you might need more than + * one level of escaping depending on your templating engine and the way you interpolated + * the value.) Do make use of your platform's escaping mechanism as it might be good + * enough before coding your own. E.g. Ruby has + * [Regexp.escape(str)](http://www.ruby-doc.org/core-2.0.0/Regexp.html#method-c-escape) + * and Python has [re.escape](http://docs.python.org/library/re.html#re.escape). + * Javascript lacks a similar built in function for escaping. Take a look at Google + * Closure library's [goog.string.regExpEscape(s)]( + * http://docs.closure-library.googlecode.com/git/closure_goog_string_string.js.source.html#line962). + * + * Refer {@link ng.$sceDelegateProvider $sceDelegateProvider} for an example. + * + * ## Show me an example using SCE. + * + * + * + *
+ *

+ * User comments
+ * By default, HTML that isn't explicitly trusted (e.g. Alice's comment) is sanitized when + * $sanitize is available. If $sanitize isn't available, this results in an error instead of an + * exploit. + *
+ *
+ * {{userComment.name}}: + * + *
+ *
+ *
+ *
+ *
+ * + * + * angular.module('mySceApp', ['ngSanitize']) + * .controller('AppController', ['$http', '$templateCache', '$sce', + * function($http, $templateCache, $sce) { + * var self = this; + * $http.get("test_data.json", {cache: $templateCache}).success(function(userComments) { + * self.userComments = userComments; + * }); + * self.explicitlyTrustedHtml = $sce.trustAsHtml( + * 'Hover over this text.'); + * }]); + * + * + * + * [ + * { "name": "Alice", + * "htmlComment": + * "Is anyone reading this?" + * }, + * { "name": "Bob", + * "htmlComment": "Yes! Am I the only other one?" + * } + * ] + * + * + * + * describe('SCE doc demo', function() { + * it('should sanitize untrusted values', function() { + * expect(element.all(by.css('.htmlComment')).first().getInnerHtml()) + * .toBe('Is anyone reading this?'); + * }); + * + * it('should NOT sanitize explicitly trusted values', function() { + * expect(element(by.id('explicitlyTrustedHtml')).getInnerHtml()).toBe( + * 'Hover over this text.'); + * }); + * }); + * + *
+ * + * + * + * ## Can I disable SCE completely? + * + * Yes, you can. However, this is strongly discouraged. SCE gives you a lot of security benefits + * for little coding overhead. It will be much harder to take an SCE disabled application and + * either secure it on your own or enable SCE at a later stage. It might make sense to disable SCE + * for cases where you have a lot of existing code that was written before SCE was introduced and + * you're migrating them a module at a time. + * + * That said, here's how you can completely disable SCE: + * + * ``` + * angular.module('myAppWithSceDisabledmyApp', []).config(function($sceProvider) { + * // Completely disable SCE. For demonstration purposes only! + * // Do not use in new projects. + * $sceProvider.enabled(false); + * }); + * ``` + * + */ +/* jshint maxlen: 100 */ + +function $SceProvider() { + var enabled = true; + + /** + * @ngdoc method + * @name $sceProvider#enabled + * @kind function + * + * @param {boolean=} value If provided, then enables/disables SCE. + * @return {boolean} true if SCE is enabled, false otherwise. + * + * @description + * Enables/disables SCE and returns the current value. + */ + this.enabled = function(value) { + if (arguments.length) { + enabled = !!value; + } + return enabled; + }; + + + /* Design notes on the default implementation for SCE. + * + * The API contract for the SCE delegate + * ------------------------------------- + * The SCE delegate object must provide the following 3 methods: + * + * - trustAs(contextEnum, value) + * This method is used to tell the SCE service that the provided value is OK to use in the + * contexts specified by contextEnum. It must return an object that will be accepted by + * getTrusted() for a compatible contextEnum and return this value. + * + * - valueOf(value) + * For values that were not produced by trustAs(), return them as is. For values that were + * produced by trustAs(), return the corresponding input value to trustAs. Basically, if + * trustAs is wrapping the given values into some type, this operation unwraps it when given + * such a value. + * + * - getTrusted(contextEnum, value) + * This function should return the a value that is safe to use in the context specified by + * contextEnum or throw and exception otherwise. + * + * NOTE: This contract deliberately does NOT state that values returned by trustAs() must be + * opaque or wrapped in some holder object. That happens to be an implementation detail. For + * instance, an implementation could maintain a registry of all trusted objects by context. In + * such a case, trustAs() would return the same object that was passed in. getTrusted() would + * return the same object passed in if it was found in the registry under a compatible context or + * throw an exception otherwise. An implementation might only wrap values some of the time based + * on some criteria. getTrusted() might return a value and not throw an exception for special + * constants or objects even if not wrapped. All such implementations fulfill this contract. + * + * + * A note on the inheritance model for SCE contexts + * ------------------------------------------------ + * I've used inheritance and made RESOURCE_URL wrapped types a subtype of URL wrapped types. This + * is purely an implementation details. + * + * The contract is simply this: + * + * getTrusted($sce.RESOURCE_URL, value) succeeding implies that getTrusted($sce.URL, value) + * will also succeed. + * + * Inheritance happens to capture this in a natural way. In some future, we + * may not use inheritance anymore. That is OK because no code outside of + * sce.js and sceSpecs.js would need to be aware of this detail. + */ + + this.$get = ['$parse', '$sceDelegate', function( + $parse, $sceDelegate) { + // Prereq: Ensure that we're not running in IE<11 quirks mode. In that mode, IE < 11 allow + // the "expression(javascript expression)" syntax which is insecure. + if (enabled && msie < 8) { + throw $sceMinErr('iequirks', + 'Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks ' + + 'mode. You can fix this by adding the text to the top of your HTML ' + + 'document. See http://docs.angularjs.org/api/ng.$sce for more information.'); + } + + var sce = shallowCopy(SCE_CONTEXTS); + + /** + * @ngdoc method + * @name $sce#isEnabled + * @kind function + * + * @return {Boolean} true if SCE is enabled, false otherwise. If you want to set the value, you + * have to do it at module config time on {@link ng.$sceProvider $sceProvider}. + * + * @description + * Returns a boolean indicating if SCE is enabled. + */ + sce.isEnabled = function() { + return enabled; + }; + sce.trustAs = $sceDelegate.trustAs; + sce.getTrusted = $sceDelegate.getTrusted; + sce.valueOf = $sceDelegate.valueOf; + + if (!enabled) { + sce.trustAs = sce.getTrusted = function(type, value) { return value; }; + sce.valueOf = identity; + } + + /** + * @ngdoc method + * @name $sce#parseAs + * + * @description + * Converts Angular {@link guide/expression expression} into a function. This is like {@link + * ng.$parse $parse} and is identical when the expression is a literal constant. Otherwise, it + * wraps the expression in a call to {@link ng.$sce#getTrusted $sce.getTrusted(*type*, + * *result*)} + * + * @param {string} type The kind of SCE context in which this result will be used. + * @param {string} expression String expression to compile. + * @returns {function(context, locals)} a function which represents the compiled expression: + * + * * `context` – `{object}` – an object against which any expressions embedded in the strings + * are evaluated against (typically a scope object). + * * `locals` – `{object=}` – local variables context object, useful for overriding values in + * `context`. + */ + sce.parseAs = function sceParseAs(type, expr) { + var parsed = $parse(expr); + if (parsed.literal && parsed.constant) { + return parsed; + } else { + return $parse(expr, function(value) { + return sce.getTrusted(type, value); + }); + } + }; + + /** + * @ngdoc method + * @name $sce#trustAs + * + * @description + * Delegates to {@link ng.$sceDelegate#trustAs `$sceDelegate.trustAs`}. As such, + * returns an object that is trusted by angular for use in specified strict contextual + * escaping contexts (such as ng-bind-html, ng-include, any src attribute + * interpolation, any dom event binding attribute interpolation such as for onclick, etc.) + * that uses the provided value. See * {@link ng.$sce $sce} for enabling strict contextual + * escaping. + * + * @param {string} type The kind of context in which this value is safe for use. e.g. url, + * resourceUrl, html, js and css. + * @param {*} value The value that that should be considered trusted/safe. + * @returns {*} A value that can be used to stand in for the provided `value` in places + * where Angular expects a $sce.trustAs() return value. + */ + + /** + * @ngdoc method + * @name $sce#trustAsHtml + * + * @description + * Shorthand method. `$sce.trustAsHtml(value)` → + * {@link ng.$sceDelegate#trustAs `$sceDelegate.trustAs($sce.HTML, value)`} + * + * @param {*} value The value to trustAs. + * @returns {*} An object that can be passed to {@link ng.$sce#getTrustedHtml + * $sce.getTrustedHtml(value)} to obtain the original value. (privileged directives + * only accept expressions that are either literal constants or are the + * return value of {@link ng.$sce#trustAs $sce.trustAs}.) + */ + + /** + * @ngdoc method + * @name $sce#trustAsUrl + * + * @description + * Shorthand method. `$sce.trustAsUrl(value)` → + * {@link ng.$sceDelegate#trustAs `$sceDelegate.trustAs($sce.URL, value)`} + * + * @param {*} value The value to trustAs. + * @returns {*} An object that can be passed to {@link ng.$sce#getTrustedUrl + * $sce.getTrustedUrl(value)} to obtain the original value. (privileged directives + * only accept expressions that are either literal constants or are the + * return value of {@link ng.$sce#trustAs $sce.trustAs}.) + */ + + /** + * @ngdoc method + * @name $sce#trustAsResourceUrl + * + * @description + * Shorthand method. `$sce.trustAsResourceUrl(value)` → + * {@link ng.$sceDelegate#trustAs `$sceDelegate.trustAs($sce.RESOURCE_URL, value)`} + * + * @param {*} value The value to trustAs. + * @returns {*} An object that can be passed to {@link ng.$sce#getTrustedResourceUrl + * $sce.getTrustedResourceUrl(value)} to obtain the original value. (privileged directives + * only accept expressions that are either literal constants or are the return + * value of {@link ng.$sce#trustAs $sce.trustAs}.) + */ + + /** + * @ngdoc method + * @name $sce#trustAsJs + * + * @description + * Shorthand method. `$sce.trustAsJs(value)` → + * {@link ng.$sceDelegate#trustAs `$sceDelegate.trustAs($sce.JS, value)`} + * + * @param {*} value The value to trustAs. + * @returns {*} An object that can be passed to {@link ng.$sce#getTrustedJs + * $sce.getTrustedJs(value)} to obtain the original value. (privileged directives + * only accept expressions that are either literal constants or are the + * return value of {@link ng.$sce#trustAs $sce.trustAs}.) + */ + + /** + * @ngdoc method + * @name $sce#getTrusted + * + * @description + * Delegates to {@link ng.$sceDelegate#getTrusted `$sceDelegate.getTrusted`}. As such, + * takes the result of a {@link ng.$sce#trustAs `$sce.trustAs`}() call and returns the + * originally supplied value if the queried context type is a supertype of the created type. + * If this condition isn't satisfied, throws an exception. + * + * @param {string} type The kind of context in which this value is to be used. + * @param {*} maybeTrusted The result of a prior {@link ng.$sce#trustAs `$sce.trustAs`} + * call. + * @returns {*} The value the was originally provided to + * {@link ng.$sce#trustAs `$sce.trustAs`} if valid in this context. + * Otherwise, throws an exception. + */ + + /** + * @ngdoc method + * @name $sce#getTrustedHtml + * + * @description + * Shorthand method. `$sce.getTrustedHtml(value)` → + * {@link ng.$sceDelegate#getTrusted `$sceDelegate.getTrusted($sce.HTML, value)`} + * + * @param {*} value The value to pass to `$sce.getTrusted`. + * @returns {*} The return value of `$sce.getTrusted($sce.HTML, value)` + */ + + /** + * @ngdoc method + * @name $sce#getTrustedCss + * + * @description + * Shorthand method. `$sce.getTrustedCss(value)` → + * {@link ng.$sceDelegate#getTrusted `$sceDelegate.getTrusted($sce.CSS, value)`} + * + * @param {*} value The value to pass to `$sce.getTrusted`. + * @returns {*} The return value of `$sce.getTrusted($sce.CSS, value)` + */ + + /** + * @ngdoc method + * @name $sce#getTrustedUrl + * + * @description + * Shorthand method. `$sce.getTrustedUrl(value)` → + * {@link ng.$sceDelegate#getTrusted `$sceDelegate.getTrusted($sce.URL, value)`} + * + * @param {*} value The value to pass to `$sce.getTrusted`. + * @returns {*} The return value of `$sce.getTrusted($sce.URL, value)` + */ + + /** + * @ngdoc method + * @name $sce#getTrustedResourceUrl + * + * @description + * Shorthand method. `$sce.getTrustedResourceUrl(value)` → + * {@link ng.$sceDelegate#getTrusted `$sceDelegate.getTrusted($sce.RESOURCE_URL, value)`} + * + * @param {*} value The value to pass to `$sceDelegate.getTrusted`. + * @returns {*} The return value of `$sce.getTrusted($sce.RESOURCE_URL, value)` + */ + + /** + * @ngdoc method + * @name $sce#getTrustedJs + * + * @description + * Shorthand method. `$sce.getTrustedJs(value)` → + * {@link ng.$sceDelegate#getTrusted `$sceDelegate.getTrusted($sce.JS, value)`} + * + * @param {*} value The value to pass to `$sce.getTrusted`. + * @returns {*} The return value of `$sce.getTrusted($sce.JS, value)` + */ + + /** + * @ngdoc method + * @name $sce#parseAsHtml + * + * @description + * Shorthand method. `$sce.parseAsHtml(expression string)` → + * {@link ng.$sce#parseAs `$sce.parseAs($sce.HTML, value)`} + * + * @param {string} expression String expression to compile. + * @returns {function(context, locals)} a function which represents the compiled expression: + * + * * `context` – `{object}` – an object against which any expressions embedded in the strings + * are evaluated against (typically a scope object). + * * `locals` – `{object=}` – local variables context object, useful for overriding values in + * `context`. + */ + + /** + * @ngdoc method + * @name $sce#parseAsCss + * + * @description + * Shorthand method. `$sce.parseAsCss(value)` → + * {@link ng.$sce#parseAs `$sce.parseAs($sce.CSS, value)`} + * + * @param {string} expression String expression to compile. + * @returns {function(context, locals)} a function which represents the compiled expression: + * + * * `context` – `{object}` – an object against which any expressions embedded in the strings + * are evaluated against (typically a scope object). + * * `locals` – `{object=}` – local variables context object, useful for overriding values in + * `context`. + */ + + /** + * @ngdoc method + * @name $sce#parseAsUrl + * + * @description + * Shorthand method. `$sce.parseAsUrl(value)` → + * {@link ng.$sce#parseAs `$sce.parseAs($sce.URL, value)`} + * + * @param {string} expression String expression to compile. + * @returns {function(context, locals)} a function which represents the compiled expression: + * + * * `context` – `{object}` – an object against which any expressions embedded in the strings + * are evaluated against (typically a scope object). + * * `locals` – `{object=}` – local variables context object, useful for overriding values in + * `context`. + */ + + /** + * @ngdoc method + * @name $sce#parseAsResourceUrl + * + * @description + * Shorthand method. `$sce.parseAsResourceUrl(value)` → + * {@link ng.$sce#parseAs `$sce.parseAs($sce.RESOURCE_URL, value)`} + * + * @param {string} expression String expression to compile. + * @returns {function(context, locals)} a function which represents the compiled expression: + * + * * `context` – `{object}` – an object against which any expressions embedded in the strings + * are evaluated against (typically a scope object). + * * `locals` – `{object=}` – local variables context object, useful for overriding values in + * `context`. + */ + + /** + * @ngdoc method + * @name $sce#parseAsJs + * + * @description + * Shorthand method. `$sce.parseAsJs(value)` → + * {@link ng.$sce#parseAs `$sce.parseAs($sce.JS, value)`} + * + * @param {string} expression String expression to compile. + * @returns {function(context, locals)} a function which represents the compiled expression: + * + * * `context` – `{object}` – an object against which any expressions embedded in the strings + * are evaluated against (typically a scope object). + * * `locals` – `{object=}` – local variables context object, useful for overriding values in + * `context`. + */ + + // Shorthand delegations. + var parse = sce.parseAs, + getTrusted = sce.getTrusted, + trustAs = sce.trustAs; + + forEach(SCE_CONTEXTS, function(enumValue, name) { + var lName = lowercase(name); + sce[camelCase("parse_as_" + lName)] = function(expr) { + return parse(enumValue, expr); + }; + sce[camelCase("get_trusted_" + lName)] = function(value) { + return getTrusted(enumValue, value); + }; + sce[camelCase("trust_as_" + lName)] = function(value) { + return trustAs(enumValue, value); + }; + }); + + return sce; + }]; +} + +/** + * !!! This is an undocumented "private" service !!! + * + * @name $sniffer + * @requires $window + * @requires $document + * + * @property {boolean} history Does the browser support html5 history api ? + * @property {boolean} transitions Does the browser support CSS transition events ? + * @property {boolean} animations Does the browser support CSS animation events ? + * + * @description + * This is very simple implementation of testing browser's features. + */ +function $SnifferProvider() { + this.$get = ['$window', '$document', function($window, $document) { + var eventSupport = {}, + android = + toInt((/android (\d+)/.exec(lowercase(($window.navigator || {}).userAgent)) || [])[1]), + boxee = /Boxee/i.test(($window.navigator || {}).userAgent), + document = $document[0] || {}, + vendorPrefix, + vendorRegex = /^(Moz|webkit|ms)(?=[A-Z])/, + bodyStyle = document.body && document.body.style, + transitions = false, + animations = false, + match; + + if (bodyStyle) { + for (var prop in bodyStyle) { + if (match = vendorRegex.exec(prop)) { + vendorPrefix = match[0]; + vendorPrefix = vendorPrefix.substr(0, 1).toUpperCase() + vendorPrefix.substr(1); + break; + } + } + + if (!vendorPrefix) { + vendorPrefix = ('WebkitOpacity' in bodyStyle) && 'webkit'; + } + + transitions = !!(('transition' in bodyStyle) || (vendorPrefix + 'Transition' in bodyStyle)); + animations = !!(('animation' in bodyStyle) || (vendorPrefix + 'Animation' in bodyStyle)); + + if (android && (!transitions || !animations)) { + transitions = isString(bodyStyle.webkitTransition); + animations = isString(bodyStyle.webkitAnimation); + } + } + + + return { + // Android has history.pushState, but it does not update location correctly + // so let's not use the history API at all. + // http://code.google.com/p/android/issues/detail?id=17471 + // https://github.com/angular/angular.js/issues/904 + + // older webkit browser (533.9) on Boxee box has exactly the same problem as Android has + // so let's not use the history API also + // We are purposefully using `!(android < 4)` to cover the case when `android` is undefined + // jshint -W018 + history: !!($window.history && $window.history.pushState && !(android < 4) && !boxee), + // jshint +W018 + hasEvent: function(event) { + // IE9 implements 'input' event it's so fubared that we rather pretend that it doesn't have + // it. In particular the event is not fired when backspace or delete key are pressed or + // when cut operation is performed. + // IE10+ implements 'input' event but it erroneously fires under various situations, + // e.g. when placeholder changes, or a form is focused. + if (event === 'input' && msie <= 11) return false; + + if (isUndefined(eventSupport[event])) { + var divElm = document.createElement('div'); + eventSupport[event] = 'on' + event in divElm; + } + + return eventSupport[event]; + }, + csp: csp(), + vendorPrefix: vendorPrefix, + transitions: transitions, + animations: animations, + android: android + }; + }]; +} + +var $compileMinErr = minErr('$compile'); + +/** + * @ngdoc service + * @name $templateRequest + * + * @description + * The `$templateRequest` service runs security checks then downloads the provided template using + * `$http` and, upon success, stores the contents inside of `$templateCache`. If the HTTP request + * fails or the response data of the HTTP request is empty, a `$compile` error will be thrown (the + * exception can be thwarted by setting the 2nd parameter of the function to true). Note that the + * contents of `$templateCache` are trusted, so the call to `$sce.getTrustedUrl(tpl)` is omitted + * when `tpl` is of type string and `$templateCache` has the matching entry. + * + * @param {string|TrustedResourceUrl} tpl The HTTP request template URL + * @param {boolean=} ignoreRequestError Whether or not to ignore the exception when the request fails or the template is empty + * + * @return {Promise} a promise for the HTTP response data of the given URL. + * + * @property {number} totalPendingRequests total amount of pending template requests being downloaded. + */ +function $TemplateRequestProvider() { + this.$get = ['$templateCache', '$http', '$q', '$sce', function($templateCache, $http, $q, $sce) { + function handleRequestFn(tpl, ignoreRequestError) { + handleRequestFn.totalPendingRequests++; + + // We consider the template cache holds only trusted templates, so + // there's no need to go through whitelisting again for keys that already + // are included in there. This also makes Angular accept any script + // directive, no matter its name. However, we still need to unwrap trusted + // types. + if (!isString(tpl) || !$templateCache.get(tpl)) { + tpl = $sce.getTrustedResourceUrl(tpl); + } + + var transformResponse = $http.defaults && $http.defaults.transformResponse; + + if (isArray(transformResponse)) { + transformResponse = transformResponse.filter(function(transformer) { + return transformer !== defaultHttpResponseTransform; + }); + } else if (transformResponse === defaultHttpResponseTransform) { + transformResponse = null; + } + + var httpOptions = { + cache: $templateCache, + transformResponse: transformResponse + }; + + return $http.get(tpl, httpOptions) + ['finally'](function() { + handleRequestFn.totalPendingRequests--; + }) + .then(function(response) { + $templateCache.put(tpl, response.data); + return response.data; + }, handleError); + + function handleError(resp) { + if (!ignoreRequestError) { + throw $compileMinErr('tpload', 'Failed to load template: {0} (HTTP status: {1} {2})', + tpl, resp.status, resp.statusText); + } + return $q.reject(resp); + } + } + + handleRequestFn.totalPendingRequests = 0; + + return handleRequestFn; + }]; +} + +function $$TestabilityProvider() { + this.$get = ['$rootScope', '$browser', '$location', + function($rootScope, $browser, $location) { + + /** + * @name $testability + * + * @description + * The private $$testability service provides a collection of methods for use when debugging + * or by automated test and debugging tools. + */ + var testability = {}; + + /** + * @name $$testability#findBindings + * + * @description + * Returns an array of elements that are bound (via ng-bind or {{}}) + * to expressions matching the input. + * + * @param {Element} element The element root to search from. + * @param {string} expression The binding expression to match. + * @param {boolean} opt_exactMatch If true, only returns exact matches + * for the expression. Filters and whitespace are ignored. + */ + testability.findBindings = function(element, expression, opt_exactMatch) { + var bindings = element.getElementsByClassName('ng-binding'); + var matches = []; + forEach(bindings, function(binding) { + var dataBinding = angular.element(binding).data('$binding'); + if (dataBinding) { + forEach(dataBinding, function(bindingName) { + if (opt_exactMatch) { + var matcher = new RegExp('(^|\\s)' + escapeForRegexp(expression) + '(\\s|\\||$)'); + if (matcher.test(bindingName)) { + matches.push(binding); + } + } else { + if (bindingName.indexOf(expression) != -1) { + matches.push(binding); + } + } + }); + } + }); + return matches; + }; + + /** + * @name $$testability#findModels + * + * @description + * Returns an array of elements that are two-way found via ng-model to + * expressions matching the input. + * + * @param {Element} element The element root to search from. + * @param {string} expression The model expression to match. + * @param {boolean} opt_exactMatch If true, only returns exact matches + * for the expression. + */ + testability.findModels = function(element, expression, opt_exactMatch) { + var prefixes = ['ng-', 'data-ng-', 'ng\\:']; + for (var p = 0; p < prefixes.length; ++p) { + var attributeEquals = opt_exactMatch ? '=' : '*='; + var selector = '[' + prefixes[p] + 'model' + attributeEquals + '"' + expression + '"]'; + var elements = element.querySelectorAll(selector); + if (elements.length) { + return elements; + } + } + }; + + /** + * @name $$testability#getLocation + * + * @description + * Shortcut for getting the location in a browser agnostic way. Returns + * the path, search, and hash. (e.g. /path?a=b#hash) + */ + testability.getLocation = function() { + return $location.url(); + }; + + /** + * @name $$testability#setLocation + * + * @description + * Shortcut for navigating to a location without doing a full page reload. + * + * @param {string} url The location url (path, search and hash, + * e.g. /path?a=b#hash) to go to. + */ + testability.setLocation = function(url) { + if (url !== $location.url()) { + $location.url(url); + $rootScope.$digest(); + } + }; + + /** + * @name $$testability#whenStable + * + * @description + * Calls the callback when $timeout and $http requests are completed. + * + * @param {function} callback + */ + testability.whenStable = function(callback) { + $browser.notifyWhenNoOutstandingRequests(callback); + }; + + return testability; + }]; +} + +function $TimeoutProvider() { + this.$get = ['$rootScope', '$browser', '$q', '$$q', '$exceptionHandler', + function($rootScope, $browser, $q, $$q, $exceptionHandler) { + + var deferreds = {}; + + + /** + * @ngdoc service + * @name $timeout + * + * @description + * Angular's wrapper for `window.setTimeout`. The `fn` function is wrapped into a try/catch + * block and delegates any exceptions to + * {@link ng.$exceptionHandler $exceptionHandler} service. + * + * The return value of calling `$timeout` is a promise, which will be resolved when + * the delay has passed and the timeout function, if provided, is executed. + * + * To cancel a timeout request, call `$timeout.cancel(promise)`. + * + * In tests you can use {@link ngMock.$timeout `$timeout.flush()`} to + * synchronously flush the queue of deferred functions. + * + * If you only want a promise that will be resolved after some specified delay + * then you can call `$timeout` without the `fn` function. + * + * @param {function()=} fn A function, whose execution should be delayed. + * @param {number=} [delay=0] Delay in milliseconds. + * @param {boolean=} [invokeApply=true] If set to `false` skips model dirty checking, otherwise + * will invoke `fn` within the {@link ng.$rootScope.Scope#$apply $apply} block. + * @param {...*=} Pass additional parameters to the executed function. + * @returns {Promise} Promise that will be resolved when the timeout is reached. The promise + * will be resolved with the return value of the `fn` function. + * + */ + function timeout(fn, delay, invokeApply) { + if (!isFunction(fn)) { + invokeApply = delay; + delay = fn; + fn = noop; + } + + var args = sliceArgs(arguments, 3), + skipApply = (isDefined(invokeApply) && !invokeApply), + deferred = (skipApply ? $$q : $q).defer(), + promise = deferred.promise, + timeoutId; + + timeoutId = $browser.defer(function() { + try { + deferred.resolve(fn.apply(null, args)); + } catch (e) { + deferred.reject(e); + $exceptionHandler(e); + } + finally { + delete deferreds[promise.$$timeoutId]; + } + + if (!skipApply) $rootScope.$apply(); + }, delay); + + promise.$$timeoutId = timeoutId; + deferreds[timeoutId] = deferred; + + return promise; + } + + + /** + * @ngdoc method + * @name $timeout#cancel + * + * @description + * Cancels a task associated with the `promise`. As a result of this, the promise will be + * resolved with a rejection. + * + * @param {Promise=} promise Promise returned by the `$timeout` function. + * @returns {boolean} Returns `true` if the task hasn't executed yet and was successfully + * canceled. + */ + timeout.cancel = function(promise) { + if (promise && promise.$$timeoutId in deferreds) { + deferreds[promise.$$timeoutId].reject('canceled'); + delete deferreds[promise.$$timeoutId]; + return $browser.defer.cancel(promise.$$timeoutId); + } + return false; + }; + + return timeout; + }]; +} + +// NOTE: The usage of window and document instead of $window and $document here is +// deliberate. This service depends on the specific behavior of anchor nodes created by the +// browser (resolving and parsing URLs) that is unlikely to be provided by mock objects and +// cause us to break tests. In addition, when the browser resolves a URL for XHR, it +// doesn't know about mocked locations and resolves URLs to the real document - which is +// exactly the behavior needed here. There is little value is mocking these out for this +// service. +var urlParsingNode = document.createElement("a"); +var originUrl = urlResolve(window.location.href); + + +/** + * + * Implementation Notes for non-IE browsers + * ---------------------------------------- + * Assigning a URL to the href property of an anchor DOM node, even one attached to the DOM, + * results both in the normalizing and parsing of the URL. Normalizing means that a relative + * URL will be resolved into an absolute URL in the context of the application document. + * Parsing means that the anchor node's host, hostname, protocol, port, pathname and related + * properties are all populated to reflect the normalized URL. This approach has wide + * compatibility - Safari 1+, Mozilla 1+, Opera 7+,e etc. See + * http://www.aptana.com/reference/html/api/HTMLAnchorElement.html + * + * Implementation Notes for IE + * --------------------------- + * IE <= 10 normalizes the URL when assigned to the anchor node similar to the other + * browsers. However, the parsed components will not be set if the URL assigned did not specify + * them. (e.g. if you assign a.href = "foo", then a.protocol, a.host, etc. will be empty.) We + * work around that by performing the parsing in a 2nd step by taking a previously normalized + * URL (e.g. by assigning to a.href) and assigning it a.href again. This correctly populates the + * properties such as protocol, hostname, port, etc. + * + * References: + * http://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement + * http://www.aptana.com/reference/html/api/HTMLAnchorElement.html + * http://url.spec.whatwg.org/#urlutils + * https://github.com/angular/angular.js/pull/2902 + * http://james.padolsey.com/javascript/parsing-urls-with-the-dom/ + * + * @kind function + * @param {string} url The URL to be parsed. + * @description Normalizes and parses a URL. + * @returns {object} Returns the normalized URL as a dictionary. + * + * | member name | Description | + * |---------------|----------------| + * | href | A normalized version of the provided URL if it was not an absolute URL | + * | protocol | The protocol including the trailing colon | + * | host | The host and port (if the port is non-default) of the normalizedUrl | + * | search | The search params, minus the question mark | + * | hash | The hash string, minus the hash symbol + * | hostname | The hostname + * | port | The port, without ":" + * | pathname | The pathname, beginning with "/" + * + */ +function urlResolve(url) { + var href = url; + + if (msie) { + // Normalize before parse. Refer Implementation Notes on why this is + // done in two steps on IE. + urlParsingNode.setAttribute("href", href); + href = urlParsingNode.href; + } + + urlParsingNode.setAttribute('href', href); + + // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils + return { + href: urlParsingNode.href, + protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', + host: urlParsingNode.host, + search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', + hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', + hostname: urlParsingNode.hostname, + port: urlParsingNode.port, + pathname: (urlParsingNode.pathname.charAt(0) === '/') + ? urlParsingNode.pathname + : '/' + urlParsingNode.pathname + }; +} + +/** + * Parse a request URL and determine whether this is a same-origin request as the application document. + * + * @param {string|object} requestUrl The url of the request as a string that will be resolved + * or a parsed URL object. + * @returns {boolean} Whether the request is for the same origin as the application document. + */ +function urlIsSameOrigin(requestUrl) { + var parsed = (isString(requestUrl)) ? urlResolve(requestUrl) : requestUrl; + return (parsed.protocol === originUrl.protocol && + parsed.host === originUrl.host); +} + +/** + * @ngdoc service + * @name $window + * + * @description + * A reference to the browser's `window` object. While `window` + * is globally available in JavaScript, it causes testability problems, because + * it is a global variable. In angular we always refer to it through the + * `$window` service, so it may be overridden, removed or mocked for testing. + * + * Expressions, like the one defined for the `ngClick` directive in the example + * below, are evaluated with respect to the current scope. Therefore, there is + * no risk of inadvertently coding in a dependency on a global value in such an + * expression. + * + * @example + + + +
+ + +
+
+ + it('should display the greeting in the input box', function() { + element(by.model('greeting')).sendKeys('Hello, E2E Tests'); + // If we click the button it will block the test runner + // element(':button').click(); + }); + +
+ */ +function $WindowProvider() { + this.$get = valueFn(window); +} + +/** + * @name $$cookieReader + * @requires $document + * + * @description + * This is a private service for reading cookies used by $http and ngCookies + * + * @return {Object} a key/value map of the current cookies + */ +function $$CookieReader($document) { + var rawDocument = $document[0] || {}; + var lastCookies = {}; + var lastCookieString = ''; + + function safeDecodeURIComponent(str) { + try { + return decodeURIComponent(str); + } catch (e) { + return str; + } + } + + return function() { + var cookieArray, cookie, i, index, name; + var currentCookieString = rawDocument.cookie || ''; + + if (currentCookieString !== lastCookieString) { + lastCookieString = currentCookieString; + cookieArray = lastCookieString.split('; '); + lastCookies = {}; + + for (i = 0; i < cookieArray.length; i++) { + cookie = cookieArray[i]; + index = cookie.indexOf('='); + if (index > 0) { //ignore nameless cookies + name = safeDecodeURIComponent(cookie.substring(0, index)); + // the first value that is seen for a cookie is the most + // specific one. values for the same cookie name that + // follow are for less specific paths. + if (isUndefined(lastCookies[name])) { + lastCookies[name] = safeDecodeURIComponent(cookie.substring(index + 1)); + } + } + } + } + return lastCookies; + }; +} + +$$CookieReader.$inject = ['$document']; + +function $$CookieReaderProvider() { + this.$get = $$CookieReader; +} + +/* global currencyFilter: true, + dateFilter: true, + filterFilter: true, + jsonFilter: true, + limitToFilter: true, + lowercaseFilter: true, + numberFilter: true, + orderByFilter: true, + uppercaseFilter: true, + */ + +/** + * @ngdoc provider + * @name $filterProvider + * @description + * + * Filters are just functions which transform input to an output. However filters need to be + * Dependency Injected. To achieve this a filter definition consists of a factory function which is + * annotated with dependencies and is responsible for creating a filter function. + * + *
+ * **Note:** Filter names must be valid angular {@link expression} identifiers, such as `uppercase` or `orderBy`. + * Names with special characters, such as hyphens and dots, are not allowed. If you wish to namespace + * your filters, then you can use capitalization (`myappSubsectionFilterx`) or underscores + * (`myapp_subsection_filterx`). + *
+ * + * ```js + * // Filter registration + * function MyModule($provide, $filterProvider) { + * // create a service to demonstrate injection (not always needed) + * $provide.value('greet', function(name){ + * return 'Hello ' + name + '!'; + * }); + * + * // register a filter factory which uses the + * // greet service to demonstrate DI. + * $filterProvider.register('greet', function(greet){ + * // return the filter function which uses the greet service + * // to generate salutation + * return function(text) { + * // filters need to be forgiving so check input validity + * return text && greet(text) || text; + * }; + * }); + * } + * ``` + * + * The filter function is registered with the `$injector` under the filter name suffix with + * `Filter`. + * + * ```js + * it('should be the same instance', inject( + * function($filterProvider) { + * $filterProvider.register('reverse', function(){ + * return ...; + * }); + * }, + * function($filter, reverseFilter) { + * expect($filter('reverse')).toBe(reverseFilter); + * }); + * ``` + * + * + * For more information about how angular filters work, and how to create your own filters, see + * {@link guide/filter Filters} in the Angular Developer Guide. + */ + +/** + * @ngdoc service + * @name $filter + * @kind function + * @description + * Filters are used for formatting data displayed to the user. + * + * The general syntax in templates is as follows: + * + * {{ expression [| filter_name[:parameter_value] ... ] }} + * + * @param {String} name Name of the filter function to retrieve + * @return {Function} the filter function + * @example + + +
+

{{ originalText }}

+

{{ filteredText }}

+
+
+ + + angular.module('filterExample', []) + .controller('MainCtrl', function($scope, $filter) { + $scope.originalText = 'hello'; + $scope.filteredText = $filter('uppercase')($scope.originalText); + }); + +
+ */ +$FilterProvider.$inject = ['$provide']; +function $FilterProvider($provide) { + var suffix = 'Filter'; + + /** + * @ngdoc method + * @name $filterProvider#register + * @param {string|Object} name Name of the filter function, or an object map of filters where + * the keys are the filter names and the values are the filter factories. + * + *
+ * **Note:** Filter names must be valid angular {@link expression} identifiers, such as `uppercase` or `orderBy`. + * Names with special characters, such as hyphens and dots, are not allowed. If you wish to namespace + * your filters, then you can use capitalization (`myappSubsectionFilterx`) or underscores + * (`myapp_subsection_filterx`). + *
+ * @param {Function} factory If the first argument was a string, a factory function for the filter to be registered. + * @returns {Object} Registered filter instance, or if a map of filters was provided then a map + * of the registered filter instances. + */ + function register(name, factory) { + if (isObject(name)) { + var filters = {}; + forEach(name, function(filter, key) { + filters[key] = register(key, filter); + }); + return filters; + } else { + return $provide.factory(name + suffix, factory); + } + } + this.register = register; + + this.$get = ['$injector', function($injector) { + return function(name) { + return $injector.get(name + suffix); + }; + }]; + + //////////////////////////////////////// + + /* global + currencyFilter: false, + dateFilter: false, + filterFilter: false, + jsonFilter: false, + limitToFilter: false, + lowercaseFilter: false, + numberFilter: false, + orderByFilter: false, + uppercaseFilter: false, + */ + + register('currency', currencyFilter); + register('date', dateFilter); + register('filter', filterFilter); + register('json', jsonFilter); + register('limitTo', limitToFilter); + register('lowercase', lowercaseFilter); + register('number', numberFilter); + register('orderBy', orderByFilter); + register('uppercase', uppercaseFilter); +} + +/** + * @ngdoc filter + * @name filter + * @kind function + * + * @description + * Selects a subset of items from `array` and returns it as a new array. + * + * @param {Array} array The source array. + * @param {string|Object|function()} expression The predicate to be used for selecting items from + * `array`. + * + * Can be one of: + * + * - `string`: The string is used for matching against the contents of the `array`. All strings or + * objects with string properties in `array` that match this string will be returned. This also + * applies to nested object properties. + * The predicate can be negated by prefixing the string with `!`. + * + * - `Object`: A pattern object can be used to filter specific properties on objects contained + * by `array`. For example `{name:"M", phone:"1"}` predicate will return an array of items + * which have property `name` containing "M" and property `phone` containing "1". A special + * property name `$` can be used (as in `{$:"text"}`) to accept a match against any + * property of the object or its nested object properties. That's equivalent to the simple + * substring match with a `string` as described above. The predicate can be negated by prefixing + * the string with `!`. + * For example `{name: "!M"}` predicate will return an array of items which have property `name` + * not containing "M". + * + * Note that a named property will match properties on the same level only, while the special + * `$` property will match properties on the same level or deeper. E.g. an array item like + * `{name: {first: 'John', last: 'Doe'}}` will **not** be matched by `{name: 'John'}`, but + * **will** be matched by `{$: 'John'}`. + * + * - `function(value, index, array)`: A predicate function can be used to write arbitrary filters. + * The function is called for each element of the array, with the element, its index, and + * the entire array itself as arguments. + * + * The final result is an array of those elements that the predicate returned true for. + * + * @param {function(actual, expected)|true|undefined} comparator Comparator which is used in + * determining if the expected value (from the filter expression) and actual value (from + * the object in the array) should be considered a match. + * + * Can be one of: + * + * - `function(actual, expected)`: + * The function will be given the object value and the predicate value to compare and + * should return true if both values should be considered equal. + * + * - `true`: A shorthand for `function(actual, expected) { return angular.equals(actual, expected)}`. + * This is essentially strict comparison of expected and actual. + * + * - `false|undefined`: A short hand for a function which will look for a substring match in case + * insensitive way. + * + * Primitive values are converted to strings. Objects are not compared against primitives, + * unless they have a custom `toString` method (e.g. `Date` objects). + * + * @example + + +
+ + + + + + + + +
NamePhone
{{friend.name}}{{friend.phone}}
+
+
+
+
+
+ + + + + + +
NamePhone
{{friendObj.name}}{{friendObj.phone}}
+
+ + var expectFriendNames = function(expectedNames, key) { + element.all(by.repeater(key + ' in friends').column(key + '.name')).then(function(arr) { + arr.forEach(function(wd, i) { + expect(wd.getText()).toMatch(expectedNames[i]); + }); + }); + }; + + it('should search across all fields when filtering with a string', function() { + var searchText = element(by.model('searchText')); + searchText.clear(); + searchText.sendKeys('m'); + expectFriendNames(['Mary', 'Mike', 'Adam'], 'friend'); + + searchText.clear(); + searchText.sendKeys('76'); + expectFriendNames(['John', 'Julie'], 'friend'); + }); + + it('should search in specific fields when filtering with a predicate object', function() { + var searchAny = element(by.model('search.$')); + searchAny.clear(); + searchAny.sendKeys('i'); + expectFriendNames(['Mary', 'Mike', 'Julie', 'Juliette'], 'friendObj'); + }); + it('should use a equal comparison when comparator is true', function() { + var searchName = element(by.model('search.name')); + var strict = element(by.model('strict')); + searchName.clear(); + searchName.sendKeys('Julie'); + strict.click(); + expectFriendNames(['Julie'], 'friendObj'); + }); + +
+ */ +function filterFilter() { + return function(array, expression, comparator) { + if (!isArrayLike(array)) { + if (array == null) { + return array; + } else { + throw minErr('filter')('notarray', 'Expected array but received: {0}', array); + } + } + + var expressionType = getTypeForFilter(expression); + var predicateFn; + var matchAgainstAnyProp; + + switch (expressionType) { + case 'function': + predicateFn = expression; + break; + case 'boolean': + case 'null': + case 'number': + case 'string': + matchAgainstAnyProp = true; + //jshint -W086 + case 'object': + //jshint +W086 + predicateFn = createPredicateFn(expression, comparator, matchAgainstAnyProp); + break; + default: + return array; + } + + return Array.prototype.filter.call(array, predicateFn); + }; +} + +// Helper functions for `filterFilter` +function createPredicateFn(expression, comparator, matchAgainstAnyProp) { + var shouldMatchPrimitives = isObject(expression) && ('$' in expression); + var predicateFn; + + if (comparator === true) { + comparator = equals; + } else if (!isFunction(comparator)) { + comparator = function(actual, expected) { + if (isUndefined(actual)) { + // No substring matching against `undefined` + return false; + } + if ((actual === null) || (expected === null)) { + // No substring matching against `null`; only match against `null` + return actual === expected; + } + if (isObject(expected) || (isObject(actual) && !hasCustomToString(actual))) { + // Should not compare primitives against objects, unless they have custom `toString` method + return false; + } + + actual = lowercase('' + actual); + expected = lowercase('' + expected); + return actual.indexOf(expected) !== -1; + }; + } + + predicateFn = function(item) { + if (shouldMatchPrimitives && !isObject(item)) { + return deepCompare(item, expression.$, comparator, false); + } + return deepCompare(item, expression, comparator, matchAgainstAnyProp); + }; + + return predicateFn; +} + +function deepCompare(actual, expected, comparator, matchAgainstAnyProp, dontMatchWholeObject) { + var actualType = getTypeForFilter(actual); + var expectedType = getTypeForFilter(expected); + + if ((expectedType === 'string') && (expected.charAt(0) === '!')) { + return !deepCompare(actual, expected.substring(1), comparator, matchAgainstAnyProp); + } else if (isArray(actual)) { + // In case `actual` is an array, consider it a match + // if ANY of it's items matches `expected` + return actual.some(function(item) { + return deepCompare(item, expected, comparator, matchAgainstAnyProp); + }); + } + + switch (actualType) { + case 'object': + var key; + if (matchAgainstAnyProp) { + for (key in actual) { + if ((key.charAt(0) !== '$') && deepCompare(actual[key], expected, comparator, true)) { + return true; + } + } + return dontMatchWholeObject ? false : deepCompare(actual, expected, comparator, false); + } else if (expectedType === 'object') { + for (key in expected) { + var expectedVal = expected[key]; + if (isFunction(expectedVal) || isUndefined(expectedVal)) { + continue; + } + + var matchAnyProperty = key === '$'; + var actualVal = matchAnyProperty ? actual : actual[key]; + if (!deepCompare(actualVal, expectedVal, comparator, matchAnyProperty, matchAnyProperty)) { + return false; + } + } + return true; + } else { + return comparator(actual, expected); + } + break; + case 'function': + return false; + default: + return comparator(actual, expected); + } +} + +// Used for easily differentiating between `null` and actual `object` +function getTypeForFilter(val) { + return (val === null) ? 'null' : typeof val; +} + +var MAX_DIGITS = 22; +var DECIMAL_SEP = '.'; +var ZERO_CHAR = '0'; + +/** + * @ngdoc filter + * @name currency + * @kind function + * + * @description + * Formats a number as a currency (ie $1,234.56). When no currency symbol is provided, default + * symbol for current locale is used. + * + * @param {number} amount Input to filter. + * @param {string=} symbol Currency symbol or identifier to be displayed. + * @param {number=} fractionSize Number of decimal places to round the amount to, defaults to default max fraction size for current locale + * @returns {string} Formatted number. + * + * + * @example + + + +
+
+ default currency symbol ($): {{amount | currency}}
+ custom currency identifier (USD$): {{amount | currency:"USD$"}} + no fractions (0): {{amount | currency:"USD$":0}} +
+
+ + it('should init with 1234.56', function() { + expect(element(by.id('currency-default')).getText()).toBe('$1,234.56'); + expect(element(by.id('currency-custom')).getText()).toBe('USD$1,234.56'); + expect(element(by.id('currency-no-fractions')).getText()).toBe('USD$1,235'); + }); + it('should update', function() { + if (browser.params.browser == 'safari') { + // Safari does not understand the minus key. See + // https://github.com/angular/protractor/issues/481 + return; + } + element(by.model('amount')).clear(); + element(by.model('amount')).sendKeys('-1234'); + expect(element(by.id('currency-default')).getText()).toBe('-$1,234.00'); + expect(element(by.id('currency-custom')).getText()).toBe('-USD$1,234.00'); + expect(element(by.id('currency-no-fractions')).getText()).toBe('-USD$1,234'); + }); + +
+ */ +currencyFilter.$inject = ['$locale']; +function currencyFilter($locale) { + var formats = $locale.NUMBER_FORMATS; + return function(amount, currencySymbol, fractionSize) { + if (isUndefined(currencySymbol)) { + currencySymbol = formats.CURRENCY_SYM; + } + + if (isUndefined(fractionSize)) { + fractionSize = formats.PATTERNS[1].maxFrac; + } + + // if null or undefined pass it through + return (amount == null) + ? amount + : formatNumber(amount, formats.PATTERNS[1], formats.GROUP_SEP, formats.DECIMAL_SEP, fractionSize). + replace(/\u00A4/g, currencySymbol); + }; +} + +/** + * @ngdoc filter + * @name number + * @kind function + * + * @description + * Formats a number as text. + * + * If the input is null or undefined, it will just be returned. + * If the input is infinite (Infinity or -Infinity), the Infinity symbol '∞' or '-∞' is returned, respectively. + * If the input is not a number an empty string is returned. + * + * + * @param {number|string} number Number to format. + * @param {(number|string)=} fractionSize Number of decimal places to round the number to. + * If this is not provided then the fraction size is computed from the current locale's number + * formatting pattern. In the case of the default locale, it will be 3. + * @returns {string} Number rounded to fractionSize and places a “,” after each third digit. + * + * @example + + + +
+
+ Default formatting: {{val | number}}
+ No fractions: {{val | number:0}}
+ Negative number: {{-val | number:4}} +
+
+ + it('should format numbers', function() { + expect(element(by.id('number-default')).getText()).toBe('1,234.568'); + expect(element(by.binding('val | number:0')).getText()).toBe('1,235'); + expect(element(by.binding('-val | number:4')).getText()).toBe('-1,234.5679'); + }); + + it('should update', function() { + element(by.model('val')).clear(); + element(by.model('val')).sendKeys('3374.333'); + expect(element(by.id('number-default')).getText()).toBe('3,374.333'); + expect(element(by.binding('val | number:0')).getText()).toBe('3,374'); + expect(element(by.binding('-val | number:4')).getText()).toBe('-3,374.3330'); + }); + +
+ */ +numberFilter.$inject = ['$locale']; +function numberFilter($locale) { + var formats = $locale.NUMBER_FORMATS; + return function(number, fractionSize) { + + // if null or undefined pass it through + return (number == null) + ? number + : formatNumber(number, formats.PATTERNS[0], formats.GROUP_SEP, formats.DECIMAL_SEP, + fractionSize); + }; +} + +/** + * Parse a number (as a string) into three components that can be used + * for formatting the number. + * + * (Significant bits of this parse algorithm came from https://github.com/MikeMcl/big.js/) + * + * @param {string} numStr The number to parse + * @return {object} An object describing this number, containing the following keys: + * - d : an array of digits containing leading zeros as necessary + * - i : the number of the digits in `d` that are to the left of the decimal point + * - e : the exponent for numbers that would need more than `MAX_DIGITS` digits in `d` + * + */ +function parse(numStr) { + var exponent = 0, digits, numberOfIntegerDigits; + var i, j, zeros; + + // Decimal point? + if ((numberOfIntegerDigits = numStr.indexOf(DECIMAL_SEP)) > -1) { + numStr = numStr.replace(DECIMAL_SEP, ''); + } + + // Exponential form? + if ((i = numStr.search(/e/i)) > 0) { + // Work out the exponent. + if (numberOfIntegerDigits < 0) numberOfIntegerDigits = i; + numberOfIntegerDigits += +numStr.slice(i + 1); + numStr = numStr.substring(0, i); + } else if (numberOfIntegerDigits < 0) { + // There was no decimal point or exponent so it is an integer. + numberOfIntegerDigits = numStr.length; + } + + // Count the number of leading zeros. + for (i = 0; numStr.charAt(i) == ZERO_CHAR; i++) {/* jshint noempty: false */} + + if (i == (zeros = numStr.length)) { + // The digits are all zero. + digits = [0]; + numberOfIntegerDigits = 1; + } else { + // Count the number of trailing zeros + zeros--; + while (numStr.charAt(zeros) == ZERO_CHAR) zeros--; + + // Trailing zeros are insignificant so ignore them + numberOfIntegerDigits -= i; + digits = []; + // Convert string to array of digits without leading/trailing zeros. + for (j = 0; i <= zeros; i++, j++) { + digits[j] = +numStr.charAt(i); + } + } + + // If the number overflows the maximum allowed digits then use an exponent. + if (numberOfIntegerDigits > MAX_DIGITS) { + digits = digits.splice(0, MAX_DIGITS - 1); + exponent = numberOfIntegerDigits - 1; + numberOfIntegerDigits = 1; + } + + return { d: digits, e: exponent, i: numberOfIntegerDigits }; +} + +/** + * Round the parsed number to the specified number of decimal places + * This function changed the parsedNumber in-place + */ +function roundNumber(parsedNumber, fractionSize, minFrac, maxFrac) { + var digits = parsedNumber.d; + var fractionLen = digits.length - parsedNumber.i; + + // determine fractionSize if it is not specified; `+fractionSize` converts it to a number + fractionSize = (isUndefined(fractionSize)) ? Math.min(Math.max(minFrac, fractionLen), maxFrac) : +fractionSize; + + // The index of the digit to where rounding is to occur + var roundAt = fractionSize + parsedNumber.i; + var digit = digits[roundAt]; + + if (roundAt > 0) { + digits.splice(roundAt); + } else { + // We rounded to zero so reset the parsedNumber + parsedNumber.i = 1; + digits.length = roundAt = fractionSize + 1; + for (var i=0; i < roundAt; i++) digits[i] = 0; + } + + if (digit >= 5) digits[roundAt - 1]++; + + // Pad out with zeros to get the required fraction length + for (; fractionLen < fractionSize; fractionLen++) digits.push(0); + + + // Do any carrying, e.g. a digit was rounded up to 10 + var carry = digits.reduceRight(function(carry, d, i, digits) { + d = d + carry; + digits[i] = d % 10; + return Math.floor(d / 10); + }, 0); + if (carry) { + digits.unshift(carry); + parsedNumber.i++; + } +} + +/** + * Format a number into a string + * @param {number} number The number to format + * @param {{ + * minFrac, // the minimum number of digits required in the fraction part of the number + * maxFrac, // the maximum number of digits required in the fraction part of the number + * gSize, // number of digits in each group of separated digits + * lgSize, // number of digits in the last group of digits before the decimal separator + * negPre, // the string to go in front of a negative number (e.g. `-` or `(`)) + * posPre, // the string to go in front of a positive number + * negSuf, // the string to go after a negative number (e.g. `)`) + * posSuf // the string to go after a positive number + * }} pattern + * @param {string} groupSep The string to separate groups of number (e.g. `,`) + * @param {string} decimalSep The string to act as the decimal separator (e.g. `.`) + * @param {[type]} fractionSize The size of the fractional part of the number + * @return {string} The number formatted as a string + */ +function formatNumber(number, pattern, groupSep, decimalSep, fractionSize) { + + if (!(isString(number) || isNumber(number)) || isNaN(number)) return ''; + + var isInfinity = !isFinite(number); + var isZero = false; + var numStr = Math.abs(number) + '', + formattedText = '', + parsedNumber; + + if (isInfinity) { + formattedText = '\u221e'; + } else { + parsedNumber = parse(numStr); + + roundNumber(parsedNumber, fractionSize, pattern.minFrac, pattern.maxFrac); + + var digits = parsedNumber.d; + var integerLen = parsedNumber.i; + var exponent = parsedNumber.e; + var decimals = []; + isZero = digits.reduce(function(isZero, d) { return isZero && !d; }, true); + + // pad zeros for small numbers + while (integerLen < 0) { + digits.unshift(0); + integerLen++; + } + + // extract decimals digits + if (integerLen > 0) { + decimals = digits.splice(integerLen); + } else { + decimals = digits; + digits = [0]; + } + + // format the integer digits with grouping separators + var groups = []; + if (digits.length > pattern.lgSize) { + groups.unshift(digits.splice(-pattern.lgSize).join('')); + } + while (digits.length > pattern.gSize) { + groups.unshift(digits.splice(-pattern.gSize).join('')); + } + if (digits.length) { + groups.unshift(digits.join('')); + } + formattedText = groups.join(groupSep); + + // append the decimal digits + if (decimals.length) { + formattedText += decimalSep + decimals.join(''); + } + + if (exponent) { + formattedText += 'e+' + exponent; + } + } + if (number < 0 && !isZero) { + return pattern.negPre + formattedText + pattern.negSuf; + } else { + return pattern.posPre + formattedText + pattern.posSuf; + } +} + +function padNumber(num, digits, trim) { + var neg = ''; + if (num < 0) { + neg = '-'; + num = -num; + } + num = '' + num; + while (num.length < digits) num = ZERO_CHAR + num; + if (trim) { + num = num.substr(num.length - digits); + } + return neg + num; +} + + +function dateGetter(name, size, offset, trim) { + offset = offset || 0; + return function(date) { + var value = date['get' + name](); + if (offset > 0 || value > -offset) { + value += offset; + } + if (value === 0 && offset == -12) value = 12; + return padNumber(value, size, trim); + }; +} + +function dateStrGetter(name, shortForm) { + return function(date, formats) { + var value = date['get' + name](); + var get = uppercase(shortForm ? ('SHORT' + name) : name); + + return formats[get][value]; + }; +} + +function timeZoneGetter(date, formats, offset) { + var zone = -1 * offset; + var paddedZone = (zone >= 0) ? "+" : ""; + + paddedZone += padNumber(Math[zone > 0 ? 'floor' : 'ceil'](zone / 60), 2) + + padNumber(Math.abs(zone % 60), 2); + + return paddedZone; +} + +function getFirstThursdayOfYear(year) { + // 0 = index of January + var dayOfWeekOnFirst = (new Date(year, 0, 1)).getDay(); + // 4 = index of Thursday (+1 to account for 1st = 5) + // 11 = index of *next* Thursday (+1 account for 1st = 12) + return new Date(year, 0, ((dayOfWeekOnFirst <= 4) ? 5 : 12) - dayOfWeekOnFirst); +} + +function getThursdayThisWeek(datetime) { + return new Date(datetime.getFullYear(), datetime.getMonth(), + // 4 = index of Thursday + datetime.getDate() + (4 - datetime.getDay())); +} + +function weekGetter(size) { + return function(date) { + var firstThurs = getFirstThursdayOfYear(date.getFullYear()), + thisThurs = getThursdayThisWeek(date); + + var diff = +thisThurs - +firstThurs, + result = 1 + Math.round(diff / 6.048e8); // 6.048e8 ms per week + + return padNumber(result, size); + }; +} + +function ampmGetter(date, formats) { + return date.getHours() < 12 ? formats.AMPMS[0] : formats.AMPMS[1]; +} + +function eraGetter(date, formats) { + return date.getFullYear() <= 0 ? formats.ERAS[0] : formats.ERAS[1]; +} + +function longEraGetter(date, formats) { + return date.getFullYear() <= 0 ? formats.ERANAMES[0] : formats.ERANAMES[1]; +} + +var DATE_FORMATS = { + yyyy: dateGetter('FullYear', 4), + yy: dateGetter('FullYear', 2, 0, true), + y: dateGetter('FullYear', 1), + MMMM: dateStrGetter('Month'), + MMM: dateStrGetter('Month', true), + MM: dateGetter('Month', 2, 1), + M: dateGetter('Month', 1, 1), + dd: dateGetter('Date', 2), + d: dateGetter('Date', 1), + HH: dateGetter('Hours', 2), + H: dateGetter('Hours', 1), + hh: dateGetter('Hours', 2, -12), + h: dateGetter('Hours', 1, -12), + mm: dateGetter('Minutes', 2), + m: dateGetter('Minutes', 1), + ss: dateGetter('Seconds', 2), + s: dateGetter('Seconds', 1), + // while ISO 8601 requires fractions to be prefixed with `.` or `,` + // we can be just safely rely on using `sss` since we currently don't support single or two digit fractions + sss: dateGetter('Milliseconds', 3), + EEEE: dateStrGetter('Day'), + EEE: dateStrGetter('Day', true), + a: ampmGetter, + Z: timeZoneGetter, + ww: weekGetter(2), + w: weekGetter(1), + G: eraGetter, + GG: eraGetter, + GGG: eraGetter, + GGGG: longEraGetter +}; + +var DATE_FORMATS_SPLIT = /((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/, + NUMBER_STRING = /^\-?\d+$/; + +/** + * @ngdoc filter + * @name date + * @kind function + * + * @description + * Formats `date` to a string based on the requested `format`. + * + * `format` string can be composed of the following elements: + * + * * `'yyyy'`: 4 digit representation of year (e.g. AD 1 => 0001, AD 2010 => 2010) + * * `'yy'`: 2 digit representation of year, padded (00-99). (e.g. AD 2001 => 01, AD 2010 => 10) + * * `'y'`: 1 digit representation of year, e.g. (AD 1 => 1, AD 199 => 199) + * * `'MMMM'`: Month in year (January-December) + * * `'MMM'`: Month in year (Jan-Dec) + * * `'MM'`: Month in year, padded (01-12) + * * `'M'`: Month in year (1-12) + * * `'dd'`: Day in month, padded (01-31) + * * `'d'`: Day in month (1-31) + * * `'EEEE'`: Day in Week,(Sunday-Saturday) + * * `'EEE'`: Day in Week, (Sun-Sat) + * * `'HH'`: Hour in day, padded (00-23) + * * `'H'`: Hour in day (0-23) + * * `'hh'`: Hour in AM/PM, padded (01-12) + * * `'h'`: Hour in AM/PM, (1-12) + * * `'mm'`: Minute in hour, padded (00-59) + * * `'m'`: Minute in hour (0-59) + * * `'ss'`: Second in minute, padded (00-59) + * * `'s'`: Second in minute (0-59) + * * `'sss'`: Millisecond in second, padded (000-999) + * * `'a'`: AM/PM marker + * * `'Z'`: 4 digit (+sign) representation of the timezone offset (-1200-+1200) + * * `'ww'`: Week of year, padded (00-53). Week 01 is the week with the first Thursday of the year + * * `'w'`: Week of year (0-53). Week 1 is the week with the first Thursday of the year + * * `'G'`, `'GG'`, `'GGG'`: The abbreviated form of the era string (e.g. 'AD') + * * `'GGGG'`: The long form of the era string (e.g. 'Anno Domini') + * + * `format` string can also be one of the following predefined + * {@link guide/i18n localizable formats}: + * + * * `'medium'`: equivalent to `'MMM d, y h:mm:ss a'` for en_US locale + * (e.g. Sep 3, 2010 12:05:08 PM) + * * `'short'`: equivalent to `'M/d/yy h:mm a'` for en_US locale (e.g. 9/3/10 12:05 PM) + * * `'fullDate'`: equivalent to `'EEEE, MMMM d, y'` for en_US locale + * (e.g. Friday, September 3, 2010) + * * `'longDate'`: equivalent to `'MMMM d, y'` for en_US locale (e.g. September 3, 2010) + * * `'mediumDate'`: equivalent to `'MMM d, y'` for en_US locale (e.g. Sep 3, 2010) + * * `'shortDate'`: equivalent to `'M/d/yy'` for en_US locale (e.g. 9/3/10) + * * `'mediumTime'`: equivalent to `'h:mm:ss a'` for en_US locale (e.g. 12:05:08 PM) + * * `'shortTime'`: equivalent to `'h:mm a'` for en_US locale (e.g. 12:05 PM) + * + * `format` string can contain literal values. These need to be escaped by surrounding with single quotes (e.g. + * `"h 'in the morning'"`). In order to output a single quote, escape it - i.e., two single quotes in a sequence + * (e.g. `"h 'o''clock'"`). + * + * @param {(Date|number|string)} date Date to format either as Date object, milliseconds (string or + * number) or various ISO 8601 datetime string formats (e.g. yyyy-MM-ddTHH:mm:ss.sssZ and its + * shorter versions like yyyy-MM-ddTHH:mmZ, yyyy-MM-dd or yyyyMMddTHHmmssZ). If no timezone is + * specified in the string input, the time is considered to be in the local timezone. + * @param {string=} format Formatting rules (see Description). If not specified, + * `mediumDate` is used. + * @param {string=} timezone Timezone to be used for formatting. It understands UTC/GMT and the + * continental US time zone abbreviations, but for general use, use a time zone offset, for + * example, `'+0430'` (4 hours, 30 minutes east of the Greenwich meridian) + * If not specified, the timezone of the browser will be used. + * @returns {string} Formatted string or the input if input is not recognized as date/millis. + * + * @example + + + {{1288323623006 | date:'medium'}}: + {{1288323623006 | date:'medium'}}
+ {{1288323623006 | date:'yyyy-MM-dd HH:mm:ss Z'}}: + {{1288323623006 | date:'yyyy-MM-dd HH:mm:ss Z'}}
+ {{1288323623006 | date:'MM/dd/yyyy @ h:mma'}}: + {{'1288323623006' | date:'MM/dd/yyyy @ h:mma'}}
+ {{1288323623006 | date:"MM/dd/yyyy 'at' h:mma"}}: + {{'1288323623006' | date:"MM/dd/yyyy 'at' h:mma"}}
+
+ + it('should format date', function() { + expect(element(by.binding("1288323623006 | date:'medium'")).getText()). + toMatch(/Oct 2\d, 2010 \d{1,2}:\d{2}:\d{2} (AM|PM)/); + expect(element(by.binding("1288323623006 | date:'yyyy-MM-dd HH:mm:ss Z'")).getText()). + toMatch(/2010\-10\-2\d \d{2}:\d{2}:\d{2} (\-|\+)?\d{4}/); + expect(element(by.binding("'1288323623006' | date:'MM/dd/yyyy @ h:mma'")).getText()). + toMatch(/10\/2\d\/2010 @ \d{1,2}:\d{2}(AM|PM)/); + expect(element(by.binding("'1288323623006' | date:\"MM/dd/yyyy 'at' h:mma\"")).getText()). + toMatch(/10\/2\d\/2010 at \d{1,2}:\d{2}(AM|PM)/); + }); + +
+ */ +dateFilter.$inject = ['$locale']; +function dateFilter($locale) { + + + var R_ISO8601_STR = /^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/; + // 1 2 3 4 5 6 7 8 9 10 11 + function jsonStringToDate(string) { + var match; + if (match = string.match(R_ISO8601_STR)) { + var date = new Date(0), + tzHour = 0, + tzMin = 0, + dateSetter = match[8] ? date.setUTCFullYear : date.setFullYear, + timeSetter = match[8] ? date.setUTCHours : date.setHours; + + if (match[9]) { + tzHour = toInt(match[9] + match[10]); + tzMin = toInt(match[9] + match[11]); + } + dateSetter.call(date, toInt(match[1]), toInt(match[2]) - 1, toInt(match[3])); + var h = toInt(match[4] || 0) - tzHour; + var m = toInt(match[5] || 0) - tzMin; + var s = toInt(match[6] || 0); + var ms = Math.round(parseFloat('0.' + (match[7] || 0)) * 1000); + timeSetter.call(date, h, m, s, ms); + return date; + } + return string; + } + + + return function(date, format, timezone) { + var text = '', + parts = [], + fn, match; + + format = format || 'mediumDate'; + format = $locale.DATETIME_FORMATS[format] || format; + if (isString(date)) { + date = NUMBER_STRING.test(date) ? toInt(date) : jsonStringToDate(date); + } + + if (isNumber(date)) { + date = new Date(date); + } + + if (!isDate(date) || !isFinite(date.getTime())) { + return date; + } + + while (format) { + match = DATE_FORMATS_SPLIT.exec(format); + if (match) { + parts = concat(parts, match, 1); + format = parts.pop(); + } else { + parts.push(format); + format = null; + } + } + + var dateTimezoneOffset = date.getTimezoneOffset(); + if (timezone) { + dateTimezoneOffset = timezoneToOffset(timezone, dateTimezoneOffset); + date = convertTimezoneToLocal(date, timezone, true); + } + forEach(parts, function(value) { + fn = DATE_FORMATS[value]; + text += fn ? fn(date, $locale.DATETIME_FORMATS, dateTimezoneOffset) + : value === "''" ? "'" : value.replace(/(^'|'$)/g, '').replace(/''/g, "'"); + }); + + return text; + }; +} + + +/** + * @ngdoc filter + * @name json + * @kind function + * + * @description + * Allows you to convert a JavaScript object into JSON string. + * + * This filter is mostly useful for debugging. When using the double curly {{value}} notation + * the binding is automatically converted to JSON. + * + * @param {*} object Any JavaScript object (including arrays and primitive types) to filter. + * @param {number=} spacing The number of spaces to use per indentation, defaults to 2. + * @returns {string} JSON string. + * + * + * @example + + +
{{ {'name':'value'} | json }}
+
{{ {'name':'value'} | json:4 }}
+
+ + it('should jsonify filtered objects', function() { + expect(element(by.id('default-spacing')).getText()).toMatch(/\{\n "name": ?"value"\n}/); + expect(element(by.id('custom-spacing')).getText()).toMatch(/\{\n "name": ?"value"\n}/); + }); + +
+ * + */ +function jsonFilter() { + return function(object, spacing) { + if (isUndefined(spacing)) { + spacing = 2; + } + return toJson(object, spacing); + }; +} + + +/** + * @ngdoc filter + * @name lowercase + * @kind function + * @description + * Converts string to lowercase. + * @see angular.lowercase + */ +var lowercaseFilter = valueFn(lowercase); + + +/** + * @ngdoc filter + * @name uppercase + * @kind function + * @description + * Converts string to uppercase. + * @see angular.uppercase + */ +var uppercaseFilter = valueFn(uppercase); + +/** + * @ngdoc filter + * @name limitTo + * @kind function + * + * @description + * Creates a new array or string containing only a specified number of elements. The elements + * are taken from either the beginning or the end of the source array, string or number, as specified by + * the value and sign (positive or negative) of `limit`. If a number is used as input, it is + * converted to a string. + * + * @param {Array|string|number} input Source array, string or number to be limited. + * @param {string|number} limit The length of the returned array or string. If the `limit` number + * is positive, `limit` number of items from the beginning of the source array/string are copied. + * If the number is negative, `limit` number of items from the end of the source array/string + * are copied. The `limit` will be trimmed if it exceeds `array.length`. If `limit` is undefined, + * the input will be returned unchanged. + * @param {(string|number)=} begin Index at which to begin limitation. As a negative index, `begin` + * indicates an offset from the end of `input`. Defaults to `0`. + * @returns {Array|string} A new sub-array or substring of length `limit` or less if input array + * had less than `limit` elements. + * + * @example + + + +
+ +

Output numbers: {{ numbers | limitTo:numLimit }}

+ +

Output letters: {{ letters | limitTo:letterLimit }}

+ +

Output long number: {{ longNumber | limitTo:longNumberLimit }}

+
+
+ + var numLimitInput = element(by.model('numLimit')); + var letterLimitInput = element(by.model('letterLimit')); + var longNumberLimitInput = element(by.model('longNumberLimit')); + var limitedNumbers = element(by.binding('numbers | limitTo:numLimit')); + var limitedLetters = element(by.binding('letters | limitTo:letterLimit')); + var limitedLongNumber = element(by.binding('longNumber | limitTo:longNumberLimit')); + + it('should limit the number array to first three items', function() { + expect(numLimitInput.getAttribute('value')).toBe('3'); + expect(letterLimitInput.getAttribute('value')).toBe('3'); + expect(longNumberLimitInput.getAttribute('value')).toBe('3'); + expect(limitedNumbers.getText()).toEqual('Output numbers: [1,2,3]'); + expect(limitedLetters.getText()).toEqual('Output letters: abc'); + expect(limitedLongNumber.getText()).toEqual('Output long number: 234'); + }); + + // There is a bug in safari and protractor that doesn't like the minus key + // it('should update the output when -3 is entered', function() { + // numLimitInput.clear(); + // numLimitInput.sendKeys('-3'); + // letterLimitInput.clear(); + // letterLimitInput.sendKeys('-3'); + // longNumberLimitInput.clear(); + // longNumberLimitInput.sendKeys('-3'); + // expect(limitedNumbers.getText()).toEqual('Output numbers: [7,8,9]'); + // expect(limitedLetters.getText()).toEqual('Output letters: ghi'); + // expect(limitedLongNumber.getText()).toEqual('Output long number: 342'); + // }); + + it('should not exceed the maximum size of input array', function() { + numLimitInput.clear(); + numLimitInput.sendKeys('100'); + letterLimitInput.clear(); + letterLimitInput.sendKeys('100'); + longNumberLimitInput.clear(); + longNumberLimitInput.sendKeys('100'); + expect(limitedNumbers.getText()).toEqual('Output numbers: [1,2,3,4,5,6,7,8,9]'); + expect(limitedLetters.getText()).toEqual('Output letters: abcdefghi'); + expect(limitedLongNumber.getText()).toEqual('Output long number: 2345432342'); + }); + +
+*/ +function limitToFilter() { + return function(input, limit, begin) { + if (Math.abs(Number(limit)) === Infinity) { + limit = Number(limit); + } else { + limit = toInt(limit); + } + if (isNaN(limit)) return input; + + if (isNumber(input)) input = input.toString(); + if (!isArray(input) && !isString(input)) return input; + + begin = (!begin || isNaN(begin)) ? 0 : toInt(begin); + begin = (begin < 0) ? Math.max(0, input.length + begin) : begin; + + if (limit >= 0) { + return input.slice(begin, begin + limit); + } else { + if (begin === 0) { + return input.slice(limit, input.length); + } else { + return input.slice(Math.max(0, begin + limit), begin); + } + } + }; +} + +/** + * @ngdoc filter + * @name orderBy + * @kind function + * + * @description + * Orders a specified `array` by the `expression` predicate. It is ordered alphabetically + * for strings and numerically for numbers. Note: if you notice numbers are not being sorted + * as expected, make sure they are actually being saved as numbers and not strings. + * + * @param {Array} array The array to sort. + * @param {function(*)|string|Array.<(function(*)|string)>=} expression A predicate to be + * used by the comparator to determine the order of elements. + * + * Can be one of: + * + * - `function`: Getter function. The result of this function will be sorted using the + * `<`, `===`, `>` operator. + * - `string`: An Angular expression. The result of this expression is used to compare elements + * (for example `name` to sort by a property called `name` or `name.substr(0, 3)` to sort by + * 3 first characters of a property called `name`). The result of a constant expression + * is interpreted as a property name to be used in comparisons (for example `"special name"` + * to sort object by the value of their `special name` property). An expression can be + * optionally prefixed with `+` or `-` to control ascending or descending sort order + * (for example, `+name` or `-name`). If no property is provided, (e.g. `'+'`) then the array + * element itself is used to compare where sorting. + * - `Array`: An array of function or string predicates. The first predicate in the array + * is used for sorting, but when two items are equivalent, the next predicate is used. + * + * If the predicate is missing or empty then it defaults to `'+'`. + * + * @param {boolean=} reverse Reverse the order of the array. + * @returns {Array} Sorted copy of the source array. + * + * + * @example + * The example below demonstrates a simple ngRepeat, where the data is sorted + * by age in descending order (predicate is set to `'-age'`). + * `reverse` is not set, which means it defaults to `false`. + + +
+ + + + + + + + + + + +
NamePhone NumberAge
{{friend.name}}{{friend.phone}}{{friend.age}}
+
+
+ + angular.module('orderByExample', []) + .controller('ExampleController', ['$scope', function($scope) { + $scope.friends = + [{name:'John', phone:'555-1212', age:10}, + {name:'Mary', phone:'555-9876', age:19}, + {name:'Mike', phone:'555-4321', age:21}, + {name:'Adam', phone:'555-5678', age:35}, + {name:'Julie', phone:'555-8765', age:29}]; + }]); + +
+ * + * The predicate and reverse parameters can be controlled dynamically through scope properties, + * as shown in the next example. + * @example + + +
+
Sorting predicate = {{predicate}}; reverse = {{reverse}}
+
+ + + + + + + + + + + + +
+ + + + + + + + +
{{friend.name}}{{friend.phone}}{{friend.age}}
+
+
+ + angular.module('orderByExample', []) + .controller('ExampleController', ['$scope', function($scope) { + $scope.friends = + [{name:'John', phone:'555-1212', age:10}, + {name:'Mary', phone:'555-9876', age:19}, + {name:'Mike', phone:'555-4321', age:21}, + {name:'Adam', phone:'555-5678', age:35}, + {name:'Julie', phone:'555-8765', age:29}]; + $scope.predicate = 'age'; + $scope.reverse = true; + $scope.order = function(predicate) { + $scope.reverse = ($scope.predicate === predicate) ? !$scope.reverse : false; + $scope.predicate = predicate; + }; + }]); + + + .sortorder:after { + content: '\25b2'; + } + .sortorder.reverse:after { + content: '\25bc'; + } + +
+ * + * It's also possible to call the orderBy filter manually, by injecting `$filter`, retrieving the + * filter routine with `$filter('orderBy')`, and calling the returned filter routine with the + * desired parameters. + * + * Example: + * + * @example + + +
+
Sorting predicate = {{predicate}}; reverse = {{reverse}}
+ + + + + + + + + + + +
+ + + + + + + + +
{{friend.name}}{{friend.phone}}{{friend.age}}
+
+
+ + + angular.module('orderByExample', []) + .controller('ExampleController', ['$scope', '$filter', function($scope, $filter) { + var orderBy = $filter('orderBy'); + $scope.friends = [ + { name: 'John', phone: '555-1212', age: 10 }, + { name: 'Mary', phone: '555-9876', age: 19 }, + { name: 'Mike', phone: '555-4321', age: 21 }, + { name: 'Adam', phone: '555-5678', age: 35 }, + { name: 'Julie', phone: '555-8765', age: 29 } + ]; + $scope.order = function(predicate) { + $scope.predicate = predicate; + $scope.reverse = ($scope.predicate === predicate) ? !$scope.reverse : false; + $scope.friends = orderBy($scope.friends, predicate, $scope.reverse); + }; + $scope.order('age', true); + }]); + + + + .sortorder:after { + content: '\25b2'; + } + .sortorder.reverse:after { + content: '\25bc'; + } + +
+ */ +orderByFilter.$inject = ['$parse']; +function orderByFilter($parse) { + return function(array, sortPredicate, reverseOrder) { + + if (!(isArrayLike(array))) return array; + + if (!isArray(sortPredicate)) { sortPredicate = [sortPredicate]; } + if (sortPredicate.length === 0) { sortPredicate = ['+']; } + + var predicates = processPredicates(sortPredicate, reverseOrder); + // Add a predicate at the end that evaluates to the element index. This makes the + // sort stable as it works as a tie-breaker when all the input predicates cannot + // distinguish between two elements. + predicates.push({ get: function() { return {}; }, descending: reverseOrder ? -1 : 1}); + + // The next three lines are a version of a Swartzian Transform idiom from Perl + // (sometimes called the Decorate-Sort-Undecorate idiom) + // See https://en.wikipedia.org/wiki/Schwartzian_transform + var compareValues = Array.prototype.map.call(array, getComparisonObject); + compareValues.sort(doComparison); + array = compareValues.map(function(item) { return item.value; }); + + return array; + + function getComparisonObject(value, index) { + return { + value: value, + predicateValues: predicates.map(function(predicate) { + return getPredicateValue(predicate.get(value), index); + }) + }; + } + + function doComparison(v1, v2) { + var result = 0; + for (var index=0, length = predicates.length; index < length; ++index) { + result = compare(v1.predicateValues[index], v2.predicateValues[index]) * predicates[index].descending; + if (result) break; + } + return result; + } + }; + + function processPredicates(sortPredicate, reverseOrder) { + reverseOrder = reverseOrder ? -1 : 1; + return sortPredicate.map(function(predicate) { + var descending = 1, get = identity; + + if (isFunction(predicate)) { + get = predicate; + } else if (isString(predicate)) { + if ((predicate.charAt(0) == '+' || predicate.charAt(0) == '-')) { + descending = predicate.charAt(0) == '-' ? -1 : 1; + predicate = predicate.substring(1); + } + if (predicate !== '') { + get = $parse(predicate); + if (get.constant) { + var key = get(); + get = function(value) { return value[key]; }; + } + } + } + return { get: get, descending: descending * reverseOrder }; + }); + } + + function isPrimitive(value) { + switch (typeof value) { + case 'number': /* falls through */ + case 'boolean': /* falls through */ + case 'string': + return true; + default: + return false; + } + } + + function objectValue(value, index) { + // If `valueOf` is a valid function use that + if (typeof value.valueOf === 'function') { + value = value.valueOf(); + if (isPrimitive(value)) return value; + } + // If `toString` is a valid function and not the one from `Object.prototype` use that + if (hasCustomToString(value)) { + value = value.toString(); + if (isPrimitive(value)) return value; + } + // We have a basic object so we use the position of the object in the collection + return index; + } + + function getPredicateValue(value, index) { + var type = typeof value; + if (value === null) { + type = 'string'; + value = 'null'; + } else if (type === 'string') { + value = value.toLowerCase(); + } else if (type === 'object') { + value = objectValue(value, index); + } + return { value: value, type: type }; + } + + function compare(v1, v2) { + var result = 0; + if (v1.type === v2.type) { + if (v1.value !== v2.value) { + result = v1.value < v2.value ? -1 : 1; + } + } else { + result = v1.type < v2.type ? -1 : 1; + } + return result; + } +} + +function ngDirective(directive) { + if (isFunction(directive)) { + directive = { + link: directive + }; + } + directive.restrict = directive.restrict || 'AC'; + return valueFn(directive); +} + +/** + * @ngdoc directive + * @name a + * @restrict E + * + * @description + * Modifies the default behavior of the html A tag so that the default action is prevented when + * the href attribute is empty. + * + * This change permits the easy creation of action links with the `ngClick` directive + * without changing the location or causing page reloads, e.g.: + * `Add Item` + */ +var htmlAnchorDirective = valueFn({ + restrict: 'E', + compile: function(element, attr) { + if (!attr.href && !attr.xlinkHref) { + return function(scope, element) { + // If the linked element is not an anchor tag anymore, do nothing + if (element[0].nodeName.toLowerCase() !== 'a') return; + + // SVGAElement does not use the href attribute, but rather the 'xlinkHref' attribute. + var href = toString.call(element.prop('href')) === '[object SVGAnimatedString]' ? + 'xlink:href' : 'href'; + element.on('click', function(event) { + // if we have no href url, then don't navigate anywhere. + if (!element.attr(href)) { + event.preventDefault(); + } + }); + }; + } + } +}); + +/** + * @ngdoc directive + * @name ngHref + * @restrict A + * @priority 99 + * + * @description + * Using Angular markup like `{{hash}}` in an href attribute will + * make the link go to the wrong URL if the user clicks it before + * Angular has a chance to replace the `{{hash}}` markup with its + * value. Until Angular replaces the markup the link will be broken + * and will most likely return a 404 error. The `ngHref` directive + * solves this problem. + * + * The wrong way to write it: + * ```html + * link1 + * ``` + * + * The correct way to write it: + * ```html + * link1 + * ``` + * + * @element A + * @param {template} ngHref any string which can contain `{{}}` markup. + * + * @example + * This example shows various combinations of `href`, `ng-href` and `ng-click` attributes + * in links and their different behaviors: + + +
+ link 1 (link, don't reload)
+ link 2 (link, don't reload)
+ link 3 (link, reload!)
+ anchor (link, don't reload)
+ anchor (no link)
+ link (link, change location) +
+ + it('should execute ng-click but not reload when href without value', function() { + element(by.id('link-1')).click(); + expect(element(by.model('value')).getAttribute('value')).toEqual('1'); + expect(element(by.id('link-1')).getAttribute('href')).toBe(''); + }); + + it('should execute ng-click but not reload when href empty string', function() { + element(by.id('link-2')).click(); + expect(element(by.model('value')).getAttribute('value')).toEqual('2'); + expect(element(by.id('link-2')).getAttribute('href')).toBe(''); + }); + + it('should execute ng-click and change url when ng-href specified', function() { + expect(element(by.id('link-3')).getAttribute('href')).toMatch(/\/123$/); + + element(by.id('link-3')).click(); + + // At this point, we navigate away from an Angular page, so we need + // to use browser.driver to get the base webdriver. + + browser.wait(function() { + return browser.driver.getCurrentUrl().then(function(url) { + return url.match(/\/123$/); + }); + }, 5000, 'page should navigate to /123'); + }); + + it('should execute ng-click but not reload when href empty string and name specified', function() { + element(by.id('link-4')).click(); + expect(element(by.model('value')).getAttribute('value')).toEqual('4'); + expect(element(by.id('link-4')).getAttribute('href')).toBe(''); + }); + + it('should execute ng-click but not reload when no href but name specified', function() { + element(by.id('link-5')).click(); + expect(element(by.model('value')).getAttribute('value')).toEqual('5'); + expect(element(by.id('link-5')).getAttribute('href')).toBe(null); + }); + + it('should only change url when only ng-href', function() { + element(by.model('value')).clear(); + element(by.model('value')).sendKeys('6'); + expect(element(by.id('link-6')).getAttribute('href')).toMatch(/\/6$/); + + element(by.id('link-6')).click(); + + // At this point, we navigate away from an Angular page, so we need + // to use browser.driver to get the base webdriver. + browser.wait(function() { + return browser.driver.getCurrentUrl().then(function(url) { + return url.match(/\/6$/); + }); + }, 5000, 'page should navigate to /6'); + }); + +
+ */ + +/** + * @ngdoc directive + * @name ngSrc + * @restrict A + * @priority 99 + * + * @description + * Using Angular markup like `{{hash}}` in a `src` attribute doesn't + * work right: The browser will fetch from the URL with the literal + * text `{{hash}}` until Angular replaces the expression inside + * `{{hash}}`. The `ngSrc` directive solves this problem. + * + * The buggy way to write it: + * ```html + * Description + * ``` + * + * The correct way to write it: + * ```html + * Description + * ``` + * + * @element IMG + * @param {template} ngSrc any string which can contain `{{}}` markup. + */ + +/** + * @ngdoc directive + * @name ngSrcset + * @restrict A + * @priority 99 + * + * @description + * Using Angular markup like `{{hash}}` in a `srcset` attribute doesn't + * work right: The browser will fetch from the URL with the literal + * text `{{hash}}` until Angular replaces the expression inside + * `{{hash}}`. The `ngSrcset` directive solves this problem. + * + * The buggy way to write it: + * ```html + * Description + * ``` + * + * The correct way to write it: + * ```html + * Description + * ``` + * + * @element IMG + * @param {template} ngSrcset any string which can contain `{{}}` markup. + */ + +/** + * @ngdoc directive + * @name ngDisabled + * @restrict A + * @priority 100 + * + * @description + * + * This directive sets the `disabled` attribute on the element if the + * {@link guide/expression expression} inside `ngDisabled` evaluates to truthy. + * + * A special directive is necessary because we cannot use interpolation inside the `disabled` + * attribute. See the {@link guide/interpolation interpolation guide} for more info. + * + * @example + + +
+ +
+ + it('should toggle button', function() { + expect(element(by.css('button')).getAttribute('disabled')).toBeFalsy(); + element(by.model('checked')).click(); + expect(element(by.css('button')).getAttribute('disabled')).toBeTruthy(); + }); + +
+ * + * @element INPUT + * @param {expression} ngDisabled If the {@link guide/expression expression} is truthy, + * then the `disabled` attribute will be set on the element + */ + + +/** + * @ngdoc directive + * @name ngChecked + * @restrict A + * @priority 100 + * + * @description + * Sets the `checked` attribute on the element, if the expression inside `ngChecked` is truthy. + * + * Note that this directive should not be used together with {@link ngModel `ngModel`}, + * as this can lead to unexpected behavior. + * + * A special directive is necessary because we cannot use interpolation inside the `checked` + * attribute. See the {@link guide/interpolation interpolation guide} for more info. + * + * @example + + +
+ +
+ + it('should check both checkBoxes', function() { + expect(element(by.id('checkSlave')).getAttribute('checked')).toBeFalsy(); + element(by.model('master')).click(); + expect(element(by.id('checkSlave')).getAttribute('checked')).toBeTruthy(); + }); + +
+ * + * @element INPUT + * @param {expression} ngChecked If the {@link guide/expression expression} is truthy, + * then the `checked` attribute will be set on the element + */ + + +/** + * @ngdoc directive + * @name ngReadonly + * @restrict A + * @priority 100 + * + * @description + * + * Sets the `readOnly` attribute on the element, if the expression inside `ngReadonly` is truthy. + * + * A special directive is necessary because we cannot use interpolation inside the `readOnly` + * attribute. See the {@link guide/interpolation interpolation guide} for more info. + * + * @example + + +
+ +
+ + it('should toggle readonly attr', function() { + expect(element(by.css('[type="text"]')).getAttribute('readonly')).toBeFalsy(); + element(by.model('checked')).click(); + expect(element(by.css('[type="text"]')).getAttribute('readonly')).toBeTruthy(); + }); + +
+ * + * @element INPUT + * @param {expression} ngReadonly If the {@link guide/expression expression} is truthy, + * then special attribute "readonly" will be set on the element + */ + + +/** + * @ngdoc directive + * @name ngSelected + * @restrict A + * @priority 100 + * + * @description + * + * Sets the `selected` attribute on the element, if the expression inside `ngSelected` is truthy. + * + * A special directive is necessary because we cannot use interpolation inside the `selected` + * attribute. See the {@link guide/interpolation interpolation guide} for more info. + * + * @example + + +
+ +
+ + it('should select Greetings!', function() { + expect(element(by.id('greet')).getAttribute('selected')).toBeFalsy(); + element(by.model('selected')).click(); + expect(element(by.id('greet')).getAttribute('selected')).toBeTruthy(); + }); + +
+ * + * @element OPTION + * @param {expression} ngSelected If the {@link guide/expression expression} is truthy, + * then special attribute "selected" will be set on the element + */ + +/** + * @ngdoc directive + * @name ngOpen + * @restrict A + * @priority 100 + * + * @description + * + * Sets the `open` attribute on the element, if the expression inside `ngOpen` is truthy. + * + * A special directive is necessary because we cannot use interpolation inside the `open` + * attribute. See the {@link guide/interpolation interpolation guide} for more info. + * + * @example + + +
+
+ Show/Hide me +
+
+ + it('should toggle open', function() { + expect(element(by.id('details')).getAttribute('open')).toBeFalsy(); + element(by.model('open')).click(); + expect(element(by.id('details')).getAttribute('open')).toBeTruthy(); + }); + +
+ * + * @element DETAILS + * @param {expression} ngOpen If the {@link guide/expression expression} is truthy, + * then special attribute "open" will be set on the element + */ + +var ngAttributeAliasDirectives = {}; + +// boolean attrs are evaluated +forEach(BOOLEAN_ATTR, function(propName, attrName) { + // binding to multiple is not supported + if (propName == "multiple") return; + + function defaultLinkFn(scope, element, attr) { + scope.$watch(attr[normalized], function ngBooleanAttrWatchAction(value) { + attr.$set(attrName, !!value); + }); + } + + var normalized = directiveNormalize('ng-' + attrName); + var linkFn = defaultLinkFn; + + if (propName === 'checked') { + linkFn = function(scope, element, attr) { + // ensuring ngChecked doesn't interfere with ngModel when both are set on the same input + if (attr.ngModel !== attr[normalized]) { + defaultLinkFn(scope, element, attr); + } + }; + } + + ngAttributeAliasDirectives[normalized] = function() { + return { + restrict: 'A', + priority: 100, + link: linkFn + }; + }; +}); + +// aliased input attrs are evaluated +forEach(ALIASED_ATTR, function(htmlAttr, ngAttr) { + ngAttributeAliasDirectives[ngAttr] = function() { + return { + priority: 100, + link: function(scope, element, attr) { + //special case ngPattern when a literal regular expression value + //is used as the expression (this way we don't have to watch anything). + if (ngAttr === "ngPattern" && attr.ngPattern.charAt(0) == "/") { + var match = attr.ngPattern.match(REGEX_STRING_REGEXP); + if (match) { + attr.$set("ngPattern", new RegExp(match[1], match[2])); + return; + } + } + + scope.$watch(attr[ngAttr], function ngAttrAliasWatchAction(value) { + attr.$set(ngAttr, value); + }); + } + }; + }; +}); + +// ng-src, ng-srcset, ng-href are interpolated +forEach(['src', 'srcset', 'href'], function(attrName) { + var normalized = directiveNormalize('ng-' + attrName); + ngAttributeAliasDirectives[normalized] = function() { + return { + priority: 99, // it needs to run after the attributes are interpolated + link: function(scope, element, attr) { + var propName = attrName, + name = attrName; + + if (attrName === 'href' && + toString.call(element.prop('href')) === '[object SVGAnimatedString]') { + name = 'xlinkHref'; + attr.$attr[name] = 'xlink:href'; + propName = null; + } + + attr.$observe(normalized, function(value) { + if (!value) { + if (attrName === 'href') { + attr.$set(name, null); + } + return; + } + + attr.$set(name, value); + + // on IE, if "ng:src" directive declaration is used and "src" attribute doesn't exist + // then calling element.setAttribute('src', 'foo') doesn't do anything, so we need + // to set the property as well to achieve the desired effect. + // we use attr[attrName] value since $set can sanitize the url. + if (msie && propName) element.prop(propName, attr[name]); + }); + } + }; + }; +}); + +/* global -nullFormCtrl, -SUBMITTED_CLASS, addSetValidityMethod: true + */ +var nullFormCtrl = { + $addControl: noop, + $$renameControl: nullFormRenameControl, + $removeControl: noop, + $setValidity: noop, + $setDirty: noop, + $setPristine: noop, + $setSubmitted: noop +}, +SUBMITTED_CLASS = 'ng-submitted'; + +function nullFormRenameControl(control, name) { + control.$name = name; +} + +/** + * @ngdoc type + * @name form.FormController + * + * @property {boolean} $pristine True if user has not interacted with the form yet. + * @property {boolean} $dirty True if user has already interacted with the form. + * @property {boolean} $valid True if all of the containing forms and controls are valid. + * @property {boolean} $invalid True if at least one containing control or form is invalid. + * @property {boolean} $pending True if at least one containing control or form is pending. + * @property {boolean} $submitted True if user has submitted the form even if its invalid. + * + * @property {Object} $error Is an object hash, containing references to controls or + * forms with failing validators, where: + * + * - keys are validation tokens (error names), + * - values are arrays of controls or forms that have a failing validator for given error name. + * + * Built-in validation tokens: + * + * - `email` + * - `max` + * - `maxlength` + * - `min` + * - `minlength` + * - `number` + * - `pattern` + * - `required` + * - `url` + * - `date` + * - `datetimelocal` + * - `time` + * - `week` + * - `month` + * + * @description + * `FormController` keeps track of all its controls and nested forms as well as the state of them, + * such as being valid/invalid or dirty/pristine. + * + * Each {@link ng.directive:form form} directive creates an instance + * of `FormController`. + * + */ +//asks for $scope to fool the BC controller module +FormController.$inject = ['$element', '$attrs', '$scope', '$animate', '$interpolate']; +function FormController(element, attrs, $scope, $animate, $interpolate) { + var form = this, + controls = []; + + // init state + form.$error = {}; + form.$$success = {}; + form.$pending = undefined; + form.$name = $interpolate(attrs.name || attrs.ngForm || '')($scope); + form.$dirty = false; + form.$pristine = true; + form.$valid = true; + form.$invalid = false; + form.$submitted = false; + form.$$parentForm = nullFormCtrl; + + /** + * @ngdoc method + * @name form.FormController#$rollbackViewValue + * + * @description + * Rollback all form controls pending updates to the `$modelValue`. + * + * Updates may be pending by a debounced event or because the input is waiting for a some future + * event defined in `ng-model-options`. This method is typically needed by the reset button of + * a form that uses `ng-model-options` to pend updates. + */ + form.$rollbackViewValue = function() { + forEach(controls, function(control) { + control.$rollbackViewValue(); + }); + }; + + /** + * @ngdoc method + * @name form.FormController#$commitViewValue + * + * @description + * Commit all form controls pending updates to the `$modelValue`. + * + * Updates may be pending by a debounced event or because the input is waiting for a some future + * event defined in `ng-model-options`. This method is rarely needed as `NgModelController` + * usually handles calling this in response to input events. + */ + form.$commitViewValue = function() { + forEach(controls, function(control) { + control.$commitViewValue(); + }); + }; + + /** + * @ngdoc method + * @name form.FormController#$addControl + * @param {object} control control object, either a {@link form.FormController} or an + * {@link ngModel.NgModelController} + * + * @description + * Register a control with the form. Input elements using ngModelController do this automatically + * when they are linked. + * + * Note that the current state of the control will not be reflected on the new parent form. This + * is not an issue with normal use, as freshly compiled and linked controls are in a `$pristine` + * state. + * + * However, if the method is used programmatically, for example by adding dynamically created controls, + * or controls that have been previously removed without destroying their corresponding DOM element, + * it's the developers responsiblity to make sure the current state propagates to the parent form. + * + * For example, if an input control is added that is already `$dirty` and has `$error` properties, + * calling `$setDirty()` and `$validate()` afterwards will propagate the state to the parent form. + */ + form.$addControl = function(control) { + // Breaking change - before, inputs whose name was "hasOwnProperty" were quietly ignored + // and not added to the scope. Now we throw an error. + assertNotHasOwnProperty(control.$name, 'input'); + controls.push(control); + + if (control.$name) { + form[control.$name] = control; + } + + control.$$parentForm = form; + }; + + // Private API: rename a form control + form.$$renameControl = function(control, newName) { + var oldName = control.$name; + + if (form[oldName] === control) { + delete form[oldName]; + } + form[newName] = control; + control.$name = newName; + }; + + /** + * @ngdoc method + * @name form.FormController#$removeControl + * @param {object} control control object, either a {@link form.FormController} or an + * {@link ngModel.NgModelController} + * + * @description + * Deregister a control from the form. + * + * Input elements using ngModelController do this automatically when they are destroyed. + * + * Note that only the removed control's validation state (`$errors`etc.) will be removed from the + * form. `$dirty`, `$submitted` states will not be changed, because the expected behavior can be + * different from case to case. For example, removing the only `$dirty` control from a form may or + * may not mean that the form is still `$dirty`. + */ + form.$removeControl = function(control) { + if (control.$name && form[control.$name] === control) { + delete form[control.$name]; + } + forEach(form.$pending, function(value, name) { + form.$setValidity(name, null, control); + }); + forEach(form.$error, function(value, name) { + form.$setValidity(name, null, control); + }); + forEach(form.$$success, function(value, name) { + form.$setValidity(name, null, control); + }); + + arrayRemove(controls, control); + control.$$parentForm = nullFormCtrl; + }; + + + /** + * @ngdoc method + * @name form.FormController#$setValidity + * + * @description + * Sets the validity of a form control. + * + * This method will also propagate to parent forms. + */ + addSetValidityMethod({ + ctrl: this, + $element: element, + set: function(object, property, controller) { + var list = object[property]; + if (!list) { + object[property] = [controller]; + } else { + var index = list.indexOf(controller); + if (index === -1) { + list.push(controller); + } + } + }, + unset: function(object, property, controller) { + var list = object[property]; + if (!list) { + return; + } + arrayRemove(list, controller); + if (list.length === 0) { + delete object[property]; + } + }, + $animate: $animate + }); + + /** + * @ngdoc method + * @name form.FormController#$setDirty + * + * @description + * Sets the form to a dirty state. + * + * This method can be called to add the 'ng-dirty' class and set the form to a dirty + * state (ng-dirty class). This method will also propagate to parent forms. + */ + form.$setDirty = function() { + $animate.removeClass(element, PRISTINE_CLASS); + $animate.addClass(element, DIRTY_CLASS); + form.$dirty = true; + form.$pristine = false; + form.$$parentForm.$setDirty(); + }; + + /** + * @ngdoc method + * @name form.FormController#$setPristine + * + * @description + * Sets the form to its pristine state. + * + * This method can be called to remove the 'ng-dirty' class and set the form to its pristine + * state (ng-pristine class). This method will also propagate to all the controls contained + * in this form. + * + * Setting a form back to a pristine state is often useful when we want to 'reuse' a form after + * saving or resetting it. + */ + form.$setPristine = function() { + $animate.setClass(element, PRISTINE_CLASS, DIRTY_CLASS + ' ' + SUBMITTED_CLASS); + form.$dirty = false; + form.$pristine = true; + form.$submitted = false; + forEach(controls, function(control) { + control.$setPristine(); + }); + }; + + /** + * @ngdoc method + * @name form.FormController#$setUntouched + * + * @description + * Sets the form to its untouched state. + * + * This method can be called to remove the 'ng-touched' class and set the form controls to their + * untouched state (ng-untouched class). + * + * Setting a form controls back to their untouched state is often useful when setting the form + * back to its pristine state. + */ + form.$setUntouched = function() { + forEach(controls, function(control) { + control.$setUntouched(); + }); + }; + + /** + * @ngdoc method + * @name form.FormController#$setSubmitted + * + * @description + * Sets the form to its submitted state. + */ + form.$setSubmitted = function() { + $animate.addClass(element, SUBMITTED_CLASS); + form.$submitted = true; + form.$$parentForm.$setSubmitted(); + }; +} + +/** + * @ngdoc directive + * @name ngForm + * @restrict EAC + * + * @description + * Nestable alias of {@link ng.directive:form `form`} directive. HTML + * does not allow nesting of form elements. It is useful to nest forms, for example if the validity of a + * sub-group of controls needs to be determined. + * + * Note: the purpose of `ngForm` is to group controls, + * but not to be a replacement for the `
` tag with all of its capabilities + * (e.g. posting to the server, ...). + * + * @param {string=} ngForm|name Name of the form. If specified, the form controller will be published into + * related scope, under this name. + * + */ + + /** + * @ngdoc directive + * @name form + * @restrict E + * + * @description + * Directive that instantiates + * {@link form.FormController FormController}. + * + * If the `name` attribute is specified, the form controller is published onto the current scope under + * this name. + * + * # Alias: {@link ng.directive:ngForm `ngForm`} + * + * In Angular, forms can be nested. This means that the outer form is valid when all of the child + * forms are valid as well. However, browsers do not allow nesting of `` elements, so + * Angular provides the {@link ng.directive:ngForm `ngForm`} directive, which behaves identically to + * `form` but can be nested. Nested forms can be useful, for example, if the validity of a sub-group + * of controls needs to be determined. + * + * # CSS classes + * - `ng-valid` is set if the form is valid. + * - `ng-invalid` is set if the form is invalid. + * - `ng-pending` is set if the form is pending. + * - `ng-pristine` is set if the form is pristine. + * - `ng-dirty` is set if the form is dirty. + * - `ng-submitted` is set if the form was submitted. + * + * Keep in mind that ngAnimate can detect each of these classes when added and removed. + * + * + * # Submitting a form and preventing the default action + * + * Since the role of forms in client-side Angular applications is different than in classical + * roundtrip apps, it is desirable for the browser not to translate the form submission into a full + * page reload that sends the data to the server. Instead some javascript logic should be triggered + * to handle the form submission in an application-specific way. + * + * For this reason, Angular prevents the default action (form submission to the server) unless the + * `` element has an `action` attribute specified. + * + * You can use one of the following two ways to specify what javascript method should be called when + * a form is submitted: + * + * - {@link ng.directive:ngSubmit ngSubmit} directive on the form element + * - {@link ng.directive:ngClick ngClick} directive on the first + * button or input field of type submit (input[type=submit]) + * + * To prevent double execution of the handler, use only one of the {@link ng.directive:ngSubmit ngSubmit} + * or {@link ng.directive:ngClick ngClick} directives. + * This is because of the following form submission rules in the HTML specification: + * + * - If a form has only one input field then hitting enter in this field triggers form submit + * (`ngSubmit`) + * - if a form has 2+ input fields and no buttons or input[type=submit] then hitting enter + * doesn't trigger submit + * - if a form has one or more input fields and one or more buttons or input[type=submit] then + * hitting enter in any of the input fields will trigger the click handler on the *first* button or + * input[type=submit] (`ngClick`) *and* a submit handler on the enclosing form (`ngSubmit`) + * + * Any pending `ngModelOptions` changes will take place immediately when an enclosing form is + * submitted. Note that `ngClick` events will occur before the model is updated. Use `ngSubmit` + * to have access to the updated model. + * + * ## Animation Hooks + * + * Animations in ngForm are triggered when any of the associated CSS classes are added and removed. + * These classes are: `.ng-pristine`, `.ng-dirty`, `.ng-invalid` and `.ng-valid` as well as any + * other validations that are performed within the form. Animations in ngForm are similar to how + * they work in ngClass and animations can be hooked into using CSS transitions, keyframes as well + * as JS animations. + * + * The following example shows a simple way to utilize CSS transitions to style a form element + * that has been rendered as invalid after it has been validated: + * + *
+ * //be sure to include ngAnimate as a module to hook into more
+ * //advanced animations
+ * .my-form {
+ *   transition:0.5s linear all;
+ *   background: white;
+ * }
+ * .my-form.ng-invalid {
+ *   background: red;
+ *   color:white;
+ * }
+ * 
+ * + * @example + + + + + + userType: + Required!
+ userType = {{userType}}
+ myForm.input.$valid = {{myForm.input.$valid}}
+ myForm.input.$error = {{myForm.input.$error}}
+ myForm.$valid = {{myForm.$valid}}
+ myForm.$error.required = {{!!myForm.$error.required}}
+ +
+ + it('should initialize to model', function() { + var userType = element(by.binding('userType')); + var valid = element(by.binding('myForm.input.$valid')); + + expect(userType.getText()).toContain('guest'); + expect(valid.getText()).toContain('true'); + }); + + it('should be invalid if empty', function() { + var userType = element(by.binding('userType')); + var valid = element(by.binding('myForm.input.$valid')); + var userInput = element(by.model('userType')); + + userInput.clear(); + userInput.sendKeys(''); + + expect(userType.getText()).toEqual('userType ='); + expect(valid.getText()).toContain('false'); + }); + +
+ * + * @param {string=} name Name of the form. If specified, the form controller will be published into + * related scope, under this name. + */ +var formDirectiveFactory = function(isNgForm) { + return ['$timeout', '$parse', function($timeout, $parse) { + var formDirective = { + name: 'form', + restrict: isNgForm ? 'EAC' : 'E', + require: ['form', '^^?form'], //first is the form's own ctrl, second is an optional parent form + controller: FormController, + compile: function ngFormCompile(formElement, attr) { + // Setup initial state of the control + formElement.addClass(PRISTINE_CLASS).addClass(VALID_CLASS); + + var nameAttr = attr.name ? 'name' : (isNgForm && attr.ngForm ? 'ngForm' : false); + + return { + pre: function ngFormPreLink(scope, formElement, attr, ctrls) { + var controller = ctrls[0]; + + // if `action` attr is not present on the form, prevent the default action (submission) + if (!('action' in attr)) { + // we can't use jq events because if a form is destroyed during submission the default + // action is not prevented. see #1238 + // + // IE 9 is not affected because it doesn't fire a submit event and try to do a full + // page reload if the form was destroyed by submission of the form via a click handler + // on a button in the form. Looks like an IE9 specific bug. + var handleFormSubmission = function(event) { + scope.$apply(function() { + controller.$commitViewValue(); + controller.$setSubmitted(); + }); + + event.preventDefault(); + }; + + addEventListenerFn(formElement[0], 'submit', handleFormSubmission); + + // unregister the preventDefault listener so that we don't not leak memory but in a + // way that will achieve the prevention of the default action. + formElement.on('$destroy', function() { + $timeout(function() { + removeEventListenerFn(formElement[0], 'submit', handleFormSubmission); + }, 0, false); + }); + } + + var parentFormCtrl = ctrls[1] || controller.$$parentForm; + parentFormCtrl.$addControl(controller); + + var setter = nameAttr ? getSetter(controller.$name) : noop; + + if (nameAttr) { + setter(scope, controller); + attr.$observe(nameAttr, function(newValue) { + if (controller.$name === newValue) return; + setter(scope, undefined); + controller.$$parentForm.$$renameControl(controller, newValue); + setter = getSetter(controller.$name); + setter(scope, controller); + }); + } + formElement.on('$destroy', function() { + controller.$$parentForm.$removeControl(controller); + setter(scope, undefined); + extend(controller, nullFormCtrl); //stop propagating child destruction handlers upwards + }); + } + }; + } + }; + + return formDirective; + + function getSetter(expression) { + if (expression === '') { + //create an assignable expression, so forms with an empty name can be renamed later + return $parse('this[""]').assign; + } + return $parse(expression).assign || noop; + } + }]; +}; + +var formDirective = formDirectiveFactory(); +var ngFormDirective = formDirectiveFactory(true); + +/* global VALID_CLASS: false, + INVALID_CLASS: false, + PRISTINE_CLASS: false, + DIRTY_CLASS: false, + UNTOUCHED_CLASS: false, + TOUCHED_CLASS: false, + ngModelMinErr: false, +*/ + +// Regex code is obtained from SO: https://stackoverflow.com/questions/3143070/javascript-regex-iso-datetime#answer-3143231 +var ISO_DATE_REGEXP = /\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/; +// See valid URLs in RFC3987 (http://tools.ietf.org/html/rfc3987) +// Note: We are being more lenient, because browsers are too. +// 1. Scheme +// 2. Slashes +// 3. Username +// 4. Password +// 5. Hostname +// 6. Port +// 7. Path +// 8. Query +// 9. Fragment +// 1111111111111111 222 333333 44444 555555555555555555555555 666 77777777 8888888 999 +var URL_REGEXP = /^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:/?#]+|\[[a-f\d:]+\])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i; +var EMAIL_REGEXP = /^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i; +var NUMBER_REGEXP = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/; +var DATE_REGEXP = /^(\d{4})-(\d{2})-(\d{2})$/; +var DATETIMELOCAL_REGEXP = /^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/; +var WEEK_REGEXP = /^(\d{4})-W(\d\d)$/; +var MONTH_REGEXP = /^(\d{4})-(\d\d)$/; +var TIME_REGEXP = /^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/; + +var PARTIAL_VALIDATION_EVENTS = 'keydown wheel mousedown'; +var PARTIAL_VALIDATION_TYPES = createMap(); +forEach('date,datetime-local,month,time,week'.split(','), function(type) { + PARTIAL_VALIDATION_TYPES[type] = true; +}); + +var inputType = { + + /** + * @ngdoc input + * @name input[text] + * + * @description + * Standard HTML text input with angular data binding, inherited by most of the `input` elements. + * + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} required Adds `required` validation error key if the value is not entered. + * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to + * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of + * `required` when you want to data-bind to the `required` attribute. + * @param {number=} ngMinlength Sets `minlength` validation error key if the value is shorter than + * minlength. + * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than + * maxlength. Setting the attribute to a negative or non-numeric value, allows view values of + * any length. + * @param {string=} pattern Similar to `ngPattern` except that the attribute value is the actual string + * that contains the regular expression body that will be converted to a regular expression + * as in the ngPattern directive. + * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match + * a RegExp found by evaluating the Angular expression given in the attribute value. + * If the expression evaluates to a RegExp object, then this is used directly. + * If the expression evaluates to a string, then it will be converted to a RegExp + * after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to + * `new RegExp('^abc$')`.
+ * **Note:** Avoid using the `g` flag on the RegExp, as it will cause each successive search to + * start at the index of the last search's match, thus not taking the whole input value into + * account. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * @param {boolean=} [ngTrim=true] If set to false Angular will not automatically trim the input. + * This parameter is ignored for input[type=password] controls, which will never trim the + * input. + * + * @example + + + +
+ +
+ + Required! + + Single word only! +
+ text = {{example.text}}
+ myForm.input.$valid = {{myForm.input.$valid}}
+ myForm.input.$error = {{myForm.input.$error}}
+ myForm.$valid = {{myForm.$valid}}
+ myForm.$error.required = {{!!myForm.$error.required}}
+
+
+ + var text = element(by.binding('example.text')); + var valid = element(by.binding('myForm.input.$valid')); + var input = element(by.model('example.text')); + + it('should initialize to model', function() { + expect(text.getText()).toContain('guest'); + expect(valid.getText()).toContain('true'); + }); + + it('should be invalid if empty', function() { + input.clear(); + input.sendKeys(''); + + expect(text.getText()).toEqual('text ='); + expect(valid.getText()).toContain('false'); + }); + + it('should be invalid if multi word', function() { + input.clear(); + input.sendKeys('hello world'); + + expect(valid.getText()).toContain('false'); + }); + +
+ */ + 'text': textInputType, + + /** + * @ngdoc input + * @name input[date] + * + * @description + * Input with date validation and transformation. In browsers that do not yet support + * the HTML5 date input, a text element will be used. In that case, text must be entered in a valid ISO-8601 + * date format (yyyy-MM-dd), for example: `2009-01-06`. Since many + * modern browsers do not yet support this input type, it is important to provide cues to users on the + * expected input format via a placeholder or label. + * + * The model must always be a Date object, otherwise Angular will throw an error. + * Invalid `Date` objects (dates whose `getTime()` is `NaN`) will be rendered as an empty string. + * + * The timezone to be used to read/write the `Date` instance in the model can be defined using + * {@link ng.directive:ngModelOptions ngModelOptions}. By default, this is the timezone of the browser. + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`. This must be a + * valid ISO date string (yyyy-MM-dd). You can also use interpolation inside this attribute + * (e.g. `min="{{minDate | date:'yyyy-MM-dd'}}"`). Note that `min` will also add native HTML5 + * constraint validation. + * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`. This must be + * a valid ISO date string (yyyy-MM-dd). You can also use interpolation inside this attribute + * (e.g. `max="{{maxDate | date:'yyyy-MM-dd'}}"`). Note that `max` will also add native HTML5 + * constraint validation. + * @param {(date|string)=} ngMin Sets the `min` validation constraint to the Date / ISO date string + * the `ngMin` expression evaluates to. Note that it does not set the `min` attribute. + * @param {(date|string)=} ngMax Sets the `max` validation constraint to the Date / ISO date string + * the `ngMax` expression evaluates to. Note that it does not set the `max` attribute. + * @param {string=} required Sets `required` validation error key if the value is not entered. + * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to + * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of + * `required` when you want to data-bind to the `required` attribute. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * + * @example + + + +
+ + +
+ + Required! + + Not a valid date! +
+ value = {{example.value | date: "yyyy-MM-dd"}}
+ myForm.input.$valid = {{myForm.input.$valid}}
+ myForm.input.$error = {{myForm.input.$error}}
+ myForm.$valid = {{myForm.$valid}}
+ myForm.$error.required = {{!!myForm.$error.required}}
+
+
+ + var value = element(by.binding('example.value | date: "yyyy-MM-dd"')); + var valid = element(by.binding('myForm.input.$valid')); + var input = element(by.model('example.value')); + + // currently protractor/webdriver does not support + // sending keys to all known HTML5 input controls + // for various browsers (see https://github.com/angular/protractor/issues/562). + function setInput(val) { + // set the value of the element and force validation. + var scr = "var ipt = document.getElementById('exampleInput'); " + + "ipt.value = '" + val + "';" + + "angular.element(ipt).scope().$apply(function(s) { s.myForm[ipt.name].$setViewValue('" + val + "'); });"; + browser.executeScript(scr); + } + + it('should initialize to model', function() { + expect(value.getText()).toContain('2013-10-22'); + expect(valid.getText()).toContain('myForm.input.$valid = true'); + }); + + it('should be invalid if empty', function() { + setInput(''); + expect(value.getText()).toEqual('value ='); + expect(valid.getText()).toContain('myForm.input.$valid = false'); + }); + + it('should be invalid if over max', function() { + setInput('2015-01-01'); + expect(value.getText()).toContain(''); + expect(valid.getText()).toContain('myForm.input.$valid = false'); + }); + +
+ */ + 'date': createDateInputType('date', DATE_REGEXP, + createDateParser(DATE_REGEXP, ['yyyy', 'MM', 'dd']), + 'yyyy-MM-dd'), + + /** + * @ngdoc input + * @name input[datetime-local] + * + * @description + * Input with datetime validation and transformation. In browsers that do not yet support + * the HTML5 date input, a text element will be used. In that case, the text must be entered in a valid ISO-8601 + * local datetime format (yyyy-MM-ddTHH:mm:ss), for example: `2010-12-28T14:57:00`. + * + * The model must always be a Date object, otherwise Angular will throw an error. + * Invalid `Date` objects (dates whose `getTime()` is `NaN`) will be rendered as an empty string. + * + * The timezone to be used to read/write the `Date` instance in the model can be defined using + * {@link ng.directive:ngModelOptions ngModelOptions}. By default, this is the timezone of the browser. + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`. + * This must be a valid ISO datetime format (yyyy-MM-ddTHH:mm:ss). You can also use interpolation + * inside this attribute (e.g. `min="{{minDatetimeLocal | date:'yyyy-MM-ddTHH:mm:ss'}}"`). + * Note that `min` will also add native HTML5 constraint validation. + * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`. + * This must be a valid ISO datetime format (yyyy-MM-ddTHH:mm:ss). You can also use interpolation + * inside this attribute (e.g. `max="{{maxDatetimeLocal | date:'yyyy-MM-ddTHH:mm:ss'}}"`). + * Note that `max` will also add native HTML5 constraint validation. + * @param {(date|string)=} ngMin Sets the `min` validation error key to the Date / ISO datetime string + * the `ngMin` expression evaluates to. Note that it does not set the `min` attribute. + * @param {(date|string)=} ngMax Sets the `max` validation error key to the Date / ISO datetime string + * the `ngMax` expression evaluates to. Note that it does not set the `max` attribute. + * @param {string=} required Sets `required` validation error key if the value is not entered. + * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to + * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of + * `required` when you want to data-bind to the `required` attribute. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * + * @example + + + +
+ + +
+ + Required! + + Not a valid date! +
+ value = {{example.value | date: "yyyy-MM-ddTHH:mm:ss"}}
+ myForm.input.$valid = {{myForm.input.$valid}}
+ myForm.input.$error = {{myForm.input.$error}}
+ myForm.$valid = {{myForm.$valid}}
+ myForm.$error.required = {{!!myForm.$error.required}}
+
+
+ + var value = element(by.binding('example.value | date: "yyyy-MM-ddTHH:mm:ss"')); + var valid = element(by.binding('myForm.input.$valid')); + var input = element(by.model('example.value')); + + // currently protractor/webdriver does not support + // sending keys to all known HTML5 input controls + // for various browsers (https://github.com/angular/protractor/issues/562). + function setInput(val) { + // set the value of the element and force validation. + var scr = "var ipt = document.getElementById('exampleInput'); " + + "ipt.value = '" + val + "';" + + "angular.element(ipt).scope().$apply(function(s) { s.myForm[ipt.name].$setViewValue('" + val + "'); });"; + browser.executeScript(scr); + } + + it('should initialize to model', function() { + expect(value.getText()).toContain('2010-12-28T14:57:00'); + expect(valid.getText()).toContain('myForm.input.$valid = true'); + }); + + it('should be invalid if empty', function() { + setInput(''); + expect(value.getText()).toEqual('value ='); + expect(valid.getText()).toContain('myForm.input.$valid = false'); + }); + + it('should be invalid if over max', function() { + setInput('2015-01-01T23:59:00'); + expect(value.getText()).toContain(''); + expect(valid.getText()).toContain('myForm.input.$valid = false'); + }); + +
+ */ + 'datetime-local': createDateInputType('datetimelocal', DATETIMELOCAL_REGEXP, + createDateParser(DATETIMELOCAL_REGEXP, ['yyyy', 'MM', 'dd', 'HH', 'mm', 'ss', 'sss']), + 'yyyy-MM-ddTHH:mm:ss.sss'), + + /** + * @ngdoc input + * @name input[time] + * + * @description + * Input with time validation and transformation. In browsers that do not yet support + * the HTML5 date input, a text element will be used. In that case, the text must be entered in a valid ISO-8601 + * local time format (HH:mm:ss), for example: `14:57:00`. Model must be a Date object. This binding will always output a + * Date object to the model of January 1, 1970, or local date `new Date(1970, 0, 1, HH, mm, ss)`. + * + * The model must always be a Date object, otherwise Angular will throw an error. + * Invalid `Date` objects (dates whose `getTime()` is `NaN`) will be rendered as an empty string. + * + * The timezone to be used to read/write the `Date` instance in the model can be defined using + * {@link ng.directive:ngModelOptions ngModelOptions}. By default, this is the timezone of the browser. + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`. + * This must be a valid ISO time format (HH:mm:ss). You can also use interpolation inside this + * attribute (e.g. `min="{{minTime | date:'HH:mm:ss'}}"`). Note that `min` will also add + * native HTML5 constraint validation. + * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`. + * This must be a valid ISO time format (HH:mm:ss). You can also use interpolation inside this + * attribute (e.g. `max="{{maxTime | date:'HH:mm:ss'}}"`). Note that `max` will also add + * native HTML5 constraint validation. + * @param {(date|string)=} ngMin Sets the `min` validation constraint to the Date / ISO time string the + * `ngMin` expression evaluates to. Note that it does not set the `min` attribute. + * @param {(date|string)=} ngMax Sets the `max` validation constraint to the Date / ISO time string the + * `ngMax` expression evaluates to. Note that it does not set the `max` attribute. + * @param {string=} required Sets `required` validation error key if the value is not entered. + * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to + * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of + * `required` when you want to data-bind to the `required` attribute. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * + * @example + + + +
+ + +
+ + Required! + + Not a valid date! +
+ value = {{example.value | date: "HH:mm:ss"}}
+ myForm.input.$valid = {{myForm.input.$valid}}
+ myForm.input.$error = {{myForm.input.$error}}
+ myForm.$valid = {{myForm.$valid}}
+ myForm.$error.required = {{!!myForm.$error.required}}
+
+
+ + var value = element(by.binding('example.value | date: "HH:mm:ss"')); + var valid = element(by.binding('myForm.input.$valid')); + var input = element(by.model('example.value')); + + // currently protractor/webdriver does not support + // sending keys to all known HTML5 input controls + // for various browsers (https://github.com/angular/protractor/issues/562). + function setInput(val) { + // set the value of the element and force validation. + var scr = "var ipt = document.getElementById('exampleInput'); " + + "ipt.value = '" + val + "';" + + "angular.element(ipt).scope().$apply(function(s) { s.myForm[ipt.name].$setViewValue('" + val + "'); });"; + browser.executeScript(scr); + } + + it('should initialize to model', function() { + expect(value.getText()).toContain('14:57:00'); + expect(valid.getText()).toContain('myForm.input.$valid = true'); + }); + + it('should be invalid if empty', function() { + setInput(''); + expect(value.getText()).toEqual('value ='); + expect(valid.getText()).toContain('myForm.input.$valid = false'); + }); + + it('should be invalid if over max', function() { + setInput('23:59:00'); + expect(value.getText()).toContain(''); + expect(valid.getText()).toContain('myForm.input.$valid = false'); + }); + +
+ */ + 'time': createDateInputType('time', TIME_REGEXP, + createDateParser(TIME_REGEXP, ['HH', 'mm', 'ss', 'sss']), + 'HH:mm:ss.sss'), + + /** + * @ngdoc input + * @name input[week] + * + * @description + * Input with week-of-the-year validation and transformation to Date. In browsers that do not yet support + * the HTML5 week input, a text element will be used. In that case, the text must be entered in a valid ISO-8601 + * week format (yyyy-W##), for example: `2013-W02`. + * + * The model must always be a Date object, otherwise Angular will throw an error. + * Invalid `Date` objects (dates whose `getTime()` is `NaN`) will be rendered as an empty string. + * + * The timezone to be used to read/write the `Date` instance in the model can be defined using + * {@link ng.directive:ngModelOptions ngModelOptions}. By default, this is the timezone of the browser. + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`. + * This must be a valid ISO week format (yyyy-W##). You can also use interpolation inside this + * attribute (e.g. `min="{{minWeek | date:'yyyy-Www'}}"`). Note that `min` will also add + * native HTML5 constraint validation. + * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`. + * This must be a valid ISO week format (yyyy-W##). You can also use interpolation inside this + * attribute (e.g. `max="{{maxWeek | date:'yyyy-Www'}}"`). Note that `max` will also add + * native HTML5 constraint validation. + * @param {(date|string)=} ngMin Sets the `min` validation constraint to the Date / ISO week string + * the `ngMin` expression evaluates to. Note that it does not set the `min` attribute. + * @param {(date|string)=} ngMax Sets the `max` validation constraint to the Date / ISO week string + * the `ngMax` expression evaluates to. Note that it does not set the `max` attribute. + * @param {string=} required Sets `required` validation error key if the value is not entered. + * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to + * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of + * `required` when you want to data-bind to the `required` attribute. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * + * @example + + + +
+ +
+ + Required! + + Not a valid date! +
+ value = {{example.value | date: "yyyy-Www"}}
+ myForm.input.$valid = {{myForm.input.$valid}}
+ myForm.input.$error = {{myForm.input.$error}}
+ myForm.$valid = {{myForm.$valid}}
+ myForm.$error.required = {{!!myForm.$error.required}}
+
+
+ + var value = element(by.binding('example.value | date: "yyyy-Www"')); + var valid = element(by.binding('myForm.input.$valid')); + var input = element(by.model('example.value')); + + // currently protractor/webdriver does not support + // sending keys to all known HTML5 input controls + // for various browsers (https://github.com/angular/protractor/issues/562). + function setInput(val) { + // set the value of the element and force validation. + var scr = "var ipt = document.getElementById('exampleInput'); " + + "ipt.value = '" + val + "';" + + "angular.element(ipt).scope().$apply(function(s) { s.myForm[ipt.name].$setViewValue('" + val + "'); });"; + browser.executeScript(scr); + } + + it('should initialize to model', function() { + expect(value.getText()).toContain('2013-W01'); + expect(valid.getText()).toContain('myForm.input.$valid = true'); + }); + + it('should be invalid if empty', function() { + setInput(''); + expect(value.getText()).toEqual('value ='); + expect(valid.getText()).toContain('myForm.input.$valid = false'); + }); + + it('should be invalid if over max', function() { + setInput('2015-W01'); + expect(value.getText()).toContain(''); + expect(valid.getText()).toContain('myForm.input.$valid = false'); + }); + +
+ */ + 'week': createDateInputType('week', WEEK_REGEXP, weekParser, 'yyyy-Www'), + + /** + * @ngdoc input + * @name input[month] + * + * @description + * Input with month validation and transformation. In browsers that do not yet support + * the HTML5 month input, a text element will be used. In that case, the text must be entered in a valid ISO-8601 + * month format (yyyy-MM), for example: `2009-01`. + * + * The model must always be a Date object, otherwise Angular will throw an error. + * Invalid `Date` objects (dates whose `getTime()` is `NaN`) will be rendered as an empty string. + * If the model is not set to the first of the month, the next view to model update will set it + * to the first of the month. + * + * The timezone to be used to read/write the `Date` instance in the model can be defined using + * {@link ng.directive:ngModelOptions ngModelOptions}. By default, this is the timezone of the browser. + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`. + * This must be a valid ISO month format (yyyy-MM). You can also use interpolation inside this + * attribute (e.g. `min="{{minMonth | date:'yyyy-MM'}}"`). Note that `min` will also add + * native HTML5 constraint validation. + * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`. + * This must be a valid ISO month format (yyyy-MM). You can also use interpolation inside this + * attribute (e.g. `max="{{maxMonth | date:'yyyy-MM'}}"`). Note that `max` will also add + * native HTML5 constraint validation. + * @param {(date|string)=} ngMin Sets the `min` validation constraint to the Date / ISO week string + * the `ngMin` expression evaluates to. Note that it does not set the `min` attribute. + * @param {(date|string)=} ngMax Sets the `max` validation constraint to the Date / ISO week string + * the `ngMax` expression evaluates to. Note that it does not set the `max` attribute. + + * @param {string=} required Sets `required` validation error key if the value is not entered. + * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to + * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of + * `required` when you want to data-bind to the `required` attribute. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * + * @example + + + +
+ + +
+ + Required! + + Not a valid month! +
+ value = {{example.value | date: "yyyy-MM"}}
+ myForm.input.$valid = {{myForm.input.$valid}}
+ myForm.input.$error = {{myForm.input.$error}}
+ myForm.$valid = {{myForm.$valid}}
+ myForm.$error.required = {{!!myForm.$error.required}}
+
+
+ + var value = element(by.binding('example.value | date: "yyyy-MM"')); + var valid = element(by.binding('myForm.input.$valid')); + var input = element(by.model('example.value')); + + // currently protractor/webdriver does not support + // sending keys to all known HTML5 input controls + // for various browsers (https://github.com/angular/protractor/issues/562). + function setInput(val) { + // set the value of the element and force validation. + var scr = "var ipt = document.getElementById('exampleInput'); " + + "ipt.value = '" + val + "';" + + "angular.element(ipt).scope().$apply(function(s) { s.myForm[ipt.name].$setViewValue('" + val + "'); });"; + browser.executeScript(scr); + } + + it('should initialize to model', function() { + expect(value.getText()).toContain('2013-10'); + expect(valid.getText()).toContain('myForm.input.$valid = true'); + }); + + it('should be invalid if empty', function() { + setInput(''); + expect(value.getText()).toEqual('value ='); + expect(valid.getText()).toContain('myForm.input.$valid = false'); + }); + + it('should be invalid if over max', function() { + setInput('2015-01'); + expect(value.getText()).toContain(''); + expect(valid.getText()).toContain('myForm.input.$valid = false'); + }); + +
+ */ + 'month': createDateInputType('month', MONTH_REGEXP, + createDateParser(MONTH_REGEXP, ['yyyy', 'MM']), + 'yyyy-MM'), + + /** + * @ngdoc input + * @name input[number] + * + * @description + * Text input with number validation and transformation. Sets the `number` validation + * error if not a valid number. + * + *
+ * The model must always be of type `number` otherwise Angular will throw an error. + * Be aware that a string containing a number is not enough. See the {@link ngModel:numfmt} + * error docs for more information and an example of how to convert your model if necessary. + *
+ * + * ## Issues with HTML5 constraint validation + * + * In browsers that follow the + * [HTML5 specification](https://html.spec.whatwg.org/multipage/forms.html#number-state-%28type=number%29), + * `input[number]` does not work as expected with {@link ngModelOptions `ngModelOptions.allowInvalid`}. + * If a non-number is entered in the input, the browser will report the value as an empty string, + * which means the view / model values in `ngModel` and subsequently the scope value + * will also be an empty string. + * + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`. + * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`. + * @param {string=} required Sets `required` validation error key if the value is not entered. + * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to + * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of + * `required` when you want to data-bind to the `required` attribute. + * @param {number=} ngMinlength Sets `minlength` validation error key if the value is shorter than + * minlength. + * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than + * maxlength. Setting the attribute to a negative or non-numeric value, allows view values of + * any length. + * @param {string=} pattern Similar to `ngPattern` except that the attribute value is the actual string + * that contains the regular expression body that will be converted to a regular expression + * as in the ngPattern directive. + * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match + * a RegExp found by evaluating the Angular expression given in the attribute value. + * If the expression evaluates to a RegExp object, then this is used directly. + * If the expression evaluates to a string, then it will be converted to a RegExp + * after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to + * `new RegExp('^abc$')`.
+ * **Note:** Avoid using the `g` flag on the RegExp, as it will cause each successive search to + * start at the index of the last search's match, thus not taking the whole input value into + * account. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * + * @example + + + +
+ +
+ + Required! + + Not valid number! +
+ value = {{example.value}}
+ myForm.input.$valid = {{myForm.input.$valid}}
+ myForm.input.$error = {{myForm.input.$error}}
+ myForm.$valid = {{myForm.$valid}}
+ myForm.$error.required = {{!!myForm.$error.required}}
+
+
+ + var value = element(by.binding('example.value')); + var valid = element(by.binding('myForm.input.$valid')); + var input = element(by.model('example.value')); + + it('should initialize to model', function() { + expect(value.getText()).toContain('12'); + expect(valid.getText()).toContain('true'); + }); + + it('should be invalid if empty', function() { + input.clear(); + input.sendKeys(''); + expect(value.getText()).toEqual('value ='); + expect(valid.getText()).toContain('false'); + }); + + it('should be invalid if over max', function() { + input.clear(); + input.sendKeys('123'); + expect(value.getText()).toEqual('value ='); + expect(valid.getText()).toContain('false'); + }); + +
+ */ + 'number': numberInputType, + + + /** + * @ngdoc input + * @name input[url] + * + * @description + * Text input with URL validation. Sets the `url` validation error key if the content is not a + * valid URL. + * + *
+ * **Note:** `input[url]` uses a regex to validate urls that is derived from the regex + * used in Chromium. If you need stricter validation, you can use `ng-pattern` or modify + * the built-in validators (see the {@link guide/forms Forms guide}) + *
+ * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} required Sets `required` validation error key if the value is not entered. + * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to + * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of + * `required` when you want to data-bind to the `required` attribute. + * @param {number=} ngMinlength Sets `minlength` validation error key if the value is shorter than + * minlength. + * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than + * maxlength. Setting the attribute to a negative or non-numeric value, allows view values of + * any length. + * @param {string=} pattern Similar to `ngPattern` except that the attribute value is the actual string + * that contains the regular expression body that will be converted to a regular expression + * as in the ngPattern directive. + * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match + * a RegExp found by evaluating the Angular expression given in the attribute value. + * If the expression evaluates to a RegExp object, then this is used directly. + * If the expression evaluates to a string, then it will be converted to a RegExp + * after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to + * `new RegExp('^abc$')`.
+ * **Note:** Avoid using the `g` flag on the RegExp, as it will cause each successive search to + * start at the index of the last search's match, thus not taking the whole input value into + * account. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * + * @example + + + +
+
+ + var text = element(by.binding('url.text')); + var valid = element(by.binding('myForm.input.$valid')); + var input = element(by.model('url.text')); + + it('should initialize to model', function() { + expect(text.getText()).toContain('http://google.com'); + expect(valid.getText()).toContain('true'); + }); + + it('should be invalid if empty', function() { + input.clear(); + input.sendKeys(''); + + expect(text.getText()).toEqual('text ='); + expect(valid.getText()).toContain('false'); + }); + + it('should be invalid if not url', function() { + input.clear(); + input.sendKeys('box'); + + expect(valid.getText()).toContain('false'); + }); + +
+ */ + 'url': urlInputType, + + + /** + * @ngdoc input + * @name input[email] + * + * @description + * Text input with email validation. Sets the `email` validation error key if not a valid email + * address. + * + *
+ * **Note:** `input[email]` uses a regex to validate email addresses that is derived from the regex + * used in Chromium. If you need stricter validation (e.g. requiring a top-level domain), you can + * use `ng-pattern` or modify the built-in validators (see the {@link guide/forms Forms guide}) + *
+ * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} required Sets `required` validation error key if the value is not entered. + * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to + * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of + * `required` when you want to data-bind to the `required` attribute. + * @param {number=} ngMinlength Sets `minlength` validation error key if the value is shorter than + * minlength. + * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than + * maxlength. Setting the attribute to a negative or non-numeric value, allows view values of + * any length. + * @param {string=} pattern Similar to `ngPattern` except that the attribute value is the actual string + * that contains the regular expression body that will be converted to a regular expression + * as in the ngPattern directive. + * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match + * a RegExp found by evaluating the Angular expression given in the attribute value. + * If the expression evaluates to a RegExp object, then this is used directly. + * If the expression evaluates to a string, then it will be converted to a RegExp + * after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to + * `new RegExp('^abc$')`.
+ * **Note:** Avoid using the `g` flag on the RegExp, as it will cause each successive search to + * start at the index of the last search's match, thus not taking the whole input value into + * account. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * + * @example + + + +
+ +
+ + Required! + + Not valid email! +
+ text = {{email.text}}
+ myForm.input.$valid = {{myForm.input.$valid}}
+ myForm.input.$error = {{myForm.input.$error}}
+ myForm.$valid = {{myForm.$valid}}
+ myForm.$error.required = {{!!myForm.$error.required}}
+ myForm.$error.email = {{!!myForm.$error.email}}
+
+
+ + var text = element(by.binding('email.text')); + var valid = element(by.binding('myForm.input.$valid')); + var input = element(by.model('email.text')); + + it('should initialize to model', function() { + expect(text.getText()).toContain('me@example.com'); + expect(valid.getText()).toContain('true'); + }); + + it('should be invalid if empty', function() { + input.clear(); + input.sendKeys(''); + expect(text.getText()).toEqual('text ='); + expect(valid.getText()).toContain('false'); + }); + + it('should be invalid if not email', function() { + input.clear(); + input.sendKeys('xxx'); + + expect(valid.getText()).toContain('false'); + }); + +
+ */ + 'email': emailInputType, + + + /** + * @ngdoc input + * @name input[radio] + * + * @description + * HTML radio button. + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string} value The value to which the `ngModel` expression should be set when selected. + * Note that `value` only supports `string` values, i.e. the scope model needs to be a string, + * too. Use `ngValue` if you need complex models (`number`, `object`, ...). + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * @param {string} ngValue Angular expression to which `ngModel` will be be set when the radio + * is selected. Should be used instead of the `value` attribute if you need + * a non-string `ngModel` (`boolean`, `array`, ...). + * + * @example + + + +
+
+
+
+ color = {{color.name | json}}
+
+ Note that `ng-value="specialValue"` sets radio item's value to be the value of `$scope.specialValue`. +
+ + it('should change state', function() { + var color = element(by.binding('color.name')); + + expect(color.getText()).toContain('blue'); + + element.all(by.model('color.name')).get(0).click(); + + expect(color.getText()).toContain('red'); + }); + +
+ */ + 'radio': radioInputType, + + + /** + * @ngdoc input + * @name input[checkbox] + * + * @description + * HTML checkbox. + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {expression=} ngTrueValue The value to which the expression should be set when selected. + * @param {expression=} ngFalseValue The value to which the expression should be set when not selected. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * + * @example + + + +
+
+
+ value1 = {{checkboxModel.value1}}
+ value2 = {{checkboxModel.value2}}
+
+
+ + it('should change state', function() { + var value1 = element(by.binding('checkboxModel.value1')); + var value2 = element(by.binding('checkboxModel.value2')); + + expect(value1.getText()).toContain('true'); + expect(value2.getText()).toContain('YES'); + + element(by.model('checkboxModel.value1')).click(); + element(by.model('checkboxModel.value2')).click(); + + expect(value1.getText()).toContain('false'); + expect(value2.getText()).toContain('NO'); + }); + +
+ */ + 'checkbox': checkboxInputType, + + 'hidden': noop, + 'button': noop, + 'submit': noop, + 'reset': noop, + 'file': noop +}; + +function stringBasedInputType(ctrl) { + ctrl.$formatters.push(function(value) { + return ctrl.$isEmpty(value) ? value : value.toString(); + }); +} + +function textInputType(scope, element, attr, ctrl, $sniffer, $browser) { + baseInputType(scope, element, attr, ctrl, $sniffer, $browser); + stringBasedInputType(ctrl); +} + +function baseInputType(scope, element, attr, ctrl, $sniffer, $browser) { + var type = lowercase(element[0].type); + + // In composition mode, users are still inputing intermediate text buffer, + // hold the listener until composition is done. + // More about composition events: https://developer.mozilla.org/en-US/docs/Web/API/CompositionEvent + if (!$sniffer.android) { + var composing = false; + + element.on('compositionstart', function(data) { + composing = true; + }); + + element.on('compositionend', function() { + composing = false; + listener(); + }); + } + + var timeout; + + var listener = function(ev) { + if (timeout) { + $browser.defer.cancel(timeout); + timeout = null; + } + if (composing) return; + var value = element.val(), + event = ev && ev.type; + + // By default we will trim the value + // If the attribute ng-trim exists we will avoid trimming + // If input type is 'password', the value is never trimmed + if (type !== 'password' && (!attr.ngTrim || attr.ngTrim !== 'false')) { + value = trim(value); + } + + // If a control is suffering from bad input (due to native validators), browsers discard its + // value, so it may be necessary to revalidate (by calling $setViewValue again) even if the + // control's value is the same empty value twice in a row. + if (ctrl.$viewValue !== value || (value === '' && ctrl.$$hasNativeValidators)) { + ctrl.$setViewValue(value, event); + } + }; + + // if the browser does support "input" event, we are fine - except on IE9 which doesn't fire the + // input event on backspace, delete or cut + if ($sniffer.hasEvent('input')) { + element.on('input', listener); + } else { + var deferListener = function(ev, input, origValue) { + if (!timeout) { + timeout = $browser.defer(function() { + timeout = null; + if (!input || input.value !== origValue) { + listener(ev); + } + }); + } + }; + + element.on('keydown', function(event) { + var key = event.keyCode; + + // ignore + // command modifiers arrows + if (key === 91 || (15 < key && key < 19) || (37 <= key && key <= 40)) return; + + deferListener(event, this, this.value); + }); + + // if user modifies input value using context menu in IE, we need "paste" and "cut" events to catch it + if ($sniffer.hasEvent('paste')) { + element.on('paste cut', deferListener); + } + } + + // if user paste into input using mouse on older browser + // or form autocomplete on newer browser, we need "change" event to catch it + element.on('change', listener); + + // Some native input types (date-family) have the ability to change validity without + // firing any input/change events. + // For these event types, when native validators are present and the browser supports the type, + // check for validity changes on various DOM events. + if (PARTIAL_VALIDATION_TYPES[type] && ctrl.$$hasNativeValidators && type === attr.type) { + element.on(PARTIAL_VALIDATION_EVENTS, function(ev) { + if (!timeout) { + var validity = this[VALIDITY_STATE_PROPERTY]; + var origBadInput = validity.badInput; + var origTypeMismatch = validity.typeMismatch; + timeout = $browser.defer(function() { + timeout = null; + if (validity.badInput !== origBadInput || validity.typeMismatch !== origTypeMismatch) { + listener(ev); + } + }); + } + }); + } + + ctrl.$render = function() { + // Workaround for Firefox validation #12102. + var value = ctrl.$isEmpty(ctrl.$viewValue) ? '' : ctrl.$viewValue; + if (element.val() !== value) { + element.val(value); + } + }; +} + +function weekParser(isoWeek, existingDate) { + if (isDate(isoWeek)) { + return isoWeek; + } + + if (isString(isoWeek)) { + WEEK_REGEXP.lastIndex = 0; + var parts = WEEK_REGEXP.exec(isoWeek); + if (parts) { + var year = +parts[1], + week = +parts[2], + hours = 0, + minutes = 0, + seconds = 0, + milliseconds = 0, + firstThurs = getFirstThursdayOfYear(year), + addDays = (week - 1) * 7; + + if (existingDate) { + hours = existingDate.getHours(); + minutes = existingDate.getMinutes(); + seconds = existingDate.getSeconds(); + milliseconds = existingDate.getMilliseconds(); + } + + return new Date(year, 0, firstThurs.getDate() + addDays, hours, minutes, seconds, milliseconds); + } + } + + return NaN; +} + +function createDateParser(regexp, mapping) { + return function(iso, date) { + var parts, map; + + if (isDate(iso)) { + return iso; + } + + if (isString(iso)) { + // When a date is JSON'ified to wraps itself inside of an extra + // set of double quotes. This makes the date parsing code unable + // to match the date string and parse it as a date. + if (iso.charAt(0) == '"' && iso.charAt(iso.length - 1) == '"') { + iso = iso.substring(1, iso.length - 1); + } + if (ISO_DATE_REGEXP.test(iso)) { + return new Date(iso); + } + regexp.lastIndex = 0; + parts = regexp.exec(iso); + + if (parts) { + parts.shift(); + if (date) { + map = { + yyyy: date.getFullYear(), + MM: date.getMonth() + 1, + dd: date.getDate(), + HH: date.getHours(), + mm: date.getMinutes(), + ss: date.getSeconds(), + sss: date.getMilliseconds() / 1000 + }; + } else { + map = { yyyy: 1970, MM: 1, dd: 1, HH: 0, mm: 0, ss: 0, sss: 0 }; + } + + forEach(parts, function(part, index) { + if (index < mapping.length) { + map[mapping[index]] = +part; + } + }); + return new Date(map.yyyy, map.MM - 1, map.dd, map.HH, map.mm, map.ss || 0, map.sss * 1000 || 0); + } + } + + return NaN; + }; +} + +function createDateInputType(type, regexp, parseDate, format) { + return function dynamicDateInputType(scope, element, attr, ctrl, $sniffer, $browser, $filter) { + badInputChecker(scope, element, attr, ctrl); + baseInputType(scope, element, attr, ctrl, $sniffer, $browser); + var timezone = ctrl && ctrl.$options && ctrl.$options.timezone; + var previousDate; + + ctrl.$$parserName = type; + ctrl.$parsers.push(function(value) { + if (ctrl.$isEmpty(value)) return null; + if (regexp.test(value)) { + // Note: We cannot read ctrl.$modelValue, as there might be a different + // parser/formatter in the processing chain so that the model + // contains some different data format! + var parsedDate = parseDate(value, previousDate); + if (timezone) { + parsedDate = convertTimezoneToLocal(parsedDate, timezone); + } + return parsedDate; + } + return undefined; + }); + + ctrl.$formatters.push(function(value) { + if (value && !isDate(value)) { + throw ngModelMinErr('datefmt', 'Expected `{0}` to be a date', value); + } + if (isValidDate(value)) { + previousDate = value; + if (previousDate && timezone) { + previousDate = convertTimezoneToLocal(previousDate, timezone, true); + } + return $filter('date')(value, format, timezone); + } else { + previousDate = null; + return ''; + } + }); + + if (isDefined(attr.min) || attr.ngMin) { + var minVal; + ctrl.$validators.min = function(value) { + return !isValidDate(value) || isUndefined(minVal) || parseDate(value) >= minVal; + }; + attr.$observe('min', function(val) { + minVal = parseObservedDateValue(val); + ctrl.$validate(); + }); + } + + if (isDefined(attr.max) || attr.ngMax) { + var maxVal; + ctrl.$validators.max = function(value) { + return !isValidDate(value) || isUndefined(maxVal) || parseDate(value) <= maxVal; + }; + attr.$observe('max', function(val) { + maxVal = parseObservedDateValue(val); + ctrl.$validate(); + }); + } + + function isValidDate(value) { + // Invalid Date: getTime() returns NaN + return value && !(value.getTime && value.getTime() !== value.getTime()); + } + + function parseObservedDateValue(val) { + return isDefined(val) && !isDate(val) ? parseDate(val) || undefined : val; + } + }; +} + +function badInputChecker(scope, element, attr, ctrl) { + var node = element[0]; + var nativeValidation = ctrl.$$hasNativeValidators = isObject(node.validity); + if (nativeValidation) { + ctrl.$parsers.push(function(value) { + var validity = element.prop(VALIDITY_STATE_PROPERTY) || {}; + // Detect bug in FF35 for input[email] (https://bugzilla.mozilla.org/show_bug.cgi?id=1064430): + // - also sets validity.badInput (should only be validity.typeMismatch). + // - see http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#e-mail-state-(type=email) + // - can ignore this case as we can still read out the erroneous email... + return validity.badInput && !validity.typeMismatch ? undefined : value; + }); + } +} + +function numberInputType(scope, element, attr, ctrl, $sniffer, $browser) { + badInputChecker(scope, element, attr, ctrl); + baseInputType(scope, element, attr, ctrl, $sniffer, $browser); + + ctrl.$$parserName = 'number'; + ctrl.$parsers.push(function(value) { + if (ctrl.$isEmpty(value)) return null; + if (NUMBER_REGEXP.test(value)) return parseFloat(value); + return undefined; + }); + + ctrl.$formatters.push(function(value) { + if (!ctrl.$isEmpty(value)) { + if (!isNumber(value)) { + throw ngModelMinErr('numfmt', 'Expected `{0}` to be a number', value); + } + value = value.toString(); + } + return value; + }); + + if (isDefined(attr.min) || attr.ngMin) { + var minVal; + ctrl.$validators.min = function(value) { + return ctrl.$isEmpty(value) || isUndefined(minVal) || value >= minVal; + }; + + attr.$observe('min', function(val) { + if (isDefined(val) && !isNumber(val)) { + val = parseFloat(val, 10); + } + minVal = isNumber(val) && !isNaN(val) ? val : undefined; + // TODO(matsko): implement validateLater to reduce number of validations + ctrl.$validate(); + }); + } + + if (isDefined(attr.max) || attr.ngMax) { + var maxVal; + ctrl.$validators.max = function(value) { + return ctrl.$isEmpty(value) || isUndefined(maxVal) || value <= maxVal; + }; + + attr.$observe('max', function(val) { + if (isDefined(val) && !isNumber(val)) { + val = parseFloat(val, 10); + } + maxVal = isNumber(val) && !isNaN(val) ? val : undefined; + // TODO(matsko): implement validateLater to reduce number of validations + ctrl.$validate(); + }); + } +} + +function urlInputType(scope, element, attr, ctrl, $sniffer, $browser) { + // Note: no badInputChecker here by purpose as `url` is only a validation + // in browsers, i.e. we can always read out input.value even if it is not valid! + baseInputType(scope, element, attr, ctrl, $sniffer, $browser); + stringBasedInputType(ctrl); + + ctrl.$$parserName = 'url'; + ctrl.$validators.url = function(modelValue, viewValue) { + var value = modelValue || viewValue; + return ctrl.$isEmpty(value) || URL_REGEXP.test(value); + }; +} + +function emailInputType(scope, element, attr, ctrl, $sniffer, $browser) { + // Note: no badInputChecker here by purpose as `url` is only a validation + // in browsers, i.e. we can always read out input.value even if it is not valid! + baseInputType(scope, element, attr, ctrl, $sniffer, $browser); + stringBasedInputType(ctrl); + + ctrl.$$parserName = 'email'; + ctrl.$validators.email = function(modelValue, viewValue) { + var value = modelValue || viewValue; + return ctrl.$isEmpty(value) || EMAIL_REGEXP.test(value); + }; +} + +function radioInputType(scope, element, attr, ctrl) { + // make the name unique, if not defined + if (isUndefined(attr.name)) { + element.attr('name', nextUid()); + } + + var listener = function(ev) { + if (element[0].checked) { + ctrl.$setViewValue(attr.value, ev && ev.type); + } + }; + + element.on('click', listener); + + ctrl.$render = function() { + var value = attr.value; + element[0].checked = (value == ctrl.$viewValue); + }; + + attr.$observe('value', ctrl.$render); +} + +function parseConstantExpr($parse, context, name, expression, fallback) { + var parseFn; + if (isDefined(expression)) { + parseFn = $parse(expression); + if (!parseFn.constant) { + throw ngModelMinErr('constexpr', 'Expected constant expression for `{0}`, but saw ' + + '`{1}`.', name, expression); + } + return parseFn(context); + } + return fallback; +} + +function checkboxInputType(scope, element, attr, ctrl, $sniffer, $browser, $filter, $parse) { + var trueValue = parseConstantExpr($parse, scope, 'ngTrueValue', attr.ngTrueValue, true); + var falseValue = parseConstantExpr($parse, scope, 'ngFalseValue', attr.ngFalseValue, false); + + var listener = function(ev) { + ctrl.$setViewValue(element[0].checked, ev && ev.type); + }; + + element.on('click', listener); + + ctrl.$render = function() { + element[0].checked = ctrl.$viewValue; + }; + + // Override the standard `$isEmpty` because the $viewValue of an empty checkbox is always set to `false` + // This is because of the parser below, which compares the `$modelValue` with `trueValue` to convert + // it to a boolean. + ctrl.$isEmpty = function(value) { + return value === false; + }; + + ctrl.$formatters.push(function(value) { + return equals(value, trueValue); + }); + + ctrl.$parsers.push(function(value) { + return value ? trueValue : falseValue; + }); +} + + +/** + * @ngdoc directive + * @name textarea + * @restrict E + * + * @description + * HTML textarea element control with angular data-binding. The data-binding and validation + * properties of this element are exactly the same as those of the + * {@link ng.directive:input input element}. + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} required Sets `required` validation error key if the value is not entered. + * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to + * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of + * `required` when you want to data-bind to the `required` attribute. + * @param {number=} ngMinlength Sets `minlength` validation error key if the value is shorter than + * minlength. + * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than + * maxlength. Setting the attribute to a negative or non-numeric value, allows view values of any + * length. + * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match + * a RegExp found by evaluating the Angular expression given in the attribute value. + * If the expression evaluates to a RegExp object, then this is used directly. + * If the expression evaluates to a string, then it will be converted to a RegExp + * after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to + * `new RegExp('^abc$')`.
+ * **Note:** Avoid using the `g` flag on the RegExp, as it will cause each successive search to + * start at the index of the last search's match, thus not taking the whole input value into + * account. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * @param {boolean=} [ngTrim=true] If set to false Angular will not automatically trim the input. + */ + + +/** + * @ngdoc directive + * @name input + * @restrict E + * + * @description + * HTML input element control. When used together with {@link ngModel `ngModel`}, it provides data-binding, + * input state control, and validation. + * Input control follows HTML5 input types and polyfills the HTML5 validation behavior for older browsers. + * + *
+ * **Note:** Not every feature offered is available for all input types. + * Specifically, data binding and event handling via `ng-model` is unsupported for `input[file]`. + *
+ * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} required Sets `required` validation error key if the value is not entered. + * @param {boolean=} ngRequired Sets `required` attribute if set to true + * @param {number=} ngMinlength Sets `minlength` validation error key if the value is shorter than + * minlength. + * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than + * maxlength. Setting the attribute to a negative or non-numeric value, allows view values of any + * length. + * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match + * a RegExp found by evaluating the Angular expression given in the attribute value. + * If the expression evaluates to a RegExp object, then this is used directly. + * If the expression evaluates to a string, then it will be converted to a RegExp + * after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to + * `new RegExp('^abc$')`.
+ * **Note:** Avoid using the `g` flag on the RegExp, as it will cause each successive search to + * start at the index of the last search's match, thus not taking the whole input value into + * account. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * @param {boolean=} [ngTrim=true] If set to false Angular will not automatically trim the input. + * This parameter is ignored for input[type=password] controls, which will never trim the + * input. + * + * @example + + + +
+
+ +
+ + Required! +
+ +
+ + Too short! + + Too long! +
+
+
+ user = {{user}}
+ myForm.userName.$valid = {{myForm.userName.$valid}}
+ myForm.userName.$error = {{myForm.userName.$error}}
+ myForm.lastName.$valid = {{myForm.lastName.$valid}}
+ myForm.lastName.$error = {{myForm.lastName.$error}}
+ myForm.$valid = {{myForm.$valid}}
+ myForm.$error.required = {{!!myForm.$error.required}}
+ myForm.$error.minlength = {{!!myForm.$error.minlength}}
+ myForm.$error.maxlength = {{!!myForm.$error.maxlength}}
+
+
+ + var user = element(by.exactBinding('user')); + var userNameValid = element(by.binding('myForm.userName.$valid')); + var lastNameValid = element(by.binding('myForm.lastName.$valid')); + var lastNameError = element(by.binding('myForm.lastName.$error')); + var formValid = element(by.binding('myForm.$valid')); + var userNameInput = element(by.model('user.name')); + var userLastInput = element(by.model('user.last')); + + it('should initialize to model', function() { + expect(user.getText()).toContain('{"name":"guest","last":"visitor"}'); + expect(userNameValid.getText()).toContain('true'); + expect(formValid.getText()).toContain('true'); + }); + + it('should be invalid if empty when required', function() { + userNameInput.clear(); + userNameInput.sendKeys(''); + + expect(user.getText()).toContain('{"last":"visitor"}'); + expect(userNameValid.getText()).toContain('false'); + expect(formValid.getText()).toContain('false'); + }); + + it('should be valid if empty when min length is set', function() { + userLastInput.clear(); + userLastInput.sendKeys(''); + + expect(user.getText()).toContain('{"name":"guest","last":""}'); + expect(lastNameValid.getText()).toContain('true'); + expect(formValid.getText()).toContain('true'); + }); + + it('should be invalid if less than required min length', function() { + userLastInput.clear(); + userLastInput.sendKeys('xx'); + + expect(user.getText()).toContain('{"name":"guest"}'); + expect(lastNameValid.getText()).toContain('false'); + expect(lastNameError.getText()).toContain('minlength'); + expect(formValid.getText()).toContain('false'); + }); + + it('should be invalid if longer than max length', function() { + userLastInput.clear(); + userLastInput.sendKeys('some ridiculously long name'); + + expect(user.getText()).toContain('{"name":"guest"}'); + expect(lastNameValid.getText()).toContain('false'); + expect(lastNameError.getText()).toContain('maxlength'); + expect(formValid.getText()).toContain('false'); + }); + +
+ */ +var inputDirective = ['$browser', '$sniffer', '$filter', '$parse', + function($browser, $sniffer, $filter, $parse) { + return { + restrict: 'E', + require: ['?ngModel'], + link: { + pre: function(scope, element, attr, ctrls) { + if (ctrls[0]) { + (inputType[lowercase(attr.type)] || inputType.text)(scope, element, attr, ctrls[0], $sniffer, + $browser, $filter, $parse); + } + } + } + }; +}]; + + + +var CONSTANT_VALUE_REGEXP = /^(true|false|\d+)$/; +/** + * @ngdoc directive + * @name ngValue + * + * @description + * Binds the given expression to the value of `