From 84005ed3323bddcaa34a51ece2845100e0b39393 Mon Sep 17 00:00:00 2001 From: CoderSherlock Date: Tue, 16 Aug 2016 20:28:32 -0400 Subject: [PATCH] I_changed_another_another_theme --- bower.json | 14 - bower_components/font-roboto/.bower.json | 31 - bower_components/font-roboto/README.md | 1 - bower_components/font-roboto/bower.json | 22 - bower_components/font-roboto/roboto.html | 10 - .../iron-a11y-keys-behavior/.bower.json | 42 - .../iron-a11y-keys-behavior/.gitignore | 1 - .../iron-a11y-keys-behavior/README.md | 15 - .../iron-a11y-keys-behavior/bower.json | 32 - .../iron-a11y-keys-behavior/demo/index.html | 24 - .../demo/x-key-aware.html | 91 - .../iron-a11y-keys-behavior/index.html | 24 - .../iron-a11y-keys-behavior.html | 421 - .../test/basic-test.html | 248 - .../iron-a11y-keys-behavior/test/index.html | 29 - bower_components/iron-behaviors/.bower.json | 40 - bower_components/iron-behaviors/.gitignore | 1 - bower_components/iron-behaviors/README.md | 4 - bower_components/iron-behaviors/bower.json | 30 - .../iron-behaviors/demo/index.html | 47 - .../iron-behaviors/demo/simple-button.html | 70 - bower_components/iron-behaviors/index.html | 27 - .../iron-behaviors/iron-button-state.html | 186 - .../iron-behaviors/iron-control-state.html | 108 - .../iron-behaviors/test/active-state.html | 154 - .../iron-behaviors/test/disabled-state.html | 85 - .../iron-behaviors/test/focused-state.html | 120 - .../iron-behaviors/test/index.html | 25 - .../iron-behaviors/test/test-elements.html | 66 - bower_components/iron-flex-layout/.bower.json | 36 - bower_components/iron-flex-layout/.gitignore | 2 - bower_components/iron-flex-layout/README.md | 4 - bower_components/iron-flex-layout/bower.json | 26 - .../classes/iron-flex-layout.html | 307 - .../classes/iron-shadow-flex-layout.html | 302 - .../iron-flex-layout/demo/index.html | 42 - .../iron-flex-layout/demo/x-app.html | 118 - .../iron-flex-layout/iron-flex-layout.html | 313 - bower_components/iron-icon/.bower.json | 43 - bower_components/iron-icon/.gitignore | 1 - bower_components/iron-icon/README.md | 56 - bower_components/iron-icon/bower.json | 33 - bower_components/iron-icon/demo/index.html | 48 - bower_components/iron-icon/demo/location.png | Bin 324 -> 0 bytes bower_components/iron-icon/hero.svg | 19 - bower_components/iron-icon/index.html | 26 - bower_components/iron-icon/iron-icon.html | 179 - bower_components/iron-icon/test/index.html | 31 - .../iron-icon/test/iron-icon.html | 120 - bower_components/iron-icons/.bower.json | 46 - bower_components/iron-icons/.gitignore | 3 - bower_components/iron-icons/README.md | 6 - bower_components/iron-icons/av-icons.html | 73 - bower_components/iron-icons/bower.json | 37 - .../iron-icons/communication-icons.html | 59 - bower_components/iron-icons/demo/index.html | 132 - bower_components/iron-icons/device-icons.html | 94 - bower_components/iron-icons/editor-icons.html | 70 - .../iron-icons/hardware-icons.html | 61 - bower_components/iron-icons/hero.svg | 35 - bower_components/iron-icons/image-icons.html | 164 - bower_components/iron-icons/index.html | 25 - bower_components/iron-icons/iron-icons.html | 303 - bower_components/iron-icons/maps-icons.html | 71 - .../iron-icons/notification-icons.html | 62 - bower_components/iron-icons/social-icons.html | 40 - bower_components/iron-iconset-svg/.bower.json | 41 - bower_components/iron-iconset-svg/.gitignore | 1 - bower_components/iron-iconset-svg/README.md | 4 - bower_components/iron-iconset-svg/bower.json | 31 - .../iron-iconset-svg/demo/index.html | 65 - .../demo/svg-sample-icons.html | 69 - bower_components/iron-iconset-svg/index.html | 26 - .../iron-iconset-svg/iron-iconset-svg.html | 192 - .../iron-iconset-svg/test/index.html | 30 - .../test/iron-iconset-svg.html | 107 - bower_components/iron-image/.bower.json | 40 - bower_components/iron-image/.gitignore | 1 - bower_components/iron-image/README.md | 60 - bower_components/iron-image/bower.json | 30 - bower_components/iron-image/demo/index.html | 183 - bower_components/iron-image/demo/polymer.svg | 175 - bower_components/iron-image/index.html | 24 - bower_components/iron-image/iron-image.html | 354 - bower_components/iron-image/test/index.html | 25 - .../iron-image/test/iron-image.html | 78 - bower_components/iron-media-query/.bower.json | 40 - bower_components/iron-media-query/.gitignore | 1 - bower_components/iron-media-query/README.md | 11 - bower_components/iron-media-query/bower.json | 31 - .../iron-media-query/demo/index.html | 45 - bower_components/iron-media-query/hero.svg | 29 - bower_components/iron-media-query/index.html | 29 - .../iron-media-query/iron-media-query.html | 77 - .../iron-media-query/test/basic.html | 71 - .../iron-media-query/test/index.html | 30 - .../iron-menu-behavior/.bower.json | 41 - .../iron-menu-behavior/.gitignore | 1 - bower_components/iron-menu-behavior/README.md | 3 - .../iron-menu-behavior/bower.json | 32 - .../iron-menu-behavior/demo/index.html | 100 - .../iron-menu-behavior/demo/simple-menu.html | 50 - .../demo/simple-menubar.html | 54 - .../iron-menu-behavior/index.html | 30 - .../iron-menu-behavior.html | 214 - .../iron-menubar-behavior.html | 65 - .../iron-menu-behavior/test/index.html | 35 - .../test/iron-menu-behavior.html | 108 - .../test/iron-menubar-behavior.html | 108 - .../iron-menu-behavior/test/test-menu.html | 40 - .../iron-menu-behavior/test/test-menubar.html | 40 - bower_components/iron-meta/.bower.json | 38 - bower_components/iron-meta/.gitignore | 1 - bower_components/iron-meta/README.md | 46 - bower_components/iron-meta/bower.json | 28 - bower_components/iron-meta/demo/index.html | 46 - bower_components/iron-meta/hero.svg | 33 - bower_components/iron-meta/index.html | 27 - bower_components/iron-meta/iron-meta.html | 317 - bower_components/iron-meta/test/basic.html | 48 - bower_components/iron-meta/test/index.html | 30 - .../iron-meta/test/iron-meta.html | 186 - .../iron-resizable-behavior/.bower.json | 40 - .../iron-resizable-behavior/.gitignore | 1 - .../iron-resizable-behavior/README.md | 16 - .../iron-resizable-behavior/bower.json | 30 - .../iron-resizable-behavior/demo/index.html | 29 - .../demo/src/x-app.html | 114 - .../iron-resizable-behavior/index.html | 25 - .../iron-resizable-behavior.html | 193 - .../iron-resizable-behavior/test/basic.html | 263 - .../iron-resizable-behavior/test/index.html | 32 - .../test/iron-resizable-behavior.html | 87 - .../test/test-elements.html | 193 - bower_components/iron-selector/.bower.json | 41 - bower_components/iron-selector/.gitignore | 2 - bower_components/iron-selector/README.md | 50 - bower_components/iron-selector/bower.json | 31 - .../iron-selector/demo/index.html | 66 - bower_components/iron-selector/index.html | 28 - .../iron-selector/iron-multi-selectable.html | 120 - .../iron-selector/iron-selectable.html | 307 - .../iron-selector/iron-selection.html | 115 - .../iron-selector/iron-selector.html | 71 - .../iron-selector/test/activate-event.html | 138 - .../iron-selector/test/basic.html | 150 - .../iron-selector/test/content-element.html | 43 - .../iron-selector/test/content.html | 168 - .../iron-selector/test/index.html | 36 - .../iron-selector/test/multi.html | 135 - .../iron-selector/test/next-previous.html | 134 - .../test/selected-attribute.html | 72 - .../iron-selector/test/template-repeat.html | 110 - bower_components/paper-behaviors/.bower.json | 48 - bower_components/paper-behaviors/.gitignore | 1 - bower_components/paper-behaviors/README.md | 4 - bower_components/paper-behaviors/bower.json | 39 - .../paper-behaviors/demo/index.html | 57 - .../paper-behaviors/demo/paper-button.html | 71 - .../demo/paper-radio-button.html | 116 - bower_components/paper-behaviors/index.html | 26 - .../paper-button-behavior.html | 56 - .../paper-inky-focus-behavior.html | 44 - .../paper-behaviors/test/index.html | 26 - .../test/paper-button-behavior.html | 82 - .../test/paper-radio-button-behavior.html | 62 - .../paper-behaviors/test/test-button.html | 34 - .../test/test-radio-button.html | 41 - .../paper-drawer-panel/.bower.json | 42 - .../paper-drawer-panel/.gitignore | 1 - bower_components/paper-drawer-panel/README.md | 71 - .../paper-drawer-panel/bower.json | 33 - .../paper-drawer-panel/demo/index.html | 85 - bower_components/paper-drawer-panel/hero.svg | 21 - .../paper-drawer-panel/index.html | 29 - .../paper-drawer-panel/paper-drawer-panel.css | 142 - .../paper-drawer-panel.html | 591 -- bower_components/paper-fab/.bower.json | 48 - bower_components/paper-fab/.gitignore | 1 - bower_components/paper-fab/README.md | 44 - bower_components/paper-fab/bower.json | 39 - bower_components/paper-fab/demo/index.html | 97 - bower_components/paper-fab/index.html | 24 - bower_components/paper-fab/paper-fab.html | 175 - bower_components/paper-fab/test/a11y.html | 71 - bower_components/paper-fab/test/basic.html | 76 - bower_components/paper-fab/test/index.html | 26 - .../paper-icon-button/.bower.json | 43 - bower_components/paper-icon-button/.gitignore | 1 - bower_components/paper-icon-button/README.md | 49 - bower_components/paper-icon-button/bower.json | 33 - .../paper-icon-button/demo/index.html | 154 - bower_components/paper-icon-button/index.html | 23 - .../paper-icon-button/paper-icon-button.html | 156 - .../paper-icon-button/test/a11y.html | 94 - .../paper-icon-button/test/basic.html | 77 - .../paper-icon-button/test/index.html | 26 - bower_components/paper-item/.bower.json | 49 - bower_components/paper-item/.gitignore | 1 - bower_components/paper-item/README.md | 4 - bower_components/paper-item/all-imports.html | 13 - bower_components/paper-item/bower.json | 40 - bower_components/paper-item/demo/index.html | 285 - bower_components/paper-item/index.html | 30 - .../paper-item/paper-icon-item.html | 86 - .../paper-item/paper-item-body.html | 93 - .../paper-item/paper-item-shared.css | 19 - bower_components/paper-item/paper-item.html | 95 - bower_components/paper-item/test/index.html | 34 - .../paper-item/test/paper-item.html | 66 - bower_components/paper-material/.bower.json | 45 - bower_components/paper-material/.gitignore | 1 - bower_components/paper-material/README.md | 13 - bower_components/paper-material/bower.json | 36 - .../paper-material/demo/index.html | 113 - bower_components/paper-material/index.html | 30 - .../paper-material/paper-material.html | 98 - .../paper-material/test/index.html | 25 - .../paper-material/test/paper-material.html | 92 - bower_components/paper-menu/.bower.json | 41 - bower_components/paper-menu/.gitignore | 1 - bower_components/paper-menu/README.md | 3 - bower_components/paper-menu/bower.json | 32 - bower_components/paper-menu/demo/index.html | 81 - bower_components/paper-menu/hero.svg | 35 - bower_components/paper-menu/index.html | 30 - bower_components/paper-menu/paper-menu.html | 133 - bower_components/paper-menu/test/index.html | 34 - .../paper-menu/test/paper-menu.html | 67 - bower_components/paper-ripple/.bower.json | 39 - bower_components/paper-ripple/.gitignore | 1 - bower_components/paper-ripple/README.md | 65 - bower_components/paper-ripple/bower.json | 29 - bower_components/paper-ripple/demo/index.html | 413 - bower_components/paper-ripple/hero.svg | 30 - bower_components/paper-ripple/index.html | 27 - .../paper-ripple/paper-ripple.html | 716 -- bower_components/paper-ripple/test/index.html | 25 - .../paper-ripple/test/paper-ripple.html | 166 - .../paper-scroll-header-panel/.bower.json | 48 - .../paper-scroll-header-panel/.gitignore | 1 - .../paper-scroll-header-panel/README.md | 56 - .../paper-scroll-header-panel/bower.json | 38 - .../paper-scroll-header-panel/demo/demo1.html | 81 - .../paper-scroll-header-panel/demo/demo2.html | 78 - .../paper-scroll-header-panel/demo/demo3.html | 79 - .../paper-scroll-header-panel/demo/demo4.html | 114 - .../paper-scroll-header-panel/demo/demo5.html | 113 - .../paper-scroll-header-panel/demo/demo6.html | 117 - .../paper-scroll-header-panel/demo/demo7.html | 120 - .../paper-scroll-header-panel/demo/demo8.html | 126 - .../paper-scroll-header-panel/demo/demo9.html | 108 - .../demo/images/bg2.jpg | Bin 97102 -> 0 bytes .../demo/images/bg3.jpg | Bin 80676 -> 0 bytes .../demo/images/bg5.jpg | Bin 328472 -> 0 bytes .../demo/images/bg6.jpg | Bin 179472 -> 0 bytes .../demo/images/bg9.jpg | Bin 178111 -> 0 bytes .../paper-scroll-header-panel/demo/index.html | 113 - .../demo/lorem-ipsum.html | 42 - .../demo/sample-content.html | 72 - .../paper-scroll-header-panel/hero.svg | 41 - .../paper-scroll-header-panel/index.html | 28 - .../paper-scroll-header-panel.html | 455 -- .../paper-scroll-header-panel/test/basic.html | 112 - .../paper-scroll-header-panel/test/index.html | 25 - bower_components/paper-styles/.bower.json | 40 - bower_components/paper-styles/README.md | 3 - bower_components/paper-styles/bower.json | 31 - .../paper-styles/classes/global.html | 96 - .../paper-styles/classes/shadow-layout.html | 302 - .../paper-styles/classes/shadow.html | 52 - .../paper-styles/classes/typography.html | 171 - bower_components/paper-styles/color.html | 333 - .../paper-styles/default-theme.html | 39 - bower_components/paper-styles/demo-pages.html | 72 - bower_components/paper-styles/demo.css | 25 - bower_components/paper-styles/demo/index.html | 358 - .../paper-styles/paper-styles-classes.html | 14 - .../paper-styles/paper-styles.html | 17 - bower_components/paper-styles/shadow.html | 65 - bower_components/paper-styles/typography.html | 238 - bower_components/paper-toolbar/.bower.json | 45 - bower_components/paper-toolbar/.gitignore | 1 - bower_components/paper-toolbar/README.md | 51 - bower_components/paper-toolbar/bower.json | 35 - .../paper-toolbar/demo/index.html | 81 - bower_components/paper-toolbar/index.html | 38 - .../paper-toolbar/paper-toolbar.html | 368 - .../paper-toolbar/test/index.html | 24 - .../paper-toolbar/test/paper-toolbar.html | 147 - bower_components/polymer/.bower.json | 36 - bower_components/polymer/LICENSE.txt | 27 - bower_components/polymer/bower.json | 26 - bower_components/polymer/build.log | 26 - bower_components/polymer/polymer-micro.html | 529 -- bower_components/polymer/polymer-mini.html | 1396 ---- bower_components/polymer/polymer.html | 3985 --------- bower_components/webcomponentsjs/.bower.json | 27 - .../webcomponentsjs/CustomElements.js | 963 --- .../webcomponentsjs/CustomElements.min.js | 11 - .../webcomponentsjs/HTMLImports.js | 1085 --- .../webcomponentsjs/HTMLImports.min.js | 11 - .../webcomponentsjs/MutationObserver.js | 344 - .../webcomponentsjs/MutationObserver.min.js | 11 - bower_components/webcomponentsjs/README.md | 125 - bower_components/webcomponentsjs/ShadowDOM.js | 4414 ---------- .../webcomponentsjs/ShadowDOM.min.js | 15 - bower_components/webcomponentsjs/bower.json | 18 - bower_components/webcomponentsjs/build.log | 33 - bower_components/webcomponentsjs/package.json | 31 - .../webcomponentsjs/webcomponents-lite.js | 2314 ------ .../webcomponentsjs/webcomponents-lite.min.js | 13 - .../webcomponentsjs/webcomponents.js | 7126 ----------------- .../webcomponentsjs/webcomponents.min.js | 15 - categories/2016-07/page/1/index.html | 1 - categories/2016-08/page/1/index.html | 1 - categories/index.html | 172 - css/all.min.css | 1 - images/cover.png | Bin 17970 -> 0 bytes images/facebook-dreamstale25.png | Bin 712 -> 0 bytes images/feed-dreamstale27.png | Bin 1237 -> 0 bytes images/github2-dreamstale35.png | Bin 1121 -> 0 bytes images/google+-dreamstale37.png | Bin 1158 -> 0 bytes images/linkedin-dreamstale45.png | Bin 817 -> 0 bytes images/photo.png | Bin 1293 -> 0 bytes images/profile.png | Bin 17970 -> 0 bytes images/twitter-dreamstale71.png | Bin 997 -> 0 bytes js/all.min.js | 4 - page/1/index.html | 1 - post/page/1/index.html | 1 - tags/android/page/1/index.html | 1 - tags/arm/page/1/index.html | 1 - tags/github/page/1/index.html | 1 - tags/hack/page/1/index.html | 1 - tags/index.html | 176 - 335 files changed, 45186 deletions(-) delete mode 100644 bower.json delete mode 100644 bower_components/font-roboto/.bower.json delete mode 100644 bower_components/font-roboto/README.md delete mode 100644 bower_components/font-roboto/bower.json delete mode 100644 bower_components/font-roboto/roboto.html delete mode 100644 bower_components/iron-a11y-keys-behavior/.bower.json delete mode 100644 bower_components/iron-a11y-keys-behavior/.gitignore delete mode 100644 bower_components/iron-a11y-keys-behavior/README.md delete mode 100644 bower_components/iron-a11y-keys-behavior/bower.json delete mode 100644 bower_components/iron-a11y-keys-behavior/demo/index.html delete mode 100644 bower_components/iron-a11y-keys-behavior/demo/x-key-aware.html delete mode 100644 bower_components/iron-a11y-keys-behavior/index.html delete mode 100644 bower_components/iron-a11y-keys-behavior/iron-a11y-keys-behavior.html delete mode 100644 bower_components/iron-a11y-keys-behavior/test/basic-test.html delete mode 100644 bower_components/iron-a11y-keys-behavior/test/index.html delete mode 100644 bower_components/iron-behaviors/.bower.json delete mode 100644 bower_components/iron-behaviors/.gitignore delete mode 100644 bower_components/iron-behaviors/README.md delete mode 100644 bower_components/iron-behaviors/bower.json delete mode 100644 bower_components/iron-behaviors/demo/index.html delete mode 100644 bower_components/iron-behaviors/demo/simple-button.html delete mode 100644 bower_components/iron-behaviors/index.html delete mode 100644 bower_components/iron-behaviors/iron-button-state.html delete mode 100644 bower_components/iron-behaviors/iron-control-state.html delete mode 100644 bower_components/iron-behaviors/test/active-state.html delete mode 100644 bower_components/iron-behaviors/test/disabled-state.html delete mode 100644 bower_components/iron-behaviors/test/focused-state.html delete mode 100644 bower_components/iron-behaviors/test/index.html delete mode 100644 bower_components/iron-behaviors/test/test-elements.html delete mode 100644 bower_components/iron-flex-layout/.bower.json delete mode 100644 bower_components/iron-flex-layout/.gitignore delete mode 100644 bower_components/iron-flex-layout/README.md delete mode 100644 bower_components/iron-flex-layout/bower.json delete mode 100644 bower_components/iron-flex-layout/classes/iron-flex-layout.html delete mode 100644 bower_components/iron-flex-layout/classes/iron-shadow-flex-layout.html delete mode 100644 bower_components/iron-flex-layout/demo/index.html delete mode 100644 bower_components/iron-flex-layout/demo/x-app.html delete mode 100644 bower_components/iron-flex-layout/iron-flex-layout.html delete mode 100644 bower_components/iron-icon/.bower.json delete mode 100644 bower_components/iron-icon/.gitignore delete mode 100644 bower_components/iron-icon/README.md delete mode 100644 bower_components/iron-icon/bower.json delete mode 100644 bower_components/iron-icon/demo/index.html delete mode 100644 bower_components/iron-icon/demo/location.png delete mode 100644 bower_components/iron-icon/hero.svg delete mode 100644 bower_components/iron-icon/index.html delete mode 100644 bower_components/iron-icon/iron-icon.html delete mode 100644 bower_components/iron-icon/test/index.html delete mode 100644 bower_components/iron-icon/test/iron-icon.html delete mode 100644 bower_components/iron-icons/.bower.json delete mode 100644 bower_components/iron-icons/.gitignore delete mode 100644 bower_components/iron-icons/README.md delete mode 100644 bower_components/iron-icons/av-icons.html delete mode 100644 bower_components/iron-icons/bower.json delete mode 100644 bower_components/iron-icons/communication-icons.html delete mode 100644 bower_components/iron-icons/demo/index.html delete mode 100644 bower_components/iron-icons/device-icons.html delete mode 100644 bower_components/iron-icons/editor-icons.html delete mode 100644 bower_components/iron-icons/hardware-icons.html delete mode 100644 bower_components/iron-icons/hero.svg delete mode 100644 bower_components/iron-icons/image-icons.html delete mode 100644 bower_components/iron-icons/index.html delete mode 100644 bower_components/iron-icons/iron-icons.html delete mode 100644 bower_components/iron-icons/maps-icons.html delete mode 100644 bower_components/iron-icons/notification-icons.html delete mode 100644 bower_components/iron-icons/social-icons.html delete mode 100644 bower_components/iron-iconset-svg/.bower.json delete mode 100644 bower_components/iron-iconset-svg/.gitignore delete mode 100644 bower_components/iron-iconset-svg/README.md delete mode 100644 bower_components/iron-iconset-svg/bower.json delete mode 100644 bower_components/iron-iconset-svg/demo/index.html delete mode 100644 bower_components/iron-iconset-svg/demo/svg-sample-icons.html delete mode 100644 bower_components/iron-iconset-svg/index.html delete mode 100644 bower_components/iron-iconset-svg/iron-iconset-svg.html delete mode 100644 bower_components/iron-iconset-svg/test/index.html delete mode 100644 bower_components/iron-iconset-svg/test/iron-iconset-svg.html delete mode 100644 bower_components/iron-image/.bower.json delete mode 100644 bower_components/iron-image/.gitignore delete mode 100644 bower_components/iron-image/README.md delete mode 100644 bower_components/iron-image/bower.json delete mode 100644 bower_components/iron-image/demo/index.html delete mode 100644 bower_components/iron-image/demo/polymer.svg delete mode 100644 bower_components/iron-image/index.html delete mode 100644 bower_components/iron-image/iron-image.html delete mode 100644 bower_components/iron-image/test/index.html delete mode 100644 bower_components/iron-image/test/iron-image.html delete mode 100644 bower_components/iron-media-query/.bower.json delete mode 100644 bower_components/iron-media-query/.gitignore delete mode 100644 bower_components/iron-media-query/README.md delete mode 100644 bower_components/iron-media-query/bower.json delete mode 100644 bower_components/iron-media-query/demo/index.html delete mode 100644 bower_components/iron-media-query/hero.svg delete mode 100644 bower_components/iron-media-query/index.html delete mode 100644 bower_components/iron-media-query/iron-media-query.html delete mode 100644 bower_components/iron-media-query/test/basic.html delete mode 100644 bower_components/iron-media-query/test/index.html delete mode 100644 bower_components/iron-menu-behavior/.bower.json delete mode 100644 bower_components/iron-menu-behavior/.gitignore delete mode 100644 bower_components/iron-menu-behavior/README.md delete mode 100644 bower_components/iron-menu-behavior/bower.json delete mode 100644 bower_components/iron-menu-behavior/demo/index.html delete mode 100644 bower_components/iron-menu-behavior/demo/simple-menu.html delete mode 100644 bower_components/iron-menu-behavior/demo/simple-menubar.html delete mode 100644 bower_components/iron-menu-behavior/index.html delete mode 100644 bower_components/iron-menu-behavior/iron-menu-behavior.html delete mode 100644 bower_components/iron-menu-behavior/iron-menubar-behavior.html delete mode 100644 bower_components/iron-menu-behavior/test/index.html delete mode 100644 bower_components/iron-menu-behavior/test/iron-menu-behavior.html delete mode 100644 bower_components/iron-menu-behavior/test/iron-menubar-behavior.html delete mode 100644 bower_components/iron-menu-behavior/test/test-menu.html delete mode 100644 bower_components/iron-menu-behavior/test/test-menubar.html delete mode 100644 bower_components/iron-meta/.bower.json delete mode 100644 bower_components/iron-meta/.gitignore delete mode 100644 bower_components/iron-meta/README.md delete mode 100644 bower_components/iron-meta/bower.json delete mode 100644 bower_components/iron-meta/demo/index.html delete mode 100644 bower_components/iron-meta/hero.svg delete mode 100644 bower_components/iron-meta/index.html delete mode 100644 bower_components/iron-meta/iron-meta.html delete mode 100644 bower_components/iron-meta/test/basic.html delete mode 100644 bower_components/iron-meta/test/index.html delete mode 100644 bower_components/iron-meta/test/iron-meta.html delete mode 100644 bower_components/iron-resizable-behavior/.bower.json delete mode 100644 bower_components/iron-resizable-behavior/.gitignore delete mode 100644 bower_components/iron-resizable-behavior/README.md delete mode 100644 bower_components/iron-resizable-behavior/bower.json delete mode 100644 bower_components/iron-resizable-behavior/demo/index.html delete mode 100644 bower_components/iron-resizable-behavior/demo/src/x-app.html delete mode 100644 bower_components/iron-resizable-behavior/index.html delete mode 100644 bower_components/iron-resizable-behavior/iron-resizable-behavior.html delete mode 100644 bower_components/iron-resizable-behavior/test/basic.html delete mode 100644 bower_components/iron-resizable-behavior/test/index.html delete mode 100644 bower_components/iron-resizable-behavior/test/iron-resizable-behavior.html delete mode 100644 bower_components/iron-resizable-behavior/test/test-elements.html delete mode 100644 bower_components/iron-selector/.bower.json delete mode 100644 bower_components/iron-selector/.gitignore delete mode 100644 bower_components/iron-selector/README.md delete mode 100644 bower_components/iron-selector/bower.json delete mode 100644 bower_components/iron-selector/demo/index.html delete mode 100644 bower_components/iron-selector/index.html delete mode 100644 bower_components/iron-selector/iron-multi-selectable.html delete mode 100644 bower_components/iron-selector/iron-selectable.html delete mode 100644 bower_components/iron-selector/iron-selection.html delete mode 100644 bower_components/iron-selector/iron-selector.html delete mode 100644 bower_components/iron-selector/test/activate-event.html delete mode 100644 bower_components/iron-selector/test/basic.html delete mode 100644 bower_components/iron-selector/test/content-element.html delete mode 100644 bower_components/iron-selector/test/content.html delete mode 100644 bower_components/iron-selector/test/index.html delete mode 100644 bower_components/iron-selector/test/multi.html delete mode 100644 bower_components/iron-selector/test/next-previous.html delete mode 100644 bower_components/iron-selector/test/selected-attribute.html delete mode 100644 bower_components/iron-selector/test/template-repeat.html delete mode 100644 bower_components/paper-behaviors/.bower.json delete mode 100644 bower_components/paper-behaviors/.gitignore delete mode 100644 bower_components/paper-behaviors/README.md delete mode 100644 bower_components/paper-behaviors/bower.json delete mode 100644 bower_components/paper-behaviors/demo/index.html delete mode 100644 bower_components/paper-behaviors/demo/paper-button.html delete mode 100644 bower_components/paper-behaviors/demo/paper-radio-button.html delete mode 100644 bower_components/paper-behaviors/index.html delete mode 100644 bower_components/paper-behaviors/paper-button-behavior.html delete mode 100644 bower_components/paper-behaviors/paper-inky-focus-behavior.html delete mode 100644 bower_components/paper-behaviors/test/index.html delete mode 100644 bower_components/paper-behaviors/test/paper-button-behavior.html delete mode 100644 bower_components/paper-behaviors/test/paper-radio-button-behavior.html delete mode 100644 bower_components/paper-behaviors/test/test-button.html delete mode 100644 bower_components/paper-behaviors/test/test-radio-button.html delete mode 100644 bower_components/paper-drawer-panel/.bower.json delete mode 100644 bower_components/paper-drawer-panel/.gitignore delete mode 100644 bower_components/paper-drawer-panel/README.md delete mode 100644 bower_components/paper-drawer-panel/bower.json delete mode 100644 bower_components/paper-drawer-panel/demo/index.html delete mode 100644 bower_components/paper-drawer-panel/hero.svg delete mode 100644 bower_components/paper-drawer-panel/index.html delete mode 100644 bower_components/paper-drawer-panel/paper-drawer-panel.css delete mode 100644 bower_components/paper-drawer-panel/paper-drawer-panel.html delete mode 100644 bower_components/paper-fab/.bower.json delete mode 100644 bower_components/paper-fab/.gitignore delete mode 100644 bower_components/paper-fab/README.md delete mode 100644 bower_components/paper-fab/bower.json delete mode 100644 bower_components/paper-fab/demo/index.html delete mode 100644 bower_components/paper-fab/index.html delete mode 100644 bower_components/paper-fab/paper-fab.html delete mode 100644 bower_components/paper-fab/test/a11y.html delete mode 100644 bower_components/paper-fab/test/basic.html delete mode 100644 bower_components/paper-fab/test/index.html delete mode 100644 bower_components/paper-icon-button/.bower.json delete mode 100644 bower_components/paper-icon-button/.gitignore delete mode 100644 bower_components/paper-icon-button/README.md delete mode 100644 bower_components/paper-icon-button/bower.json delete mode 100644 bower_components/paper-icon-button/demo/index.html delete mode 100644 bower_components/paper-icon-button/index.html delete mode 100644 bower_components/paper-icon-button/paper-icon-button.html delete mode 100644 bower_components/paper-icon-button/test/a11y.html delete mode 100644 bower_components/paper-icon-button/test/basic.html delete mode 100644 bower_components/paper-icon-button/test/index.html delete mode 100644 bower_components/paper-item/.bower.json delete mode 100644 bower_components/paper-item/.gitignore delete mode 100644 bower_components/paper-item/README.md delete mode 100644 bower_components/paper-item/all-imports.html delete mode 100644 bower_components/paper-item/bower.json delete mode 100644 bower_components/paper-item/demo/index.html delete mode 100644 bower_components/paper-item/index.html delete mode 100644 bower_components/paper-item/paper-icon-item.html delete mode 100644 bower_components/paper-item/paper-item-body.html delete mode 100644 bower_components/paper-item/paper-item-shared.css delete mode 100644 bower_components/paper-item/paper-item.html delete mode 100644 bower_components/paper-item/test/index.html delete mode 100644 bower_components/paper-item/test/paper-item.html delete mode 100644 bower_components/paper-material/.bower.json delete mode 100644 bower_components/paper-material/.gitignore delete mode 100644 bower_components/paper-material/README.md delete mode 100644 bower_components/paper-material/bower.json delete mode 100644 bower_components/paper-material/demo/index.html delete mode 100644 bower_components/paper-material/index.html delete mode 100644 bower_components/paper-material/paper-material.html delete mode 100644 bower_components/paper-material/test/index.html delete mode 100644 bower_components/paper-material/test/paper-material.html delete mode 100644 bower_components/paper-menu/.bower.json delete mode 100644 bower_components/paper-menu/.gitignore delete mode 100644 bower_components/paper-menu/README.md delete mode 100644 bower_components/paper-menu/bower.json delete mode 100644 bower_components/paper-menu/demo/index.html delete mode 100644 bower_components/paper-menu/hero.svg delete mode 100644 bower_components/paper-menu/index.html delete mode 100644 bower_components/paper-menu/paper-menu.html delete mode 100644 bower_components/paper-menu/test/index.html delete mode 100644 bower_components/paper-menu/test/paper-menu.html delete mode 100644 bower_components/paper-ripple/.bower.json delete mode 100644 bower_components/paper-ripple/.gitignore delete mode 100644 bower_components/paper-ripple/README.md delete mode 100644 bower_components/paper-ripple/bower.json delete mode 100644 bower_components/paper-ripple/demo/index.html delete mode 100644 bower_components/paper-ripple/hero.svg delete mode 100644 bower_components/paper-ripple/index.html delete mode 100644 bower_components/paper-ripple/paper-ripple.html delete mode 100644 bower_components/paper-ripple/test/index.html delete mode 100644 bower_components/paper-ripple/test/paper-ripple.html delete mode 100644 bower_components/paper-scroll-header-panel/.bower.json delete mode 100644 bower_components/paper-scroll-header-panel/.gitignore delete mode 100644 bower_components/paper-scroll-header-panel/README.md delete mode 100644 bower_components/paper-scroll-header-panel/bower.json delete mode 100644 bower_components/paper-scroll-header-panel/demo/demo1.html delete mode 100644 bower_components/paper-scroll-header-panel/demo/demo2.html delete mode 100644 bower_components/paper-scroll-header-panel/demo/demo3.html delete mode 100644 bower_components/paper-scroll-header-panel/demo/demo4.html delete mode 100644 bower_components/paper-scroll-header-panel/demo/demo5.html delete mode 100644 bower_components/paper-scroll-header-panel/demo/demo6.html delete mode 100644 bower_components/paper-scroll-header-panel/demo/demo7.html delete mode 100644 bower_components/paper-scroll-header-panel/demo/demo8.html delete mode 100644 bower_components/paper-scroll-header-panel/demo/demo9.html delete mode 100644 bower_components/paper-scroll-header-panel/demo/images/bg2.jpg delete mode 100644 bower_components/paper-scroll-header-panel/demo/images/bg3.jpg delete mode 100644 bower_components/paper-scroll-header-panel/demo/images/bg5.jpg delete mode 100644 bower_components/paper-scroll-header-panel/demo/images/bg6.jpg delete mode 100644 bower_components/paper-scroll-header-panel/demo/images/bg9.jpg delete mode 100644 bower_components/paper-scroll-header-panel/demo/index.html delete mode 100644 bower_components/paper-scroll-header-panel/demo/lorem-ipsum.html delete mode 100644 bower_components/paper-scroll-header-panel/demo/sample-content.html delete mode 100644 bower_components/paper-scroll-header-panel/hero.svg delete mode 100644 bower_components/paper-scroll-header-panel/index.html delete mode 100644 bower_components/paper-scroll-header-panel/paper-scroll-header-panel.html delete mode 100644 bower_components/paper-scroll-header-panel/test/basic.html delete mode 100644 bower_components/paper-scroll-header-panel/test/index.html delete mode 100644 bower_components/paper-styles/.bower.json delete mode 100644 bower_components/paper-styles/README.md delete mode 100644 bower_components/paper-styles/bower.json delete mode 100644 bower_components/paper-styles/classes/global.html delete mode 100644 bower_components/paper-styles/classes/shadow-layout.html delete mode 100644 bower_components/paper-styles/classes/shadow.html delete mode 100644 bower_components/paper-styles/classes/typography.html delete mode 100644 bower_components/paper-styles/color.html delete mode 100644 bower_components/paper-styles/default-theme.html delete mode 100644 bower_components/paper-styles/demo-pages.html delete mode 100644 bower_components/paper-styles/demo.css delete mode 100644 bower_components/paper-styles/demo/index.html delete mode 100644 bower_components/paper-styles/paper-styles-classes.html delete mode 100644 bower_components/paper-styles/paper-styles.html delete mode 100644 bower_components/paper-styles/shadow.html delete mode 100644 bower_components/paper-styles/typography.html delete mode 100644 bower_components/paper-toolbar/.bower.json delete mode 100644 bower_components/paper-toolbar/.gitignore delete mode 100644 bower_components/paper-toolbar/README.md delete mode 100644 bower_components/paper-toolbar/bower.json delete mode 100644 bower_components/paper-toolbar/demo/index.html delete mode 100644 bower_components/paper-toolbar/index.html delete mode 100644 bower_components/paper-toolbar/paper-toolbar.html delete mode 100644 bower_components/paper-toolbar/test/index.html delete mode 100644 bower_components/paper-toolbar/test/paper-toolbar.html delete mode 100644 bower_components/polymer/.bower.json delete mode 100644 bower_components/polymer/LICENSE.txt delete mode 100644 bower_components/polymer/bower.json delete mode 100644 bower_components/polymer/build.log delete mode 100644 bower_components/polymer/polymer-micro.html delete mode 100644 bower_components/polymer/polymer-mini.html delete mode 100644 bower_components/polymer/polymer.html delete mode 100644 bower_components/webcomponentsjs/.bower.json delete mode 100644 bower_components/webcomponentsjs/CustomElements.js delete mode 100644 bower_components/webcomponentsjs/CustomElements.min.js delete mode 100644 bower_components/webcomponentsjs/HTMLImports.js delete mode 100644 bower_components/webcomponentsjs/HTMLImports.min.js delete mode 100644 bower_components/webcomponentsjs/MutationObserver.js delete mode 100644 bower_components/webcomponentsjs/MutationObserver.min.js delete mode 100644 bower_components/webcomponentsjs/README.md delete mode 100644 bower_components/webcomponentsjs/ShadowDOM.js delete mode 100644 bower_components/webcomponentsjs/ShadowDOM.min.js delete mode 100644 bower_components/webcomponentsjs/bower.json delete mode 100644 bower_components/webcomponentsjs/build.log delete mode 100644 bower_components/webcomponentsjs/package.json delete mode 100644 bower_components/webcomponentsjs/webcomponents-lite.js delete mode 100644 bower_components/webcomponentsjs/webcomponents-lite.min.js delete mode 100644 bower_components/webcomponentsjs/webcomponents.js delete mode 100644 bower_components/webcomponentsjs/webcomponents.min.js delete mode 100644 categories/2016-07/page/1/index.html delete mode 100644 categories/2016-08/page/1/index.html delete mode 100644 categories/index.html delete mode 100644 css/all.min.css delete mode 100644 images/cover.png delete mode 100644 images/facebook-dreamstale25.png delete mode 100644 images/feed-dreamstale27.png delete mode 100644 images/github2-dreamstale35.png delete mode 100644 images/google+-dreamstale37.png delete mode 100644 images/linkedin-dreamstale45.png delete mode 100644 images/photo.png delete mode 100644 images/profile.png delete mode 100644 images/twitter-dreamstale71.png delete mode 100644 js/all.min.js delete mode 100644 page/1/index.html delete mode 100644 post/page/1/index.html delete mode 100644 tags/android/page/1/index.html delete mode 100644 tags/arm/page/1/index.html delete mode 100644 tags/github/page/1/index.html delete mode 100644 tags/hack/page/1/index.html delete mode 100644 tags/index.html diff --git a/bower.json b/bower.json deleted file mode 100644 index 5ff3b4f..0000000 --- a/bower.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "polymer", - "dependencies": { - "polymer": "Polymer/polymer#^1.0.0", - "paper-scroll-header-panel": "PolymerElements/paper-scroll-header-panel#^1.0.0", - "iron-icons": "PolymerElements/iron-icons#^1.0.0", - "paper-icon-button": "PolymerElements/paper-icon-button#^1.0.0", - "paper-drawer-panel": "PolymerElements/paper-drawer-panel#^1.0.0", - "paper-menu": "PolymerElements/paper-menu#^1.0.0", - "paper-item": "PolymerElements/paper-item#^1.0.0", - "paper-fab": "PolymerElements/paper-fab#^1.0.0", - "iron-image": "PolymerElements/iron-image#^1.0.0" - } -} diff --git a/bower_components/font-roboto/.bower.json b/bower_components/font-roboto/.bower.json deleted file mode 100644 index 432744c..0000000 --- a/bower_components/font-roboto/.bower.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "font-roboto", - "version": "1.0.0", - "description": "An HTML import for Roboto", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "font", - "roboto" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/font-roboto.git" - }, - "main": "roboto.html", - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/font-roboto/", - "ignore": [ - "/.*" - ], - "_release": "1.0.0", - "_resolution": { - "type": "version", - "tag": "1.0.0", - "commit": "b85b217e5f4b31f9c03b588e25c977b8104a40cd" - }, - "_source": "git://github.com/PolymerElements/font-roboto.git", - "_target": "^1.0.0", - "_originalSource": "PolymerElements/font-roboto" -} \ No newline at end of file diff --git a/bower_components/font-roboto/README.md b/bower_components/font-roboto/README.md deleted file mode 100644 index 61c6394..0000000 --- a/bower_components/font-roboto/README.md +++ /dev/null @@ -1 +0,0 @@ -# font-roboto diff --git a/bower_components/font-roboto/bower.json b/bower_components/font-roboto/bower.json deleted file mode 100644 index 0962916..0000000 --- a/bower_components/font-roboto/bower.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "font-roboto", - "version": "1.0.0", - "description": "An HTML import for Roboto", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "font", - "roboto" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/font-roboto.git" - }, - "main": "roboto.html", - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/font-roboto/", - "ignore": [ - "/.*" - ] -} diff --git a/bower_components/font-roboto/roboto.html b/bower_components/font-roboto/roboto.html deleted file mode 100644 index 848d1da..0000000 --- a/bower_components/font-roboto/roboto.html +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/bower_components/iron-a11y-keys-behavior/.bower.json b/bower_components/iron-a11y-keys-behavior/.bower.json deleted file mode 100644 index f0a9c76..0000000 --- a/bower_components/iron-a11y-keys-behavior/.bower.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "iron-a11y-keys-behavior", - "version": "1.0.5", - "description": "A behavior that enables keybindings for greater a11y.", - "keywords": [ - "web-components", - "web-component", - "polymer", - "a11y", - "input" - ], - "authors": [ - "The Polymer Authors" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-a11y-keys-behavior.git" - }, - "main": "iron-a11y-keys-behavior.html", - "license": "http://polymer.github.io/LICENSE.txt", - "dependencies": { - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "paper-styles": "PolymerElements/paper-styles#^1.0.2", - "iron-component-page": "polymerelements/iron-component-page#^1.0.0", - "iron-test-helpers": "polymerelements/iron-test-helpers#^1.0.0", - "test-fixture": "polymerelements/test-fixture#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "homepage": "https://github.com/polymerelements/iron-a11y-keys-behavior", - "_release": "1.0.5", - "_resolution": { - "type": "version", - "tag": "v1.0.5", - "commit": "cf833eab5c55a26c5aa92e56d3fcb079120ce66a" - }, - "_source": "git://github.com/polymerelements/iron-a11y-keys-behavior.git", - "_target": "^1.0.0", - "_originalSource": "polymerelements/iron-a11y-keys-behavior" -} \ No newline at end of file diff --git a/bower_components/iron-a11y-keys-behavior/.gitignore b/bower_components/iron-a11y-keys-behavior/.gitignore deleted file mode 100644 index 8d4ae25..0000000 --- a/bower_components/iron-a11y-keys-behavior/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bower_components diff --git a/bower_components/iron-a11y-keys-behavior/README.md b/bower_components/iron-a11y-keys-behavior/README.md deleted file mode 100644 index 2d16daa..0000000 --- a/bower_components/iron-a11y-keys-behavior/README.md +++ /dev/null @@ -1,15 +0,0 @@ -iron-a11y-keys-behavior -======================= - -`Polymer.IronA11yKeysBehavior` provides a normalized interface for processing -keyboard commands that pertain to [WAI-ARIA best practices](http://www.w3.org/TR/wai-aria-practices/#kbd_general_binding). -The element takes care of browser differences with respect to Keyboard events -and uses an expressive syntax to filter key presses. - -Use the `keyBindings` prototype property to express what combination of keys -will trigger the event to fire. - -Use the `key-event-target` attribute to set up event handlers on a specific -node. -The `keys-pressed` event will fire when one of the key combinations set with the -`keys` property is pressed. diff --git a/bower_components/iron-a11y-keys-behavior/bower.json b/bower_components/iron-a11y-keys-behavior/bower.json deleted file mode 100644 index aa52718..0000000 --- a/bower_components/iron-a11y-keys-behavior/bower.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "iron-a11y-keys-behavior", - "version": "1.0.5", - "description": "A behavior that enables keybindings for greater a11y.", - "keywords": [ - "web-components", - "web-component", - "polymer", - "a11y", - "input" - ], - "authors": [ - "The Polymer Authors" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-a11y-keys-behavior.git" - }, - "main": "iron-a11y-keys-behavior.html", - "license": "http://polymer.github.io/LICENSE.txt", - "dependencies": { - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "paper-styles": "PolymerElements/paper-styles#^1.0.2", - "iron-component-page": "polymerelements/iron-component-page#^1.0.0", - "iron-test-helpers": "polymerelements/iron-test-helpers#^1.0.0", - "test-fixture": "polymerelements/test-fixture#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - } -} diff --git a/bower_components/iron-a11y-keys-behavior/demo/index.html b/bower_components/iron-a11y-keys-behavior/demo/index.html deleted file mode 100644 index 2c3fec7..0000000 --- a/bower_components/iron-a11y-keys-behavior/demo/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Iron A11y Keys Behavior demo - - - - - -
- -
- - diff --git a/bower_components/iron-a11y-keys-behavior/demo/x-key-aware.html b/bower_components/iron-a11y-keys-behavior/demo/x-key-aware.html deleted file mode 100644 index a7f3205..0000000 --- a/bower_components/iron-a11y-keys-behavior/demo/x-key-aware.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - diff --git a/bower_components/iron-a11y-keys-behavior/index.html b/bower_components/iron-a11y-keys-behavior/index.html deleted file mode 100644 index e533e79..0000000 --- a/bower_components/iron-a11y-keys-behavior/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - iron-a11y-keys-behavior - - - - - - - - - - diff --git a/bower_components/iron-a11y-keys-behavior/iron-a11y-keys-behavior.html b/bower_components/iron-a11y-keys-behavior/iron-a11y-keys-behavior.html deleted file mode 100644 index e95a298..0000000 --- a/bower_components/iron-a11y-keys-behavior/iron-a11y-keys-behavior.html +++ /dev/null @@ -1,421 +0,0 @@ - - - - - diff --git a/bower_components/iron-a11y-keys-behavior/test/basic-test.html b/bower_components/iron-a11y-keys-behavior/test/basic-test.html deleted file mode 100644 index 8e50c92..0000000 --- a/bower_components/iron-a11y-keys-behavior/test/basic-test.html +++ /dev/null @@ -1,248 +0,0 @@ - - - - - - - iron-a11y-keys - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-a11y-keys-behavior/test/index.html b/bower_components/iron-a11y-keys-behavior/test/index.html deleted file mode 100644 index 24f9e35..0000000 --- a/bower_components/iron-a11y-keys-behavior/test/index.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - Tests - - - - - - - - - diff --git a/bower_components/iron-behaviors/.bower.json b/bower_components/iron-behaviors/.bower.json deleted file mode 100644 index bf8b6cf..0000000 --- a/bower_components/iron-behaviors/.bower.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "iron-behaviors", - "version": "1.0.4", - "description": "Provides a set of behaviors for the iron elements", - "private": true, - "authors": [ - "The Polymer Authors" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-behaviors.git" - }, - "main": [ - "iron-button-state.html", - "iron-control-state.html" - ], - "license": "http://polymer.github.io/LICENSE.txt", - "dependencies": { - "polymer": "Polymer/polymer#^1.0.0", - "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#^1.0.0" - }, - "devDependencies": { - "paper-styles": "polymerelements/paper-styles#^1.0.2", - "iron-test-helpers": "polymerelements/iron-test-helpers#^1.0.0", - "iron-component-page": "polymerelements/iron-component-page#^1.0.0", - "test-fixture": "polymerelements/test-fixture#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "homepage": "https://github.com/PolymerElements/iron-behaviors", - "_release": "1.0.4", - "_resolution": { - "type": "version", - "tag": "v1.0.4", - "commit": "8792edd457de697a74f398c09b67df30adf7d866" - }, - "_source": "git://github.com/PolymerElements/iron-behaviors.git", - "_target": "^1.0.0", - "_originalSource": "PolymerElements/iron-behaviors" -} \ No newline at end of file diff --git a/bower_components/iron-behaviors/.gitignore b/bower_components/iron-behaviors/.gitignore deleted file mode 100644 index 8d4ae25..0000000 --- a/bower_components/iron-behaviors/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bower_components diff --git a/bower_components/iron-behaviors/README.md b/bower_components/iron-behaviors/README.md deleted file mode 100644 index 593986e..0000000 --- a/bower_components/iron-behaviors/README.md +++ /dev/null @@ -1,4 +0,0 @@ -iron-behaviors -============== - -This repository collects shared behaviors that are mixed in to other elements. diff --git a/bower_components/iron-behaviors/bower.json b/bower_components/iron-behaviors/bower.json deleted file mode 100644 index 6a18575..0000000 --- a/bower_components/iron-behaviors/bower.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "iron-behaviors", - "version": "1.0.4", - "description": "Provides a set of behaviors for the iron elements", - "private": true, - "authors": [ - "The Polymer Authors" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-behaviors.git" - }, - "main": [ - "iron-button-state.html", - "iron-control-state.html" - ], - "license": "http://polymer.github.io/LICENSE.txt", - "dependencies": { - "polymer": "Polymer/polymer#^1.0.0", - "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#^1.0.0" - }, - "devDependencies": { - "paper-styles": "polymerelements/paper-styles#^1.0.2", - "iron-test-helpers": "polymerelements/iron-test-helpers#^1.0.0", - "iron-component-page": "polymerelements/iron-component-page#^1.0.0", - "test-fixture": "polymerelements/test-fixture#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - } -} diff --git a/bower_components/iron-behaviors/demo/index.html b/bower_components/iron-behaviors/demo/index.html deleted file mode 100644 index 4001664..0000000 --- a/bower_components/iron-behaviors/demo/index.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - simple-button - - - - - - - - - -
-

Normal

- - Hello World - -

Toggles

- - Hello World - -

Disabled

- - Hello World -
- - diff --git a/bower_components/iron-behaviors/demo/simple-button.html b/bower_components/iron-behaviors/demo/simple-button.html deleted file mode 100644 index ab6432b..0000000 --- a/bower_components/iron-behaviors/demo/simple-button.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-behaviors/index.html b/bower_components/iron-behaviors/index.html deleted file mode 100644 index 220deb0..0000000 --- a/bower_components/iron-behaviors/index.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - Iron Behaviors - - - - - - - - - - - - - diff --git a/bower_components/iron-behaviors/iron-button-state.html b/bower_components/iron-behaviors/iron-button-state.html deleted file mode 100644 index fc52e17..0000000 --- a/bower_components/iron-behaviors/iron-button-state.html +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - diff --git a/bower_components/iron-behaviors/iron-control-state.html b/bower_components/iron-behaviors/iron-control-state.html deleted file mode 100644 index 33e42ea..0000000 --- a/bower_components/iron-behaviors/iron-control-state.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - diff --git a/bower_components/iron-behaviors/test/active-state.html b/bower_components/iron-behaviors/test/active-state.html deleted file mode 100644 index bffa727..0000000 --- a/bower_components/iron-behaviors/test/active-state.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - - active-state - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-behaviors/test/disabled-state.html b/bower_components/iron-behaviors/test/disabled-state.html deleted file mode 100644 index af24ee2..0000000 --- a/bower_components/iron-behaviors/test/disabled-state.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - disabled-state - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-behaviors/test/focused-state.html b/bower_components/iron-behaviors/test/focused-state.html deleted file mode 100644 index 2d3af69..0000000 --- a/bower_components/iron-behaviors/test/focused-state.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - focused-state - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-behaviors/test/index.html b/bower_components/iron-behaviors/test/index.html deleted file mode 100644 index 0eef4d6..0000000 --- a/bower_components/iron-behaviors/test/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - diff --git a/bower_components/iron-behaviors/test/test-elements.html b/bower_components/iron-behaviors/test/test-elements.html deleted file mode 100644 index 43bd8e5..0000000 --- a/bower_components/iron-behaviors/test/test-elements.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-flex-layout/.bower.json b/bower_components/iron-flex-layout/.bower.json deleted file mode 100644 index cfb5824..0000000 --- a/bower_components/iron-flex-layout/.bower.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "iron-flex-layout", - "version": "1.0.2", - "description": "Provide flexbox-based layouts", - "keywords": [ - "web-components", - "polymer", - "layout" - ], - "private": true, - "license": "http://polymer.github.io/LICENSE.txt", - "authors": [ - "The Polymer Authors" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-flex-layout.git" - }, - "dependencies": { - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "paper-styles": "polymerelements/paper-styles#^1.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "homepage": "https://github.com/polymerelements/iron-flex-layout", - "_release": "1.0.2", - "_resolution": { - "type": "version", - "tag": "v1.0.2", - "commit": "50bcecf40ab23caa7c2cd90030555e00c5ba7154" - }, - "_source": "git://github.com/polymerelements/iron-flex-layout.git", - "_target": "^1.0.0", - "_originalSource": "polymerelements/iron-flex-layout" -} \ No newline at end of file diff --git a/bower_components/iron-flex-layout/.gitignore b/bower_components/iron-flex-layout/.gitignore deleted file mode 100644 index 1eb1fa5..0000000 --- a/bower_components/iron-flex-layout/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -bower_components - diff --git a/bower_components/iron-flex-layout/README.md b/bower_components/iron-flex-layout/README.md deleted file mode 100644 index 895ed0f..0000000 --- a/bower_components/iron-flex-layout/README.md +++ /dev/null @@ -1,4 +0,0 @@ -iron-flex-layout -================ - -Layout styles for the iron elements. diff --git a/bower_components/iron-flex-layout/bower.json b/bower_components/iron-flex-layout/bower.json deleted file mode 100644 index 202fbe0..0000000 --- a/bower_components/iron-flex-layout/bower.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "iron-flex-layout", - "version": "1.0.2", - "description": "Provide flexbox-based layouts", - "keywords": [ - "web-components", - "polymer", - "layout" - ], - "private": true, - "license": "http://polymer.github.io/LICENSE.txt", - "authors": [ - "The Polymer Authors" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-flex-layout.git" - }, - "dependencies": { - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "paper-styles": "polymerelements/paper-styles#^1.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - } -} diff --git a/bower_components/iron-flex-layout/classes/iron-flex-layout.html b/bower_components/iron-flex-layout/classes/iron-flex-layout.html deleted file mode 100644 index 283c2a8..0000000 --- a/bower_components/iron-flex-layout/classes/iron-flex-layout.html +++ /dev/null @@ -1,307 +0,0 @@ - - - - - diff --git a/bower_components/iron-flex-layout/classes/iron-shadow-flex-layout.html b/bower_components/iron-flex-layout/classes/iron-shadow-flex-layout.html deleted file mode 100644 index c42067a..0000000 --- a/bower_components/iron-flex-layout/classes/iron-shadow-flex-layout.html +++ /dev/null @@ -1,302 +0,0 @@ - - diff --git a/bower_components/iron-flex-layout/demo/index.html b/bower_components/iron-flex-layout/demo/index.html deleted file mode 100644 index ea4df38..0000000 --- a/bower_components/iron-flex-layout/demo/index.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - iron-flex-layout - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-flex-layout/demo/x-app.html b/bower_components/iron-flex-layout/demo/x-app.html deleted file mode 100644 index 489a5f5..0000000 --- a/bower_components/iron-flex-layout/demo/x-app.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - - - - - - - diff --git a/bower_components/iron-flex-layout/iron-flex-layout.html b/bower_components/iron-flex-layout/iron-flex-layout.html deleted file mode 100644 index ed9cd7b..0000000 --- a/bower_components/iron-flex-layout/iron-flex-layout.html +++ /dev/null @@ -1,313 +0,0 @@ - - - - - diff --git a/bower_components/iron-icon/.bower.json b/bower_components/iron-icon/.bower.json deleted file mode 100644 index 8ce0fb3..0000000 --- a/bower_components/iron-icon/.bower.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "iron-icon", - "private": true, - "version": "1.0.2", - "license": "http://polymer.github.io/LICENSE.txt", - "description": "An element that supports displaying an icon", - "main": "iron-icon.html", - "author": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "icon" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-icon.git" - }, - "dependencies": { - "iron-flex-layout": "polymerelements/iron-flex-layout#^1.0.0", - "iron-meta": "polymerelements/iron-meta#^1.0.0", - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "test-fixture": "polymerelements/test-fixture#^1.0.0", - "iron-iconset": "polymerelements/iron-iconset#^1.0.0", - "iron-icons": "polymerelements/iron-icons#^1.0.0", - "iron-component-page": "polymerelements/iron-component-page#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "homepage": "https://github.com/polymerelements/iron-icon", - "_release": "1.0.2", - "_resolution": { - "type": "version", - "tag": "v1.0.2", - "commit": "f9246c47ecb1c682f0fb9ea48255d5f7debd1e03" - }, - "_source": "git://github.com/polymerelements/iron-icon.git", - "_target": "^1.0.0", - "_originalSource": "polymerelements/iron-icon" -} \ No newline at end of file diff --git a/bower_components/iron-icon/.gitignore b/bower_components/iron-icon/.gitignore deleted file mode 100644 index 8d4ae25..0000000 --- a/bower_components/iron-icon/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bower_components diff --git a/bower_components/iron-icon/README.md b/bower_components/iron-icon/README.md deleted file mode 100644 index 27b65c0..0000000 --- a/bower_components/iron-icon/README.md +++ /dev/null @@ -1,56 +0,0 @@ -iron-icon -========= - -The `iron-icon` element displays an icon. By default an icon renders as a 24px square. - -Example using src: - -```html - -``` - -Example setting size to 32px x 32px: - -```html - - - -``` - -The iron elements include several sets of icons. -To use the default set of icons, import `iron-icons.html` and use the `icon` attribute to specify an icon: - -```html - - - - -``` - -To use a different built-in set of icons, import `iron-icons/-icons.html`, and -specify the icon as `:`. For example: - -```html - - - - -``` - -You can also create custom icon sets of bitmap or SVG icons. - -Example of using an icon named `cherry` from a custom iconset with the ID `fruit`: - -```html - -``` - -See [iron-iconset](#iron-iconset) and [iron-iconset-svg](#iron-iconset-svg) for more information about -how to create a custom iconset. - -See [iron-icons](http://www.polymer-project.org/components/iron-icons/demo.html) for the default set of icons. diff --git a/bower_components/iron-icon/bower.json b/bower_components/iron-icon/bower.json deleted file mode 100644 index 9361b56..0000000 --- a/bower_components/iron-icon/bower.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "iron-icon", - "private": true, - "version": "1.0.2", - "license": "http://polymer.github.io/LICENSE.txt", - "description": "An element that supports displaying an icon", - "main": "iron-icon.html", - "author": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "icon" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-icon.git" - }, - "dependencies": { - "iron-flex-layout": "polymerelements/iron-flex-layout#^1.0.0", - "iron-meta": "polymerelements/iron-meta#^1.0.0", - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "test-fixture": "polymerelements/test-fixture#^1.0.0", - "iron-iconset": "polymerelements/iron-iconset#^1.0.0", - "iron-icons": "polymerelements/iron-icons#^1.0.0", - "iron-component-page": "polymerelements/iron-component-page#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - } -} diff --git a/bower_components/iron-icon/demo/index.html b/bower_components/iron-icon/demo/index.html deleted file mode 100644 index ff71239..0000000 --- a/bower_components/iron-icon/demo/index.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - iron-icon demo - - - - - - - - -
-

This demo is for a single <iron-icon>. If you're looking for the - whole set of available icons, check out the <iron-icons> demo.

- -
- - - -

<iron-icon icon="example:location">

- - - -

<iron-icon src="location.png">

- -
-
- - diff --git a/bower_components/iron-icon/demo/location.png b/bower_components/iron-icon/demo/location.png deleted file mode 100644 index 9bb74236b85bc97153028f40cee8ec0f855a83a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 324 zcmV-K0lWT*P)joYjc@-uHh=i<-}|YXN(R4nuy1(19%Asv z|4yx6z_@eUTNw%sew6?WhVu?h?@$Z|VejtGE9>j)naB*^R|TN(b!>Y7-?8Nrioq~k zwd{)?8R7e~-@f6^drQh)hcFUgTVkf;_w*^!wFMA`4aDPEa8g} zyR?0}a{KmecA_o#`t_?6K8$Wb*u;;yR89NHhC8=@di3<^Q!biW5Yqp-mg>am9dDmpnS - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-icon/index.html b/bower_components/iron-icon/index.html deleted file mode 100644 index e871f17..0000000 --- a/bower_components/iron-icon/index.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-icon/iron-icon.html b/bower_components/iron-icon/iron-icon.html deleted file mode 100644 index bdb55c7..0000000 --- a/bower_components/iron-icon/iron-icon.html +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-icon/test/index.html b/bower_components/iron-icon/test/index.html deleted file mode 100644 index 0a56bb7..0000000 --- a/bower_components/iron-icon/test/index.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - Tests - - - - - - - - - diff --git a/bower_components/iron-icon/test/iron-icon.html b/bower_components/iron-icon/test/iron-icon.html deleted file mode 100644 index 3b8202f..0000000 --- a/bower_components/iron-icon/test/iron-icon.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - iron-icon - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-icons/.bower.json b/bower_components/iron-icons/.bower.json deleted file mode 100644 index 93ce65e..0000000 --- a/bower_components/iron-icons/.bower.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "iron-icons", - "version": "1.0.3", - "description": "A set of icons for use with iron-icon", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "icon" - ], - "main": "iron-icons.html", - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-icons" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/paper-icons", - "dependencies": { - "iron-icon": "polymerelements/iron-icon#^1.0.0", - "iron-iconset-svg": "polymerelements/iron-iconset-svg#^1.0.0", - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "paper-styles": "polymerelements/paper-styles#^1.0.2", - "iron-component-page": "polymerelements/iron-component-page#1.0.0", - "iron-flex-layout": "polymerelements/iron-flex-layout#^1.0.0", - "iron-meta": "polymerelements/iron-meta#^1.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "ignore": [ - "util", - "update-icons.sh" - ], - "_release": "1.0.3", - "_resolution": { - "type": "version", - "tag": "v1.0.3", - "commit": "036325be99c33c052ac807a705aacad70be1127f" - }, - "_source": "git://github.com/PolymerElements/iron-icons.git", - "_target": "^1.0.0", - "_originalSource": "PolymerElements/iron-icons" -} \ No newline at end of file diff --git a/bower_components/iron-icons/.gitignore b/bower_components/iron-icons/.gitignore deleted file mode 100644 index bb1944e..0000000 --- a/bower_components/iron-icons/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -util/node_modules -material-design-icons -bower_components diff --git a/bower_components/iron-icons/README.md b/bower_components/iron-icons/README.md deleted file mode 100644 index 5502532..0000000 --- a/bower_components/iron-icons/README.md +++ /dev/null @@ -1,6 +0,0 @@ -iron-icons -========= - -## Building -Running `update-icons.sh` will checkout [material-design-icons](https://github.com/google/material-design-icons), reduce -the fileset to 24px svgs, and compile the iconsets. diff --git a/bower_components/iron-icons/av-icons.html b/bower_components/iron-icons/av-icons.html deleted file mode 100644 index 0d6ff37..0000000 --- a/bower_components/iron-icons/av-icons.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-icons/bower.json b/bower_components/iron-icons/bower.json deleted file mode 100644 index 8ec25db..0000000 --- a/bower_components/iron-icons/bower.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "iron-icons", - "version": "1.0.3", - "description": "A set of icons for use with iron-icon", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "icon" - ], - "main": "iron-icons.html", - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-icons" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/paper-icons", - "dependencies": { - "iron-icon": "polymerelements/iron-icon#^1.0.0", - "iron-iconset-svg": "polymerelements/iron-iconset-svg#^1.0.0", - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "paper-styles": "polymerelements/paper-styles#^1.0.2", - "iron-component-page": "polymerelements/iron-component-page#1.0.0", - "iron-flex-layout": "polymerelements/iron-flex-layout#^1.0.0", - "iron-meta": "polymerelements/iron-meta#^1.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "ignore": [ - "util", - "update-icons.sh" - ] -} diff --git a/bower_components/iron-icons/communication-icons.html b/bower_components/iron-icons/communication-icons.html deleted file mode 100644 index ec72704..0000000 --- a/bower_components/iron-icons/communication-icons.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-icons/demo/index.html b/bower_components/iron-icons/demo/index.html deleted file mode 100644 index d5daf8f..0000000 --- a/bower_components/iron-icons/demo/index.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - iron-icons - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-icons/device-icons.html b/bower_components/iron-icons/device-icons.html deleted file mode 100644 index e875a05..0000000 --- a/bower_components/iron-icons/device-icons.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-icons/editor-icons.html b/bower_components/iron-icons/editor-icons.html deleted file mode 100644 index 7fabfe0..0000000 --- a/bower_components/iron-icons/editor-icons.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-icons/hardware-icons.html b/bower_components/iron-icons/hardware-icons.html deleted file mode 100644 index 670cb07..0000000 --- a/bower_components/iron-icons/hardware-icons.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-icons/hero.svg b/bower_components/iron-icons/hero.svg deleted file mode 100644 index 52949be..0000000 --- a/bower_components/iron-icons/hero.svg +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-icons/image-icons.html b/bower_components/iron-icons/image-icons.html deleted file mode 100644 index f6c45f5..0000000 --- a/bower_components/iron-icons/image-icons.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-icons/index.html b/bower_components/iron-icons/index.html deleted file mode 100644 index 95d1991..0000000 --- a/bower_components/iron-icons/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-icons/iron-icons.html b/bower_components/iron-icons/iron-icons.html deleted file mode 100644 index 922d4d8..0000000 --- a/bower_components/iron-icons/iron-icons.html +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-icons/maps-icons.html b/bower_components/iron-icons/maps-icons.html deleted file mode 100644 index 008a0ef..0000000 --- a/bower_components/iron-icons/maps-icons.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-icons/notification-icons.html b/bower_components/iron-icons/notification-icons.html deleted file mode 100644 index 39db434..0000000 --- a/bower_components/iron-icons/notification-icons.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-icons/social-icons.html b/bower_components/iron-icons/social-icons.html deleted file mode 100644 index 5553caa..0000000 --- a/bower_components/iron-icons/social-icons.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-iconset-svg/.bower.json b/bower_components/iron-iconset-svg/.bower.json deleted file mode 100644 index 7031e24..0000000 --- a/bower_components/iron-iconset-svg/.bower.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "iron-iconset-svg", - "description": "Manages a set of svg icons", - "version": "1.0.4", - "keywords": [ - "web-components", - "polymer", - "icon" - ], - "license": "http://polymer.github.io/LICENSE.txt", - "private": true, - "authors": [ - "The Polymer Authors" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-iconset-svg.git" - }, - "dependencies": { - "polymer": "polymer/polymer#^1.0.0", - "iron-meta": "polymerelements/iron-meta#^1.0.0" - }, - "devDependencies": { - "paper-styles": "polymerelements/paper-styles#^1.0.2", - "iron-component-page": "polymerelements/iron-component-page#^1.0.0", - "iron-icon": "polymerelements/iron-icon#^1.0.0", - "test-fixture": "polymerelements/test-fixture#^1.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", - "web-component-tester": "*" - }, - "homepage": "https://github.com/polymerelements/iron-iconset-svg", - "_release": "1.0.4", - "_resolution": { - "type": "version", - "tag": "v1.0.4", - "commit": "795aa82ac22971421bc4375efbd2419ebba9099f" - }, - "_source": "git://github.com/polymerelements/iron-iconset-svg.git", - "_target": "^1.0.0", - "_originalSource": "polymerelements/iron-iconset-svg" -} \ No newline at end of file diff --git a/bower_components/iron-iconset-svg/.gitignore b/bower_components/iron-iconset-svg/.gitignore deleted file mode 100644 index 8d4ae25..0000000 --- a/bower_components/iron-iconset-svg/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bower_components diff --git a/bower_components/iron-iconset-svg/README.md b/bower_components/iron-iconset-svg/README.md deleted file mode 100644 index 37d603a..0000000 --- a/bower_components/iron-iconset-svg/README.md +++ /dev/null @@ -1,4 +0,0 @@ -iron-iconset-svg -========= - -See the [component page](http://polymer-project.org/docs/elements/iron-elements.html#iron-iconset-svg) for more information. diff --git a/bower_components/iron-iconset-svg/bower.json b/bower_components/iron-iconset-svg/bower.json deleted file mode 100644 index b58569c..0000000 --- a/bower_components/iron-iconset-svg/bower.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "iron-iconset-svg", - "description": "Manages a set of svg icons", - "version": "1.0.4", - "keywords": [ - "web-components", - "polymer", - "icon" - ], - "license": "http://polymer.github.io/LICENSE.txt", - "private": true, - "authors": [ - "The Polymer Authors" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-iconset-svg.git" - }, - "dependencies": { - "polymer": "polymer/polymer#^1.0.0", - "iron-meta": "polymerelements/iron-meta#^1.0.0" - }, - "devDependencies": { - "paper-styles": "polymerelements/paper-styles#^1.0.2", - "iron-component-page": "polymerelements/iron-component-page#^1.0.0", - "iron-icon": "polymerelements/iron-icon#^1.0.0", - "test-fixture": "polymerelements/test-fixture#^1.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", - "web-component-tester": "*" - } -} diff --git a/bower_components/iron-iconset-svg/demo/index.html b/bower_components/iron-iconset-svg/demo/index.html deleted file mode 100644 index efe8478..0000000 --- a/bower_components/iron-iconset-svg/demo/index.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - iron-iconset-svg - - - - - - - - - -
- - - -
- - - diff --git a/bower_components/iron-iconset-svg/demo/svg-sample-icons.html b/bower_components/iron-iconset-svg/demo/svg-sample-icons.html deleted file mode 100644 index 94c930d..0000000 --- a/bower_components/iron-iconset-svg/demo/svg-sample-icons.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-iconset-svg/index.html b/bower_components/iron-iconset-svg/index.html deleted file mode 100644 index e871f17..0000000 --- a/bower_components/iron-iconset-svg/index.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-iconset-svg/iron-iconset-svg.html b/bower_components/iron-iconset-svg/iron-iconset-svg.html deleted file mode 100644 index 3cebc2c..0000000 --- a/bower_components/iron-iconset-svg/iron-iconset-svg.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - diff --git a/bower_components/iron-iconset-svg/test/index.html b/bower_components/iron-iconset-svg/test/index.html deleted file mode 100644 index db4a3f6..0000000 --- a/bower_components/iron-iconset-svg/test/index.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - Tests - - - - - - - - - diff --git a/bower_components/iron-iconset-svg/test/iron-iconset-svg.html b/bower_components/iron-iconset-svg/test/iron-iconset-svg.html deleted file mode 100644 index 4af6f8b..0000000 --- a/bower_components/iron-iconset-svg/test/iron-iconset-svg.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - iron-iconset-svg - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-image/.bower.json b/bower_components/iron-image/.bower.json deleted file mode 100644 index 6431717..0000000 --- a/bower_components/iron-image/.bower.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "iron-image", - "version": "1.0.2", - "license": "http://polymer.github.io/LICENSE.txt", - "description": "An image-displaying element with lots of convenient features", - "private": true, - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "media" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-image.git" - }, - "dependencies": { - "iron-flex-layout": "polymerelements/iron-flex-layout#^1.0.0", - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "paper-styles": "polymerelements/paper-styles#^1.0.4", - "iron-component-page": "polymerelements/iron-component-page#^1.0.0", - "test-fixture": "polymerelements/test-fixture#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "homepage": "https://github.com/PolymerElements/iron-image", - "_release": "1.0.2", - "_resolution": { - "type": "version", - "tag": "v1.0.2", - "commit": "f3d3090dc9a59b662f67c9c7dd1fc61e716f353d" - }, - "_source": "git://github.com/PolymerElements/iron-image.git", - "_target": "^1.0.0", - "_originalSource": "PolymerElements/iron-image" -} \ No newline at end of file diff --git a/bower_components/iron-image/.gitignore b/bower_components/iron-image/.gitignore deleted file mode 100644 index 8d4ae25..0000000 --- a/bower_components/iron-image/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bower_components diff --git a/bower_components/iron-image/README.md b/bower_components/iron-image/README.md deleted file mode 100644 index 04fda7a..0000000 --- a/bower_components/iron-image/README.md +++ /dev/null @@ -1,60 +0,0 @@ -iron-image -========== - -`iron-image` is an element for displaying an image that provides useful sizing and -preloading options not found on the standard `` tag. - -The `sizing` option allows the image to be either cropped (`cover`) or -letterboxed (`contain`) to fill a fixed user-size placed on the element. - -The `preload` option prevents the browser from rendering the image until the -image is fully loaded. In the interim, either the element's CSS `background-color` -can be be used as the placeholder, or the `placeholder` property can be -set to a URL (preferably a data-URI, for instant rendering) for an -placeholder image. - -The `fade` option (only valid when `preload` is set) will cause the placeholder -image/color to be faded out once the image is rendered. - -Examples: - -Basically identical to `` tag: - -```html - -``` - -Will letterbox the image to fit: - -```html - -``` - -Will crop the image to fit: - -```html - -``` - -Will show light-gray background until the image loads: - -```html - -``` - -Will show a base-64 encoded placeholder image until the image loads: - -```html - -``` - -Will fade the light-gray background out once the image is loaded: - -```html - -``` diff --git a/bower_components/iron-image/bower.json b/bower_components/iron-image/bower.json deleted file mode 100644 index 8e3d0ac..0000000 --- a/bower_components/iron-image/bower.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "iron-image", - "version": "1.0.2", - "license": "http://polymer.github.io/LICENSE.txt", - "description": "An image-displaying element with lots of convenient features", - "private": true, - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "media" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-image.git" - }, - "dependencies": { - "iron-flex-layout": "polymerelements/iron-flex-layout#^1.0.0", - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "paper-styles": "polymerelements/paper-styles#^1.0.4", - "iron-component-page": "polymerelements/iron-component-page#^1.0.0", - "test-fixture": "polymerelements/test-fixture#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - } -} diff --git a/bower_components/iron-image/demo/index.html b/bower_components/iron-image/demo/index.html deleted file mode 100644 index b29f9cb..0000000 --- a/bower_components/iron-image/demo/index.html +++ /dev/null @@ -1,183 +0,0 @@ - - - - - - iron-image - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-image/demo/polymer.svg b/bower_components/iron-image/demo/polymer.svg deleted file mode 100644 index 70735e7..0000000 --- a/bower_components/iron-image/demo/polymer.svg +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-image/index.html b/bower_components/iron-image/index.html deleted file mode 100644 index b12d417..0000000 --- a/bower_components/iron-image/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - iron-image - - - - - - - - - - diff --git a/bower_components/iron-image/iron-image.html b/bower_components/iron-image/iron-image.html deleted file mode 100644 index 7eba73f..0000000 --- a/bower_components/iron-image/iron-image.html +++ /dev/null @@ -1,354 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-image/test/index.html b/bower_components/iron-image/test/index.html deleted file mode 100644 index fa31e17..0000000 --- a/bower_components/iron-image/test/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - diff --git a/bower_components/iron-image/test/iron-image.html b/bower_components/iron-image/test/iron-image.html deleted file mode 100644 index 0e06fe3..0000000 --- a/bower_components/iron-image/test/iron-image.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - iron-image - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-media-query/.bower.json b/bower_components/iron-media-query/.bower.json deleted file mode 100644 index ce32680..0000000 --- a/bower_components/iron-media-query/.bower.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "iron-media-query", - "version": "1.0.2", - "description": "Lets you bind to a CSS media query", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "media" - ], - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-media-query" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/iron-media-query", - "ignore": [], - "dependencies": { - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "paper-styles": "polymerelements/paper-styles#^1.0.2", - "web-component-tester": "*", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "_release": "1.0.2", - "_resolution": { - "type": "version", - "tag": "v1.0.2", - "commit": "34abf0a3b8bf9e9e478352dbb3d9e6a76bf3669a" - }, - "_source": "git://github.com/PolymerElements/iron-media-query.git", - "_target": "^1.0.0", - "_originalSource": "PolymerElements/iron-media-query" -} \ No newline at end of file diff --git a/bower_components/iron-media-query/.gitignore b/bower_components/iron-media-query/.gitignore deleted file mode 100644 index 8d4ae25..0000000 --- a/bower_components/iron-media-query/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bower_components diff --git a/bower_components/iron-media-query/README.md b/bower_components/iron-media-query/README.md deleted file mode 100644 index f577b3c..0000000 --- a/bower_components/iron-media-query/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# iron-media-query - -`iron-media-query` can be used to data bind to a CSS media query. -The `query` property is a bare CSS media query. -The `query-matches` property is a boolean representing if the page matches that media query. - -Example: - -```html - -``` diff --git a/bower_components/iron-media-query/bower.json b/bower_components/iron-media-query/bower.json deleted file mode 100644 index 48c342a..0000000 --- a/bower_components/iron-media-query/bower.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "iron-media-query", - "version": "1.0.2", - "description": "Lets you bind to a CSS media query", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "media" - ], - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-media-query" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/iron-media-query", - "ignore": [], - "dependencies": { - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "paper-styles": "polymerelements/paper-styles#^1.0.2", - "web-component-tester": "*", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - } -} diff --git a/bower_components/iron-media-query/demo/index.html b/bower_components/iron-media-query/demo/index.html deleted file mode 100644 index 2f3856f..0000000 --- a/bower_components/iron-media-query/demo/index.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - iron-media-query demo - - - - - - - - - - - - - -
-

<iron-media-query>

- - -
- - - diff --git a/bower_components/iron-media-query/hero.svg b/bower_components/iron-media-query/hero.svg deleted file mode 100644 index 0a7982b..0000000 --- a/bower_components/iron-media-query/hero.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-media-query/index.html b/bower_components/iron-media-query/index.html deleted file mode 100644 index 7aee5c1..0000000 --- a/bower_components/iron-media-query/index.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - iron-media-query - - - - - - - - - - - - - diff --git a/bower_components/iron-media-query/iron-media-query.html b/bower_components/iron-media-query/iron-media-query.html deleted file mode 100644 index 8325eb2..0000000 --- a/bower_components/iron-media-query/iron-media-query.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - diff --git a/bower_components/iron-media-query/test/basic.html b/bower_components/iron-media-query/test/basic.html deleted file mode 100644 index 34346c2..0000000 --- a/bower_components/iron-media-query/test/basic.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - iron-media-query-basic - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-media-query/test/index.html b/bower_components/iron-media-query/test/index.html deleted file mode 100644 index 7baa57f..0000000 --- a/bower_components/iron-media-query/test/index.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - Tests - - - - - - - - - diff --git a/bower_components/iron-menu-behavior/.bower.json b/bower_components/iron-menu-behavior/.bower.json deleted file mode 100644 index 7ca24d4..0000000 --- a/bower_components/iron-menu-behavior/.bower.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "iron-menu-behavior", - "version": "1.0.1", - "description": "Provides accessible menu behavior", - "authors": "The Polymer Authors", - "keywords": [ - "web-components", - "polymer", - "behavior", - "menu" - ], - "main": "iron-menu-behavior.html", - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-menu-behavior" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/iron-menu-behavior", - "ignore": [], - "dependencies": { - "iron-selector": "PolymerElements/iron-selector#^1.0.0", - "polymer": "Polymer/polymer#^1.0.0", - "iron-a11y-keys-behavior": "polymerelements/iron-a11y-keys-behavior#^1.0.0" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "_release": "1.0.1", - "_resolution": { - "type": "version", - "tag": "v1.0.1", - "commit": "3809f0eb7461c8ca63640aaa238775b3a25aa578" - }, - "_source": "git://github.com/PolymerElements/iron-menu-behavior.git", - "_target": "^1.0.0", - "_originalSource": "PolymerElements/iron-menu-behavior" -} \ No newline at end of file diff --git a/bower_components/iron-menu-behavior/.gitignore b/bower_components/iron-menu-behavior/.gitignore deleted file mode 100644 index 8d4ae25..0000000 --- a/bower_components/iron-menu-behavior/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bower_components diff --git a/bower_components/iron-menu-behavior/README.md b/bower_components/iron-menu-behavior/README.md deleted file mode 100644 index 42ab7fa..0000000 --- a/bower_components/iron-menu-behavior/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# iron-menu-behavior - -`Polymer.IronMenuBehavior` implements accessible menu behavior. diff --git a/bower_components/iron-menu-behavior/bower.json b/bower_components/iron-menu-behavior/bower.json deleted file mode 100644 index f0d453c..0000000 --- a/bower_components/iron-menu-behavior/bower.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "iron-menu-behavior", - "version": "1.0.1", - "description": "Provides accessible menu behavior", - "authors": "The Polymer Authors", - "keywords": [ - "web-components", - "polymer", - "behavior", - "menu" - ], - "main": "iron-menu-behavior.html", - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-menu-behavior" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/iron-menu-behavior", - "ignore": [], - "dependencies": { - "iron-selector": "PolymerElements/iron-selector#^1.0.0", - "polymer": "Polymer/polymer#^1.0.0", - "iron-a11y-keys-behavior": "polymerelements/iron-a11y-keys-behavior#^1.0.0" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - } -} diff --git a/bower_components/iron-menu-behavior/demo/index.html b/bower_components/iron-menu-behavior/demo/index.html deleted file mode 100644 index 6e64d2a..0000000 --- a/bower_components/iron-menu-behavior/demo/index.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - - - - iron-menu-behavior demo - - - - - - - - - - - - -
- -
Simple menu
- - -
  • item 0
  • -
  • item 1
  • -
  • item 2
  • -
  • item 3
  • -
    - -
    - -
    - -
    Multi-select menu
    - - -
  • item 0
  • -
  • item 1
  • -
  • item 2
  • -
  • item 3
  • -
  • item 4
  • -
    - -
    - -
    - -
    Simple menubar
    - - -
  • item 0
  • -
  • item 1
  • -
  • item 2
  • -
  • item 3
  • -
    - -
    - -
    -
    Multi-select menubar
    - - -
  • item 0
  • -
  • item 1
  • -
  • item 2
  • -
  • item 3
  • -
  • item 4
  • -
    -
    - - diff --git a/bower_components/iron-menu-behavior/demo/simple-menu.html b/bower_components/iron-menu-behavior/demo/simple-menu.html deleted file mode 100644 index cd1c7cf..0000000 --- a/bower_components/iron-menu-behavior/demo/simple-menu.html +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - diff --git a/bower_components/iron-menu-behavior/demo/simple-menubar.html b/bower_components/iron-menu-behavior/demo/simple-menubar.html deleted file mode 100644 index ad38ecf..0000000 --- a/bower_components/iron-menu-behavior/demo/simple-menubar.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - diff --git a/bower_components/iron-menu-behavior/index.html b/bower_components/iron-menu-behavior/index.html deleted file mode 100644 index 2c643c4..0000000 --- a/bower_components/iron-menu-behavior/index.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - iron-menu-behavior - - - - - - - - - - - - - diff --git a/bower_components/iron-menu-behavior/iron-menu-behavior.html b/bower_components/iron-menu-behavior/iron-menu-behavior.html deleted file mode 100644 index aa58c7f..0000000 --- a/bower_components/iron-menu-behavior/iron-menu-behavior.html +++ /dev/null @@ -1,214 +0,0 @@ - - - - - - - diff --git a/bower_components/iron-menu-behavior/iron-menubar-behavior.html b/bower_components/iron-menu-behavior/iron-menubar-behavior.html deleted file mode 100644 index e25304a..0000000 --- a/bower_components/iron-menu-behavior/iron-menubar-behavior.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - diff --git a/bower_components/iron-menu-behavior/test/index.html b/bower_components/iron-menu-behavior/test/index.html deleted file mode 100644 index 4b1c82f..0000000 --- a/bower_components/iron-menu-behavior/test/index.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - iron-menu-behavior tests - - - - - - - - - - - - - - diff --git a/bower_components/iron-menu-behavior/test/iron-menu-behavior.html b/bower_components/iron-menu-behavior/test/iron-menu-behavior.html deleted file mode 100644 index 309dbb1..0000000 --- a/bower_components/iron-menu-behavior/test/iron-menu-behavior.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - iron-menu-behavior tests - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-menu-behavior/test/iron-menubar-behavior.html b/bower_components/iron-menu-behavior/test/iron-menubar-behavior.html deleted file mode 100644 index b007b1c..0000000 --- a/bower_components/iron-menu-behavior/test/iron-menubar-behavior.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - iron-menubar-behavior tests - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-menu-behavior/test/test-menu.html b/bower_components/iron-menu-behavior/test/test-menu.html deleted file mode 100644 index 19b1662..0000000 --- a/bower_components/iron-menu-behavior/test/test-menu.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - diff --git a/bower_components/iron-menu-behavior/test/test-menubar.html b/bower_components/iron-menu-behavior/test/test-menubar.html deleted file mode 100644 index 5f7ecbc..0000000 --- a/bower_components/iron-menu-behavior/test/test-menubar.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - diff --git a/bower_components/iron-meta/.bower.json b/bower_components/iron-meta/.bower.json deleted file mode 100644 index 8119ebc..0000000 --- a/bower_components/iron-meta/.bower.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "iron-meta", - "version": "1.0.3", - "keywords": [ - "web-components", - "polymer" - ], - "license": "http://polymer.github.io/LICENSE.txt", - "description": "Useful for sharing information across a DOM tree", - "private": true, - "authors": [ - "The Polymer Authors" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-meta.git" - }, - "dependencies": { - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "paper-styles": "polymerelements/paper-styles#^1.0.4", - "iron-component-page": "polymerelements/iron-component-page#^1.0.0", - "test-fixture": "polymerelements/test-fixture#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "homepage": "https://github.com/polymerelements/iron-meta", - "_release": "1.0.3", - "_resolution": { - "type": "version", - "tag": "v1.0.3", - "commit": "91529259262b0d8f33fed44bc3fd47aedf35cb04" - }, - "_source": "git://github.com/polymerelements/iron-meta.git", - "_target": "^1.0.0", - "_originalSource": "polymerelements/iron-meta" -} \ No newline at end of file diff --git a/bower_components/iron-meta/.gitignore b/bower_components/iron-meta/.gitignore deleted file mode 100644 index 8d4ae25..0000000 --- a/bower_components/iron-meta/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bower_components diff --git a/bower_components/iron-meta/README.md b/bower_components/iron-meta/README.md deleted file mode 100644 index 26e2ddf..0000000 --- a/bower_components/iron-meta/README.md +++ /dev/null @@ -1,46 +0,0 @@ -iron-meta -========= - -`iron-meta` is a generic element you can use for sharing information across the DOM tree. -It uses [monostate pattern](http://c2.com/cgi/wiki?MonostatePattern) such that any -instance of iron-meta has access to the shared -information. You can use `iron-meta` to share whatever you want (or create an extension -[like x-meta] for enhancements). - -The `iron-meta` instances containing your actual data can be loaded in an import, -or constructed in any way you see fit. The only requirement is that you create them -before you try to access them. - -Examples: - -If I create an instance like this: - -```html - -``` - -Note that value="foo/bar" is the metadata I've defined. I could define more -attributes or use child nodes to define additional metadata. - -Now I can access that element (and it's metadata) from any iron-meta instance -via the byKey method, e.g. - -```javascript -meta.byKey('info').getAttribute('value'); -``` - -Pure imperative form would be like: - -```javascript -document.createElement('iron-meta').byKey('info').getAttribute('value'); -``` - -Or, in a Polymer element, you can include a meta in your template: - -```html - -``` - -```javascript -this.$.meta.byKey('info').getAttribute('value'); -``` diff --git a/bower_components/iron-meta/bower.json b/bower_components/iron-meta/bower.json deleted file mode 100644 index 65a1f8f..0000000 --- a/bower_components/iron-meta/bower.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "iron-meta", - "version": "1.0.3", - "keywords": [ - "web-components", - "polymer" - ], - "license": "http://polymer.github.io/LICENSE.txt", - "description": "Useful for sharing information across a DOM tree", - "private": true, - "authors": [ - "The Polymer Authors" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-meta.git" - }, - "dependencies": { - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "paper-styles": "polymerelements/paper-styles#^1.0.4", - "iron-component-page": "polymerelements/iron-component-page#^1.0.0", - "test-fixture": "polymerelements/test-fixture#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - } -} diff --git a/bower_components/iron-meta/demo/index.html b/bower_components/iron-meta/demo/index.html deleted file mode 100644 index 3deee3c..0000000 --- a/bower_components/iron-meta/demo/index.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - iron-meta - - - - - - - -
    -

    <iron-meta>

    - - The value stored at key="info" is . -
    - - - - - diff --git a/bower_components/iron-meta/hero.svg b/bower_components/iron-meta/hero.svg deleted file mode 100644 index 8d36c50..0000000 --- a/bower_components/iron-meta/hero.svg +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-meta/index.html b/bower_components/iron-meta/index.html deleted file mode 100644 index c70dc6e..0000000 --- a/bower_components/iron-meta/index.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - iron-meta - - - - - - - - - - - diff --git a/bower_components/iron-meta/iron-meta.html b/bower_components/iron-meta/iron-meta.html deleted file mode 100644 index 4b34311..0000000 --- a/bower_components/iron-meta/iron-meta.html +++ /dev/null @@ -1,317 +0,0 @@ - - - - - - - diff --git a/bower_components/iron-meta/test/basic.html b/bower_components/iron-meta/test/basic.html deleted file mode 100644 index c561dc3..0000000 --- a/bower_components/iron-meta/test/basic.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - iron-meta-basic - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-meta/test/index.html b/bower_components/iron-meta/test/index.html deleted file mode 100644 index 2b9541b..0000000 --- a/bower_components/iron-meta/test/index.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - Tests - - - - - - - - - diff --git a/bower_components/iron-meta/test/iron-meta.html b/bower_components/iron-meta/test/iron-meta.html deleted file mode 100644 index c1a4028..0000000 --- a/bower_components/iron-meta/test/iron-meta.html +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - iron-meta - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-resizable-behavior/.bower.json b/bower_components/iron-resizable-behavior/.bower.json deleted file mode 100644 index 9ae5e84..0000000 --- a/bower_components/iron-resizable-behavior/.bower.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "iron-resizable-behavior", - "version": "1.0.2", - "license": "http://polymer.github.io/LICENSE.txt", - "description": "Coordinates the flow of resizeable elements", - "private": true, - "main": "iron-resizable-behavior.html", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "iron", - "behavior" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-resizable-behavior.git" - }, - "dependencies": { - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "iron-component-page": "polymerelements/iron-component-page#^1.0.0", - "test-fixture": "polymerelements/test-fixture#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "homepage": "https://github.com/PolymerElements/iron-resizable-behavior", - "_release": "1.0.2", - "_resolution": { - "type": "version", - "tag": "v1.0.2", - "commit": "85de8ba28be2bf17c81d6436ef1119022b003674" - }, - "_source": "git://github.com/PolymerElements/iron-resizable-behavior.git", - "_target": "^1.0.0", - "_originalSource": "PolymerElements/iron-resizable-behavior" -} \ No newline at end of file diff --git a/bower_components/iron-resizable-behavior/.gitignore b/bower_components/iron-resizable-behavior/.gitignore deleted file mode 100644 index 8d4ae25..0000000 --- a/bower_components/iron-resizable-behavior/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bower_components diff --git a/bower_components/iron-resizable-behavior/README.md b/bower_components/iron-resizable-behavior/README.md deleted file mode 100644 index 72be6de..0000000 --- a/bower_components/iron-resizable-behavior/README.md +++ /dev/null @@ -1,16 +0,0 @@ -iron-resizable-behavior -======================= - -`IronResizableBehavior` is a behavior that can be used in Polymer elements to -coordinate the flow of resize events between "resizers" (elements that control the -size or hidden state of their children) and "resizables" (elements that need to be -notified when they are resized or un-hidden by their parents in order to take -action on their new measurements). - -Elements that perform measurement should add the `IronResizableBehavior` behavior to -their element definition and listen for the `iron-resize` event on themselves. -This event will be fired when they become showing after having been hidden, -when they are resized explicitly by another resizable, or when the window has been -resized. - -Note, the `iron-resize` event is non-bubbling. diff --git a/bower_components/iron-resizable-behavior/bower.json b/bower_components/iron-resizable-behavior/bower.json deleted file mode 100644 index d0591a3..0000000 --- a/bower_components/iron-resizable-behavior/bower.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "iron-resizable-behavior", - "version": "1.0.2", - "license": "http://polymer.github.io/LICENSE.txt", - "description": "Coordinates the flow of resizeable elements", - "private": true, - "main": "iron-resizable-behavior.html", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "iron", - "behavior" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-resizable-behavior.git" - }, - "dependencies": { - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "iron-component-page": "polymerelements/iron-component-page#^1.0.0", - "test-fixture": "polymerelements/test-fixture#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - } -} diff --git a/bower_components/iron-resizable-behavior/demo/index.html b/bower_components/iron-resizable-behavior/demo/index.html deleted file mode 100644 index 2896c50..0000000 --- a/bower_components/iron-resizable-behavior/demo/index.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - iron-resizable-behavior demo - - - - - - - - - - - - - - diff --git a/bower_components/iron-resizable-behavior/demo/src/x-app.html b/bower_components/iron-resizable-behavior/demo/src/x-app.html deleted file mode 100644 index c334ad3..0000000 --- a/bower_components/iron-resizable-behavior/demo/src/x-app.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-resizable-behavior/index.html b/bower_components/iron-resizable-behavior/index.html deleted file mode 100644 index b9b8809..0000000 --- a/bower_components/iron-resizable-behavior/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - iron-resizable-behavior - - - - - - - - - - diff --git a/bower_components/iron-resizable-behavior/iron-resizable-behavior.html b/bower_components/iron-resizable-behavior/iron-resizable-behavior.html deleted file mode 100644 index 19b8c02..0000000 --- a/bower_components/iron-resizable-behavior/iron-resizable-behavior.html +++ /dev/null @@ -1,193 +0,0 @@ - - - - - - diff --git a/bower_components/iron-resizable-behavior/test/basic.html b/bower_components/iron-resizable-behavior/test/basic.html deleted file mode 100644 index 0ae890d..0000000 --- a/bower_components/iron-resizable-behavior/test/basic.html +++ /dev/null @@ -1,263 +0,0 @@ - - - - - - - iron-resizable-behavior tests - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-resizable-behavior/test/index.html b/bower_components/iron-resizable-behavior/test/index.html deleted file mode 100644 index e1d3fca..0000000 --- a/bower_components/iron-resizable-behavior/test/index.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - Tests - - - - - - - - - diff --git a/bower_components/iron-resizable-behavior/test/iron-resizable-behavior.html b/bower_components/iron-resizable-behavior/test/iron-resizable-behavior.html deleted file mode 100644 index 695b977..0000000 --- a/bower_components/iron-resizable-behavior/test/iron-resizable-behavior.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - iron-resizable-behavior tests - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-resizable-behavior/test/test-elements.html b/bower_components/iron-resizable-behavior/test/test-elements.html deleted file mode 100644 index d70561e..0000000 --- a/bower_components/iron-resizable-behavior/test/test-elements.html +++ /dev/null @@ -1,193 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-selector/.bower.json b/bower_components/iron-selector/.bower.json deleted file mode 100644 index 3105082..0000000 --- a/bower_components/iron-selector/.bower.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "iron-selector", - "version": "1.0.2", - "description": "Manages a set of elements that can be selected", - "private": true, - "license": "http://polymer.github.io/LICENSE.txt", - "main": [ - "iron-selector.html" - ], - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "selector" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-selector.git" - }, - "dependencies": { - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "homepage": "https://github.com/PolymerElements/iron-selector", - "_release": "1.0.2", - "_resolution": { - "type": "version", - "tag": "v1.0.2", - "commit": "ea22d91d11ba6f72c01faa952d5e600f9d1773cf" - }, - "_source": "git://github.com/PolymerElements/iron-selector.git", - "_target": "^1.0.0", - "_originalSource": "PolymerElements/iron-selector" -} \ No newline at end of file diff --git a/bower_components/iron-selector/.gitignore b/bower_components/iron-selector/.gitignore deleted file mode 100644 index b13058c..0000000 --- a/bower_components/iron-selector/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -bower_components -.DS_Store diff --git a/bower_components/iron-selector/README.md b/bower_components/iron-selector/README.md deleted file mode 100644 index 6bece29..0000000 --- a/bower_components/iron-selector/README.md +++ /dev/null @@ -1,50 +0,0 @@ -iron-selector -============= - -`iron-selector` is an element which can be used to manage a list of elements -that can be selected. Tapping on the item will make the item selected. The `selected` indicates -which item is being selected. The default is to use the index of the item. - -Example: - -```html - -
    Item 1
    -
    Item 2
    -
    Item 3
    -
    -``` - -If you want to use the attribute value of an element for `selected` instead of the index, -set `attrForSelected` to the name of the attribute. For example, if you want to select item by -`name`, set `attrForSelected` to `name`. - -Example: - -```html - -
    Foo
    -
    Bar
    -
    Zot
    -
    -``` - -`iron-selector` is not styled. Use the `iron-selected` CSS class to style the selected element. - -Example: - -```html - - -... - - -
    Item 1
    -
    Item 2
    -
    Item 3
    -
    -``` diff --git a/bower_components/iron-selector/bower.json b/bower_components/iron-selector/bower.json deleted file mode 100644 index b9751df..0000000 --- a/bower_components/iron-selector/bower.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "iron-selector", - "version": "1.0.2", - "description": "Manages a set of elements that can be selected", - "private": true, - "license": "http://polymer.github.io/LICENSE.txt", - "main": [ - "iron-selector.html" - ], - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "selector" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-selector.git" - }, - "dependencies": { - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - } -} diff --git a/bower_components/iron-selector/demo/index.html b/bower_components/iron-selector/demo/index.html deleted file mode 100644 index cdb7f99..0000000 --- a/bower_components/iron-selector/demo/index.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - iron-selector - - - - - - - - - - - - -

    Basic

    - - -
    Item 0
    -
    Item 1
    -
    Item 2
    -
    Item 3
    -
    Item 4
    -
    - -

    Multi-select

    - - -
    Item 0
    -
    Item 1
    -
    Item 2
    -
    Item 3
    -
    Item 4
    -
    - -

    Example

    - - -
    Foo
    -
    Bar
    -
    Zot
    -
    - - - diff --git a/bower_components/iron-selector/index.html b/bower_components/iron-selector/index.html deleted file mode 100644 index a27840b..0000000 --- a/bower_components/iron-selector/index.html +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - iron-selector - - - - - - - - - - - - - diff --git a/bower_components/iron-selector/iron-multi-selectable.html b/bower_components/iron-selector/iron-multi-selectable.html deleted file mode 100644 index ba9455d..0000000 --- a/bower_components/iron-selector/iron-multi-selectable.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - diff --git a/bower_components/iron-selector/iron-selectable.html b/bower_components/iron-selector/iron-selectable.html deleted file mode 100644 index f0506d5..0000000 --- a/bower_components/iron-selector/iron-selectable.html +++ /dev/null @@ -1,307 +0,0 @@ - - - - - - diff --git a/bower_components/iron-selector/iron-selection.html b/bower_components/iron-selector/iron-selection.html deleted file mode 100644 index 0ff04cf..0000000 --- a/bower_components/iron-selector/iron-selection.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - diff --git a/bower_components/iron-selector/iron-selector.html b/bower_components/iron-selector/iron-selector.html deleted file mode 100644 index 92abe04..0000000 --- a/bower_components/iron-selector/iron-selector.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - diff --git a/bower_components/iron-selector/test/activate-event.html b/bower_components/iron-selector/test/activate-event.html deleted file mode 100644 index 8390548..0000000 --- a/bower_components/iron-selector/test/activate-event.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - iron-selector-activate-event - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-selector/test/basic.html b/bower_components/iron-selector/test/basic.html deleted file mode 100644 index 602de18..0000000 --- a/bower_components/iron-selector/test/basic.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - iron-selector-basic - - - - - - - - - - - - - - - - - - - -

    - - - - - - - - - diff --git a/bower_components/iron-selector/test/content-element.html b/bower_components/iron-selector/test/content-element.html deleted file mode 100644 index d0cd6d7..0000000 --- a/bower_components/iron-selector/test/content-element.html +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - diff --git a/bower_components/iron-selector/test/content.html b/bower_components/iron-selector/test/content.html deleted file mode 100644 index e869f98..0000000 --- a/bower_components/iron-selector/test/content.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - iron-selector-content - - - - - - - - - - - - - - - - -
    item0
    -
    item1
    -
    item2
    -
    item3
    -
    - - - item0 -
    - item1 - item2 -
    - item3 -
    - - - - - - - - - diff --git a/bower_components/iron-selector/test/index.html b/bower_components/iron-selector/test/index.html deleted file mode 100644 index 17d7e4b..0000000 --- a/bower_components/iron-selector/test/index.html +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - Tests - - - - - - - - - diff --git a/bower_components/iron-selector/test/multi.html b/bower_components/iron-selector/test/multi.html deleted file mode 100644 index fdc31c7..0000000 --- a/bower_components/iron-selector/test/multi.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - iron-selector-multi - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-selector/test/next-previous.html b/bower_components/iron-selector/test/next-previous.html deleted file mode 100644 index 3a830c2..0000000 --- a/bower_components/iron-selector/test/next-previous.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - iron-selector-next-previous - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-selector/test/selected-attribute.html b/bower_components/iron-selector/test/selected-attribute.html deleted file mode 100644 index 3e1ecaf..0000000 --- a/bower_components/iron-selector/test/selected-attribute.html +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - iron-selector-selected-attribute - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/iron-selector/test/template-repeat.html b/bower_components/iron-selector/test/template-repeat.html deleted file mode 100644 index eae2729..0000000 --- a/bower_components/iron-selector/test/template-repeat.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - iron-selector-template-repeat - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/paper-behaviors/.bower.json b/bower_components/paper-behaviors/.bower.json deleted file mode 100644 index 7c969e4..0000000 --- a/bower_components/paper-behaviors/.bower.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "paper-behaviors", - "version": "1.0.2", - "description": "Common behaviors across the paper elements", - "authors": [ - "The Polymer Authors" - ], - "main": [ - "paper-button-behavior.html", - "paper-radio-button-behavior.html" - ], - "keywords": [ - "web-components", - "web-component", - "polymer", - "paper", - "behavior" - ], - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-behaviors" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/paper-behaviors", - "dependencies": { - "iron-behaviors": "PolymerElements/iron-behaviors#^1.0.0", - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "iron-component-page": "polymerelements/iron-component-page#^1.0.0", - "iron-test-helpers": "polymerelements/iron-test-helpers#^1.0.0", - "paper-material": "PolymerElements/paper-material#^1.0.0", - "paper-ripple": "PolymerElements/paper-ripple#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "_release": "1.0.2", - "_resolution": { - "type": "version", - "tag": "v1.0.2", - "commit": "4dd226a2cc5b780a73d0058cd9998b6e0af1cb2c" - }, - "_source": "git://github.com/polymerelements/paper-behaviors.git", - "_target": "^1.0.0", - "_originalSource": "polymerelements/paper-behaviors" -} \ No newline at end of file diff --git a/bower_components/paper-behaviors/.gitignore b/bower_components/paper-behaviors/.gitignore deleted file mode 100644 index 8d4ae25..0000000 --- a/bower_components/paper-behaviors/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bower_components diff --git a/bower_components/paper-behaviors/README.md b/bower_components/paper-behaviors/README.md deleted file mode 100644 index e793a62..0000000 --- a/bower_components/paper-behaviors/README.md +++ /dev/null @@ -1,4 +0,0 @@ -paper-behaviors -=============== - -These are common behaviors used across `paper-*` elements. diff --git a/bower_components/paper-behaviors/bower.json b/bower_components/paper-behaviors/bower.json deleted file mode 100644 index d4cae45..0000000 --- a/bower_components/paper-behaviors/bower.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "paper-behaviors", - "version": "1.0.2", - "description": "Common behaviors across the paper elements", - "authors": [ - "The Polymer Authors" - ], - "main": [ - "paper-button-behavior.html", - "paper-radio-button-behavior.html" - ], - "keywords": [ - "web-components", - "web-component", - "polymer", - "paper", - "behavior" - ], - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-behaviors" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/paper-behaviors", - "dependencies": { - "iron-behaviors": "PolymerElements/iron-behaviors#^1.0.0", - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "iron-component-page": "polymerelements/iron-component-page#^1.0.0", - "iron-test-helpers": "polymerelements/iron-test-helpers#^1.0.0", - "paper-material": "PolymerElements/paper-material#^1.0.0", - "paper-ripple": "PolymerElements/paper-ripple#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - } -} diff --git a/bower_components/paper-behaviors/demo/index.html b/bower_components/paper-behaviors/demo/index.html deleted file mode 100644 index d6b775b..0000000 --- a/bower_components/paper-behaviors/demo/index.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - paper-behaviors demo - - - - - - - - - - - -

    Normal

    - - Hello World - -

    Toggles

    - - Hello World - -

    Disabled

    - - Hello World - -

    Radio button with focus state

    - - - - - - diff --git a/bower_components/paper-behaviors/demo/paper-button.html b/bower_components/paper-behaviors/demo/paper-button.html deleted file mode 100644 index c38bd00..0000000 --- a/bower_components/paper-behaviors/demo/paper-button.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/bower_components/paper-behaviors/demo/paper-radio-button.html b/bower_components/paper-behaviors/demo/paper-radio-button.html deleted file mode 100644 index 93af175..0000000 --- a/bower_components/paper-behaviors/demo/paper-radio-button.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/bower_components/paper-behaviors/index.html b/bower_components/paper-behaviors/index.html deleted file mode 100644 index 3e003cb..0000000 --- a/bower_components/paper-behaviors/index.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/bower_components/paper-behaviors/paper-button-behavior.html b/bower_components/paper-behaviors/paper-button-behavior.html deleted file mode 100644 index bbe508f..0000000 --- a/bower_components/paper-behaviors/paper-button-behavior.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - diff --git a/bower_components/paper-behaviors/paper-inky-focus-behavior.html b/bower_components/paper-behaviors/paper-inky-focus-behavior.html deleted file mode 100644 index 4f6e9f8..0000000 --- a/bower_components/paper-behaviors/paper-inky-focus-behavior.html +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - diff --git a/bower_components/paper-behaviors/test/index.html b/bower_components/paper-behaviors/test/index.html deleted file mode 100644 index c58bfee..0000000 --- a/bower_components/paper-behaviors/test/index.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - diff --git a/bower_components/paper-behaviors/test/paper-button-behavior.html b/bower_components/paper-behaviors/test/paper-button-behavior.html deleted file mode 100644 index 9663938..0000000 --- a/bower_components/paper-behaviors/test/paper-button-behavior.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - paper-button-behavior - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/paper-behaviors/test/paper-radio-button-behavior.html b/bower_components/paper-behaviors/test/paper-radio-button-behavior.html deleted file mode 100644 index 890d0bb..0000000 --- a/bower_components/paper-behaviors/test/paper-radio-button-behavior.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - paper-radio-button-behavior - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/paper-behaviors/test/test-button.html b/bower_components/paper-behaviors/test/test-button.html deleted file mode 100644 index 3bbf356..0000000 --- a/bower_components/paper-behaviors/test/test-button.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - diff --git a/bower_components/paper-behaviors/test/test-radio-button.html b/bower_components/paper-behaviors/test/test-radio-button.html deleted file mode 100644 index afeabbb..0000000 --- a/bower_components/paper-behaviors/test/test-radio-button.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - diff --git a/bower_components/paper-drawer-panel/.bower.json b/bower_components/paper-drawer-panel/.bower.json deleted file mode 100644 index e49fa46..0000000 --- a/bower_components/paper-drawer-panel/.bower.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "paper-drawer-panel", - "version": "1.0.2", - "description": "A responsive drawer panel", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "drawer", - "responsive", - "layout" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-drawer-panel.git" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/paper-drawer-panel", - "dependencies": { - "polymer": "Polymer/polymer#^1.0.0", - "iron-selector": "PolymerElements/iron-selector#^1.0.0", - "iron-media-query": "PolymerElements/iron-media-query#^1.0.0" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "paper-button": "PolymerElements/paper-button#^1.0.0", - "paper-styles": "PolymerElements/paper-styles#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "_release": "1.0.2", - "_resolution": { - "type": "version", - "tag": "v1.0.2", - "commit": "691739c877914f7231eaca16b724bdca295dfe8d" - }, - "_source": "git://github.com/PolymerElements/paper-drawer-panel.git", - "_target": "^1.0.0", - "_originalSource": "PolymerElements/paper-drawer-panel" -} \ No newline at end of file diff --git a/bower_components/paper-drawer-panel/.gitignore b/bower_components/paper-drawer-panel/.gitignore deleted file mode 100644 index fbe05fc..0000000 --- a/bower_components/paper-drawer-panel/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bower_components/ diff --git a/bower_components/paper-drawer-panel/README.md b/bower_components/paper-drawer-panel/README.md deleted file mode 100644 index 2828663..0000000 --- a/bower_components/paper-drawer-panel/README.md +++ /dev/null @@ -1,71 +0,0 @@ -# paper-drawer-panel - -`paper-drawer-panel` contains a drawer panel and a main panel. The drawer -and the main panel are side-by-side with drawer on the left. When the browser -window size is smaller than the `responsiveWidth`, `paper-drawer-panel` -changes to narrow layout. In narrow layout, the drawer will be stacked on top -of the main panel. The drawer will slide in/out to hide/reveal the main -panel. - -Use the attribute `drawer` to indicate that the element is the drawer panel and -`main` to indicate that the element is the main panel. - -Example: - -```html - -
    Drawer panel...
    -
    Main panel...
    -
    -``` - -The drawer and the main panels are not scrollable. You can set CSS overflow -property on the elements to make them scrollable or use `paper-header-panel`. - -Example: - -```html - - - -
    Drawer content...
    -
    - - -
    Main content...
    -
    -
    -``` - -An element that should toggle the drawer will automatically do so if it's -given the `paper-drawer-toggle` attribute. Also this element will automatically -be hidden in wide layout. - -Example: - -```html - - - -
    Application
    -
    -
    Drawer content...
    -
    - - - -
    Title
    -
    -
    Main content...
    -
    -
    -``` - -To position the drawer to the right, add `right-drawer` attribute. - -```html - -
    Drawer panel...
    -
    Main panel...
    -
    -``` diff --git a/bower_components/paper-drawer-panel/bower.json b/bower_components/paper-drawer-panel/bower.json deleted file mode 100644 index f87cca9..0000000 --- a/bower_components/paper-drawer-panel/bower.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "paper-drawer-panel", - "version": "1.0.2", - "description": "A responsive drawer panel", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "drawer", - "responsive", - "layout" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-drawer-panel.git" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/paper-drawer-panel", - "dependencies": { - "polymer": "Polymer/polymer#^1.0.0", - "iron-selector": "PolymerElements/iron-selector#^1.0.0", - "iron-media-query": "PolymerElements/iron-media-query#^1.0.0" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "paper-button": "PolymerElements/paper-button#^1.0.0", - "paper-styles": "PolymerElements/paper-styles#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - } -} diff --git a/bower_components/paper-drawer-panel/demo/index.html b/bower_components/paper-drawer-panel/demo/index.html deleted file mode 100644 index f69df9f..0000000 --- a/bower_components/paper-drawer-panel/demo/index.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - paper-drawer-panel demo - - - - - - - - - - - - - - - - - - - -
    -
    -
    - flip drawer -
    -
    - toggle drawer -
    -
    -
    - - - - - diff --git a/bower_components/paper-drawer-panel/hero.svg b/bower_components/paper-drawer-panel/hero.svg deleted file mode 100644 index b53bf75..0000000 --- a/bower_components/paper-drawer-panel/hero.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/paper-drawer-panel/index.html b/bower_components/paper-drawer-panel/index.html deleted file mode 100644 index 1390ecc..0000000 --- a/bower_components/paper-drawer-panel/index.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - paper-drawer-panel - - - - - - - - - - - - - diff --git a/bower_components/paper-drawer-panel/paper-drawer-panel.css b/bower_components/paper-drawer-panel/paper-drawer-panel.css deleted file mode 100644 index ab7c568..0000000 --- a/bower_components/paper-drawer-panel/paper-drawer-panel.css +++ /dev/null @@ -1,142 +0,0 @@ -/** -@license -Copyright (c) 2015 The Polymer Project Authors. All rights reserved. -This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt -The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt -The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt -Code distributed by Google as part of the polymer project is also -subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt - -*/ -:host { - display: block; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - overflow: hidden; -} - -iron-selector > #drawer { - position: absolute; - top: 0; - left: 0; - height: 100%; - background-color: white; - will-change: transform; - box-sizing: border-box; - -moz-box-sizing: border-box; - - @apply(--paper-drawer-panel-drawer-container); -} - -.transition > #drawer { - transition: -webkit-transform ease-in-out 0.3s, width ease-in-out 0.3s; - transition: transform ease-in-out 0.3s, width ease-in-out 0.3s; -} - -.left-drawer > #drawer { - @apply(--paper-drawer-panel-left-drawer-container); -} - -.right-drawer > #drawer { - left: auto; - right: 0; - - @apply(--paper-drawer-panel-right-drawer-container); -} - -iron-selector > #main { - position: absolute; - top: 0; - right: 0; - bottom: 0; - - @apply(--paper-drawer-panel-main-container); -} - -.transition > #main { - transition: left ease-in-out 0.3s, padding ease-in-out 0.3s; -} - -.right-drawer > #main { - left: 0; -} - -.right-drawer.transition > #main { - transition: right ease-in-out 0.3s, padding ease-in-out 0.3s; -} - -#main > ::content > [main] { - height: 100%; -} - -#drawer > ::content > [drawer] { - height: 100%; -} - -#scrim { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - visibility: hidden; - opacity: 0; - transition: opacity ease-in-out 0.38s, visibility ease-in-out 0.38s; - background-color: rgba(0, 0, 0, 0.3); -} - -.narrow-layout > #drawer.iron-selected { - box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.15); -} - -.right-drawer.narrow-layout > #drawer.iron-selected { - box-shadow: -2px 2px 4px rgba(0, 0, 0, 0.15); -} - -.narrow-layout > #drawer > ::content > [drawer] { - border: 0; -} - -.left-drawer.narrow-layout > #drawer:not(.iron-selected) { - -webkit-transform: translateX(-100%); - transform: translateX(-100%); -} - -.right-drawer.narrow-layout > #drawer:not(.iron-selected) { - left: auto; - -webkit-transform: translateX(100%); - transform: translateX(100%); -} - -.narrow-layout > #main { - left: 0 !important; - padding: 0; -} - -.right-drawer.narrow-layout > #main { - left: 0; - right: 0; - padding: 0; -} - -.narrow-layout > #main:not(.iron-selected) > #scrim, -.dragging > #main > #scrim { - visibility: visible; - opacity: var(--paper-drawer-panel-scrim-opacity, 1); -} - -.narrow-layout > #main > * { - margin: 0; - min-height: 100%; - left: 0; - right: 0; - box-sizing: border-box; - -moz-box-sizing: border-box; -} - -iron-selector:not(.narrow-layout) #main ::content [paper-drawer-toggle] { - display: none; -} \ No newline at end of file diff --git a/bower_components/paper-drawer-panel/paper-drawer-panel.html b/bower_components/paper-drawer-panel/paper-drawer-panel.html deleted file mode 100644 index 148cfeb..0000000 --- a/bower_components/paper-drawer-panel/paper-drawer-panel.html +++ /dev/null @@ -1,591 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/bower_components/paper-fab/.bower.json b/bower_components/paper-fab/.bower.json deleted file mode 100644 index 15e922a..0000000 --- a/bower_components/paper-fab/.bower.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "paper-fab", - "version": "1.0.2", - "description": "A material design floating action button", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "button" - ], - "main": "paper-fab.html", - "ignore": [], - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-fab" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/paper-fab", - "dependencies": { - "paper-ripple": "polymerelements/paper-ripple#^1.0.0", - "paper-material": "polymerelements/paper-material#^1.0.0", - "paper-behaviors": "polymerelements/paper-behaviors#^1.0.0", - "iron-flex-layout": "polymerelements/iron-flex-layout#^1.0.0", - "iron-icon": "polymerelements/iron-icon#^1.0.0", - "iron-icons": "polymerelements/iron-icons#^1.0.0", - "paper-styles": "polymerelements/paper-styles#^1.0.0", - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "test-fixture": "polymerelements/test-fixture#^1.0.0", - "paper-styles": "polymerelements/paper-styles#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "_release": "1.0.2", - "_resolution": { - "type": "version", - "tag": "v1.0.2", - "commit": "59d2f77f456271f1ae4059b92d83ba7655fb1580" - }, - "_source": "git://github.com/PolymerElements/paper-fab.git", - "_target": "^1.0.0", - "_originalSource": "PolymerElements/paper-fab" -} \ No newline at end of file diff --git a/bower_components/paper-fab/.gitignore b/bower_components/paper-fab/.gitignore deleted file mode 100644 index 8d4ae25..0000000 --- a/bower_components/paper-fab/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bower_components diff --git a/bower_components/paper-fab/README.md b/bower_components/paper-fab/README.md deleted file mode 100644 index 5da43e2..0000000 --- a/bower_components/paper-fab/README.md +++ /dev/null @@ -1,44 +0,0 @@ -paper-fab -========= - -Material Design: Button - -`paper-fab` is a floating action button. It contains an image placed in the center and -comes in two sizes: regular size and a smaller size by applying the attribute `mini`. When -the user touches the button, a ripple effect emanates from the center of the button. - -You may import `iron-icons` to use with this element, or provide a URL to a custom icon. -See `iron-iconset` for more information about how to use a custom icon set. - -Example: - -```html - - - - - -``` - -Styling -------- - -Style the button with CSS as you would a normal DOM element. If you are using the icons -provided by `iron-icons`, the icon will inherit the foreground color of the button. - -```html - - -``` - -By default, the ripple is the same color as the foreground at 25% opacity. You may -customize the color using this selector: - -```css -/* make #my-button use a blue ripple instead of foreground color */ -#my-button::shadow #ripple { - color: blue; -} -``` - -The opacity of the ripple is not customizable via CSS. diff --git a/bower_components/paper-fab/bower.json b/bower_components/paper-fab/bower.json deleted file mode 100644 index f3738a2..0000000 --- a/bower_components/paper-fab/bower.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "paper-fab", - "version": "1.0.2", - "description": "A material design floating action button", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "button" - ], - "main": "paper-fab.html", - "ignore": [], - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-fab" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/paper-fab", - "dependencies": { - "paper-ripple": "polymerelements/paper-ripple#^1.0.0", - "paper-material": "polymerelements/paper-material#^1.0.0", - "paper-behaviors": "polymerelements/paper-behaviors#^1.0.0", - "iron-flex-layout": "polymerelements/iron-flex-layout#^1.0.0", - "iron-icon": "polymerelements/iron-icon#^1.0.0", - "iron-icons": "polymerelements/iron-icons#^1.0.0", - "paper-styles": "polymerelements/paper-styles#^1.0.0", - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "test-fixture": "polymerelements/test-fixture#^1.0.0", - "paper-styles": "polymerelements/paper-styles#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - } -} diff --git a/bower_components/paper-fab/demo/index.html b/bower_components/paper-fab/demo/index.html deleted file mode 100644 index 3bd9935..0000000 --- a/bower_components/paper-fab/demo/index.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - paper-fab demo - - - - - - - - - - - -
    -
    -

    Enabled

    -
    - - - - - -
    -
    - -
    -

    Disabled

    -
    - - - - - -
    -
    - -
    -

    Colors

    -
    - - - - - -
    -
    -
    - - diff --git a/bower_components/paper-fab/index.html b/bower_components/paper-fab/index.html deleted file mode 100644 index c98a658..0000000 --- a/bower_components/paper-fab/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - paper-fab - - - - - - - - - - diff --git a/bower_components/paper-fab/paper-fab.html b/bower_components/paper-fab/paper-fab.html deleted file mode 100644 index f607ca4..0000000 --- a/bower_components/paper-fab/paper-fab.html +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/bower_components/paper-fab/test/a11y.html b/bower_components/paper-fab/test/a11y.html deleted file mode 100644 index 2a2cbe3..0000000 --- a/bower_components/paper-fab/test/a11y.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - paper-fab a11y tests - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/paper-fab/test/basic.html b/bower_components/paper-fab/test/basic.html deleted file mode 100644 index 6c8a48a..0000000 --- a/bower_components/paper-fab/test/basic.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - paper-fab basic tests - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/paper-fab/test/index.html b/bower_components/paper-fab/test/index.html deleted file mode 100644 index 9f90214..0000000 --- a/bower_components/paper-fab/test/index.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - paper-fab tests - - - - - - diff --git a/bower_components/paper-icon-button/.bower.json b/bower_components/paper-icon-button/.bower.json deleted file mode 100644 index 71c8d45..0000000 --- a/bower_components/paper-icon-button/.bower.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "paper-icon-button", - "private": true, - "version": "1.0.2", - "license": "http://polymer.github.io/LICENSE.txt", - "description": "A material design icon button", - "main": "paper-icon-button.html", - "author": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "button", - "icon", - "control" - ], - "dependencies": { - "iron-flex-layout": "polymerelements/iron-flex-layout#^1.0.0", - "iron-icon": "polymerelements/iron-icon#^1.0.0", - "iron-icons": "polymerelements/iron-icons#^1.0.0", - "paper-behaviors": "polymerelements/paper-behaviors#^1.0.0", - "paper-ripple": "polymerelements/paper-ripple#^1.0.0", - "paper-styles": "polymerelements/paper-styles#^1.0.0", - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "iron-component-page": "polymerelements/iron-component-page#^1.0.0", - "test-fixture": "polymerelements/test-fixture#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "homepage": "https://github.com/PolymerElements/paper-icon-button", - "_release": "1.0.2", - "_resolution": { - "type": "version", - "tag": "v1.0.2", - "commit": "b22ade2080f2527760eae41e4700c52d4689a866" - }, - "_source": "git://github.com/PolymerElements/paper-icon-button.git", - "_target": "^1.0.0", - "_originalSource": "PolymerElements/paper-icon-button" -} \ No newline at end of file diff --git a/bower_components/paper-icon-button/.gitignore b/bower_components/paper-icon-button/.gitignore deleted file mode 100644 index 8d4ae25..0000000 --- a/bower_components/paper-icon-button/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bower_components diff --git a/bower_components/paper-icon-button/README.md b/bower_components/paper-icon-button/README.md deleted file mode 100644 index 96dbf8e..0000000 --- a/bower_components/paper-icon-button/README.md +++ /dev/null @@ -1,49 +0,0 @@ -paper-icon-button -================= - -Material Design: Buttons - -`paper-icon-button` is a button with an image placed at the center. When the user touches -the button, a ripple effect emanates from the center of the button. - -`paper-icon-button` includes a default icon set. Use `icon` to specify which icon -from the icon set to use. - -```html - -``` - -See [`iron-iconset`](#iron-iconset) for more information about -how to use a custom icon set. - -Example: - -```html - - - - -``` - -Styling -------- - -Style the button with CSS as you would a normal DOM element. If you are using the icons -provided by `iron-icons`, they will inherit the foreground color of the button. - -```html - - -``` - -By default, the ripple is the same color as the foreground at 25% opacity. You may -customize the color using this selector: - -```css -/* make #my-button use a blue ripple instead of foreground color */ -#my-button::shadow #ripple { - color: blue; -} -``` - -The opacity of the ripple is not customizable via CSS. diff --git a/bower_components/paper-icon-button/bower.json b/bower_components/paper-icon-button/bower.json deleted file mode 100644 index 6886757..0000000 --- a/bower_components/paper-icon-button/bower.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "paper-icon-button", - "private": true, - "version": "1.0.2", - "license": "http://polymer.github.io/LICENSE.txt", - "description": "A material design icon button", - "main": "paper-icon-button.html", - "author": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "button", - "icon", - "control" - ], - "dependencies": { - "iron-flex-layout": "polymerelements/iron-flex-layout#^1.0.0", - "iron-icon": "polymerelements/iron-icon#^1.0.0", - "iron-icons": "polymerelements/iron-icons#^1.0.0", - "paper-behaviors": "polymerelements/paper-behaviors#^1.0.0", - "paper-ripple": "polymerelements/paper-ripple#^1.0.0", - "paper-styles": "polymerelements/paper-styles#^1.0.0", - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "iron-component-page": "polymerelements/iron-component-page#^1.0.0", - "test-fixture": "polymerelements/test-fixture#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - } -} diff --git a/bower_components/paper-icon-button/demo/index.html b/bower_components/paper-icon-button/demo/index.html deleted file mode 100644 index cbe6795..0000000 --- a/bower_components/paper-icon-button/demo/index.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - - paper-icon-button - - - - - - - - - - - - - - -
    -
    -

    Enabled

    -
    - - - - - - - -
    -
    - -
    -

    Disabled

    -
    - - - - - - - -
    -
    - -
    -

    Color

    -
    - - - - - - - -
    -
    - -
    -

    Size

    -
    - -


    - -
    -
    -
    - - - - diff --git a/bower_components/paper-icon-button/index.html b/bower_components/paper-icon-button/index.html deleted file mode 100644 index 94c3720..0000000 --- a/bower_components/paper-icon-button/index.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/bower_components/paper-icon-button/paper-icon-button.html b/bower_components/paper-icon-button/paper-icon-button.html deleted file mode 100644 index f4164ce..0000000 --- a/bower_components/paper-icon-button/paper-icon-button.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/bower_components/paper-icon-button/test/a11y.html b/bower_components/paper-icon-button/test/a11y.html deleted file mode 100644 index f6bf6fd..0000000 --- a/bower_components/paper-icon-button/test/a11y.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - paper-icon-button a11y tests - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/paper-icon-button/test/basic.html b/bower_components/paper-icon-button/test/basic.html deleted file mode 100644 index e98689c..0000000 --- a/bower_components/paper-icon-button/test/basic.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - paper-icon-button basic tests - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/paper-icon-button/test/index.html b/bower_components/paper-icon-button/test/index.html deleted file mode 100644 index 321c261..0000000 --- a/bower_components/paper-icon-button/test/index.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - paper-icon-button tests - - - - - - diff --git a/bower_components/paper-item/.bower.json b/bower_components/paper-item/.bower.json deleted file mode 100644 index 00391bb..0000000 --- a/bower_components/paper-item/.bower.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "paper-item", - "version": "1.0.1", - "description": "A material-design styled list item", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "item" - ], - "main": [ - "paper-item.html", - "paper-icon-item.html", - "paper-item-body.html" - ], - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-item" - }, - "license": "MIT", - "homepage": "https://github.com/PolymerElements/paper-item", - "ignore": [], - "dependencies": { - "paper-styles": "PolymerElements/paper-styles#^1.0.0", - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "iron-icon": "PolymerElements/iron-icon#^1.0.0", - "iron-icons": "PolymerElements/iron-icons#^1.0.0", - "paper-checkbox": "PolymerElements/paper-checkbox#^1.0.0", - "paper-toggle-button": "PolymerElements/paper-toggle-button#^1.0.0", - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "_release": "1.0.1", - "_resolution": { - "type": "version", - "tag": "v1.0.1", - "commit": "645ebae475ab4fc28698da253ccc3aa2c48341d7" - }, - "_source": "git://github.com/PolymerElements/paper-item.git", - "_target": "^1.0.0", - "_originalSource": "PolymerElements/paper-item" -} \ No newline at end of file diff --git a/bower_components/paper-item/.gitignore b/bower_components/paper-item/.gitignore deleted file mode 100644 index fbe05fc..0000000 --- a/bower_components/paper-item/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bower_components/ diff --git a/bower_components/paper-item/README.md b/bower_components/paper-item/README.md deleted file mode 100644 index 02f8202..0000000 --- a/bower_components/paper-item/README.md +++ /dev/null @@ -1,4 +0,0 @@ -paper-item -========= - -A non-interactive list item. diff --git a/bower_components/paper-item/all-imports.html b/bower_components/paper-item/all-imports.html deleted file mode 100644 index 4b1583f..0000000 --- a/bower_components/paper-item/all-imports.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - diff --git a/bower_components/paper-item/bower.json b/bower_components/paper-item/bower.json deleted file mode 100644 index f077268..0000000 --- a/bower_components/paper-item/bower.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "paper-item", - "version": "1.0.1", - "description": "A material-design styled list item", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "item" - ], - "main": [ - "paper-item.html", - "paper-icon-item.html", - "paper-item-body.html" - ], - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-item" - }, - "license": "MIT", - "homepage": "https://github.com/PolymerElements/paper-item", - "ignore": [], - "dependencies": { - "paper-styles": "PolymerElements/paper-styles#^1.0.0", - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "iron-icon": "PolymerElements/iron-icon#^1.0.0", - "iron-icons": "PolymerElements/iron-icons#^1.0.0", - "paper-checkbox": "PolymerElements/paper-checkbox#^1.0.0", - "paper-toggle-button": "PolymerElements/paper-toggle-button#^1.0.0", - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - } -} diff --git a/bower_components/paper-item/demo/index.html b/bower_components/paper-item/demo/index.html deleted file mode 100644 index cdedb31..0000000 --- a/bower_components/paper-item/demo/index.html +++ /dev/null @@ -1,285 +0,0 @@ - - - - - - - - - - paper-item demo - - - - - - - - - - - - - - - - - -
    -
    -

    Single line items

    -
    - Inbox - Starred - Sent mail - Drafts -
    -
    - -
    -

    Icon with text

    -
    - - Inbox - - - Outbox - - - Trash - - - Spam - -
    -
    - -
    -

    Avatar with text

    -
    - -
    Alphonso Engelking -
    - -
    Andrews Boyd -
    - -
    Angela Decker -
    - -
    Lorem Ipsum -
    -
    -
    - -
    -

    Avatar with text and icon

    -
    - -
    -
    Alphonso
    - -
    - -
    -
    Andrews
    - -
    - -
    -
    Angela
    - -
    - -
    -
    Lorem
    - -
    -
    -
    - -
    -

    Avatar with text and control

    -
    - -
    -
    Alphonso
    - -
    - -
    -
    Andrews
    - -
    - -
    -
    Angela
    - -
    - -
    -
    Lorem
    - -
    -
    -
    - -
    -

    Control with text and icon

    -
    - - -
    Alphonso
    - -
    - - -
    Andrews
    - -
    - - -
    Angela
    - -
    - - -
    Lorem
    - -
    -
    -
    - -
    -

    Two-line items

    -
    - - -
    Profile Photo
    -
    Change your Google+ profile photo
    -
    -
    - - -
    Show your status
    -
    Your status is visible to everyone you use with
    -
    -
    - - -
    Settings
    -
    Change your account settings
    -
    -
    -
    -
    - -
    -

    Icon with two-line text

    -
    - -
    - -
    Alphonso Engelking
    -
    Change photo
    -
    -
    - - - -
    (650) 555-1234
    -
    Mobile
    -
    -
    - - - -
    alphonso@example.com
    -
    Personal
    -
    -
    - -
    -
    - -
    -

    Avatar with text and icon

    -
    - -
    - -
    Photos
    -
    Jan 9, 2014
    -
    - -
    - -
    - -
    Recipes
    -
    Jan 17, 2014
    -
    - -
    - -
    - -
    Work
    -
    Jan 28, 2014
    -
    - -
    -
    -
    - - - diff --git a/bower_components/paper-item/index.html b/bower_components/paper-item/index.html deleted file mode 100644 index b409ed1..0000000 --- a/bower_components/paper-item/index.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - paper-item - - - - - - - - - - - - - diff --git a/bower_components/paper-item/paper-icon-item.html b/bower_components/paper-item/paper-icon-item.html deleted file mode 100644 index 231159c..0000000 --- a/bower_components/paper-item/paper-icon-item.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/bower_components/paper-item/paper-item-body.html b/bower_components/paper-item/paper-item-body.html deleted file mode 100644 index 6345830..0000000 --- a/bower_components/paper-item/paper-item-body.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/bower_components/paper-item/paper-item-shared.css b/bower_components/paper-item/paper-item-shared.css deleted file mode 100644 index 8528d1a..0000000 --- a/bower_components/paper-item/paper-item-shared.css +++ /dev/null @@ -1,19 +0,0 @@ -/* - @license - Copyright (c) 2015 The Polymer Project Authors. All rights reserved. - This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt - The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt - The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt - Code distributed by Google as part of the polymer project is also - subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt -*/ - -:host { - display: block; - min-height: var(--paper-item-min-height, 48px); - padding: 0px 16px; -} - -:host > ::content > *:not(:first-child):not(:last-child) { - margin-right: 16px; -} diff --git a/bower_components/paper-item/paper-item.html b/bower_components/paper-item/paper-item.html deleted file mode 100644 index 50b89fe..0000000 --- a/bower_components/paper-item/paper-item.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/paper-item/test/index.html b/bower_components/paper-item/test/index.html deleted file mode 100644 index 6f5314c..0000000 --- a/bower_components/paper-item/test/index.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - paper-item tests - - - - - - - - - - - - - - diff --git a/bower_components/paper-item/test/paper-item.html b/bower_components/paper-item/test/paper-item.html deleted file mode 100644 index 3c77ce3..0000000 --- a/bower_components/paper-item/test/paper-item.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - paper-item tests - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/paper-material/.bower.json b/bower_components/paper-material/.bower.json deleted file mode 100644 index 1933706..0000000 --- a/bower_components/paper-material/.bower.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "paper-material", - "version": "1.0.0", - "description": "A material design container that looks like a lifted sheet of paper", - "private": true, - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "web-component", - "polymer", - "paper", - "container" - ], - "main": [ - "paper-material.html" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-material" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/paper-material", - "ignore": [], - "dependencies": { - "paper-styles": "polymerelements/paper-styles#^1.0.0", - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "test-fixture": "polymerelements/test-fixture#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "_release": "1.0.0", - "_resolution": { - "type": "version", - "tag": "v1.0.0", - "commit": "bd769d2b8c4f9ab000aee22582d76b5935793dc1" - }, - "_source": "git://github.com/polymerelements/paper-material.git", - "_target": "^1.0.0", - "_originalSource": "polymerelements/paper-material" -} \ No newline at end of file diff --git a/bower_components/paper-material/.gitignore b/bower_components/paper-material/.gitignore deleted file mode 100644 index 8d4ae25..0000000 --- a/bower_components/paper-material/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bower_components diff --git a/bower_components/paper-material/README.md b/bower_components/paper-material/README.md deleted file mode 100644 index 1105102..0000000 --- a/bower_components/paper-material/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# paper-material -A Material Design container that looks like a lifted piece of paper. - -`paper-material` is a container that renders two shadows on top of each other to -create the effect of a lifted piece of paper. - -Example: - -```html - - ... content ... - -``` diff --git a/bower_components/paper-material/bower.json b/bower_components/paper-material/bower.json deleted file mode 100644 index e6f78bc..0000000 --- a/bower_components/paper-material/bower.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "paper-material", - "version": "1.0.0", - "description": "A material design container that looks like a lifted sheet of paper", - "private": true, - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "web-component", - "polymer", - "paper", - "container" - ], - "main": [ - "paper-material.html" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-material" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/paper-material", - "ignore": [], - "dependencies": { - "paper-styles": "polymerelements/paper-styles#^1.0.0", - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "test-fixture": "polymerelements/test-fixture#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - } -} diff --git a/bower_components/paper-material/demo/index.html b/bower_components/paper-material/demo/index.html deleted file mode 100644 index 864f696..0000000 --- a/bower_components/paper-material/demo/index.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - paper-material demo - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/paper-material/index.html b/bower_components/paper-material/index.html deleted file mode 100644 index 7209e6d..0000000 --- a/bower_components/paper-material/index.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - paper-material - - - - - - - - - - - - - diff --git a/bower_components/paper-material/paper-material.html b/bower_components/paper-material/paper-material.html deleted file mode 100644 index 60f87ba..0000000 --- a/bower_components/paper-material/paper-material.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - - - - - diff --git a/bower_components/paper-material/test/index.html b/bower_components/paper-material/test/index.html deleted file mode 100644 index 492a567..0000000 --- a/bower_components/paper-material/test/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - paper-material tests - - - - - - diff --git a/bower_components/paper-material/test/paper-material.html b/bower_components/paper-material/test/paper-material.html deleted file mode 100644 index 0a593fb..0000000 --- a/bower_components/paper-material/test/paper-material.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - paper-material basic tests - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/paper-menu/.bower.json b/bower_components/paper-menu/.bower.json deleted file mode 100644 index 0e4dff9..0000000 --- a/bower_components/paper-menu/.bower.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "paper-menu", - "version": "1.0.0", - "description": "Implements an accessible material design menu", - "authors": "The Polymer Authors", - "keywords": [ - "web-components", - "polymer", - "menu" - ], - "main": "paper-menu.html", - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-menu" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/paper-menu", - "ignore": [], - "dependencies": { - "iron-menu-behavior": "PolymerElements/iron-menu-behavior#^1.0.0", - "paper-styles": "PolymerElements/paper-styles#^1.0.0", - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "paper-item": "PolymerElements/paper-item#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "_release": "1.0.0", - "_resolution": { - "type": "version", - "tag": "v1.0.0", - "commit": "0642450ec9df0fc0b1d909842f436c3dea79ed1e" - }, - "_source": "git://github.com/PolymerElements/paper-menu.git", - "_target": "^1.0.0", - "_originalSource": "PolymerElements/paper-menu" -} \ No newline at end of file diff --git a/bower_components/paper-menu/.gitignore b/bower_components/paper-menu/.gitignore deleted file mode 100644 index fbe05fc..0000000 --- a/bower_components/paper-menu/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bower_components/ diff --git a/bower_components/paper-menu/README.md b/bower_components/paper-menu/README.md deleted file mode 100644 index 9991680..0000000 --- a/bower_components/paper-menu/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# paper-menu - -`` implements an accessible menu control with Material Design styling. diff --git a/bower_components/paper-menu/bower.json b/bower_components/paper-menu/bower.json deleted file mode 100644 index dd2a5cd..0000000 --- a/bower_components/paper-menu/bower.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "paper-menu", - "version": "1.0.0", - "description": "Implements an accessible material design menu", - "authors": "The Polymer Authors", - "keywords": [ - "web-components", - "polymer", - "menu" - ], - "main": "paper-menu.html", - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-menu" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/paper-menu", - "ignore": [], - "dependencies": { - "iron-menu-behavior": "PolymerElements/iron-menu-behavior#^1.0.0", - "paper-styles": "PolymerElements/paper-styles#^1.0.0", - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "paper-item": "PolymerElements/paper-item#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - } -} diff --git a/bower_components/paper-menu/demo/index.html b/bower_components/paper-menu/demo/index.html deleted file mode 100644 index 9734cac..0000000 --- a/bower_components/paper-menu/demo/index.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - paper-menu demo - - - - - - - - - - - -
    -
    -

    Standard

    -
    - - Inbox - Starred - Sent mail - Drafts - -
    -
    - -
    -

    Pre-selected

    -
    - - Inbox - Starred - Sent mail - Drafts - -
    -
    - -
    -

    Multi-select

    -
    - - Bold - Italic - Underline - Strikethrough - -
    -
    -
    - - diff --git a/bower_components/paper-menu/hero.svg b/bower_components/paper-menu/hero.svg deleted file mode 100644 index eaa0fb5..0000000 --- a/bower_components/paper-menu/hero.svg +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/paper-menu/index.html b/bower_components/paper-menu/index.html deleted file mode 100644 index fc88411..0000000 --- a/bower_components/paper-menu/index.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - paper-menu - - - - - - - - - - - - - diff --git a/bower_components/paper-menu/paper-menu.html b/bower_components/paper-menu/paper-menu.html deleted file mode 100644 index 45ecd72..0000000 --- a/bower_components/paper-menu/paper-menu.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/bower_components/paper-menu/test/index.html b/bower_components/paper-menu/test/index.html deleted file mode 100644 index e6b26d5..0000000 --- a/bower_components/paper-menu/test/index.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - paper-menu tests - - - - - - - - - - - - - - diff --git a/bower_components/paper-menu/test/paper-menu.html b/bower_components/paper-menu/test/paper-menu.html deleted file mode 100644 index 5856775..0000000 --- a/bower_components/paper-menu/test/paper-menu.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - paper-menu tests - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/paper-ripple/.bower.json b/bower_components/paper-ripple/.bower.json deleted file mode 100644 index 0cbf50c..0000000 --- a/bower_components/paper-ripple/.bower.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "paper-ripple", - "version": "1.0.1", - "license": "http://polymer.github.io/LICENSE.txt", - "description": "Adds a material design ripple to any container", - "private": true, - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "ripple" - ], - "main": "paper-ripple.html", - "dependencies": { - "polymer": "Polymer/polymer#^1.0.0", - "iron-a11y-keys-behavior": "polymerelements/iron-a11y-keys-behavior#^1.0.0" - }, - "devDependencies": { - "iron-component-page": "polymerelements/iron-component-page#^1.0.0", - "iron-icon": "polymerelements/iron-icon#^1.0.0", - "iron-icons": "polymerelements/iron-icons#^1.0.0", - "paper-styles": "polymerelements/paper-styles#^1.0.0", - "test-fixture": "polymerelements/test-fixture#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "homepage": "https://github.com/polymerelements/paper-ripple", - "_release": "1.0.1", - "_resolution": { - "type": "version", - "tag": "v1.0.1", - "commit": "af19d904802437c305390bb03415c11661de3d0a" - }, - "_source": "git://github.com/polymerelements/paper-ripple.git", - "_target": "^1.0.0", - "_originalSource": "polymerelements/paper-ripple" -} \ No newline at end of file diff --git a/bower_components/paper-ripple/.gitignore b/bower_components/paper-ripple/.gitignore deleted file mode 100644 index 8d4ae25..0000000 --- a/bower_components/paper-ripple/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bower_components diff --git a/bower_components/paper-ripple/README.md b/bower_components/paper-ripple/README.md deleted file mode 100644 index b9bde23..0000000 --- a/bower_components/paper-ripple/README.md +++ /dev/null @@ -1,65 +0,0 @@ -paper-ripple -============ - -`paper-ripple` provides a visual effect that other paper elements can -use to simulate a rippling effect emanating from the point of contact. The -effect can be visualized as a concentric circle with motion. - -Example: - -```html - -``` - -`paper-ripple` listens to "mousedown" and "mouseup" events so it would display ripple -effect when touches on it. You can also defeat the default behavior and -manually route the down and up actions to the ripple element. Note that it is -important if you call downAction() you will have to make sure to call -upAction() so that `paper-ripple` would end the animation loop. - -Example: - -```html - -... - -``` - -Styling ripple effect: - -Use CSS color property to style the ripple: - -```css -paper-ripple { - color: #4285f4; -} -``` - -Note that CSS color property is inherited so it is not required to set it on -the `paper-ripple` element directly. - - -By default, the ripple is centered on the point of contact. Apply the ``recenters`` attribute to have the ripple grow toward the center of its container. - -```html - -``` - -Apply `center` to center the ripple inside its container from the start. - -```html - -``` - -Apply `circle` class to make the rippling effect within a circle. - -```html - -``` diff --git a/bower_components/paper-ripple/bower.json b/bower_components/paper-ripple/bower.json deleted file mode 100644 index b9bb0d9..0000000 --- a/bower_components/paper-ripple/bower.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "paper-ripple", - "version": "1.0.1", - "license": "http://polymer.github.io/LICENSE.txt", - "description": "Adds a material design ripple to any container", - "private": true, - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "ripple" - ], - "main": "paper-ripple.html", - "dependencies": { - "polymer": "Polymer/polymer#^1.0.0", - "iron-a11y-keys-behavior": "polymerelements/iron-a11y-keys-behavior#^1.0.0" - }, - "devDependencies": { - "iron-component-page": "polymerelements/iron-component-page#^1.0.0", - "iron-icon": "polymerelements/iron-icon#^1.0.0", - "iron-icons": "polymerelements/iron-icons#^1.0.0", - "paper-styles": "polymerelements/paper-styles#^1.0.0", - "test-fixture": "polymerelements/test-fixture#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - } -} diff --git a/bower_components/paper-ripple/demo/index.html b/bower_components/paper-ripple/demo/index.html deleted file mode 100644 index 365eb3e..0000000 --- a/bower_components/paper-ripple/demo/index.html +++ /dev/null @@ -1,413 +0,0 @@ - - - - - paper-ripple demo - - - - - - - - - - - - - - - - - -
    - -
    -
    SUBMIT
    - -
    - -
    -
    CANCEL
    - -
    - -
    -
    COMPOSE
    - -
    - -
    -
    OK
    - -
    - -
    - -
    - -
    -
    +1
    - -
    - -
    -
    +1
    - -
    - -
    -
    +1
    - -
    - -
    - -
    - -
    - - -
    - -
    - - -
    - -
    - - -
    - -
    - - -
    - -
    - -
    - -
    - - -
    - -
    - - -
    - -
    - - -
    - -
    - -
    - - - - - -
    - -
    - -
    - -
    -
    Permission

    -
    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.
    -
    - -
    -
    ACCEPT
    - -
    - -
    -
    DECLINE
    - -
    - -
    - -
    - -
    - -
    - - - -
    - -
    - - - - diff --git a/bower_components/paper-ripple/hero.svg b/bower_components/paper-ripple/hero.svg deleted file mode 100644 index 96f0b4c..0000000 --- a/bower_components/paper-ripple/hero.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/paper-ripple/index.html b/bower_components/paper-ripple/index.html deleted file mode 100644 index 3c371fa..0000000 --- a/bower_components/paper-ripple/index.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - paper-ripple - - - - - - - - - - - - - diff --git a/bower_components/paper-ripple/paper-ripple.html b/bower_components/paper-ripple/paper-ripple.html deleted file mode 100644 index 08d3da1..0000000 --- a/bower_components/paper-ripple/paper-ripple.html +++ /dev/null @@ -1,716 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/bower_components/paper-ripple/test/index.html b/bower_components/paper-ripple/test/index.html deleted file mode 100644 index 48197c0..0000000 --- a/bower_components/paper-ripple/test/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - Tests - - - - - - diff --git a/bower_components/paper-ripple/test/paper-ripple.html b/bower_components/paper-ripple/test/paper-ripple.html deleted file mode 100644 index 8123206..0000000 --- a/bower_components/paper-ripple/test/paper-ripple.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - - paper-ripple - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/paper-scroll-header-panel/.bower.json b/bower_components/paper-scroll-header-panel/.bower.json deleted file mode 100644 index 422d641..0000000 --- a/bower_components/paper-scroll-header-panel/.bower.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "paper-scroll-header-panel", - "description": "A header bar with scrolling behavior", - "version": "1.0.4", - "license": "http://polymer.github.io/LICENSE.txt", - "private": true, - "authors": "The Polymer Authors", - "keywords": [ - "web-components", - "polymer", - "layout", - "responsive" - ], - "main": [ - "paper-scroll-header-panel.html" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-scroll-header-panel.git" - }, - "dependencies": { - "polymer": "Polymer/polymer#^1.0.0", - "paper-toolbar": "PolymerElements/paper-toolbar#^1.0.0", - "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#^1.0.0" - }, - "devDependencies": { - "paper-styles": "PolymerElements/paper-styles#^1.0.0", - "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", - "iron-media-query": "PolymerElements/iron-media-query#^1.0.0", - "iron-icons": "PolymerElements/iron-icons#^1.0.0", - "paper-icon-button": "PolymerElements/paper-icon-button#^1.0.0", - "paper-input": "PolymerElements/paper-input#^1.0.0", - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "homepage": "https://github.com/PolymerElements/paper-scroll-header-panel", - "_release": "1.0.4", - "_resolution": { - "type": "version", - "tag": "v1.0.4", - "commit": "13f17709ce666adf2ab25161bc180816c53e7583" - }, - "_source": "git://github.com/PolymerElements/paper-scroll-header-panel.git", - "_target": "^1.0.0", - "_originalSource": "PolymerElements/paper-scroll-header-panel" -} \ No newline at end of file diff --git a/bower_components/paper-scroll-header-panel/.gitignore b/bower_components/paper-scroll-header-panel/.gitignore deleted file mode 100644 index 8d4ae25..0000000 --- a/bower_components/paper-scroll-header-panel/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bower_components diff --git a/bower_components/paper-scroll-header-panel/README.md b/bower_components/paper-scroll-header-panel/README.md deleted file mode 100644 index 78f6376..0000000 --- a/bower_components/paper-scroll-header-panel/README.md +++ /dev/null @@ -1,56 +0,0 @@ -paper-scroll-header-panel -======================== - -`paper-scroll-header-panel` contains a header section and a content section. The header is initially on the top part of the view but it scrolls away with the rest of the scrollable content. Upon scrolling slightly up at any point, the header scrolls back into view. This saves screen space and allows users to access important controls by easily moving them back to the view. - -Important: The `paper-scroll-header-panel` will not display if its parent does not have a height. Using layout classes, you can easily make the `paper-scroll-header-panel` fill the screen - -```html - - - - Hello World! - - - -``` -or, if you would prefer to do it in CSS, just give html, body, and `paper-scroll-header-panel` a height of 100%: -```css -html, body { - height: 100%; - margin: 0; -} -paper-scroll-header-panel { - height: 100%; -} -``` -`paper-scroll-header-panel` works well with `paper-toolbar` but can use any element that represents a header by adding a `paper-header` class to it. - -```html - - Header -
    Content goes here...
    -
    -``` - -### Styling scroll-header-panel: - -To change background for toolbar when it is at its full size: - -```css -paper-scroll-header-panel { - --paper-scroll-header-panel-full-header: { - background-color: red; - }; -} -``` - -To change the background for toolbar when it is condensed: - -```css -paper-scroll-header-panel { - --paper-scroll-header-panel-condensed-header: { - background-color: #f4b400; - }; -} -``` diff --git a/bower_components/paper-scroll-header-panel/bower.json b/bower_components/paper-scroll-header-panel/bower.json deleted file mode 100644 index 007cc44..0000000 --- a/bower_components/paper-scroll-header-panel/bower.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "paper-scroll-header-panel", - "description": "A header bar with scrolling behavior", - "version": "1.0.4", - "license": "http://polymer.github.io/LICENSE.txt", - "private": true, - "authors": "The Polymer Authors", - "keywords": [ - "web-components", - "polymer", - "layout", - "responsive" - ], - "main": [ - "paper-scroll-header-panel.html" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-scroll-header-panel.git" - }, - "dependencies": { - "polymer": "Polymer/polymer#^1.0.0", - "paper-toolbar": "PolymerElements/paper-toolbar#^1.0.0", - "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#^1.0.0" - }, - "devDependencies": { - "paper-styles": "PolymerElements/paper-styles#^1.0.0", - "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", - "iron-media-query": "PolymerElements/iron-media-query#^1.0.0", - "iron-icons": "PolymerElements/iron-icons#^1.0.0", - "paper-icon-button": "PolymerElements/paper-icon-button#^1.0.0", - "paper-input": "PolymerElements/paper-input#^1.0.0", - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - } -} diff --git a/bower_components/paper-scroll-header-panel/demo/demo1.html b/bower_components/paper-scroll-header-panel/demo/demo1.html deleted file mode 100644 index b14b0e7..0000000 --- a/bower_components/paper-scroll-header-panel/demo/demo1.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - paper-scroll-header-panel: demo1 - - - - - - - - - - - - - - - - - - - - - - - - - -
    Title
    - - - -
    - -
    - - - -
    - -
    - - - diff --git a/bower_components/paper-scroll-header-panel/demo/demo2.html b/bower_components/paper-scroll-header-panel/demo/demo2.html deleted file mode 100644 index 81c9484..0000000 --- a/bower_components/paper-scroll-header-panel/demo/demo2.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - paper-scroll-header-panel: demo2 - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    Title
    - -
    - -
    - - - -
    - -
    - - - diff --git a/bower_components/paper-scroll-header-panel/demo/demo3.html b/bower_components/paper-scroll-header-panel/demo/demo3.html deleted file mode 100644 index eb41f1b..0000000 --- a/bower_components/paper-scroll-header-panel/demo/demo3.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - paper-scroll-header-panel: demo3 - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - -
    - - - -
    - -
    - - - diff --git a/bower_components/paper-scroll-header-panel/demo/demo4.html b/bower_components/paper-scroll-header-panel/demo/demo4.html deleted file mode 100644 index 9b865d7..0000000 --- a/bower_components/paper-scroll-header-panel/demo/demo4.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - paper-scroll-header-panel: demo4 - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    Title
    - -
    - -
    - - - -
    - -
    - - - - - diff --git a/bower_components/paper-scroll-header-panel/demo/demo5.html b/bower_components/paper-scroll-header-panel/demo/demo5.html deleted file mode 100644 index 5cb2048..0000000 --- a/bower_components/paper-scroll-header-panel/demo/demo5.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - paper-scroll-header-panel: demo5 - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    Title
    - -
    - -
    - - - -
    - -
    - - - - - diff --git a/bower_components/paper-scroll-header-panel/demo/demo6.html b/bower_components/paper-scroll-header-panel/demo/demo6.html deleted file mode 100644 index c1524ab..0000000 --- a/bower_components/paper-scroll-header-panel/demo/demo6.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - paper-scroll-header-panel: demo6 - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    Title
    - -
    - -
    - - - -
    - -
    - - - - - diff --git a/bower_components/paper-scroll-header-panel/demo/demo7.html b/bower_components/paper-scroll-header-panel/demo/demo7.html deleted file mode 100644 index 4b5710b..0000000 --- a/bower_components/paper-scroll-header-panel/demo/demo7.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - paper-scroll-header-panel: demo7 - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    Title
    - -
    - -
    - -

    Resize window to toggle between fixed header and scrolled header

    - - -
    - -
    - - - - - - - diff --git a/bower_components/paper-scroll-header-panel/demo/demo8.html b/bower_components/paper-scroll-header-panel/demo/demo8.html deleted file mode 100644 index ffc24e6..0000000 --- a/bower_components/paper-scroll-header-panel/demo/demo8.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - - paper-scroll-header-panel: demo8 - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    -
    Lorem ipsum dolor sit amet
    -
    Iisque perfecto dissentiet cum et
    -
    - - - -
    - -
    - - - -
    - -
    - - - diff --git a/bower_components/paper-scroll-header-panel/demo/demo9.html b/bower_components/paper-scroll-header-panel/demo/demo9.html deleted file mode 100644 index 3c0d691..0000000 --- a/bower_components/paper-scroll-header-panel/demo/demo9.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - paper-scroll-header-panel: demo9 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    -
    - -
    - - - -
    - -
    - - - diff --git a/bower_components/paper-scroll-header-panel/demo/images/bg2.jpg b/bower_components/paper-scroll-header-panel/demo/images/bg2.jpg deleted file mode 100644 index 9aad0a93ddd71c99c867d79d61edc9a30211835c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97102 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

    ~)J7^<)(t6cH)u8@}QU^8W`S7fFY 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�Z- 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�NR50TUYJccJA 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�OJ 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 diff --git a/bower_components/paper-scroll-header-panel/demo/images/bg3.jpg b/bower_components/paper-scroll-header-panel/demo/images/bg3.jpg deleted file mode 100644 index 5079b4e80670e056ac219da93939da38dc1c6ee3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 80676 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 skw^Yta`6sB{c;#&BSK++|pc$ic?y+%7kV z5%X`KdE1`pN|sF@w$GA;YxQ+S4;;lOtC|P)(5%EIU{kkn1i`PYAk4Bb6EksI_vRHK ztnO(FF2+!SRB5-FE;J#b{biK&=NKhjv@JY5vY6?lzs0lAs>%Mi4rB|(%N?}5EX;;h z(R|!3@9#O7_=Aqc1ze@Hedi?<>;mv|E2*RqIemSfv&xB8=02>11wqpfVg)Qszr2Pt z*tbqo-6h5=!v^Lv#Ovcf=ozgivFvwLh&FYtaFgSUOry41xQGU-y0dmvgAqwzB7L5@ z*KAP#y;;jjSk3v>m{L;#pB7UfoAoK@$%iBy>)< zrcLqPu=C^9(X;#B;N;Nst*HTXa5@z!p;;t4q?uf(=*6GR`aU|bCWGJKt{)=aMZKTu z*3&yvfFN?)dBvro-90R_Pyv3mWn}jGhTP?zm4da1c#Y~RUh&1kI!Y`qt3t+M=Gec3 zvdaRNu7ST|KWEv6MWvuY;ZI?h6xJq?Vir~O$WMF=>AL?hL=EiCbUqP`wFMD`$AT`u z9eSNK=%OyHCF>yIku^pnF-dM_XBGd%GcS|0b7sgVDm*_5#&ep%!1WoHoutnt^OfRR zkzH$B*4vPx6(@)xiiR6{s2}zCZ}defGl9xU)HQ3qtCIx$-aAe>Zj)_soQa?|XWXbcfFX#A{DEMS!TNEi$ak-r>|a30&C%wQv$~c} z_K+=_GhEV@*cH;fR{>sy;MG_1Hmjv)Rk?f7HI9Kp7xRz>i-a@>^fCi#6Y3Nt6&3PP z{aqzb7{ME8>lUt@8iOW~r@R49;YUhz!{cg5atiPdr zMW*+8*m}+Ok7a*3gDE&<6vBB{BGC`9b!)*}ATu|YsuB4aqP7xFL&GEdbqWfWnHAYU zcX^QZ0{Kn3z3l8+q9$TOKFw8 zMM)8`$}u5hD1g|#IxT6w+GC^GEc{pp;s23FVx^?^oiBK@N$K|7*XBYX*ZKYJe-z@7Do8iKlgEHL_J$9!4!riBUxZ=)yF*GYY zl>q~<+fSDgAlMrN4?-g_MS!%b8&t<8TsOq5M_675TjOhl@=WO3WK0l7BK62)vJH)6 zOq+TN%x(yXlrIMIlrEoo>(tcG4kJ10KzJxVv1eyFT+cua9>{ALTyz*glX3j10bJhs zDb!IJ&3;#a5f|&^Z{KB?SL%f@4r|;J3s_L>tz%APpnl?u0w7)MYLfBEF&{7E z^UoC}sd0ydUbPh)L&SI(IpkCu-7};VyK!(P<0wLrlPxD$F>i;}=LJl*%)6{MsGK$C z!2x~467GMW{)Vl=H0j%7k%}5;WZj#qy8LShl4_(~r?4K*>1|^+^kwU3S7<)els@9q zl6p_Eoa}2cz?0CWIdiqUaX)_#=;rn=hQ5}u^Usxb>9)I~*XTb0``NcRpQIPo9mC$5 z1EXW)v&I9Djlp*w={1>Lx3&4PmPw1@F(-jox zOc(q70;?(WpN%CGqMAwRyW)F6asK@!hhCysqqy~|nKl3lyT5&rpQiFBWtuWkURFe_|L2Nr z7}p&ZM@)S|SzQl*R79|~2k)*y9mgP2;Ni30rfHcOmVXkSREEOk``$CZ(jDHA)MU!a z@k@{0XZ>cmv-g^Grl3spD65`c{Pg1_lsa>a-Bzf{dxRw_9>%sQoxcc4ep__SbF6Xq zJR9;BEr1Ujkdc38~+Cbo8 z(kAxDJueFfg!bQT`K3Z;%_jIH6!{}ZM8*rxsJR4~-_i3{vJRarF-&x&JVb@er;+4WwItee?Np24vE2s^< zHC}M57GqL(qpr{L<$8X_>CqOf_kLSqnrAPKv~i)P4Cxa{&!BL2QiqO$L23c^8Ys4f zsA7_;0+%$rZ+cVSUZ>R+n*@_g0fB~@H^&_Cu*y^>f#DMnga>&=w5WA>-IpxY^E2^iV3> zfNb!^eDMUj+VM%_JO7$6FS>i|zKR;5^-diwVmS(`;(Ei-0+YXsphne#53k zql}0tuJ}GV3M~K@=34{VivL`R&<$*0Q$S-4)`==!QKEB;+On)EJWWPLsGnHMj@?N8apc1 zXm z^SM^H_0tEdZ~TLj6V=8klHUyl^WgVY)b{MQKUTxfm`$d|HUki-`mE2_7YVhcj6lE{ zqw341TVcePy8!t7ZF6uFB8z4-T!Ng8Oy1(44yOu=gv?ePo~A~pi{4^iqOGBe^IZGW z#8<5cKIoBG7^8JHpv6k`wrp<(iiGeFXAsMg!`e{`Vpl^wmtx{4E`{uj;#q4)b;?6P zX^aV#VF<>m$r~HD`o_Ok{`RG~tAZjJR&{raBlU(@sCwmZ=0x4ryRD4>Vp7CEHtVVZ z?Tg`IoJeh*zR7(T&28t7N*A80oc@kHGZNRCD2&k7ON{>5h<(5|h?c-Ei57Xo1BduD zgJA8>%~i3k-fO-#RFGSmbwPim@vzA2q+{UOsynvDB~g8Pud>sjF;!eh6AppFzfPAk ztZcHNX)j29u~SjO4N2jhTA?NRL7wvzg%47ru|p9$0S_V~l}pBh*ApXhM!1^B^cuVS z!!@fCi_B7gc3jvrjX#D`tgNj$d{e8&l*czhB8=Uq)sySI~K~Vf|fd=Q!MrJjy$G$+tjLy zw&qHB2PHs!xlrkN4;NZQ0I;TjXzULeV`xV{L$cqqLQPx*br`0$A1ndjY2BNohtI0{ z4*~sK*(*ys)+zAX>)5D(@yjMkWc`v%;_j}2i$@>bdm|i%tFkZ>hj=gVQCP$uRb3_d zW(WB?CFvBtk4%F=KSZ^3E~85tG_*M@Kv&=(Ok@^ZxPiLZ?iU&-NAgIk#?B?U&>*zDQ!riBgYN{v3q zr@|Q%Vd`a}vAhncuCDT@pNX zB;7QT@v!T#IkhygB@WDV& zLo(~OZ@2buQ3N}a!;eHOVE$7_|8zusoXgE;g^xB^ti>(Fj0J$B*&`5WBNvF1PEgkf zfG+%a>Dzbp42pF#(Xr+EtTYZB5b9NvmCMA}IhJuc$;2jeviQDr|kS6M5hLlMb4)5>F z9XZmf`79hdI-67iOL;9=k~^&+P_?+ROjBRC9>rSey|d01Uu(;UbMmrSWpZ^#P_@R+ z(#E0hy~_+oVUKe)?=pXpGg4!neI{%UWa)tNA9*hGCn2)1H z3QReuZ?yf7@y?UTX9Xgw7Zpk(b1{p|v4~H{cuZVTr(glY&g+e4wvUv?^h#;HDL&IU zYC5k`%Q|RJWxp`}u3_O^S)s||b5Zxe#cnUJ#t`L$h+J?TPVj5W77SpXjin9TmiaMD z4%j?>J_|SNs@wEv!8L{AspBr0$sFa} zd6a-8xO?q4?i5yJId@OoFLJbS-Y>@;!TFj*SuiZt1rYx*`kf>{u2HUE=-6jYPvt z-+@}9JY-()UQfQqHl*2dKbKL!m{6y%eCY&w#F@MhRbFA+*E39+Ol02Z%&W*l2zrK# z)(5FQSq?OOato`xsc;*ae0W4H&}y;T%0SG|N)L%24Q>I}Yt9&hX+rOE2ko$%T<>>$ zSqAjW#E$*_O6f)EMmR&D5muC~f$OcY$K`8H$$YUNdXN)zLgwTpF#BJ3U^PV&0vZ9@ zx?a$AxyU8*=hf}7vD}m;`R$(8N9>|hZO#n-^J1%5Er|eC%VxkG>ohZxY(HDeimHW0 z92!DRa5YZa!#lezX4X6aiyUOuTHC*!9>MSNH`3RdT{;3!XK{j@-OFp%UE`EPpvskfA74ab=ch3A7ql6-DygsvS@S~|IPCD+hft49JqufKIe0ap*d-_zLp^q-1xR{9bz|Aa# z_&ZoJM?&Nn`+Xx(PXg=L|Age-;P5tnJpLqa8snc?^5iT;I<=K9oZx+}>2t@k&SyXQ zzW?d2_{@zfS8jOyzZw32S@pqx-PxGB+Hj-dzs4J-9~9#Sn>u2ibePdGE%O?#zmGW> zv^nh9v}>vC+4@St%@n-&DG(X)!+%Y-6{A&#fLy{YeLj+x(Zd6sU$eC&Pl{kpJZHlN z4#AN$at=1QqZU^>>r^8$_hvwS_Jp?I&AwcUZFZw4o!*7m?M3gcAF!~69`tq&5K?Ms z_NleQgMj(ZvkUcQUX>g=6jw=ud$+p(^H13IMqtycm9fLm(v&RsM>`Wns~6U|U0#YZ zWI)%vtPF>s`D1!tTDFxepUN8jDp0tNl%7bfbP2o%+ZRVPic|X~$a)ez91fI%fQNtf zX4NmFWUQ5-_n?;qKsFE~+1z^J*!wzuIv4L_GQp2tnT%;ad;PKQ_Lfv}*Nj@{RCfo? z`@mzZ{=Y;`KL%2%tgIfeBp3cvE(&e|Q7_0yhab`=ZXH_$-hu2)$No7HZl&yUNl;!q zc-y4z)fw}%yi~*7u|)?`eE>)-5N58F#8+79N6zQ#nH5NURCnqrcx}Gm@Tk|YCb(AU z>(_X>W{H7ZQ$i=ws?`W&;9%{&2bqnH@;miieT?_3jQFJIMN+Y5p5a>) zb&I61h>*S?6o4bIlCG~-Zc;VZcLj7$TgOA~r}U&?l>6N_1t1A)St{!(MV6E$_dR3C z9{5IMMK`B7j&8G)7IL77XjUDN7j8dSgw`FCMhdvsXR7tt0(u>&=b_-DLpSrkd zp%I@Wv&&`%h6&Dwz?Zw2_*{v&7E``;f=70eTC`*6zZ*h;Y_E?5dqX~ssABuAxhZ7d zSyPJnGF_(M58%U?_`V5yUiE7QJPf2wd*?(@jdb`ET!R%NeLznJhb%s5NC z<4{=TiSCOTh}20?r%+(hevBj{6!J*d60tqY$UWZMeN*>fcCU((#Qf-WtQG?C+vc)! zB%pZZw&jRYC%YNG3!pO_WYkUsOCI8|`q3pL7db5UYFLmCa8Gr*&yN0t_EHVnT!T`o zsVwQN$P?xB?nmsw4A02PmMSu&@hP&Ye`XKz;%v=ceBoe7K|Iueeh;3 zC_?yeD&$U?5>t9~huMB>5)G$YeF_8yu5_EqfYH0lrOARx*hpEB;u(frM4@~>ms?16 z|Gc_mbp6LFmj$VDk7eU6*jy7Yi+!|Hjf~6K@>%t&WI)`)Y}#C>UswtN-c5?i_B zehW5L>RTzHc{H8{bCB#e?s=Kj`kV~yi4YZRqFID{CjKbPr*NNMt-2cu7}Cr-*Q1~M zl!k?Qd`I&ugjPBfHEOrGm8ZP#@m>iZnYHor{WL*cat)*F-I}vV0f((mS!T5jhuTIj z7XSjPf!d4{=f$26B|q40g0miV8=D*DUPtw+^{QWC*)8h*Kq>7dej8)=>+a@Ynopsx zx^u95(f!lyRhjn7hwIVzU%y>Uzt`YvPg`@E!6U7yE>_<@W>|c(>^GLr3(+`jqK$^X zlW?yvQc+YWTRo1T-_=w6zB3W;Y3OxJk@9{DOS0Ls@MZVW*SUKU;d>@B$Ic7g-AJ0R zwhWy>E$(MJ_Dq^M?k;1+CO-+ZSR;>YPTLgDea4QR;&s0W#wDUX$HyDRE8F^ROBy$Y zgB@&00N3WYUK6X)~l=W z5wgN23d%%GgG&jPf%Xju@tTbJUoTr5%j;0?L$S>R`(^1r9h;gY?KZ!l-{R!g&Jjhg z)Te708vfDsATf=AryYfSJyJ0)mya?``3s15|G6?MDrZ?BCc+U$go^#{eZlN-P{Vh2 zT4T}HM6E_^v5ayG+OpXn&^ySOGuB?x5mKw=r9t5OBbm2OIi&jkL@LpJdFR>64Fezc z3m@ZNVQ$zFEm1h>+Xz6TSDEOfx4Vm6)HDKL_9QqP8y;}>(UJG~HZ;qlw81890piF+o*5}E`ndgN_Y`_Kdc}X`oOK%Lw|({4 zWl3)t_zQj7fycCAY}E?q3S&t75!B>8yNz3|POJuezl@F2AX5@~O@dgSoG68TPj=^S z6tNkny<>CP4tnv=BY#7(lEM~#cA{!GgQF0DGVY5WuI z!s>;sHj$W*vhrvPph^C_x$xTb>H<1@T&A4q~oC z?hJ{Wps(RhHW*S0ZvOLbB-P3DSD5D7-D_%XmL-~77jK?2srXtoFWo-_kow&B*$rS> z-9K$^ctwW)|7q4wcYo*13ID^oxn6(8{l?F~Ll&M@kNloF+Sz~v+ZYzE2U9{flG^cA zqV9=LDmr7WP{Y&9u4ylZJbmz>Y~B26rK%DvVlJZ9D0K$4y?Yq{2Zi4E3-73`kPk#h za9D*VwR)~tzV;Z|mB~rJ24D*ZRfCg>VbAgScg&=qLX!HEV4hV^+u!mC&JR zK@jT4TiPI%3(uPA@&k9+$zWz^`Zu#dAG&9=H9_+`+9^pTmqPA(PH-4mn2)w9oK{pV z?`^uR0+}T&^@Fe>2Pl$>iJwWTHc7I)G^_N~w=MEOiIn1UlSjUH;d;`3q&)jqiaqry zl!$@)q|SI?hW;K086S8q9TsXf@r0*tX@GZR>Ic&MX>T@qKWH;F}4NgC>Iw?(gASVc!n8&?Bk)=d!dqkyn@fE4w|1 zSrBMYY1Wd3PH7D(xb0_a>#{tyaEo&RufE}SaYZZYTns-99Eep%U=cM6(w`+hH!g8& z9C*l|4C*|=JO91Jh0&G`^(oySzO@J`hds&+P9o+deL{?8P5B}xM9e(C&!DQoJpzHF z1x1fQ6!ijHm1AXcIh7E(!cg-CEoLI@hSg>^yC@G5cD)A8hF$m5KZ|Obcgo+#6t8QG zRLx58s)Ot51C~d?lpd{UN;ZBBu%79_b2k|t&?7#tT!j%43Ajuva-lPMHLM7N7FnBM zOJ8)vM*W)C2p9Q5e(!A7T$yI0SX!Zu*SU9lNaXd-NUpBny+(X-2wcm!!6eJk-le}V zU~K;Tk1>|E=3?WDstc#+0~x!6NbjzXG;%Hn)4d%Gv*q8c^wht|G~JH^7Qihyl97*n z>leCjsgAc+{QLa^m(IeM*$j+|NiA_7pNUniUom%&-&Lory1@#eXfdm0`?POcf+6XC zIE+24s&h*z^_EhKI3LEeU{4~&NQ09`U>bqFbI!1d0-f#W5lh3;Y-`IJ(&#Z?l9Z>a zRgDRspsPneylmXHKXdX~#z{>vx(1MtTgl-f7fg}s<4qT)ftvK&QM!leH@r6A(s1KA zpr-fxVN}|)>VZ`bS5-)DF?m#Zu-B-d0VSPOWNFF9>SsMxU*&MRHginlD-RE+)YUUf z$vUk&Q!8=1@hRat&D_Ldw!6+7e4^adE%WU2V$$D*gh1?BJ8#!Xs}(yg(tpt@k+WAp zpVTu{y&fI<<1p5isW-ZJ>+^%XNeayyEYGs;O8cJ3siWs!cr7i7kIl~At-@?^YH0k2 z22^XVW2~lM@RWfk$4`;5if;63`=+fD?Ai8!gH}8JR;S%o=6GS+TktEr+>$P@l+q&6 zIicv3oH%k|a_JNrKIA{!IidUCdR0wPG$_8oDY;U`7)njWNO`Eeh|eE?!jKStmNzov zYM6${C*kizd_|Jgoq7!7EI!n(4CarNUddc5Shad?&}$^}JSsodFpm`lffGj9lCl&>6FQmIrmv9(B?gQOFZqR7{A( zbeun3^yTvZrRu)jju>si@I6cPYUmfEPV@V62dT!?aMwSI!}<_Q!ewR1$QT}q9X9WfE#gxA|Gj=8 zb5*S07S5HuynRRyW(YF4MrAxfdd#vsV=y>vBsyMH8CjDC8FVK=TXUkXj+SFglYQ3I z`?@Kqshr*_wZtOa{Bg`TbJ|XPYNWqYSG3-^I)1B^($bVw{>ogsfVWOPYV^$pYxCG@ z5uq}CrXI<=XwL1YB2(^BN9T1^1dQaN@(w<3cR4Hl2UWcBHYHB3~D?6qEd=sR6C<0KR1c7k}7VPw9wK)p=^_ zPXAO0y=$G?(3G?`YH!|kT1F5Atzdj}(@pHl z*nHkhm1{GZ8wr($$I{NW@LS(jul&k$^*@}co z#DxRTt|dZyD^m1d)bEj6)S#wYoA$I?qMG>heeal`6@n9S%$%m^`{5Yn+T;@RF_3NW&IuDDRS#!Jf18zPWRP;k-3X<>u;s z?R0Xk$y|K9VMdpW@R|H&6)r{J{h8)|F}vfz*0@=`^i+!puY}=EZQ|aKOaYsMqO!If zw;9%>%X?l(^H;Tm2)SU4bT-38d+S!dAkb!5Ekd}!HIVPcK|*3w^4;*UeCRpywK}UG z7C7SCB_|R-Nvs|4MIt`imos9Qsx0CsDc;C_l&HAj<7|K4N;S$V0?NDDkrF8VvL*X8OW-oz%m=C367_?^dWh;lv2fURpBr#GCaR@bb%ul@Rd zb~krg%zxve5Z4oT6>moewPcc#|7M=>+wGxbLcF=i$gUH92wS{qehs|0`?_24&i--I zWG}s*Q;d{`VE|gY8Oxy8 znsZyN zCy#P=pT8LguMQcz=NiTQx5xG6%H*0dQQD3g21}u`(<3u)FHg)_rw+}+*lE1b43v4j zqgjcB05DI^S75If+5F{MRLnl_5_CqVmns3Roz+;JvL6dIF~8^;M<^-X;}R$YLeESO zpp%@PP5ac3vP?eIf%P00*eilw;3hHLnk=`szR60s#!8I!)-+L)S~ zn{7Uy*Z#I$&;R{*o}Pi_m&xMUpZhBz{O@FbPl>fSJ-ucaar(=fD>CA7*EruR%x_np zaen`Yb?xipW}jc4bpSVb#p`EHG8VzU0)MQf-3@y`uIckf#`uJH{n487;CQ-NZCsY)zqe@(#qX9>eW3Fd3YoZk*oYytKjzo+oS1~H2WU4sBAtd zg4@THAw#>mlnr~O0i<{F47GHvLvgmeUG>|==<|CXahiw&IcY1ug6H&X1f}lF2*rZ)QQ>iw?g&`+KYS z&_3?vA8=gX(x7q5bBmRB%y}v3Bt^irl%;am_EVz3!}7}cug(D`MEUaHhwm5snrG~O zlp>&kQ;Ews+kKJi5GJ*^=ljFV`l^(Q2>7^k$8R=TdAzddI`i+X74Uu z_~%N4`Mt_M%_fU8^wz1~DrP^3Eeh>E#1j0131!e%;K;-|yZ+gJPtx2~G={gJ+jph|^W5*gS|mQ<#ol~QWA@kNehS<8;z&A-xeGqcFgZ}4AkeTbd^0bU@1+GZ#iapS$<7hzhcG=sQ zwKQ8t-y+7}qy+^oB3kA3=O97<@(fNh%v(;Rr7J{2_Ryw^dGan=Ak+oq=_huldAl{+ zm-BZn%guXp(G2t3=kis+hXlXtcYyb8Qd}`_VS3^N)f&;Jyd&LuaJ_22&z2@HIVT*# z)&?h{^S3V^4D8yF^&Va@^nL_(+$n2Tp=XPn zNeD<&6r@CYmm*c^p@@P&=v|O1Akv%C6QoNC(t?TsL8M6$5l|qZNehDX(0lK_$D6(H z+&g#Xp83w+=gxe8o%gRbt31!MerwHY?^Aj*!2e82Pm&A6&T9I=u-svpXJtQO7 zgAIb7E;UkxXx26#r<^bnGYpUU&<*!Cvv_zV-Yx8phJQ+UHLGC!R^8~77xb0-52f%iY3{?j#%aTWU#+`uV%l@( zvKlwuW`X&nOwC7q+S<|Wxw9#Mkbfv;%HC6Sp|u_dzfPcW9Y5w|*Q>F1%9@xD;+p!C zjv~30l<`^N(lGZQX#CNQ$aiU$eyCaQh*4sY_IMgnCsq6YEYm7bh zLJhk&H5*;wdX#!tzZIo)Gtl)zbzw9?KP1Je?!!*p#QWC48pq*By&k@-YO^_&12=U> zzej9O$o^>6aB%zLkVxmqFQ4*b>-^pGCQ)FW^tMH`Lvt|W$F}xDR1R_SY^#-W5d!N+5GeTNAc<VkE1U<-(x(Z{m&A@HYRN zFL%W!)Je-iVZbumdlmOhc%Q>UO3QnPfe5T`rc0)a2yJ-9*^5If!#Sw=`enhk488| zON>0umAPjR1;s%dl46oL^|AqwaXyKt{^b{cZFQsyLEOP}v*ac>_D1DF*w4E4~g zX`}eopT-j+C7_3$`=eG(6zM24_rxq815y9J6zi~eH9z%+1_s3)3r`db0y9@9G0qCr z*!TNY(BZ{5g+JXkqTZWC8aiMt$1)+#xePj|c9&VsjO0yq2ojz!4$m_tmH zc4vNoW7M~2*k;@olLI}hLj6(gh2RL^6=!poVb;a^s4D^HE=N@R*e9}i$qK60Om5gZ zQF&qim-+tKAwC8{N6QC8_^eqmp9=L@JIt_B)f`oKoecU~&u*I4^NEyn@){f)?}wq_ z&KR4QBit=UY?E%V_`7>0CqFJ{J{^D`pTyr2m1CqUb@dsvUZT6|b5c>tqqV;}H+ ztXb^vbIx{g?-e<(uZ5Ps;n;ByigW0HQ?^EPg@(bProtn5U~SSqnLz}{HJd-UNB9=N z8Emd3m!*q5=;-)7+X)8JfgbilLpHvzV^S6Hvm@*}O9h4(iWN?p4Whrbzv_za$DWb&jBk0}kJFnus)yK}igodiLQR(#CZaXp>j42XxX&JmjYuVTJ= z%jwQCAY&EoqMD0`tZ)8+gZ!@_I^0<6?fYP~BN_WSW({Rg=O#?v-;YOg!spVFX0wm9 zOrM$_9c)?#2BdggDq)ySOmL|#u2m}a9XYF-;=pp&Q1kab$OIE{&{q9z9mE57JdSV=d-+)zA)X;mTDeb&I*p^xGK2~XP zEYWdvSRoS=HLkPiV6?f|=)?+pl_nfWonh_-X>f=rIdg|?+B#HCFIUpy7VmWx;jNYn zVMHt(8%z zXb=9O_3GYJj~y{T-M0#UOkzGbnMEcsv@={L$5dL{M1yFPt}nk4b;bhr;51uqY={7RbLz= zjpgGc^QAYEN(K&`?#|F%6OF|bzLm<@o>Hw8s=AsZKI8U04VfP{dqq~2hUn6bCTlRS zwr{JBNNoUat%gq^HgCjWUoDDVS;h@-BS#+g`0W@tEpiSb1yQ|yQ%BbyTPNX|uk~u7 zu3Q9ikD78$K2iq?ND|^t;<%(NH0Ar(#v1@g+oOokV4yXduL=RF%%`-kocq~G>v`-OI12}^0zJWSS4 zZS(O>+1sCgb&6$v+NlmPIJv%{5WP&z-x0!~@h)C-(y+DtwOGZ+v(mg6u`E%{B@Hoe zi4B39z86FnET8}Y8n$G^og&YVh@Ic3ia2q;n4#-ft^#$wr9{I@e%()%h8XSI)@{9T z;8ZBAN3S~=;#MVMTg9<=!_B%UC^Gp~?r(gi_pSH5Qn-e%5wmxXXqqvmHaByJyX~u=(OQmgkgcLy4Um0sEqf5Wg?;KJr4&N~RayGw&iB!m=&AE6n)Ain& zo?doy${ykXb9lGgHuJI(Vs~|yk^CgGNpk%<5Kkr#0I_#bB0S3J|LT|mz$W@*9y|j(MExbcZ*7W8k2AOV!j6@>P_l49C2(bkgSC zLO`{w&K*b%Im?tJ6!`E-yFJnOMoKid+5U`eshIC_NV^NAN|(`1{m#h8uq*MMPN=iu z>zG$pUG7&6@aa_`~;=RJqYi5q zFN4t-DJPELs_-W!C2SH0_>>HMMl)e29K%-YsU9xo>N%@FmuOHY$WlxF9x~ zs5%$-v*qFPuD4&sDVhe>wJ-6U z;H&A z;O#eCz$d2{AJ#YN9}2o`^u3LkJ-dCOMVEjdya%&;#D?u%?KJSa>E$&TnPOmzwDyk5j(`zS3P1+Y~iQMK2O7x0w=s0SeddWKC(SI zOk+(s_5Ka`!JfvObKLr-E&ND#Qf?ydH{cPCv&A~m^)^y4cemN3?Z>Im?6$5M@z684 zIz&Sl!1PuxP{Z^6l!y`0^8qQY42SK-fdZL>~iHkd;`Al3gUvos&tL8G^pFIv10 z6LTFdY@vA`l@)}{fnfa;n0uYwLKgvv&=Q?qTnzM)0eWmnWN+zYPM8(T&;a> ztzIhba!Oyqdsc*Ww%8E3fEFMp*i*I4c68*4zXDr(hOZ2t_A01NIqR-$=>A~OIyPP- znj>JV+bQsP%DG)GBN7MP_RQ#$1nz3|##4%O!gR4U9|wBP#;pwx=1dF6m>^tc+Lw68=A zsetLtt;{dK16d==`!M?Y4sX|hz_D~&Z|IjkBh!tH!!$N8o>Qg5-L@qHOU>%|BVq4j z`PMC>g9(2_qBi{p{>p+L4eON&9l2IwATn=GzaR8=!=GaTpww9@X6_?4evrT4XaqWZSqZ2~U1eJzf2WbxfMD7#H z7Ki~NuH3(I?jqbvXvus;Z(OivRGIV5b8q-3zSZw=vEbdI1Ir~-7|c%kH=sT<&9;qB z7uD>}X-@Ey6C(Wj(&BcGZ_6DmLrwVQ?u-`^5z@KS#^O3&LiAyI-WQ}6e^Qa9?q|*S zz?sF1F?t45b#b!s8&D!zxx9|;f0HFFLC~11B+y*G^E!C#VcD6%na)%far)_RUl7Me z(0P(e9o4a2Y*CoGboR7U=G=vD)TCDPH$eAkP}|hGcxO+`@fQ1~uZ8d(R;AOO4WW=c zc>Y)D%oAsVp!TO@^+NTk)2}buE(DO3C5P$O{iEpZ`OpVDnzz*07$+*va3)_g;2$++ zO_mOc26)JP zcj_R`tms|bsW+DBl7fBVB_@0>f@^}Ey0QpaP4F?$+9JTveaPrtY=2rX9JxD7xO=Lq zLd!R1VmbvpvyIUArfp^WZDMrH=eE3wa= zf2vVm;Z)3IZ1@H5n-%Oi(&Mj$pO)>f2g4&usZTYeqnpkF*yD|!1Cmk6ZDKxrH>AtT^|7rUs)+_qFOrF6!*0Xeoosy{iNM@3^b zUazB~d&atvAt!aX*;7SnR?&PBLm;ZI}O1$HJmD{NB1vWFnC z6BOm^>y^!TO|Xh?Brrddmqm+*t0@v>*tf18tDPYbYDafLOl#qC^mVoc_fRWYX|JLkHTzQ^Il}As1U`FMkSd z@~&5j#7xIni(&Pp(Qo~z1azU3BrG;7Q(LSW6QWMr<@a)fH_I6X&a~WHbYg;@pS{et zw6A#}4fm20R=b7~KkK}_MDuaF$-80_WTU)NVWHnvY%870SLHv>Bv*phdEt_8V=Ehq z^%p}sCG@LYT|n1^W+1r5O|Yzj`(&ei1vAQ7`Y7swyR}2RXtFfl+90II#5!3cbB>dC z)B=i8NtCSPJ$a!NrLvAc*EH=;)tuAExnBMdJ1{!HfozZlb5jD<=_)0 zJt&-*^ZbAn#xEa4x~tn9uh>kns}@+d&uV_p?i%`CyM0$`Rd<7(&lp9R$(RaknrX!3 zsKL@TF*~+n;3kPs?KrvjK1kw1S^5kR{{ify*r5Cu#{>Ylq(+L;OHL~0uexUc1^jha z(AQYRWb9m3c!Bt5zJVtp93s`cTyb5yWUpL8*pK3S;9N*n5yc)|>#jv&l;kg6X1*2? zdbfSRsIwd5<4C89^s73BXO!_C6*ih78M+zCx*l)Iq%=dzIC)l&9x3ynl=Ew3QkKDIrM!fOYAH4!Y_|6NVu(0um4SOMEP_RgL<)ht#r|tXW$uGuo~?2)8_-(ApVa)itY)@ zWFOwo4AgZF<+y9)xYn6#?=BD;3;QH2=ozn6Cyp57C{0`e%~TS^hS{SAzyY8>3nQw1 z{^gHR?^a^N1N(?i3>2E?>qcyhu<~+r7n4?lV$2v6xX1pe>T$P?CSJ-`$fY8~Jfiz8PA5xT$T1+zmBfy#y^Xxoxxhh;fg93{d*bMQMTf&&v zl$lEyV7xEg5tz&1xIX&+uI9>7MoyqG;n3=3l_y$!Q%y!!%1X&|HKP&ZIZDM!U0MTH z$s}z=tzqukbXzgH&!ofVeghih5;kf$FPDBJ+l>}I7rR?>MzTnZcx7DK0E9e3#8+*D zH;{UqICq4awdY?(`j3i_lq>LDo|lKldETNNn&ez1_!nW}9u*LcaHYz}jn&E_%6@Ee z^X?x_mASJ!U+)7Zr<4q`Q*CDaM`)<+^sW^_G%-l~k4vO( zU>a5xGdk#UyuW$2XF&VM%j;>!LLR)T2*`TOcs0=`>LF$38ELEj&#HBv%$|=bVVK51 z?$^ALNm)j+QrBIXRG$bk?}M0aRQ*9E)q@BCiSXZo4*&p7D>GPyUBQF%plA?xl_w(^ zewBPvdYuGn0uVkTgKZ)FB+f`kY;`lP9<74U%9#(e3a(B)121`o2OW^XKG|X$I8jsC z9T8F)`dCYemL?d-H?hpTDWG_&8#?U%ty+o}Cg#SMyh@(sVg)YWFX_8~MqF!Dky52- zwUSz*wmd+r^yZ#e%!aTh)%*EiZ3;X;6q?awYB7!*ldJYkJ>K?!iHf?)f*D%Kt`= zsc2z z0=g4b#L!k(HRAJpfk?fNV#&&C8}8sa48Rv84I>+Apxy`W0{4Ka-x2Ls>9Vi)xB`00 z?K1`U&>!`3@h=nc4JWY^zO)$-;OTT>*mPV9YdO6`<~%510w@Clpc_LuYzo)BdsCi>UW4Jpf53jRpy2^BobL6Z~zi{qUKNCKW2#ojQu_K|Eo5P%AF*eG>IRh9RCUN z==mneRyQCR0U*wZbrSamfbS-$MbF>aGyfNZf0m*7=rK+`3$&@P<$sr!rFk~Jiz}mI{&wF&CqO}XTWy|emqG?61B%F@Bo0PK1cZC$?+6N zfO`Cuzjt!@SA@x6(1j-vPbkbmKxjR}_7GTc2x61m0|4EQ5Ir_j9Bda2h<}CdzuWv9 zfqx_LZv_60!2fpysDrZqPdv$(sDUyEz)nOa$7`{AU<%bQa<6^L_`l*torGx>{B;Z< zxsJ&72lfw8Yy!)9{smc>Hi5#32D<2RGC&fOvK$9<1dwkU2;iXvw}bCs8ugD5|AZ)A z zdMstNK-?yHH#=I8GOC=Y4h^1TMTE4IPn8pC@h3Luh9aa|y}|RBYDh8g7yw(t1K0x4 zfL4#1pS7GqS&zixG5M2!Z1xF6{?`i`cn+(_pVJMnhbo6O$cIr)5PmU-B}6IdF=;Mm zaJstvx=GJg8=?N}MLvfnfTZR>J3+BvBfd$*y@3Z$Ep|m7v0!rpm^jVW^JlPg03g%v z5F}nrd{UVFL?)-;2cpGa60*_l2vhREmbnk01!MyddK}j&4uBlm4ds3|5xf(T$^c#t zW-(S1(=L#1IT-@M{E;M^u6LeHITh$i0+5RUg~{==Hr@o883Bn8N!Jp-Bys!$JheD< vXjj40m$VT;CbMO*7(mMm1SMVfE+u8fn3?I5^CG1FoVzeoN9Xqv>4 diff --git a/bower_components/paper-scroll-header-panel/demo/images/bg5.jpg b/bower_components/paper-scroll-header-panel/demo/images/bg5.jpg deleted file mode 100644 index 979ef17b01900893a1fcbe2ff2979ce98a199bae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 328472 zcmeFa2|SeD`!Igb48~3rm2E<4v1gqJLz1PWXc4jvNtj`nvOH!imCBQ`loo|bQI_E; zS)Qh$l(Z?^sDz@#B*YlT%y`ex_B`M9{r-Nx_w)Y$Z};aj_kEq~TxYwkbIyI8>$=aG z+0NNFOE%a=2k(I(N5|EWCkXlJJQT>H`h9-cX0R~Z9f--)9Gk<`g{4e!1(AS6M&*wio3+j+R z&*Kju1H>0t1;El5=j(P8z%pOp+W?lmIG+|23&9HJVE{t#FR-95Abx;FexMQ13F70y zPwor+O%Mhs19P;oDUir_;rxIDT$xYdE9jGgT;}hF-$HY!|L1QB72Bcff{wGy91_TD zo=dQ~J_;8IZSE3*5MRcnU|fG4yQ@J*{yKII0sQ0Gg~8|h2^!$xUtl4@L;x-a@DoVn z>vOhq_N}D5qphva7FU-Ij+^Wt7>Jg1*c6Pz!$C(5!$lEX?bo5)cX^5hC91$*e1x+(ashX35W#n_iM6aUi7Ux4qH&D@A!WUT7V5FM1h)a0n}>)0wb{i zJ_z8@15x1u{3w7I`iBT$&_DnaKm`H3SO5pj!`gE+^RTr54hX{q02)D^!vn$s1aJd@ zkL)J~0vNFgz=!t-2Oa=$8-O)KiDAJ2o&xZ~ut2{^F!Ch@_^3eaUI6O@Sdy^K)fT`O z5F{!Y^aJew0~{3?4eANzM0|J*AvkDn6lx`Q6&OP1W+;ci1EGOYQ94`vupxeg0F*60 zEZh$l13~j`7NmmY1iVE7CYuH_wEyZ&k9H>!UQ2xL1?F}`(9W-x`v-*Mm5 ze#hZ2LXa5?@Fx8`&i@PqRULw$#V^0(H1olXbP$4WHviBb1wnt=8x<9f*3&z1;DBy$ zAXZnv&~MkjB=|=8kAWY`(-oBWjd!T^fqVRjp;0ISQ?d9^JduEk4EMtZqICY+iT~q- zKUC|7dT6@_?g=CW;y_V5Krai%1p#s60)nH0@i2?*hp3u0j31bf`mAR$VOa5lp$&njfhr6FXAI& zT1Z4lUI-om(C}IU-wPMX;@5E-r7l><#TZ(TJ-zT0ZepnWmyM-bPwH7)q+_x}wVd=uB3r82pEiziPV^Q>?oJF)ny$T406$*|Dp$Zg*-xWF( zIEpHYHj06YM-|HyTNK%gl@?ns4qSX}F?DhKV$KrO61ycKOEQ*JEqT3EXzA*uTbCYK zn!EJg(vM0Dm3~peDjie$UFoGVTzR#!t8$$3CFRG;EEQE1dzEmNGb(pgKB_9HTC46; zJ)wGAbx=)S%}Om;?SvX#Z3wjpWrGSuoklgFMwclsb67@Pc467mWi#qp>f6wtof^EvF6L=V$02z?_GXsdE;{S3au48SEQ_{TJb?^v6iD& ztX8pB*Gj3Cn3WMLFRpA`C9=wFRmiIItDdcfuQp!2cXiI{<~8s&CToJ%oL}=?TUgs% z8>f9yo1r7AW23WQr&#BWu7d6+-6Y*A-A{U&dLDWidX0K~ePjJl{Q~`0266^Y21y3B z2A>UA8)6M}4BOU9t=+JeytaDnn9&-eK%-ovPGfmvXX6y(JH|W{Qxk$onaQB3rm3&# zIa7w&LbEMqznMKS7dBsKPBy<~K8-d(N1=a5kNl$ZOUN(Re)(XbWf5pmV9{r(Zs})v z!Lrv1W#wy?Z`F%ghVjE(#JsiEunw@kVm)B9%4VNUiOr{V`s)bmD%Y`X(YEonb?Xu9 z?bjb$|I|*-ZoA!CyY3C@8-g|zZy2>VwvV%~a}aje=#b&Sa8z-`I$m`gbux8|cWT%u zxzTOo*^O^Et=>e~RO<|Pc5=>g?%KS3Gj4O03*_SHlI8Mxi`JHiEq`nk*}7$G&er#? z2Cl!lHoD2X`M6zko7}c;8)e(8?JKtvx8Kvv}E>~+_3k9U8xYw51w zUDX~)j~yOYJXoG~o+mxuc^P{h_UhQJwL5xullM~ZP;Z)#jE|qsbzfoMoxaz6xqdEw z7yVfNj{fKTN3pipQ&?tzb-;;$!9dHv%)o&?mU}YydLwAN!!$iY;!)kDHxDZ?eUKJmWe;&Rj{BU@01Ulkm#3*4S;YuVd za(85P)Iy+4JtnRs9wNTkZ?!*X|I~pU2d+mih{i=fj#(XZG-e=nL+s@^p*U>ZonM#z zn)vIRc$@eOBpAt`bcd`#K1hC-V4qNwD4rOS_#{a`DKlvzd1rF%L6w6E2m21$A1Xd9 zeVA~Vk@8DQ-VvcA!AG7RU3>J*QU0-jV-HjHQ?paKzhQrSc--Ll>Ep9$d(xg#OeneO zBI&sFjtopjQRafo*v!5x=d7D2P$!O^m^kTkvMJjrJMWbEDdMT#)0<9LpV2&%eujH? z@7ea8bve{?%IA)rW1kN=-;!&cTb8Gimzu}P56eXw?*C@sCVq)=NiC4+9()Fd)WjbXSs0!57a;ThG zK2+gb(eeAn-|t*EyIyu<`Hgdx@|DMK!fwXg9Ie`0)my!*`gx60&7Im`YAgTH{iE>K zvRgT{MKsE7@!JP)&(dS*th(^JkM%+IeRq8Byt?atx2<7o!_#{k?>)G`;r`u5n@0Kr z%Llib&`mWD%^p@gGI@0KvGL=|C&o`IpPD?q*=*We{mlGX?Q@Igw_7kR^{wk$@3%R& zJ!;?F{=8#*M<>IJ(c2l&`Qb(Ai?NscU(UQr=o0Qa_FDFJcDHi(#hz6?)LxTb+MD%n z9=~;a`>GGy$Lx>n=e|4mUg~}JfZD*-4~8FZ4Q?2GHsm?OT5zj4(F)`M2>U&$?_@Ar z2Q3hV5}X4K!pVtSVO~wghh~|V&W38zed6! zIO1!hECdsRA>cxAVWfztFhX)Ih+KdWS|(>8Y_ru*UOghwP-J1og^G0=nu}cP{nr{1 zlAhZlmuI?-z8S+t8Y^7SlD7I{W8~FM9!Mm-*zVQuOCkhVTIN8wF zKXJM8Ui&-Njy?MiXJ5H_zvKO+sr}BN11YBps~Q;t>;+)$2Wl%cS0|*1u<=|KmKn$i zff_`p%L^MOW-Jucpx*WQ=vqzxH-w~2Ten5nNTadkB7zDaR~X-E0hPF<7+|;EBr5Rj zw<`SO8fbm5!t6^(5;0fi0tf@i8obXV9K5`GeCuglw2_>(mJJ$K^R$)iIgy3i>Rhrf zfNi09#jfeHp}(u^=Sv3p&!pi_%a`jqC9Z07atbh&^@8byD#{wk?XNoU=@Y^8glHZG z+j}bD#3O>gn^VAvTUSoBWE@AO>=iruEMvm5o^H==IB|7rp1G6T!V?#_1!~?%rq-@E zF&8=T%Yo1Fw|m|d6wW>?%XC~bY!^p-ZLv5(=8y3Mj`-{BEC=-s`9q?c&mxs&gccSw z+%Vacf!|S=#i1R?mk=6qro<6doR1U6M>Yvwp`r@Gz zPJ}a>C1>5P*f?#<3^2=tQ1gE&rd(Cl*+J#cqEaXu)_9&Hh@$C7LuAZmd=Bf2^bw!1n24wcWQb|2{2K`6m zz=t@p{l{6T`RFpo%uPX6t5!K4JD`ADb}-#oDIw(2y~om|p7AzUr>uqV?3S;*;vy%O zu5PqKEKBu1pVZU5DKl@jrFaqflg2f~Ts zVdIt)_v17NDw_A#dBC0@{De}ARHBEN&X6(tK(o%eo;Y!JlauS|6DKa7QFoJv3N9br zbUB3Ss}t(JxmRuG)#mqqETK;1d7isJ!y|LWtn)8xW(I7#)SP!LAj?U7>#Aex3rv{R z8HG26ns}|n`%S0G6LPMNN5-7%(te#OIHO6QZN0q8>6p`ubBxRCRhpMumxJ5W&QLio zn=a8KjPcDQ??yVHM%Ot4K02B|k&;6_R&-qZ z%YLc6GuPSl?4)c*&8Ag*A!}JAq?sXLUt9Bu%P0nVf71S>0sB3af^ly4m7Om)K6Jgb znus@%an3D1d?CluF>TLFDIVYQ>2Y1uaM2wBwTlH+=4iEQZ}*KRV(7dQuxxM&y4i^ZHhMTgQEUqM?*mB6aS!iID zX68vyN~Y@x$HY~wnwPsws;k1Ic)i08wq_Hr*N;h z)W-zzU8^=_I&A|Y%)EqLr}g&YxfA!6Yr94S-4yGxNw;3w^gMR}k9(5FZRRbWIL%)# zHw(>nJaoj98tO)`bH{m2qpbwpC96!xsCJ@#HtYC+*YKp0-jMoVU30dySb_9k07qR5t(O zE^%I{?)_4UZu0N zEl#P_6H1FyWTmvuLhB;rb#6|0X&@#tquP5zc>W!g>!W^CUw-AO5u5y8bjEemzNcdU zsTaI51J!4POEaMiw0%oZ3%+#{$04)+kk=`U3YA~LG>R-eo=c)sB#&F2b@|WXySFO4`QxuXN@mY+NFPklrz@6fN-o5+ zM^)c6Wb;QpZvlkV+i!>UDrR5I4yz=5cR#Gv)rZX1IXVl?889F%WtazqP+D%U36@NSDu=ULx?xj6J( zTo$;?g5SJKArVdhUJe&xR5(#!A`}>dA=^-bTOf`Y_7xU9fw2mh8G)%47Zvz5P5=vV zfPRkFIecBHKOP?{$XRACU$@|B0r|S%C;?tTJ6~QPVY6RY;5IvVfhkl#K3BhA1O%|( z!R>qffGq)M`#pe*`X1Qi9~${B zW^+)~{%--hu+a720-%}SvtEY{33Bn@2h71=%~4-Cg8&%FH2{SQz!Uwg@x6lJ++|O| z{S9ti=-<+SEJ@eW8rPyu25%%|rb;E|v&i&rvS<7FM0hb$l)?Hg^X%*j!K1 z67&z?;`%BA2tG#(?7`r2fb{n40WqQAE^t@~63t^SoH_dqGw%ul7W;1)<2g#5@0htf z1-5r!t%o46n)o{x;)5Xi??eF9eOy22;3I#1h*|01duCiE)P|Z`im)aF1%C_MA(4aJZ}U+2%!Rgf|iItkx&%m2P~nH z&{_}%8U4-m15S`ekoM2l4+P&Lz7J>!M+_Cr1YjnEMEvnYTtMVs#uGM5;9r=V`~;ma z6pst~nvbBf{uo{tg%6t#&sW10_%^B6#3D3C4XHNs@MMg4|u^a3BvUKVlT#J`fj3@QV_-b0BD2O!(Ki zQhc6RfDyzvhRqqQ|EJrJAQD1Mf?7u~TB+zC&PQYuiD1110y+sE8*m1-|K}Y%II&8%-+(1wjIz92_$`2hYFB7S6$fF04F9C!l~9p}@}ohxPD`vJB^&6hL#M$z!gjsRSw zuAg8-m@XC{rWfrOu4kaDuLoIRqQN)%A%RgS|3Kgauv8!UgRYJW4zN_;Y3!`;9Bv!9 zH`pPT5a<@Wc^fu11Zy6kjMLOY_8VO|a74@%9)Q&g3=Iqm z#6?8{z8VOcKbL9v*Ufj|lKd&_Z_#tY_?if?*4g>*C-^G2u&{4ML`K=|2hI3rQjQcj z74%#KBf*{wY@pqKP)&`mg+)ez-4p*i$pQIX;&8MxJ|K8c4DiSXTB-{i_ds?!hNj!T z?j_XGH$v;{3(5&c+Y$l+*;{B=bH)!&^MNRZ>O%lk;xoGoSo5*xX36!uxG__y`?%}k#2Bs0NT#P zR^P_Nc%8YKp@E5+fx)^BCZ-$K8JOGZ8<`v0>6?B{yB?1v3Od`@v;iQk@diVq^&1TJ z_17Ef3(}gK8`-W~Z)OS}>urpUKzru;6?)#W=NI}PU%T==StNc>)B!(2piK~v z*4MuCV-Gd@z8_az?;qA1j}tf(1HaWg+>ZdhGl>c$L|UrvA>hMM-@7v^3Xk#&4+kz> zKS87Q_TvJ+%=_P1`Hu^V^xOZvkiW+s6a9bH$^Pfq^F?ady?(f$Krp`a{wwV;`A^$n zf;KWm8<_kT#Qfjc4kI%oJ22)2-%QO7`oEnp{;oXcCQ}0=w4wR`W;_10f&A+@`frhl zk@p(RG>wTAzvWP<&d6Xd^`5(Ts7 z_c`<*Pb>j}gy0{h$RFq7Z*@S;&B*^v1^&w!+0N+yBQpBeEiwKtwZz!y|5R`L*Dd*% zYTQ4W0R+cz{13EbPQ9Afjr9JiHqD3E&-d*O0)1j`Re=6`8o<9ZCx9gaI^aK2QRmB@ z{~ql>R8a+5)LdhKSnqvBfkmVM{I+_v`nt;e`TWU&pB(tffu9`s$$_67_R?hb(y+U7oo7r6kf$0M{ZT3Dy8$>G|`M zU~K|;{`@3ZzW|;;+X*%yp#O5VlfZAV&>wuL2|oQ+7Qlad#*)C$j+(cEy2V6B1%^eU z9C27YAsqj8hrkbK^DOwQxfJC2-+F!frWE?;XDod`KL>0z2YW#NRrq_p=N3bd%Vn^0 zgZmw4bR2x{t_{36C%@xX05^=R9t7P!_rs2SYtY#F9r^S7-T$pS{QHIYcKwi2u>TzX zE#lt==62*GR1hB!FtCOF`;Pp0up|E>sHO-U>?;3uAw@-mg~Slza2N!3 ztb>7>{F-DoGrL~rLgGg zwHuW;tEy{i8}8k2e9-i;t-XWM`Ql~&yY~Yh28SkClkBN!4rspM3;`j8u#k|Dh=_0) zsPY1EhJdhv2&67=vlVIRw=hC|iLvWbD$@$X+R@(2}WA^Ppf$ygY zIJobPK61LK`a$Q1DRakN!7)eAT&-z(F*v;%?c}j9_So5LV1xS*=g*t|UFy*fQ?*@@ zY3uEeWWLG>c!eFj3tp1QMh{VTg zw5E6z4m0&KV$}Oz6pq-HLRg_regLiv@yaLk8^q7)7o>@ zyVzT0|8PY3lR)HWE4nv~8^_Q-zu*m^vl<` z*|)G)Ftm6S+OfRrrNjoawy18dv~!ctER=$v#P)R*Zz487fPUxe@lD>}=XPa{w2d=~ zmf>xr{7w?i-js*QLEr~Ru+-RCVq?=pdpOb}Z>);`>mVc1>OA(dT(n=E>548-&Ul?F zn?YO4fUR-Q2+8JB>dGOnJnD=L39x26k4BJ7C10gIq4G`22L?ylnC(S{?vJ{7E~X|x zXk+j1@Y$Pb3l$-5S5tXUVb}Y;eJ=%lupw-DtXds zcoUC?9~fXrg-Wp&OtoRIV%E7Zx(DAeYDb#FWA?0RW~8QRi(F!HJbP}mK2iz!+~~FB zk@pjvU7fP$AcvySUH2xfD)-Wjs+tN5IhjfOXZui@4)41^BE?mU$C>vx%6O8*lN5)@ z4Lu+9Sae!zD|P22vHr5=E-xi_$joAlr8Yw1Ld?c8kqxv%CGaGV2AMH6SI}>-gh(w4Kw?D%E_sZCxqHRj6faLnuY`n{UP-b(`E=;9 zX{LuWyHm=z3Ed1@nO$Nvy+30LlSfjCW*t2pyxS|>?o<{D(``Azpkl|FN(Q|miu~79 zp47eJMjG*2ZuxbdwxhBLI=W&7*s$I()8oxdHmEFv6cxFd(KS_cVp+vnSmVH8ae||A zytzhCEel=e%@C5iSeG6)L5FxQR=f@_r=H-tK0*4=2e*C?npd zqc@Mld@;1vs`&Mdta=XO-tB`Fs+!B-Cz@x9YK7d6rz?rkJW~sIlI2V*qjWmA;OLZsdau6LIR3$k0RdZcYd?1$ z_IH`UFuOb$^nvb#MsI4N^zS7Hk1L{7;oS{c6N>#~BVFiD%jk#5{tTW@JjNQssHAbu zIWp^7hncAkjyiFi1g%ke0%S7KQ$)6+6{}fQGd(-?D--?rD<=Cpvp{n8Q!sa^6;4bf zz_>4a$+zO#(X3#`I%iFHsb9yNFzK-O4`t}8YPvM<>V17%75Jr7D*&GgO*DE^Jelc% z7^X*mmv>h#`Enzj=<4FNs}7l_gXLo=)TtS^C)Jz2qF(~SlZP-alPr#w$;y0WHyN`ZX|kUgsHTB9_G zV1d`vEF>Y(T?bw-lWV;zPNB#l6qiZ-Lpnzs$YeFC_t$>Bo}27elBka-5%*( zt>}{~Sw@ zZ*sW(lv<+}g~WV~R|UVA7I{MR3|Z~ysw}e z!(kQg-yOewWft0v0msdZU`}~5i(hYq_qc_J`Re#e%|h++Bd_D$4KSd0yAmrb;^UWv zigHN~s_fs0pK9N;dr3C*HWH=-)Z+V)ej>IS~9@BA`88Y)?I)d39Pb`v1$4Rl| zL&p4os?d>K+SgiEISU1S2t}%GZESnR9BC}wSti+-i?hnxm_sS$P4P}MyLVd`7wF!( za)#f16XTHMxJLUx&EY7uGSJg-g&Cg;j})r0K;|20vDxJ=WlLmRx35QLpFf?&dh2km z(?VwoMNX_>SKJ-wIQpjTunGMA`SMn71<>+R|i?FM-99QsJ z{jsBO*XEWhD0g+Gx|1YG($pzR?2~BXtu3u3xW44LlU4m=B$@YJd9f2JdvhyN5L=h0 zv@~*(rxa?my04BieehmH=?xd~O=>=4rnHffHcQ;abFugP*TgzhETukZZyv}ZliqZI zw_~DaraTk-}r2@GSeK^mL{YAfs9O^!1#nYi*G(``i5Vo@{96e^(C>h&o(TyJk9mP4WKB zyr2=%BB!OrysH#kfp&n#uJzAC6#AAJ);bsMrNshhj?BZ>ez)E*mSiJ?>)90|JFg16V^QUM&(EZe6 zfpX+&W)VAh4qoyUDz}ifUeUAe*7%6EoG7#XGc&UZr%-2Vk^B%G2t|B5$$pFUrtW@i z(<1!I#?;3t$GyB)3HGV7j_S=!H9mdFDh>3+!-~+$Nh_YqtBxla-P+Hj^o7~zPr?rq zta)Cl=G>VvmFVy$=9$RAWw#GXNDNlcTYBa3ll%$$k4)lIGghOIVt=Z;Vtv}^>Cc1JhN0gD?SIk)V&UJy=%oN{R z_r@Mo*-VH17QuWS<=yWwFww;)qejCmJFj`rPEq&nXzu)^78l? z>ZmxttLBW73u#+eWz{Lw3QJG;jOyNe-;nDvHS@wlzGI4#=N+_PHQl)kLb(HFqjH2C z3&pTLRWQ-Vn>bKcf=*#hmrUUwZa|6Xj61Z$WGkOu%;cP9AbXDWXEajDDJ9FNDu)LZ z)zTJIsF);7=gjN1jO*SiQ7TS@yF+n~inK$AC>ohAtzhXO6~eg1X;22oIC*{s-*L@C z*D5?^^&0=!;#L}7$2>~1zF8)91fnXSDa!HW&bZeG9h|qnMRj^9U5^iS>?LmuX4eK? zV>~Jo?*15Ejw4_4QX8#OBSrbA80zaRU&9FV$>Uw z>}TZ3)Cu%rjM^JK2~5NhZCCme#Fm~|$@wgN ze2V>v=5xyZQRQjr(0G#-1F0|jUi4eFi6Q^TI9+1AHFs=+U522>)AoBNDKL~( z#lTxr8l%=X5_3fa&DvnYOf?gC#FtK+(wY$t>isi}Q>wS3S;u-gHi{Jce72X8 zFjlN&uu4h06?!>YADN_6-y5%MqnR=C8ec-P4vT!6)g&>kmeB~-8P_`&(bA6Z(4rL1 zsESt8r{Wl%)5Hg~`W?PfC3<}2yyj;>&0vmnSv|esaz3I%E96i}&b1*Qy95hJ6!U_8 zo7OnYT!O+Td_!*< zFybuncu!j$q(ivEp!dd0)v-U_vS@TSP7{MXll^sdt@1pjEoVx17L~-bv*?40ke5=b zOjE@yga>cN5|4y7`nN{}9jK~T0r>aR}>X1z9P^iOo&(xl*32t0jY|lw_0}>^X z7)jo^sG62y5o^PlX}2^3!h6d}gi#cP&xA&U$!D;Uu1fnn&OG8P^+^no#Y=A(D@YL2 zR4b%~Gksa7+~Ezc9JCiINJWqwgfilImLFLo-nF|H_iQ_MDM2UvK9fiNU^G6mo%)JV zZuRuKW|7g=wy;2#JGpv1d_DVCI5UP@JH)QpQ=u(GO%vm-wxRd&$g!W9cal{Cq^mgD zm30-Sp0iK|r-#?qJquY?<=zVPw^nOQzDm8;l?LPRbexT=SN21DscP1vLEL8|z=b42EiZ_YH>{@k>b>zXu zmF1jFoVGP0&1Fh0wi(u5y@mC_NhjVp0_%rw(in=V;NRv=vqm139Lo6s(@e*OhPu3; zgmuf}-D4nE5XOWoO8wsd-Fv^p17k8vY2@o^K(E}Q1vVjGHm z^4jbb@J|}m5=Yv{RraRUD6~l!+|2A5(MT|(GkS_Wh_%Gyo-7F^uiZyXX}9xVbsv{` z#W=k79Yg6=y17Y(h0kY)YEvs-zZCj)>|3892frrzvsCXonK2Z(ihb!FgJ$nV+!c+| zQ}0Qa;@?!B=?=bI`rBF7k*v792g>qA@n%}w_@NVph2DLWtoFv1u5LD0)qV=7Xx6Oy zv)oa~6@4FI3LMIi4L6SQh`JL|64)e3%0|7YR^*?PcA>G{z-v6cTq^??N_WNATO28I!dK%z8{F<92+wHVpAuib^2gnWW`#EkB)$ZI8G2!WX*N(5-R?X~VuTn5`4+ zkF1Yas?39lR8^_Q2~MtE^GqW>#-A4VG$qA7Rq6cts@9Ate*R3)17crVwM62>yeDO$ zjzDLcq|H#gsY{7(Nmae6V>}lGXMCimmq{X9-O?*gZc?DtBY_q~Yo^EcfjJ2q!Z}o3 zZn2;d!~Co_vVFRb8cVFtNyO>lAJAKKy1IMgUhw1hl67nSUD`;Zs`)sXfuyjwIF?0i z_nKtJ?UdB6mtfU*Xo@~HGsfQ?y>yIuC2X}+TDsZ55WZ1y7K&kiLJV|V2Xo}YBpFl9 z^En&q=P>Tp&? z#I{{-haO&P-L5g^5hA}?`SapTTOnUk;oz`A?GXoT-pRB4RVN4gyfI*!EjxhrrbW*&;T zZa*1&I6dKELtg>g+az#rana|9C*p1n>){vN(OnBxmt7)Uvj*m(PZ!Gmj** z=?U68%QZ9E>qx146ud?K88vESs;`X)FC5Fgp1q^(!tqo07c>rrBm0%49l%KJzTQX; zpFy);4u|KzxIr5(=DCQx*}+f)>cAr;=(f#UeZ^mXXvhrJj_N$G`I2qLx=a0)TU+<* zsih8;bvu@YI*$x0cge(Q1~E!oZZKD-AM)J|^&f(ia-^I#7t0iK_$+HucV*ouvtp=R zyI`MCBF<5{vnMsK)LO-TtkCOZ>JcCBbyHV@OuPA=i8a{sV4lUF3*u>mw>+U~_eL$g2lS>!2up z7B70K{S1TFdKg``JM-G(zP3;zr0f2Q(mJR~PN9ppq+Av7Ez>DIt+&W1e)=pV+Cf5 zZs?PcRN-03OJ=Jn+b@mA^sZ3Eh1OSB)_E%?v)*>ibgJoAF?@^4{lamf1*#J-Mgc$!bSoYKazYwQ~;keTcr*?cR4VUiKm z>AvreQM_-oq6ttMeTWEiur6o)R<3@Zs~-XmtHQf5xMbw(!LzN@9Vb+x9Pw9?A6%3v zV;oNwu#&JnsLf@Pb+Xzp{#p7?b#||WXLns+M@k;m%Qo>qNY-=<%mk7kh+>FtrUhMkjh)W|7PvjK|mG^?+%#MFPGEZr@f?ut=P3?WngAij-dbxf9PpSpSB zfhqk;Zw33>ubff-?r`B!a+9W)ERfrRkS=M<5o&njDfh}nCPH#zYHj4bxuJHA^q}U_ z){?+;FTrx9C{5b|n4mYy=!}qqyk}zjcau@_5luoQU8uap64)SmtSZcEX!SMa%CC6g zVffe?G^3g7e)a7~7>e>hS&fDA;ib@HfwHa=zWgXZc~p;toX~X763o#)y48uCV+|k@w_IavjE745-ONsx^n-&qA(Nr%-A3rkDgw zW6$mQI7=*p&>?QQQvsDXw#L^grTg~oxU!={ojJENJzcX3c)G^!+KH9H{$-;&} z7*kV-Qb;F`SP+lrq$>3=C#0qoOpvKS0qBao8{(DcV%nlN!O!!#$}VBm^1CapuWWNa zR7o-A@?e+_u)>X_dKXHU|I*_+YNKt#QSxTP--6fHO?FvjTijr^P}Y-1j17w}1Z-ZV ztb^UX@iJ41Aw2t;9vZ8xe63tq+;LMAC}SEWp(Gv8Ok`py?z^5|frW}yR386Cs;Vfr z8gc=zv#PS?pR8(cjGCd8yeGL?y!atn2-h;)jaNp7C{H@cdp$VuBh;ObsLM-P8Xv4B z8Wn5Gkr_BkW^qv2@nd<#UR@@c+ImfxjXgcJj9td*p`wtqc7ALkXct)dPO4V9b+}xR zeC(b~w#RE<0IX>V{gYtN;VGlCl38S<~JqO zC6DD<-R5=h>lvvs!=#J4L<2?B{#=(f8B(L?;=)3&hHQVI&x%fzdvr%r{0B=;VKbH3 zlzVrO0R0h(Zx6S+i4mCUnyGFSV7&eV7Foz7;F~elK<)Qpy}64brYpVd&2fj3>y=3{ zs>Aos;}fP?ucx_kMm-;3oX&XXviJ|gkHnFcHHsB08b}URYB>?WUM0z@FO9@b)nHnB z7)*l844$OP!rvgieQ6D58*o4~{&GF7$x5KYT0}4}_H#m!&lJjA{rGi!BrReF-GSWQ zC5wNO0_T!%@P(V$^hdx!K*9BJxP0^CljZu z?LvFjJ59W_xq=+fSviGC3L}w{dH7gn_b$uu>I&o*jSuv;S3{4Hpu=)#aS(XTx;)GA zbbg>v&QFM7RndslJoiVckVu_G1#KGRa-lDew0I_#eKMB4qHeH77g$v<1Je*Ega4|h zw!@;9E#()Iu+huAk%tSrM_1)_G&Yx@Xdf+CJL(aPP1U<(M%kZku0#(~?`K*Sc=RV( z<>%c8Hup9jExIRfI6;Y7r^PEEg@VNs7EuOEFz#YK1_3XQ7n^pE0IfN}TyPv)y79 zLu5tWEL0NB^+}2`wTNR02QzLJGd#}JOz^k$WRec@Fql3t5yhS;^sd<=!?`p#FgA_J zXa?_~&tMg?+k9E+om4L}rFA@x!W_X410T`Sk}LhRhg}d+50gYz2J-;(B91|;tHz{- zH6q8F8Qs_K3KR{Y&t_FxAMB{jm^7fF4-t>1DkVq6YdMWtbGvvlsuRH-JoG!?M{!h% zscPCsV4|1|POAj!e{)e63@lGIOKbSq13k1@_HKnXryS2LU$Kc-ysi98J;gSRt4xNX zqCcqs7N`@^+&hk)g%+|$PI)sI@phCezB$5GC7Y^qD0JfQ;j0)&!#rH3Vt4dVsHm>a zxc2yH*0qQaCf&Q^?W_&Kujm|8gwpzav;VboR3{ZW zo7)ES^=mZa7e?aDC%Fzyi+31Xn%pmQmyDX)D7@mGwtY*N7aZu-lLHTF zJ3m{7hvN#jwzIUu{KHrfnF6$ryOwc}O0W+$WQ636D#NC=MumAZ4{32Fn;mM4e0$Dg zh8!!nJe^PUAn)c=?ouq_9o|GaF$MLWWS%`emc#l~erRtYl9#(~!%%#N{X zVjYD=X>HqZ5|cxw;^UaRi3HF|taZpAjLElBT?z7)LWL3JR$yX=hN-tc3 zyxDSU7Sg5hRjXx+7!d_IuM%{vfDKV5w(l(KHhs2bL&5K<+5RPqB_Mb_PKr`cgXH1j z-z`VJYt#8)!Fg1We(%t|&P2_#9{s6ZB;nhqz>t@*sv5BAa8HFBA7AnK!M)u39pcdu zz#}m8+%m2$?T?`LA&niG+G61cWwqxwv? zdBllE&!P#YOtHIXS%TxTCuc_LaZBGa=(N1+mbirJfs)7Dh9tSk;fTSv9U57FELsZV zbz~CKdx9yJVZFmG}+jfo>3(ZrEQWqqd(59D;crf6_Qu@h>;yy3(49!<=Qc-yv)7I*m4 z_dP=-x^+Cm*`l_`T?|Y*PFdJ`i&@CFa0_DaQ}3^1jN;GCqg9IPeQw4td$YN4_iMm| z({VmdHU2;mPvoTHJ7Q{Qn%H#$9$4J#fR7|dsL1+eg=QA33SQUU#gCtoHfG+ZVcQm~ ztQS!%FGqEE?ZenM4)k2_N3*?-CwrxfsU<(m6ro?N0uw5j0Bv>!$6SESLASyPye36>v;)JJ8~L-{;0)5_yVP@{KxD5LDMs)5b5dv0b6 zr8`K{H+IGAHMO|RG}F>(1LMr4>39Nk^U|Jj1x+F(EIRk?@U}XhHDxGlqqBPIMkX)(Z<~GWtDrvm{FFg~O8aYU?}8&J)3$g!+WJ{2grx?& zY7vS;sjI|oW$^@?_l+}Nf)_-o?~Ai<+7vWnOJaIo4HbY@z&KM)QrnC3YO9*FdJm;& z7CI(FVv^2Bl+#Mw;fpCx=vOrcL&!IQ5ho+9R@)wOPmByn&*pe@eR^tviPx^KvblAu ze_ckig1`tdM63Yn*|H-Qs2n9oOl^yqMHa9z-im!wyc5w{Ahm-NSqIiClo{3dnQQ#r zzS?&NoNuH#sOBRzBT1sb7@4LLt{p~gF<%{RiX76F(P9b=zXOdWhH@~>OCm?sU4E+E zVhx!F-m@$fUs@@@tj80<6NTKp@?x3s{?!$l=hyQyo_x}dK@K(xeDYo1j9CZ~?tDa% z6G1@Icb2l0e;?A6gSqMzz#+8Fzz5xEb_s*(R`kAaOHCga5<=i)-t$?&WZ}Zen5KO) zRwBFAsZOBBtm30&it?^1DpO7Q+5A($09?&GALZa}lv8?~(woSvYRzKMBd0@Mb;&x5Vzlrou<7g{@fM7g z*Yl4W%}9K!-;;ZE3(q_@RiJi1R(^dn5d1}*M{gw0ngi^?<9!`EJ5BpvvgxfH64Hd9 zI|2M;yDDQ5A`OP;#DHf@6 zF7JC6jNGqb*73V*j_O)b@XWfmU0I}P@F|5#?1_cUV--Tu+GMEmSO%-|V?5^uMwgb% z*u)S%!ih(+*2Kx<^DBU4-i?NT;gHF&}}d zPyEfSTJ0Je^Nb`s#i?MwxeLA(Vm)ia<6F#X_)S_Ik~3{)fKfci(Ago<$Yg0Gi1P#< z_iow@(3}ck43R7sR9bXpHM}QD;8LRPJxB4bWwO{ zo;)D?j})t04w^i3{*?w&C|HgIb+FmpIGuC~F+SZ7{GfTUg&utj1%C%l*Q<6s6_YW6 z=oZZMx{d>*I^_JSjyqi>@KG4+9l4ajHMii$fcYhcP1mJuuDGD7wnZFAcCN4B#N)KV z_>DQodfVd)PdKF$*R`)o1AI%>I!UCS@`7OtR`XpTS?8%5T8RuWGcy?!`QM1|%WKvU z%+$Owr3rm57$z8)S1+R*AA#?0IN1sVoL5{KdMu-qcMCnXr-I%VS*O9(YgEwa9-Kix zpJp}G_#!1jympoP@#z+M)VWW4sM2BNHmhXt0f;Br`hSu1-EmEw`~P916mV3qGJ=9q zEns`ApnQRVRsk*IHj)q!ZuM417{)?k62^6vN*Hz26oQHZG6E_lAR!=NKuhs55=2Z8 zkdcG3atIuf`1{b`KYhLIE1Hv&^E}V{^IiefK9bMOi{Ds2?_T4f4MWUAp3AkeQcA5* zcS${9LnJBvQNf}_G-`MDiCv^~c2sr*HJr+pbdz{=Z)!#Olp8_5LjWU=Z<3Fe1FTln zOl*LcF)pO<@;vM>i{6Y`WcBx}3t5&}`492qj?>}Z$mN?9RSEK_FW?Jm+=BtjVvK~X zoNRK0J2ORKj#(&?$cYPk^q^#1Hxf@IcV>*o= z;S8nN_5i)H;*)qt<#ZN2b_S7P5CS{F-a5K0&vT$X?!_?E{W?7ZarF z8lgQJ5?Ma|UbZJK&HV4{^%dK)Rd`;JO3i;-`?m+f+Qswe~?vY3HCjT4@DF| z6Q=8O@V6haHp zi06y7(-FRp&sKk=-oLD>QcuunlT&Ed3Zv9bqxnhrLn@4+?s&zgUCCMII9?bZyNnP# zCs#My0@VL6J)kxxMw=~>O461&@aVNd+Z zkmmY%_ggJa?B2j>{}}fahPB^7R^7KXqOjPu_iHmoyf)AQj|$aQ(icf+*IMmYLwL;h53MV9UFr0&v}(^Vi)M1LO?vCl`GR zjJa<suPQj5PU?L!tb1B8u&$7+t=X8t_|<6X+Pzs zdo#Y`ThvNxy`2=fiG?A}X2sPDYO#+fBvWYlptSNQq3yd=f%V`EAde^_YR9O|>{}zD z(;979kQe2-R3s5Cpo2+tv{m#+OsmhmyA6GcgD&Q&>H<&MTbb+mfoUzy-MvaM?+VTf zK7~)dkn%Ih>|)j7*g(UqU_+9;6`_Q=)t>fZ`VRET+^Izy27v21huqK7KiB=Wly!^B8%=*`tX zeacsJSbT~^pFYt1^SX%+*11YT{%#yKa`Ihtym#Epw=5U)U%B#OQp!4A7D3LOM~8mQ zZK`O#^3dd=MCrEEKpSOQu3gl4CrvB=uZ_8B?*f!FXF^;og$S4HI?$ah*?y4Q1aVsnfSNP; zO~og@7-!_PXN?KBH-l&c_j>ya&xSeY0As8o=yEAGh0}{ssVApspT6AQK|H5DdU+T- z%F3atz&rSku@hNMdH$-<$d=RSG%Io9DM1Gl&1K#beBsK_OK2vq@)2|2E-_Bbi1?08 zpK%`@l?3OEe&Au?!I^wQOR_wpxXmr6d`D#-#*escZ()?}fd``Xs$WY?agmG}wP9vVCYDF#P>ct@(-m0k7|P&uIK%3Jf3D%;yGHaby`9-2b+ENXP7r6A8e*z|`Pl#nVsF?ofFc~lbxI?M1k^Ir-#B$rl zX#}lFve+Sxyi6MO9I$Q+ai@{bx@xY?mLez{(PT2P9Md`g_Umldg%|N|46sHUl7Dp)2i4W`mi2jh^CbSYd z^)+OzosQI5I zbvZgJAD04@J;jgn^RNf0Sd*x#)`F3ep|Lx+KWsKK)_vW;iiW8cZB}p*cH%$@BMF@v7lwT$PP_vGG z2Oh#nj`$4hVzePt3{Jp{4KNd^tksh~)xXl3t6y*pU3ODsqMB+zcXCW^;T`uytf_wg z4C}uuPc`c5(J&v;4AM+Ls^FncZ@_2H0MiT!q>p!=YNwxtLO~~%Bx=P2M156$Vl=-h z=bU`7A=6wUOC!8xpsY|vx2(d!Vy(sgsn~ND9kjtJfmkoIjKz#kpe4q5$<;vqlirS5 zE}oivccR0V{vvR>udVzg`%slvPEocF|9-M*0TqA8aTA{P$=aiOoAT7dF+;bX0q@2v z;(u=*mf9%zBB*tMQ_$@%rirJ}hLz`@76c64FuY-#Zwh|tr4z`GaUe@_P-r}?bjZl= zZ~*PYn_l<5bk&#m5<~XY8W0(VK;g;z53S*P=bkHu{Wd(waH0w?Q*iP;-}!{bS6^!s zdVMFxSx)JSqolPMxnM~=nKF>(_f2earMO$`?KnNT z_fOBBpFc>Q^*pN}@vn=wp(kvy;(6%fLZQ>Rou=m$wTt)Y0N zKjbrxS0K{e7}04Z@O*e#spa^KO6HTX#%71LAkMpEHmlQ`dXe)JHgSI9CK`)FtF zk~G-o?%k|M_g{W{VmY3K`5LB(FTwL9uDd@YIVk3nziNmHfBbW0*b&8{*q|~XGC$f; z?ehYxl* zumw|eNCR4NuO=b+a8f6YN!8g>=3rvlzgSs-urAO??l!#bTo&OMwWWV`(J}sMf(*9T z{3NvhL9<%{@w(7yeEAN+YqPLvR9)Z`%CNnFJ$HKiDEr}ubBaS@{2q39iTy|EJeswN z`Wd%gFDixIcx6N(lb1*@hd#NC#QIjrUS@iG5}CoGBLLQ~5fh6uDvc-BKALU7#e+=- z4=y0NKR-0uB3E0mv$}2Q$f_b>>b5VSwP+)cMEp7Y&lSzs6Ha%1PK-{X0JlJ*%o}G} z5H|f2#$wAb784Ui{arowzd@GO1!g$zf+3mYQZ}scq6SHt{7f*bY-joUR}D?gvS@bX0m1h zeSxhZb;HW;Zm?N1peryPg>BtmPqzOX`(PJ|HeiUmy4A`Zj#Gxpj?raD+lm|(94R&^ zCT8n!iLo$TfW2Ho4s=QhjP)}soYKPt?$%2b1cxFCwdzSYxzc~I`Pzx<`nqhu1Q#|- zcUn62j>jJ5rm+X=v__&O)$mnWY-5Ef2^TbpvAt#|DWQyyh^c2eBSFr4n879~lzwm$ z1hbG`MVyn%3{rf=yJKSsMJfP5YKy8bkB4Kor(21*zluLxzjtaQS9T0*4Ni z5Bc|guKjL^mYKjt1(H(Ts49EhgK!|4RhQT(0ILc6GJjpZFas-(a0`}kiq_XSfd&S{ zo@C6=!G`x-#|A=7AVTlSRz&+cW+mZ3Yhxy_hplm93hD1pS#ELQZuB|MAun*n>GDyT z*hkpU=`g2;KIq+oH+xc<*z^hi&@x-3s$y`a6zs7iA>Ah434k8>?m|RtO>&uy?*1{t_Tx6}#I8&%e(xpZCzD5#;cOjf{)p6p z8B|{@0yAv-jGujalma<5udgfOxn%%ua!5fgB+GCt(7Oy^A1=lnnM;F3oh4 zZo+(DoJ}eNf0zHd-?C>il)AQve6_MWi1WV2hZ~mfQ>3V!Lhe2Q;<>zf>uX%H5VA~2 zLuSqD=UR)>ydQ8osw)b#;O8O1MZJ-&igxW7ri{E$yg7v$^2TA9`a**}vMbUEJt_v~ z+0L)XMQ1019tUPO4GS#(M#`>v$Lu|ma4LR#_3wwh7Fy5VyW8~d8B4!!4tL$AUwpmd zmD5iXcXlRMtW|eCD*x@bV&CK)MotFL|M;qC-E_ei=ABh97l;qvd9&ZJ=tdIHk#nFl z?ZfZ?vN?+@mt8mEt{`}_>Ra+w(gq3=OuN|ALT9AIeN8~w^;M5BQJp252~++T;MPfe~7R<=7du=s!?D|l(t}8W`J&jS8%m%ew8M` zql6$ARcWz1uzn&$B_{XEwXjchz)o#uGv!k>W3p*ZT`vfU2i3QqG-foZ>({Xg7G)G< z*?Ml^aicw-g7F9}NDvV|$STC7G=DtzJJH9e_%`sO0!etJ;#T#?hRWg1whEmS%Nr?A z*@0fsD^dn_ClmY@Fne>3NCr|sMaV}+h$6Mo$+E+$(;Lg9|KXkVtxFlsBqMb}_Y|!8 z6hYX5svB0DCYE_I3H;Z+aqK2Yjh0Hf`0m{Pv$_JF5`=BW!U;G=o6A!@9^a z#-Hq2pna-ahT$c$?7#Wby7Z-0NFU?f=U7?cv)GPHVHN;cw4N(Ct4&I_%vP>A;JwI? zFCw#Dg64%*noJWQ)RNVcZq+io-AXF8;E2S~AdU%%IeTyVXIyuGrS+jk!MqMWnl>*! zDkG#nUDq@V^QK()cj*V&Dw#u^$%X-@sg<)f3P{gQJSv&2xOPHd7)QW!&HCnGPzhl% zBTg>se)wgY_Ye6-9~-dVUWS^4kEKt?IAnx0rq7;!A6-k;f)$2-&pZAL-v~de`n!Sd z14MAR8!V{#PtY4ai%WlxoJtm>wMGPp?3deCq&e#e<5#+mo zbiOU~KKGzGdtr;EN4RSu6^Yl`tMdgEA&(T6K_+TVt#Rh$M2VPo50q}NVnSLo@fukh z9Sl};LD(A^?j;+4I3OY>eqQKA3X)(twX9UOPkr2gYlLmTsq}Z82~_jHKTys2PG%k% z;67|D)b+Fpu;;^CCMM*QP-G2clLd<>yzEV_98>4*QAC#7L8)}k&<}9ZE$5Vf#@$gD zM9tA28Pk9L>#G!v9P{sN5tk6c=p~w3HRZf*wb0s(rO)jf(lWr0@*pn>qorQy+^S{W z9pb2;g~>S-=L(O*`n|k1$WnPJW@0AgM1+z@ixUh=g;v%B+!evE@gOv;0UzA~VI1pE zNVl|zjTI9>t$<8Og-tLvnwl71$L(cqr7D?YbU1yCKjXp!g>cFo2@jGiN>DZbKsh4Q zhojN;<*W{Wm{4M`PVe#0^F$7jrif%xim9;5E1x9_MEBcoMTf?Ks((Cru7lL>Ip{aq(3K`b!#PVaPMP?9-ERnwWUiP_Xm(k<2=kii4u=6im^^KQ)9_rr} zZg*Is2-AZnxEVDY_Os5Fg)<2yaKb8wM=KijTZJh{ z8pteu`5!4??1X3>Xo@9iL1qs=?8LlN9WqZQdj^Ox`S?EGO^Wy4&4rK8x<~@ob?|RE zup9Zh*-t%)!mZ|pF?KG4RepRqh#OK5A9S1|TA*FLbxBX4z1vj6t3FpV;+s_qHVkh$rNY9&iv z=fga8NLjOfdG)1xI)Onts)3nOzIg_@nKfH7iFg@R5oXp*MuF8FUR)jQmbr$|VWDZ( zu#4uWcZX$`_T4JmHgEgQUmUwopH(L}{yupB+dj{G%YU41__R0W#K9P^%m4n6SEcrs zdu<8*&QQ}j%kSv8cl6yS>0c+$YQO#3@|OMYW8A~tO-F*vkM8;HU+d59C5XQ|K3#YC zYxlqn+54^&c3DwI_lp_h$Wu0$44qu;i;cuCczh_H0G`B=c-FvhtV{-zkG> zi2|xe_{meq6O1UwQYr~Sn_hf?ihxUWpg&^IDJz|L?Gkr;KDs27G0*u5x>uNI^6oFV zJ7|3k0O}l^T0omJzU~artkEv_^`Mr+2BqyO$$W+>1rLTZ*@p}=`n4v&lcY-Qh1VU3 zHZ!r$6{)%zxGD5?=+)TR()0NJsbD)|CBx}FjofWqzM^hs9~be;Z8g>`1=?s8!kb?N zr5=tojcoXa5f7`TzFKCvQFl3Or!$z`e1+k_EfV2w0CBx1l~fvqFS)!tc+&tYnyQ75 zw%op!lM@T8fopH{cTVu@kR}C((!nF|z*sk&syr$OEDP}a4M0JLH0yBGzh>hj$Fc3H zVz0zR_%c2seW`|T^PH7?>MwmL^GRWWr}QW-wLb``<>kTx2OT>RwecF(y7#zWV< z%tGdLDQvi8{yy5ZD*{4J0L})2g*G51)V{F&UTNj|Wr!qmCjrR<2cN92s)?`vR~buu zZ240m#k|2FA6ABRTliETWf5gUSfb<86@Fp|q9L-z!~w zp1Kd0U#$}9QWACZz-qRZ(+7r$S*92_v4fD~4^VLmx%PK{v?~Ui{AzZwu3jw_ZI=FD zYC~6o&(jgjch-bmF_WPr=Z>-;kLI}SnN&F|gD&O5$)|Xa>=K2$9OMMedlLI+TNTiEjtkGnPFCZ=t0AZSavT7wtnE+oOC9HV2S1m7&E=&KjTi#k7C-`pd~dFFlg_} zjzP?qkc$ohHAE&C*EmnN8HRDmeTpzR&P`xua_5?d6(&ZlF8CG!2B^JJ9TjO!RYkE&p1D7gBK7u{A4}phQGGE{=U_HeT@fDCQG?q z`tOqc%NEZ(4uA7I!-7W}8F}-&<^OGxon4?@@(js!sy;X0TDWoZ{_cJMHgzd$&fFf> z7w8g0`KjhVdbf@c&RAwUj&>H-2#J4fIP6GJYAy$wj;1|W``|&GYQ|yux+^=_g2UWs zxAx=>nMwM`uob57I}_8h^B-FzRp*Wu#<{ZmYA{$84CjjKlf)1;{C2A|mm+~Jp!~w+ zP-AN^n_>;`ehYe*@R|vn2(1|2cm*g^>G8moo?B zK>k7dr{{>NbyUBZ&1#jqsGdj4gvs~@eH!(Sb6OG8@kM~x3ZDU{uSI@bD^gC5gFvYn zZz`5m!~;Q5Ci+gc1~X6zK_bLYz_R{F{|Q0v{952 zh;J&+=^q9Cx7$=#H|4#kv15FYnJ>SWecC9{1M35s61XGkWY5eD(j==e$s%#uoO-$B z-mk^B`2?Bzu~dk5u}bBw(Lpr=6EtC`6KnyR_j>su5Xr{XLktE$ZU@iMO(r zE0jLBuR8VTMlMwI6DNPr$ps6j^iiqmi~ZjjWR%y7xi*ZRpMRu%a-h?$^{?=CiaG@| zHJFY^6;~I|lyml>Db>QR^FF*g9yJ&_H;TdMb%6VKFzwS5yR)MB8mq{k473q} z1ivJVlgt+;Zqfkm^hv}ISX0Q0?&nHO8n zO#ZtdeN4~V!R))i20a#aL0uP*K=kUA^sim{=Rhms$heE>W+^PQ?_Co+g;VcIBt z>SVVH2po#J(jwW3XcK3_4I594pWK@lO>5-*FU70aEXrmTTRN!I?!KKblJGxEecvvU z!HDG>>TbvdSIR|vm;4CLY_wv16Dff3aJb6a)2D#Tbb%)b_?=Jo%%n$;vtkk>NC&IM zTa=gcnc%X37K06X$Idt_<=KS_>_6z#&LIwKwupqJQ?Rm(#E2KNVN%ximD-r40KM3! zrXY0JaMikVM6$i5w5gLI!+;QYciJ`Xz6;B zSH2sGX4)O2=?maa;oJl}*!}o8x2DjP0lkPocieRWq)qGV`jTCI-E18{*D??fABQh(f>fM-C|eU07n#_5z=>6)Y7q}^vExG&V28Wh6}z}v*(GjJBiwU zO;@i;{2(iV1r&20OHVjf^Vo9CXkzC-_&oI#J774&!+PBnu`}-uSbWBRL-9v1rd#3q zUNpn~r?BdPc?;eBMSOK%54&~dx8r`=D+yn0E6Zr@y#A}cK+|un`=7ePd=A!WscpK_ zGuc*uZDOP0w?;`GF7-L=!TgUSp0ZKdikJQN#J+wU&dQVZ)DeN~Sf*%(AG*45yU2-$ z=;Tr_gMXZA`IR|qbBo6}!8`A;1^;dc9HXIU@xibvif|ds0BBWMWV3*~%%qRu(mvxZ z8P935SeG%&4v;s#m#wCj&ttvc4p^4AIaTu~cXxQl7Rl^rWj1lk+^ab~Y|w>)`#e_e zIahjZlX`fTk*(5+i#RNV8F_k(Z_PIhb9dEr>nT=@Hdw??FXsvPA=Gp=5)M|pK-9%l7aAZ zBkamQq4XOH9tsd;;8E=&-~O(Waija7_RAGy0jlX`!a+lO9Z}eS7DUY&YfXkhLJX{Y zHKijohp_J9NZcSF@N~vt-Z-A ztw}ep*lGw6`XuyCY|DyvTlc(KYwBU9T?b4E0KN*(!RG3gR@<<#I?DpgjNQBlG@QtD ztk;6wyW+n&Z0GR>F-Q!8mC}D5UCnOT&=B8&3mFB<|5f=JyQIoTy06OI{AI!a^Pf+h zWJbx#TztFrVt$x$2^>_KU|kYyLR(XZED+=;Mb|KNyakZBvPf@-OWq8&SP9| zF9`@TkhyB#*u~+-yRloGV=bwbPL_Z3055(LNWYK3u5M`Pm(LBQoU6X70pSIh;BZ>h z4Pp3!97|guz+|(NKO`^E9yi%V#NvbkoB>;+5_qxe7G=j~JII6*EPg>e&pzl6y0)DD zqB*PCAeKNV%@2MJre8p*O(UL&5?5K}{@C1ge#3JGT*?%ZvF6~q2}^e?_ZkOcI)emG zSB;Ncq_Ystw7-1HFY|#_|qa&l_n6x#d>I<2ciSUNE>7bpjoC*_PJuLh99< z8xedzMh6r`mAd|^`2{TVRE{zrf^AjZYtYW=lo7(9w2Fp$N9N@3+i4!U;j80E=t{rw zS@&%E6`ZR4aIv-ib6=O_D)sJPv*7L1)9ATIO zA7LIIJ#c?Ze_BC?zNt>UpIvFN^g&+H#8y?O1;b=wh~iKqj3~F!9^gn$ujj``D^koM zm$LNb%Iv~(EH@08k>92zy9;51s-3VJ@K9l(XeOy<+ic-ML9QNom80jFiq&jVAW#fP z;ol6c+Cs$HzMZMtnDQBSY$=fp3~^S7(pLn3CUf}iY9&Cv(%!5APCGyTJhtSZlZg+~ zCil@4ueo|reZx?Y^ss@Myc8N!@PKEsxqnTSdfwW@ywP|N_)ZdsrNPw1cS7JD4dSC% zK7T5BbM|UP2HF`e_QcGPw$Ln<6$_J)(o=!+_8e|!87*L3X3{VTQvXN(&WoyWkblOd zws&;Ge^DJcN9wKxlLIvt0VZQ?xfnjX`j!f*PjXrrVN~PA>lk43C;RE@dAjm1H$Sbz zOaP3J!Bc9;iogy@_S2-fY&X*e0V@P7_5wPAe)MGqFPddD;9*mjK>GZDj=A%W8j~T6 zGMYa5F1C*8IhOJzn?z>6;76^VlpH!W87KgvmF1jt`7%2piPZO8 z5zH42%_0=`dRYdpBf@n7!+D1tBs>QZcgdE$#nfXX_Xfd_!Q9rH&s65c)_J~Q2X%B` zH<&SF1_)4?%}SrAmw9Za8RRk)xmbk@K=N`OGr`N^T$SzP_(;}{sv1C$7S(gK2GBbxWTIg%S59c^k&D9nw7P5*m8nXpq7FT~wEy!YPy zRD3CB#@Y$v%4nEdRW9PRW?fk<`w^~sBHBocn0y2`%(U!BlcJopD*_C)+h#lF|2eZL zKB3{8)S7gZT5^bGCB=Xve#HrKuE29y$u-W`2&PO{A@ItzxZruKX z`Kj|p{-c_mU~8FV{%4eb)}ylWu}8N>?9Ku9E^lQ%R4KhGbF#Z|jeHiD6C2!>wUx>k zl5xl_ZC$5c_S#US9)#VfT6u;aZ(#RJLTTZ32eXn5bK-f+`=Z6a^OBO$-_H8*%3B?B zTfK7GQ;_?f0-NS%neU~;H?4vk$JDOHQ$&j|fnc@puPd5WTG@x5D=$n}S$l-DuBq15 z7p4?VPaYito%w&humR0v1yjNPd-;kzDAD_sJ+*D`lHD5fD-*j2Ina2~n1+mvFu5lo7tFfEm} zK%4CFKEIz}>+#^d@3XWQ!yX3X9Wq6+XRoa#kGSXe)VQNzs@VtX_o)!(lRyDs<=@nB zOIzjpWUZebwOo83yhNOkJIJqTe%2pieFZ~PChoSdlp7Z5lSg<*%pO59MTOyy-v9>& z;kE%0sHGCkERXUFfwH61$k-r{iJwz$!{!tm*lnLom0>I`uuH3)TK4=De3u@{R_6g_00d48~A^RUz|xhn-dby z_x*!_yxX7r#IJS!Pj2MaUA#w^-CzBp*kF_A+N~ui8`)OkMb@5A0dvnZ-kaWMRz(f- zN8l?kXsgntSh5guu*I{}qLxp|L-{7ysB#D3-9IyHyOXzkd2&z32F;3?g-tr`0&U_p zM#}_SR^Yla?;mn?O;cdNv;@eT#I3?SR9;3yobfhC_?Xf5c5z-FugTo7j1>g^(F`zO zwbO_HUK5OE?GU0?La@Iq$?E*$OZzd-P`f`t))hn8pSN3k$On}Qr;zL2oIpIq&6sz; zj3ALu--ev&>u=&7y1d*ev@LPu%}HPojYE1=@1^dZv8<=vNtL#n4LB8d!9!1zZIF2$ z{dqX|c{YR041(EG1OSXaK>TuxpCg8uU-mEv?gGTcDEq1VKkJU-)^ZA}#0D7jvcZR* zL#6jmM;5z&eAtvR9}Zp+XSJjE|`a3l}zy>DF^kz~d? zuJKR}DIQCwM`gQ%>My75DF;(Qu%mWVQUAAy0wsI?DXbLyolZY1{Qllv1srngXjkNz zA6i`l9kB0%2j>8`{Bxr1>^>UuiVG1D5i(#nfjD{B1hT9$eD95= zZC!((^6*j19v|>NZ@KZ$fm{?7RUMnD)wTfUKg??9^36)I9C15Bev1BKY9I{2;3 zf47k_!t_iUX&{m_9+iM95kmW|U*F(l#}F4sfQjY6R`>=wMUhZfwyJq1+HaF$ccBGv z%HZUCE{aIl!+$6fm*uj9ZP{nEv8;L(y|ROX8{b$aNgog2n-h#rjbbSHA+1GZVj8P9 zXrbn5mjCDsNRzd51h>kS=e=_DytMxK-P)b%kTd17mwBh+SeM6)8U&8Hj6^Mr0;luh z5_~ll%QX4X05)H9pz6o>LhbVwZkjdcq5NgjYy`nW{b{>*l10tt7#ugnX1vi6In^<= z#6NzjO)xKSZ#9fB$_#L_>^1>mXf6pI^mVWfKN-|8I;MAujn?NcbzI3pf=y1~;$tAl z^vaCLk%*y}Ps9jXaQ&$hQnEpxg1hZNUYFNSK^tJUQ;weM`g=cX3=8!7*+h#dY84hW z_6PW_wF>Bg0CFc7Spf0^ok%`M`DM-~Zct#_zxL`D%I0_WDj4}9Xph!puNwa5Eu!+6 zJ8?eO|J&Q1Ba zJ)*_S6r?@I=nA#Tcm&Z&lmLrvgA1WbDRkgwy7*OTokA~mKsyxrJq5}ujNJ!LM$_^( zXt?RWlgq!YW?2CoQ;m)+9WJEC+95D%x%tJ^9u%WAEalk%px^oNHQJNv?sRrIJHmVt z1%$s8lxKqTuMlk928||4oPJ-8he*3v4t0(k!_CHhN3$B3reZ6?k;yk2?439L)8EHJ z25frybLA)%sM`3=w;D;#|N~`1ebdNRvFuQkFC$F3{aEz0m;ETk2y(!hCA2UE?D=a9ncY zyr7UB46MZjO`cucpAZw@(i7~JKv*(cb@10kmc{Of*fpm0o$h!j9nFPp_uei`lF1y( zIYbHQLPa$jcR{!9`+4<4v^FvmX2wk--lm1STxM{|G0m%GzlaTvSi0q;S%OX;mmh4TzDtnY7`0+yRK&&6C zhpy+V@R|NzFvR)f#cx%ugU%C^EEAwqNMNttiGmU6?ok64wRL1f!{woE18~m2(bP6} z6xysy^fC;Y)H%@o9hvPhndRR2+SSy|as@S+pINDKmqK9^>@bTA&*hCWe+UGjqa08*d z;?-)#%CfW8>uUD*k{=T@V85j)06P6k$W@98dy()#4Xkv&PuGQMxfH2K2P_R_)UQWI#y z29Q`pOyA!2VgJ|feLt{``~J=`9a7ZQz9XC=y9Jl{TWNhQb`B1O0(k@v3`+mBwlp~m z!amwXy3C?V`E`Ha|5j248df2XuEBbeXpMQte2;ba z_l>kbPg%FGHQ^%!E$L#nTH(M`?$5S1Wc_51o(O*t?LDQ|$xN@+Axq)wLTz*Lxu*dJ z%z*L?x5_QR%k|2Ki{){*RUi*ZetF6D$8T6c2kxv~r;-ByE?buhb5b@SrgzDO2c!Ff2|?sI*NEMa5eATlNL}|?cbXc0O~_41-te(i zu#^xTm+ALqY@IupwPPJi++7K7>ZRh@3P1Np*@?;lQf>=hIi!W^9?-h&?+OOh;8ra0 zFvKAT#Y&^I!qbUSJTZ1u7CvLCKP@1(m|uP%d_70ZUvUD%CwX3cqY z#RV53QA`pKiod}Vw5oAMrPsLmy!CKKK9$9`*ZeGdd>Ast9CkqW{xI#e*3q1paJFm- zo!Zf{qvHh7<^Yp%I>wi zOPcPBpzbU;zvU$5x$5~?Hr@}mv5@yNoSq?6hFJz;WY$q$%hEnbs~3h|In@>s;H=p? zF984XKRujXcF9*rI5S>>W_9DxLA)Q8j?mhW`|JHgZJR!@{^Th4arLMSm=Ho{l>e7q z+Wo4v##mkBlW*$cKP0b`wlh6HJk;cl3D*g$+qEvP@k{sofOov3D%0|{{eJymbbX+R z18QZ}&E3T%L*wyLnR{MNx9fO3kX!4}jL=>aBo!Wdr7(WjWMMx7zvdE^x8S6EVHt=1dCDV~n*TT5^=KQ6C zx>@gE3d3>&RK0IsZ<|^p^49_c2M*2;BXfK0^;B|1`IHaAl&_FwF8WpA5fyP%_`Ok< z@FlrS69{TTCO*@3$-({K&vD7e7d6 zzL%L9Ii)=Gxrc%-0VhHbMf)pS@$95&eQ9XQMs%gt-$AQqpk+hm1}5dc7S)?4Ifdzx zbwaT%D07m~>ayiH+A0Cz*l>2#=1LQ-5WcNUp*3cFFnZ@u@WXyZdK{FU(I(=M8>J;f z85IR4u-^O{hEu#3mmK=HY>b?+UDutbQQ^>1xm7LTqH5yT_ye*2-MsRS?o{9{MLGb6 zKVDzlO<$vPT>y|@_ss(O zb`^B4tq%8t>htnzAHgF5mDP||7hZCA=x6Sz1TDRNasj^3c{CIAb53u$;$@>q0WKf^ z&+|F^UiOQ-mF~5d0d;EFvIuy)A89=t!+iK@0581;4+GFlSl5v(_rsv>N2+Z521iEa zCHW9`dQI?U)n#ps;&qJZ)KaV^E|&T-9gYOCbWoGA_y(a|u2}!;wD#VqsCaEK91ly2 zq1;DaDfc19mTX3`4I&p!y+<8hQRT`>%H<=?}=& z)mLf;W>GNAgdGqn9ac5o?q>@;eE3s%_$7~~a*j{!`K?Oa%8m^~LG?ws3t|{lLeG6A zJVl+eRqDiWSVi(#%wI;_3ezsB(e>uKF9MH5rO(@I;$y!bmhv zdz|Arq3A+zHu)w-%S zkjHF$XWJ)FQ5yxdfC5S_Z<5n-g5`TFTml~d3@${dRTOp89JCqxJosm}POYdeV@;w#v^cMj`fhZAFoAmjSB`!A(p+wYqN@CXyA@dqK zXDENkB|x3c+8&L!7gQw1tf+E)-A84TOrzu^dNo4t|KY7E$>{g2}q`Q%_s4Q31 zR!iWc>IrO!e-OgknO`Z3(r({gc6Q6dpMJfazdUL9HvQK>h64(UiqbYFpUF=qZ`hFb zS2J#zqg;4eh@2}o*=z7jw^5Th|2DJlkJu??XooCG`_abdUD;osapw8!{>U*Zxe#+= z>LoUN<*z*lbAZdhW)5T->CAtFNrl7W}z#?!Qt8&kgqyI`dxu0b-WezClgGF#gFrv#zr%03-6!Jw%-Rko+v4vmp>@Vf)}6DohW?B+^IK^yJ~yz$_6`Gi?K>}Q z^2V0Nu)TNMf8Rom)3d4(VEv4_Z=@v$9zCX;ryg4$-BL6B=E<~5sH@kGO1z^lV9hf| z2XDIU(v_d_?d*RWh~EuA3Zs<@M=K&I`?rjDZ$+uWT|7Xxa@Ye=i6pAhsQ&guUu#5C zPboJZo?sBi2M{)oe7WmbYl_SNtMe6C;+XhoFsuBDDNy z_XAg#Y`)-Pg7+o#l9q_BU*nNmJ~_uVdVljJUVZ9OU~rKh{7qsL`0d?mHo(Icsnj~K z!&pe@FA09#mJV4hoY(B1SvN5vL-rOL$j!E{yH;Tu;pdKJ^yU^by%#%0Q6G^Ok>~H) z=&i-qarwa}$RzyKPUm$e(jh~^s4`|=d>`t|Wuy*rMjXN88&o9IR*iCsV8AFna^RlX z>Q}}!?jDYTn;J=3KKZK6lxo@b53dZ)8}OdL<&HxdTQ&~{*U0l8u2F9;7uslJ{g%43 zCfRP#Q$h0GVqCEGRAQt`mAR)4AZSwu|3dA@qgvmipK(90k6}-FfJ9Qf)aGaBs=~cJ zD0FSt)e)iDYiVjtrgi_fm#f!c-A!Dn(rnLQOiMy+S)uXfQQtWqIctwo8_Q>UC5YJO3O z*ME}GCeqKb=I?GLkS4pJ8sZ}x{qS!?(p0-FGqXY zI`^don^6mdVh_g|NO?k%A4Q(6Ja1)c7iaML6O(6ZILFmJLIc zOo*oGs;%9-qgl0A2Afj>Q)@FtxABykKAFeqgU^*FI0e=V7#)P@FE3~90w=%ces<_L z|Nm!lAP}Cks_a4Vea`)JZ!&B)6JE1hz&?7!7@YBngZhyFF4Sl7(o1!Y3ZXWS>i7|{ ziGR?Kqn2$+iw&?ET}l}OgRzKo?E0Q>bAuVE=09Z%$a*THEdRlgy*V)RU)F{Oa zNU%xjdm*&R#}!`VhB*WrzF5@ZI29~DI1Rs5@G{sM%TRE&gaRynvKd?s;XTUbE&+~R z?F|CM+#)5LFN&9hpb|16z+s%QJI=fY;=@%Y@IIlNwPbx4zejoGl?wuW1yt{_eMCxA ze_KWFLn+obFg+#GD~y*dU(7+5j;qtEIt^^4<^Z`pl?d`lldk2Sulw z(&*;&yk-`tjdES+sR-HfXt#r@MO_g)46r4u-h0{Z89SG?aV98CGR3(PF*EOMecms{ ztBztZD&epVnKP~8v5J6`wew6JnG>~KyJGD{1k;QL`)k{EbBR&xHsxq`$IudKFo6yZ z^Y3*&kP30dCb@-XfPkU2X?SOhGdkmkS(rNWHV+v;9{pcW9A2P2<`;mrz1o1%cS@D z!qp5Sd$-PAC%|lgBxYzZHIHn}>kgU+?J8`Hz_*{Hzb+3B?T5mCzf%!A@dpAh2CQD@ z4q9{G9%@NXfY<+{>Ab_5Jm0q;wupeBf|U^z+zhRiRUn{6f)-Ixi4X!p)hc_$F9b7y ziXw$D6m2O>QDzdNjR|N72ncE^7D9rE5QZQ`Wrh)w^u5yG@&3zEdqDC$_kE4?{G2B7 z;TVc%JC}TemNxD@zc0{a=+hb*!j{}uLh1?-flWp~j{I_hN?V2*Z2M|-as`e~82bh- ztyI@Rc*Cpf#fSNc_(RP3sdZ6X-h`3)UZBJ&sZc(ndJRkq9X0sqa0ApTBd|T)#knPl zGdbIu47H_clk42FqR?OgAui*A7D;~^8&2v#%gP5rg zP~1GqK3BLq_0hTVjd#}jJwAOpZ1B%RSMDFtwb_?|tm(IT`F(w@-8SZJuf%_HvOW#+ zqRZx-COsdtnEhpl-BEd1)vNLopSy4)eN=%{943CJw?bLVMX=C5nbmGe& zN3Ik&g()`oZvHFCb^8YYlbdpXNJZIY{rSv9XZ_sMp@zt}zUHF|bGx@)?_<)hc!qm? zlu7LezkZHV6w$Vw$vIn&&~Ul&zL${67JPO`AeCzbR%e$~(MDXqBFRj}riE&o&c-Am z09>Nv{xAq(bo9p@8mkVNm)x`U>WW0^>QDhea-gMlyN6ouWSy~tXv*|DC_bUBZhi^- zuVD(aWS+ z856|_SqWhtlIB(}(Tg}%Ci)N4Ylx9GpWvWblmH$meX827;$+-m!={pUBV@^P2?6TG zz^pDYTuL2>Jvzj7`}^sU-NNICy+RNT@+8p^ zNUT1DUnjhDT#M!>8ClG)fSwYI2l*D(>Y^5e54@2)!{A0|pq&3@1|T&iS3)9eU$kD| z0pzj{L_EM#lU);pC)POdwZJ-2f)*tY1t4uX_N5q%PI@RA2C0XB7U1IL7{k6#I z)cppJ14j2xNc8?HeS&>|rm;Nml3nELg*QO~w?Zh6Dmc{TxvnGZdW3%ntIF=FSjdn3fw?!-dxA27Q* zGOW@~+#}cxv@V=48D&j4g>Rs=ooGmJlu9eg%v|?k}Jn90QLIsHl}x!7A8=PJDoaJ(+;Z;fR%yhEKaw@G@g9^z^U zz$9KP8LUyLhfvlS!`{!gdXdNd1Lj=yW9vOB-PUVZ9meo~^;5V>79|kFasGEvuykMp zdASH+eSk4|x<9xC3&%ExOW}bEvnpfT(h~ho@?ETs-9ryvPYxb1sG%C5Aq9XT=zy$D z@TM}k)Xwyx$3f=%A-v1fdAK<=si!>Evx7HA zih@Xz5}df)h%XFzTE~`S3kCiEHxkCRz4c zdAdzK5}Rh&8ssHjV(cY)nCi$qQ)Kh6j8L#*51tS|=$tO62p2viv6@{V-6A*|H!L*X zbEIbL=5Tna6)Cy^f%r+WMb6kS>!IY_)^=X2q;_i4; zzYsMHgX9Ui%AW&j@(7_#+x5@B@VrD%2SxqiJSy4N#*t>mwyjKvA&_ZN&v~iHdF1o` z_Vn<8v4dZetYTMW&<5^w4Yf90YxPFd$9EPz?0bv&~VZqzwygObN&R%OWIcZZa z_u}DeN4T-fP(KgWiUVvEg0smjV0P)DWm`#lZ|gVp#31|@wza=X#^f#lxby2qiFnQP zpDI~AJ|=C&B7Mvd1pr3C`emxh7VUXZBV?DU#Zr ztq(DlLQLmZ{V^i2Sz=&adtMIvgljVCC)Pb?-4@SRb@iMRHsJszD8U`9z)ZJ&O_&p? z3OUmEnIPj8GO*`TOYRrWJ;g(!^KxWHaV%!asNhiIw z9Mf->1$lN=$S*>)!n_!JjVS~dAk)70LAG5oc=TXzJl#cG!MFB*YRGDPV-n+T#1m2( zplj*t!bVmG{I!0v9+b;zBwu(YK`N=)-G8g(=nPLxZFf;(6INCv{VC0w0!>jJ82jzV z7blcDV){+p7&JEnr?uACs5@#9KA7q5r~$^Z{#l0a=#&cd$3fBbd)3z;=OK&_FI(vy zBPK!XDg-?X;$f8M*YeDPIa>sa76yT_-6cPZ@mg=_R|5muY<<3j4jp%Lj?kTk3S4Fu z-a|ir+Ll7JDgSgr#Y!(>R?%Jp&HOwAH)orz?GTLKu!`(cjdwV24W=j;v7?*d*UZr)Lxzu)SLkuyW-UovQt!u!A%_YEKC z^kEctj2*VHh)%r~kir8e3vFMbL{MWGp+CjCSvQ)6%GTofG5qQF(o`qp38yXO!7Tao z#K+znK?X6p%dC|;wgg%1#nX4e`?b@XLeYr%W#C)vgdCm0-^5`PLa#z;3R6uS>0;6c zJ#zBWT4i)nZAeN}o#{CS@rVpkBvxs9oXN&gv~m68*%evI)S$eD3a~cDh6_?v8#x(m zJoY|qIuZIHY=rJBOMg{ST9lole-Lz2({6S9xxEL2>L;Wa?3~*lu(DlX1P%11fa*Zw zRCt{hA`$Cgf}HB>cMPnzQy@Tk0U{xG3ti>cfIpw+hQ+x(0(Gmm15kiq z?gsrk_ooFD6Qgz2zTHg<52@S^e(_;Hf#EPq{qal_CifL8uwQyxIhYyh09Fb9GSTH7 zVDeJbCgY(pR;KEh*E?G29Vu0@2Z1kNC5qfW#C0VseH3h+@*m6WyUh1hPm|KxXb=V# z*#1%YgHC?cJ;Xqrk+E?d$D)5w7CVvs+%1UUslMB~HT&ERdyZ+0Tj?smP^T>g-#$MV zWfxwoEuHaQ&>Ff4YM!t?Q4u~AiAkIWJYw7}z;J8LS;Gu#>MftFN2MD*1sBrbHG(i# ztaI?522<{T%5k(1tMKApq6RV;L7No+@NIoK@W%%N8dAA4tmo3gSyb}}?OI}x(^7f( zCm)L;E3npwVr=mqK8;R*fnu+Lfenjie1(->8QWNE##$G)w@Y)Dw9})tTD{4;&N8JY zC6!XSQ}hy*(Ed>%E-Aq__r!*)8s|zJWaLa8C~cA_ghp#jjW~59<6}k+Mnlv4W%l8P!BobARFAASD6JCHJsT+{U-FWSL?${{ zkkjTeqK2X9Uk}$`dUPyU|5I@lv>H zebFXoe~g2{>FP}NJ6`{MS%`hDNE{u!l{>&Qz6Y7(S}YDZtt!{o%ssC8!EX@^9sPkU zo_cP}Zka*z66>H@WBpV)L6S32o$C27;{9$}P<_42>N`_H?{UJvJ-P||{}KOc_8c)8tB}GP3dZ=nChUl^D z{OE8@{wq_t*Tg5dTwtDbZ0Jah{=+V-D#a_NO&9nag0B3=z(%RmSsqPQ>Bi#5Wk$#v zInd|?vq$l*fszdu92#;CVoJON9YALR^oi(A;``^k67(%#Rd>t=rfydUs2DV@iFt99z=9s!tehl1xeQe?gML@j@G} zr8v1*Hw*N)2gQB!t_dD7rzaP5RLhATvg?-qpo?010Q#j^=i52fk0yj6iA+&uj;$*U zEr~@}f7y37&aKR|ga1@hRCEXkVT>4Yra`n1V-lhTy%x4jOv33r14^Bq^=sB@WKDO} zjTY)c|8|`VAnI00Q{H{)F{2AcBIZJ2aGrrb38GKzj z6Rm8z@Zy{9<>~b?f`W_3wOZxTH%_LN&uYmoe?C~bH%g=YSNI`6wp`xIK%y7IHAorQ zBqw7B-zZG`iao*uC&5x5-bD=x-@-CPJ81YC?|1?9KpexI!{XBldy)qNhAIkkqT9jm zJ4(;VU0#Q%vzR+brl4xzb9nQHZjA|?k2}I_>FaOWZx4!H{baHGEnzKzI*E|_yn);z zQhA|TGz0!QFsW0&%glw;Dvf$sHX7ua%m7JKj`ud%6zfZ+Y7+bHdpLPOzH}FRn{t}) z`;hO$n@n{>1cwK99Ii0HJ3d*%l%CsSlKH+6nLJhTr3*{8-!T*zEN(W2xjbR&Lt+}q zx)k?92(I<~W~Go!&o#Dp%4Hx%<2q%u&_oGij0SIUcTvKct#ro|PHHDD^0Zu_KY(9v z_@m%kleD%Qrj^}^(!2;Q%R%WPLChbZEmU$Fi|^Yhs>cf9kxd5CmC&5I&-SG7#7Jx4 zlx|~bj18ztr3Qi{XDnu;KWA%ilhIyDi&1bBE}iV%RKC6A{HyUryAYM$@ctLT$Km2! z|7T%(t|i#rx^!@HXO5N;Ab+_h0b_iG;jK>Ds6VUO1W7*wM3}eYGZqHY;$G_t^X$R{ zOPXXLKVA@AI!#2S;-Tj5)Nc+`9spW z3mzMdG#!JmP;c7*x5MU8!p)>kPg6lN5B!`Uk=20@J*)3Rs)4{ zM;_RghPvokpY=dU>724h#XLusr}m%yS>KKMZMt)mZt8%v3C?2VtP9zf)Nan2vos40 z_37A(uInNBP}O4r8J^)9Rg4$kui$$$G9(#HWWK^pEEe#Z1>fr+*6d6pPx+_Xl8WV% zVqvy^klERWJ{A~pLAv~ZV9O5)?$*{`s!KAg+T>oPuTq?%+8MHO05rmxF?I?Vk~Az~ zZSM~d^(eYul8L^klgl75czI1azurqYcV9##H<4`M;;4-b)!LFVfvz{!jrJE7!r1$r zL|mvQJ|C_!X`Qsr)k;qVb=-AzGmtc0q#q&sFdn}aU2haPfBqrH0QBzv$z9pTCp#JC zla^_n(;cSo2OE|i652zKAzFV%rYx{kyi9dKvJ8YYv!Cq43q)zlE{fdn{7E;7STLW> zq&uShSmE)=|2qY#=Ru;$l@5&QW`IX?Ic@xlVhQi8%FxB4kehFS_9#P z&%&ln%^aPRd=Elcf0RzvFAuL!SRuX7u>4()i_A$;1c!OEJsW z{zY^tNZglcU6l*pXKEJ|{Jbk%R8SV3h*#N83&Y!oLzZ{XU>>IYJFiXRi0o1$zvD$V zifCV}_h*_!cA8Du?&bq4daUF1TLX#OR>2fke<{`gtUUh8pl$H9l&g9yr0VlQmX!^{ zVAz6dFehdP?|Us6gZuIM4cv;}^OmC&*Z=YC+4e3f;ouAcyI8OrGZS$JNTgCsz(l6P zM=nN$(Zc9=qS!Jc7gmaFP-tvPC8%u@lP=M%z1L~fqLC#h*nG&8ZeIb4)>9TosuJR8 z&t)u2sic)8$&(48s=Eu!I}}f$`UfH>s}-NY()HgqdWSith?aUx3~|iaM}IYER+_3- zNb{q8QD3mwf%&iXu8ES?^l;6%rxHxz6P##|T+0Y(mk(qOBcez5kC_E~ielUzX4UGi zn!}t6M{B2Iyr~`ysSnUO;SR%ERbDX z>Tk;2X4ugAg%`euAQOd7dyjN=Fc#QrM`udo+g>^FCd6`I5aZm%jQtR*?bnu}48}RX zu%msjp$}zSkJ;Uz7N)4Hmu^si+IF+p>pStrTy513dRS%l$Zn&77_?XLQYcKsd+#1Z z8lUa`(I7jm;PdZ$eiRQsPI!FkTeQWM2MdN9q`yXJ8{{NzgPZSX&Ed`WTDJAL5Y8-Q zhZ^qIV*Jb3{p!82i}{#sd4l&3C(t@{Nzpi0_&4{EA}C?%IYt_J!P@(fP_n-vvt-dU z8JZN1u$EM^Bd@hU{R#b!yBlQ}ds+GRC=)AM=pCkac5-Z<&Kfc z&6AT-pl+drAcY6ln3a(3C6=;+Pe=_OMmg5Q@Al;e{5*{APASKlSs_c;8NGbH84Cev zVAx$HjMy;TeN6Klw`MgyNM}te+@NJ;u<7L?HgPJ(qV+%qn39(PvR_+85KF2{E3l0MX0(jNl-0-;hrMLmCq}R3&VfFSL<6Fzqc2 zTMgoD6aUYaitEC9=tgbMeX~ny*S*BvnLDkN-(ZjDms88?tT8${K5ewFWiTp?bQade%fgAp;&3jv{LDzaKcPsG)<4jl&-89|OdlW5|`Yz8UqDEKX z>-fFr4W05aD?=V!X;SQDtPUAEgr#M|mqN5k%Ghiu;v@7ae?|caf=(+o3p*dHD7~z8 z&e9)fJ1cPdTUJXYxjy_<-M)i;1F=o)EfH`p1%g-^&`RwmPP}$B#qBiAN{I)!mh5sVtodepJJ2=bsDs;pLKAO$=|L-}n@qSz)L zyjo(?Vfs(Nz8wgjEq$7DPnR!0E(tpA$WiSp4sK9zHbSJGf zxg$~OKo};#>LJiPD2X<@^)?2gfGUlR5P3;zFsDwu*3i^6qmgEEMbzI42_V314gRlE z4yv?x->sYeNNRX`4n;38hnMlWRCIXLo^LQuOt5nZ_<(|y>D0uSCkO6-D6l`@_SNXM z(+OZU3j^n92ZSsDvUl?iOWk)Yf`IV6VhP5L6Xb0?XN|*UFRq@!Kk1Q&kv9Bwy+y- z3iRh8*$h80)#y6d*Qw=~8#Gz+S%p&dM+gF!JaGXv}4c`ri*%CtveHhH#~8-^g`d?+qJ=h1=(a|l4qUTS%#F&GnM zhdS_7pw8|X7T8$L7>NwwUs`2C3Z5J6+FQElO-~Fvll$a0=gX;`|04R5mtGfzGt?GX zcie&WdNNKZGX&ZoH`>KnEU6kF&TuOWgIlPxp3Q>|GW|_9@z|sBezcKGYAX>j0k@JL zO>s_~t0z(=LpaflmU^c05rT#~wuAT9pxr|5;eyeDvkk4mb5??+w->9hR_XzWeiyfrFF2S3!9IgIY@j9yJjP%* z59wq|%}I*e_v_RWE{em0ap~u0RC_L-|lf* z@ru@LH8RyrGAF*YsXfT>zVyaN(o#FSi zFl)Hlm`Ak280s>vx|qyLCdA8bP%lE3)i39~!>25BW6(?^BR2TP80K_`(E|OI=#sP* zY4L~B_KOOy3*#SJcIPnu`pA6t;F9mLGk$tKK^49}fxc)?Z`;i)o0l(cI%C+-S#{>5 z$M@CoUekRKA9H$Gl>xgpt-JhzVa{{g_|Vzl%k&c+tz(rboP$*^qyTbnJN5ME6T9Cw z{C2Xu`!DOx&0%G~c|AP$7S}={W?lbzZ+q$RLm$1pvWE7G^utXuLnm%Q6A2ALbpnXl z41vrQ^>=5-Fx0j$QK(TI%ymbCXi?wwf3|6NNm1|s%LR>nJN?5wP3M~&)6DDJUi6G>NNLL?X)?-&)}~6 zAqRJ;Yr~%Rr{cWE3_fSkE~SfH$hw4YH$YrDGRt}2#>OKR*B>6*uDzPEqW@^RJYbP0 zU0h6H?a?0nCwBDslic$${l_$zB36c!DqdJ>{L{CKu7VE&LJmS@g~_YQgjG8Ay0b1)z+T6_%nT{Dg$i(I2G(7@@AAoz@}bEvxl{ep zXBasP%L}aA(R{TOg(Z4|54mfQokS-Eg<27{_;OMOMzxg<3h@ePz4WnZ^2mjSl=h0* zXjs1XT9_(pH^KPF+wTjBwo%~z5jOtK%+r5Mr+Ya2s`>tNleu#+>l#PG6#fwCTU$6& zN<}LQMp~&Px6|T5mY8;!a-?8Fg22p2DH|Icyw3i@TJ_v!=Vq%q%N$3x{piq*Qt`Do z=jMu3#2!a`=J|^bBcjV;(IiC>AcOMvb#H0+e_K+a9;aKsG}=NV;Hi8^ErHNpN}b`2 z6}gEgg*6kx^g@KYmMk(Z!mBiJ#tM z+qMGESpQF*=g-G>a>Y;vgQ^?T$Ii zuPE->S>&;xq@HCYsQyRXVagAm8LnczGCjcoC5j|hnwpS(+j&WRe1k~x&&55b^Fz>U zl_xwl8!ElVFowRL5Lf!#(8(sc*?#Hy2H_3;yXc@^CiDHB>)xo#IYAa@wrSdgW6(CC z8jX!_gU)Slk7&DQE=YSPh|eLito0XZF)C67`UL!f z0F&Vg_lahcS@h1fLh0@i5%@-j-q5Z|KO>J0Wc&7X9K#?#Ih~A#m438<`@bD`Eau#P z+0C#0#&@y)i2(@bs)QL8cQJReOMR_oljS~&#u5oA(Z4Ow5^*GAlx3{&zzim5+Ba`QjU~xr?}Cd#rL9VO{S3ZcFIHX5AQ9}QQ3jxkf-db zh25JecHzXs|D_Xp2!C#)81vLl&4(by@*)@5kO}6zR4RV#WR0*=3AOh3=@`QX%9Snm zDQ8h@u_Jp`C0QQX*)A+0bm?(dB-DVu7!#iq)>pRT(V_#dXQ*+IC0y@OXQbjjHaHYq zhCHPLHw)yte2x{@McFz^i+v!M2T`b_fZQCV1z7T~e(a7BtKKE8c?>rJ%OgoKHyFn$ zc^l<+OSdV=p2HS2l_XC!3BMDUuFu=V2ptmti)hq@d2O}i3ptZIDHD&#p!L z1EwD6@=5b&4nn!Nnk;$}`Gva*K}hgBx4p|SHr8x8XK|20+PI+!V(eIXgfE-tuUcRz z=#LbagDXrKS^3A&na{pK^=|0wUot}Id9J{Wx2q=1^*l^%n^|8%p6l6xgh5E@GUp7u z8i7@fufDe-<58>v!f`WS^-RC@C?RYt$76lD8BgE)n7uL3k>buB0^QCDNpdZsT z|AUMmC#w>AI_pamn)PSl2NDm6-HE4ubB(!bYBCUXL#yPKBtD!7GqZVdUx&CfVD!!& zG~2-xQZR}UJf1(Gz>fOUf2vNaC}55V$MPlP&AuRN6NDd?+>8%(mlj@+?j={OhD`^% zv77vAOEo~McXMKfl-`772nWS*vn6;oHhgyHQn$6wMtNI-kng{O#KFB3lTwpq{nTMB z_I%}k3rE~5aT*2~@V;*|r__oZT$HwO3!#v{R&D)mTV_IhqvGIm>EfDi#APubdA$}^4%JQOo{gyrNEq+J zaRNS**R~V}d0yveHYwL7m*|%B3l4#W5PJ|=rxu}v>h4+IUU)S=}=Qh zax!*6!b=4Uf7r#e&>hACKSh*$MoS4mV6$iFB?5mfr#u(fa(1wH_H&46zrWfiUPihE|Giuy>v{x2jAoT2-wCF?9xSyo>ko|)1pZ^5>#YxiX;IxX#E-CC6 zINe1K$C+oo)eOzj*4+J8qoCNw|J?m}qV?uD{dJBm$b?9{)Sp2THd=N2&LeN5;wSFa z8Qyx1>D7BHH|y%%X98uhFAMCA3U*`1|KlgNunL75fO0hWdCxf_yWcN}N&|#GP zPkg3QOkZQglV&p6CuU-hpw($YHh_vrXAATC4NK=vKp_CND4u$q|& z{R;ku>EK~;7@gi$+kf=Qm5HM{HX-_puwM%tg3)z@NP4Jp?^Pha^u zlF}Es9WpS200HUV{*y26Sj^uatVx@+oKa>T_8@J!SV_jMsgso{G5S3-@NAVVG4KG= z92P$b(O#?dk0&EUe=MHp1=a;e3C|gyb&IkFRpZacjghNRIGcr~2OffkPj#w;kAR5- zAXa-WcX_56LUwPu9GnhyHw{=EUxc_+5Ohgi2zE+#sn1uBDTt`x(xqWway_U;NV9&E zTrmO!=Zpu8X}iqX!Q1rDeRDHJBkMM9e4sE!Wkeyn2405t805*`kaD?O`XXC>aA+2u zCb@Ha99H4>9K<-!F=?P1Op;U!k+$`hEi?rOb%;ssq~DXqa+SV^VG!N=)vBuwd^(}e zr*x7#Ocl_&nm@fP7HT%IGLU{RR4UFi(rPBpLsoneei}}0>8*zyqBz|QRS^vQziKve zBk)Z{?z2n~)OQwj5VV^e;33i~d}3(IL=Gz4yN0 zA+A?fEw45_UPB3B$nYrIs0}i}7vT6SS`Q-F~en7<=dK$Vd>sG1DhM0o} zE8Nd^3J2JQOc5lVQRlEJlUwm-&fcc%9_f3rgbf^r#(Fb*`)~?kZOgHJR(YrA5?$h< zUE;1>sy#Abc+iB^m(w!Ywj$LB6iB=eJWC2l;Z08NNYEH}+l7?22(h6)O#pA+ZeX<{S@Iq1--M6ZPdQ8SI1H z7T0*cIHFtrvU;I@$GU(eIImK~&yfCBlL%V#c+0$^a)=5Lk0o>0!~>Tt_HSu>#jZ$A zR39qVhn*&b=w4shDK$rTFKNDzApt9(GzNxu(e;TA>IXY-4QOtSp4$7$-c6}~bd9{G zd-c=6`%9Nk9P`pUjE`DpG*DJmd$0Mh@42E^JtI{QX@6+$?>X!m`X?jwjEcQmfALB6 z1IJ$QsEP)|HTSGYw7TR3>lY zZ9G?TiuG3@b)TDN);-df5$jvGY*1< zy&m;5npjOsU(KR-zM&tPGu*Ot8VOm`QYu3<57SFPsl7aMc3c1T_U`fisKn76U8TO^ z1vdtQLk9Zv4%In(KZ`q(n+(g*_Aa_h%vbNgv`N4#E}zh5)h`XF32JclVtWT;Q#o2h zw0=J4jiQnyt}w6*8<{8=O&?2DQ4@zos3@T4Z5SEbs`i_4s?W>Zm2M|KD9zlKvRw%k z8(qV!C@5gZ$JNvI^T<*3z_VRK0R_^9lSJu$rH9-`Gfk+~n$BLh4WgeJAn z7iKg|O>SFzl@CcStK|rk2Ns+qbtYBZS8Gdm0~viTY2u_(s=yZyxiPu#qDX1rOAC7_scz1A>W5!83vVkXI|zyBsGHOkvZ<6(imHc z{2)miisOb4uFkDa#&z3TbqW<;s5#^1Rbk+;2d;jTeWZK7gd^>LDUi)*aoE0qgKh zsRvE=^Sb*zxJ|5DFUS>D-ro&FIO*+mkEU9OGE013vHv-|AsWhjaD8Mf)bVRNw!LVw z(<)5s7#(6BXO|oh8gEV6gWhw!IcB4wZ%>weol;#rb&#WR_^#r)xjV0Ws2E~Ur|=_9 zx7`D$eyKiJzwPrGii7*!8j(`$u16@K*41b6i-I%^vl%ZBEla;!f0%%JW8-b zU`5WZA%b`rfQp$qb1K`t%8^~ma8+{sXnr>;Fh>~2YpyupY#mwcr~+lg0M4}Xm|8{2 zl(uw$#g~&|huzoQrN{ZUz`?=3etam$Q*oUJQr3C#JG0Oe-fT5riTuZ;v4H^?EeAA- zc^1E}kG{%klBxQ%HA^QE$unJgY=s_EGnD6^65%C%>^+(n<$)ZXCJ&2~cDnwgg5XVt zv-;*pZ7H#(^_#`DHoJ^gN2o03Utj4dJfCiXv` zw5y_B3bw<}Y~pnFE&Qu31KA!fauqIzGv2fT41+f%;%kJ@X$x`MQiapFG%9*hZHV(z ztoTD%Zf4;giY?JzM#kB7Abs1pDaTpD-^T__V$XMWwox>dVzOx%dtCQkkz@;uQGwJ? z5E~g?h7?2cHv_p<_`^GLW#E8{gzqlG6s`^hZY&kI#wHKUN@TO)CTfZS5St0OXz|T@ zWS~i$+k=t{EAn$#TyTY1UHsT+@hb;o7yah{4`V%dJ!7Pu+EK5Ha* ztwqLUV3tdayHWxP<_zI;>9o&n&XXW-DW=M5LzJD8&=3>>NVx*;SA9tFR;Gz!$-&8U zUATn`OdB83TJ%%O`4+X6lhF^mgiy0h2&z6gj~k8)5tq;M7E?5bPDEY+`71;O{|I>+ zW%M(NHZ?GadeNLEU!4$0Uo@c$)K6n^;dyJ8_T(T@=c2#)fAGeU0_-RJEs5INO zs4dvbEHsw+nsY_lYQ#?Q_<+tn& zmgd=lsebSYw7+dM?*B&m>23`qN?v4G7i`TP>4Z;>g=$y1zfVQ1*)|m1)HBVOh(l&8 zu(sNKTUY)6m2@&X z8HydU)kT8vUIh-c`&1V|;!5hwW!I=UEg_xJtS%>|O~yFE5W8#%;&!L8lIb!lWS6v+ zI%7W$W5gS45rIdTk6u5!lR~aofCx$% z;R7j2JXmP7<+edoRIO8;(RsZ3Y;yAA{=)*86PWD`DxRXnla8h=2m1>^>o&7eT)!9h z>0!n?50@C57dOJ;Z+=TJ0EoD4cX^v*)nIxv65DhmZ6PT>6~Uie|V zb-<{1-6j4|4Fw(Ly%U&GN^+nl-)t+r)UcUBE;Slmcs~efdd^As_EY=qceGYh(7NGj zAqNp;p;8FO+;=9oR|Vky84sh*{4&{Y+md^*Proy zalbyXeD%#agV77|8*g?Tw#s$3FHeZATpy*63MPyOA7{@`UhXU6_RI6LUiw9SSgCi2 zNWNyhu<@JPwA1aU>W-ZMdFq?m-h)0q_*+TmKA5H@8#SOKXpzTUS&tv&|E`CcT1mKn z?6)u5Gwz=yBrr;gBPbYn=>LqpmxhRoB^PIs4^=MfV@h$2~Sx ziSw$u6H>z3IvM9B78_brR+e}mBtcZ$Hs!3b=kckZG)vd8g@e+{@0`S?zt&U+v}Le5 zL}a=T1q81QySrc#OWCp1TaKCH@pI!>wtI5MA$dzI78*4cZ5tme9Q=~pmolX`3ABO6 zAObfb%nDqd(pnV+WsRtKbMlfY@R;(--0nJXc4iuoy*2(+QXGV?KmRW0#xMh!r@l$C zFbqWVwnjy0E$hQO__bd5$HO|gq237aka}2xXO7U?kG3A8-R!Q3ttpNor4K17!Q#xV zHZ^D_iz-Bq%kn_yBX~YT7#YhWzj%!>7Nt6=L(l~bp(&N4LJi&W{o96)6;js7Yzq`6 zAVj#fMtl=Sfh>;Yv0e4X-6kn95binZ`-c7_f*D$o?P0;_$)r}*FEu`QK6ml^il<_G zAM=*{`T#AZ=vx&) zQlblFt4&kHeJ+WT<^oSdzibmHyo_ymwkBXyJ~3E>z%kfEV(#d89l7#Skf-!^8*ly|tKq;SQEQjVU|_Ss~F8W{N4opENJnhXW@X zd5nxhEInD23{Q9n_HM&UGeUVMYtS-Hlv4Q&47-F&!H0@9+ES2y3t^$qa}l92gg9Q* z;mMe$YD#(B8tx6K8;9=V9y!meyh%I%k?A1G)96c!vpXN<`bjdZIL>*J$~M2F)3GJ1 z@u_vIhE>XfDNs~HPO-#>b!#`9t<%0BE%AUswaGp>#uf>m_S9eEzll=ezN_V(s@9-r zDNRjy@!;usF*}Or6OZ4czXr{EF&hrU1=?&oMull1y(#~}WKu$OOMeYl*Yg7b=A7^2 ztk>9F6&b`tIfBpy+$f;pXCB2*Y>6oCn~f{S#3r8uQvDL$ES#!WciBPR&>NA`!4u6c z$Ve#DRf#?hwNqb?>a%$aDP4hI)(9rA5vDmW0{(4+)> z>r}lpJNSP7f<%Y>6igjT%~6?Ys&1{fY(w;-NJR-$`zSQo1#F|nVu)UnXZ=UeQJNQg z((f)z8H>n%=Or$XkO5=2$-uld7atGkPyOZ9Q*1Y#&>m3HMZb{37TNGATIK!i{4Jlo zfGmdRy{R=FY${Nv{fjVWKO>zJH(mND%<61%QL8ivH%D6)Dplgj{NRRglgkoAU5m%AgUF@TmS6F2Hl+1EK==i@}?WKbVYE9Xkh0<+Mi$IMfu zmqXr!@{08e2WA(Rs%OPbF3xECCWmJEib?5T2 zfh+OlneQi)_$)w8FjQ5)o+@aHdFO$_w@@4wdMQrTDL zH!nXbEw&7HpZhb0*z1_|7E#Nrx@Vk_j3Ij4OG_@Wmy8&jFEkuwEZop5=nn|0`G1gjH3-&2I0g)2Aq> zCE-PnKHGD?1beT9nGy^$Y(i5Ks!7kLj8I2<6_48Ai8}S~dTMQA81S!T993K~?8RQ#}MoJPt3Ky^3m$aPHtjOxqKb-CI=bWA1jZ{>t>MoDyZ%t$VMfg_) z(zH4jhBf^EaQSxYt;a@~iC>DH! z3=3yCl=X!|97@EJoZ6EjQP z;|LbWU{aZ+JrIhwIn_I+{b0^D^elk7Ged(i< zRz!8PJ+@eizVSk81W!4lFaXc~9p@27^pr>B9?!PF^K7;2pw?&^Y{!YbaJiX;qF>WT zK6{6r^R{AMd}cBqO?XuiP`2v)(j&${-Ri?RG?OR9$S|uC$1V8iZO$*JldD*tjl12| z^(zqlW2^7JVFYX(#&Iew4D~Jg?3T?p&kzApNr4oOX;b|&Sm*&nL%dlWQfwBxLm--u zLzOYdhlC}`bK)b<2{W({J2P5zI5&J&0rhN3r}MbBO?Fsi~$}*c?}^UUQYLw4tq?<5|`j}Ng5la^AQhDn8t@- zO!9&2(mn}M#JHX5gfXJkb><=6uRhm1-15BsD|yT!knen7W(@G?`976YC$Wm|Qrq^+JaHpNHL zI(aV1Lk7J^w8f9MAKq|@t0?(F6eB`HVS;WP+Z4H#cXUvciS0AmHte;kytn?u z_hcIOFVJXVM4#wc-37Li2R`C8A#in2-)j;e+HbXAb;upfjZj{>;rG)C7q8yC+33c3ZTQ+m+ za^!wlhdJ9^PC2E_rPN8elycv!l93sqQ8_v;n@TK{Y|3@U*!sP9{^%bMmCN?|zCW+` z>-BuO`~cWPGI*G&rr6oiaynwpLXO#`0tOwJ-~vG|4GrnITp*WV`ls%YhNod3EQ{+} z&R?>AS&8w1YJjwsbaII>5ax2sf>2QQ__%%e&+^9$1`&X`ccpMakAsDY!OxOJOXI*e{Ws`7v{w@nhX&=fRantDK!T&Dr^q;B}y#bHvU41{=CXR90B^7d?aMs*k({V)) z4YG)Pmr$KJh5ugg_L^;IN#xcyH)@Q}=jbaRJ#IF;DRPgi|M+8Et1&~oU*!2d?DOXV z#&uk1S&d^$q;ty!xqbnTREoa-zZE*I$Xiie&w6b4jR$w)weLPEUw!pOll@gcRMLY) zLO5lHjTsHYHLg2(I%?wUKD>5=&2W1mP=A~21clEnwUMWkSnnOX6l0Q%VQux1z)OiR z4<*yy673<4j09pmlk2N@c@=#@>C$(U)vh0iSpyNLiH$yk(IuEY$SicX$xH_&T*mjt z(beR?s_y+6oo_QK&MxA+HW$Kcqm_F`F*MTt0C(J+T&w`X^#X7ZK$ZM--iH%$L@vrg z#aMhJ{+yKMP7;t!g;^+1oNE!P3TKf;qf@=d1|Raq2_g)f;n=3(W0GX5l_`4@FKP58ZH~>wT51l=a(ebipl?Z!o7t81!~o9D+H+^Qy#IS zJD5y^EI8{41>IA+kKdf-I!!KyE>8)lqm=)$))^C5p*qD@BqmEF+TN z04U@VYfa_W>%o+l+{vxBFW4w2KT$-@UQ^#c$B{OzZ~+!dv3Sn?YAji6#R8*kOKP%} z%v=C|N`C*AC^)|>7&Zk!7E#?Kd#|*;reQ0^w+$?uv?c$;jgHFL1WY2~#hKa=Rb9BO z&Y1`8TM&KX%;TC|8ZdG#dN>hOx&TqN%pd4~@_bT0VnY{09KT%8oGrs3d#Lj5VL^8F z$Wvs_7KuG-b4Ey1xFWhelKU@x_tO(uJk5-C0q6PkPE1_nRm8e-C zI&|}SL^FnLbjB+Ll@(pud>ij)q+1dg17-+^uN zYnp+D`=kP&jGCn-3tBc5G79ScVp#Dod<|sa!wlezd2u(zG=XOVo*(LD?kYU=%dj5m z$1pAfq0*Nk$e^+eo+<6+np;P?1eUA=+_aXllqgfngx9xJlhWEVQ#-DR3+5sva8mHI z>;mGpyR4>PggE@U9TP4S>5xky%;?7$NBR$so3SL2He1Nl-OT^nAY}7O}?i(_e5u zS%NT%^%rO3+=L;7KX0#Y%t1;Sa@J1P?Na-=LQ&8-D`sI1eFq)G`M=xj^plcw01Wtk zQ|AsouWC5pUL^STgi$iI?ITm!u3(?t7ib5x_7sy(QM1t}2As^xL^|0Xa@}0J z=E1Rb&%@T}KU->_ZM>|u^;DQ)=fJOFHWy68aW-LZYkt@DC;ui_`eX;Vm+($(hE<~br)!yk2oq00wMl^E#*TN5j*Dd!M z`1D%kK5SCWx}+tg+=|W}!rV(V?B9OG(_z&hA(Ue3b7k@g)4!rWY7?bk)8Y*6-Q?Tf zkFCBS%%yApiw+Zq+cI{O4*Ntzh;VH-H_+TS6PA9S=Pw@I^u0oGX6PW}PLfsO(LBqt zEsk4neT(+d6Uyla=si#P#G9K4ASz+0%n|S8AiS3_v8t)fvzwz#G^{%PzvcbRa;(jr5x>}NFQg=3> z`8QYN&Z{=wPaa*q`ak@JDXU7;;EUOaz4m(_J*B$WT=>~POJ#H9T-SBS-ju|w>0kTw zNFzr7Zgw14hgmsbh(K@IPQ7M z3qym}A|1|(F5oL?g#x`8(~MeVn$j`@Slyx1_V}@Wvp-#n2ijj+Hzru*Vor5lU3(!Z zh5p;P!ep09&i5?T)}<8wE2kI7t&e|`wzq!Qd3WHqUe9r(bDo<&AN=*}XY^6tyE|hk z_N=Ef!yUhD_HtTYn0hvMyyUizHSX}2akQ#DidKg`ywC;x-ak{^3SuuR^j50y$bXHE zFlKDSscm9}ja>3@%ZK?TX_f}bw zLYjlbXcD9lejkJYK8w|(FgF=v&h?8F1;O;OjMp@L|K-nrjcbLpYnFz2$XOce7EMmK z#|lP*1c*2X#hNP^inEp0sxH{)+zE$z$}lo-IQ`VoxpsAopy$gti3)lpO~W*cj(c;m zU@{yLVPDH5;p3$rhQY5c(95``<>R~kif8=UXC=X*d={XRga;hh)#f2lBfhV9jWdsjepeaj=dg z`ZMaaR|DrI#3etP$Eh-!ZcPd%Ha_`6UF*b*6BtAN=k-HF)Y57)Do3~iQZy`-`hfm( z)A35A6JKjc%t8t@2=F7o%#{V`Lbl-KO!P9`8XzFLhto`q3j&eTCO%pa=llZ!f{|Sl zVT`@Peya<+&rkm?h0jlL{dTp@#*sO|Bc3&YKx8HUU&X>Tyb+0LX%;jc{1ibr@NH6C zEPoi4x4;k&OQD%D2>F`!<6qURoQsNSZE4C>vXxl(h}~R42Bdl4apiB(lQUz`nG&Ui z6!UW;s%@f#nOMZvdDFS}TAJha+u82pM0ilh*h;s{Ej>8nbOu6B;%)}+WRCdTR)m~N zK2KK*8j>7#zPP&$i)XEL0g72Es&>tBy!i7D=6#<@SJsWBA z)!8IhtyS7wvH)u_+W8*p-p=P6F}a#){#@RsDn1a2W(21Ne?=P8BdwyKe`q0`D6@uh zcU_eD`kKrsW!R`@=1dRY79_2TM~_%Xp`0xl1LSU~bcH-Jm|^g5R8?_f5+Vc?G&*Q7 zg-~~5QW6GJfNi%zo(!IbfE4xaO{KrY`$|)nS&Er)(GW7_Hh!vn@0dT%4<(oM63@i4 zVf3i;mvggCI1+L+TaFPcc9j;B=}_7I9U1L!bKH9T$aBclKrU=#Mim24dVF*G_qU~8 zK2t-KneGtkuB)Y`hTHttg&jJfN%6#cR#Co2ezWDU*BvgoV` ziX6`z;%tiyuhN%gRJFJhA6>6gp9Lq&A1f-U1tD^U_Q#U2wbR6>Zm&Kx)2b*X)h&bH z8F$DwG_*^h|C!~fs7PsrI|8B62Z8#%g-zSc{)w^=bT+ogBMX-sq(!npIG->UUQlSk zMbtJd%mMxv*b}gr{E{8$n!h@zi<$lBeuQ1oNf1W`+d_O^>t5pNU)<4_8tG?PX#4#h z1h8@aZ_L{3mOLU5wXFU^87ytx8R0)Vb{~TJDp3 zmlK{x)}4Gk7+Gq(*Du3B-#~qN=|E$n){{R%>vu(O^R_&hun?Y;cI$wB!5!Q%DA`DT_+0sS!exv|JfNbaMl<7v`T4FIi{b&~L~ETEHb-ikg}|BJ>p&!)vJ^(wh*!$R-6E!p4yC{4Oc`ltI_4O2Z-*Xdcz z={HyVCLR~uRI`bDc~i5)bE{4U?$y2NUXu=iURMc1mm~g1&|9e$fnR?h zo~&4VM|T(85p;iIEFR}Q$W2GpJzmx`@Xi0-_kdq$mFaJ$>mv>-$mQo;Ej+Z(66qeo zd=l&WY6$!C#<3Gg{Tn>rMkjo5`(S;vS77Y>wCr{1Ro&F?+qfyS$ORjTh4bRse*@Po zXEmO)GRh0dH}%VP{maq{={^hBYW4*8gahXff^%aG*NYA7vLA@6GI`5-^t}_}f|W;l zQNPo~!19DxL&l@jJdnlMB2?YoZ{}cQ!q*OBVQ5U@^mdLW=UlinyVbqFsD!s)j9n3Z z;LK-hU|ahw_61pRr8RIQV}_-}w!fvfR=pMDy+zT3L}TgdfdH2Jq$v!t;UHJKoR zdz_?ycax+5QgD{4Y$Q%@T-Jx^+eF|XOsY?5I!C(MrT0DhGLF5e9SPM1=V@o|3ST%{ zS_bw<#<$YNPYj&FuSLP=Ctfn@ThdX;L?8l-S3f$7e;~jE^O_bkBe)W2sOFoK@??*q zYJBwM^29L94%QW#zXpXx?rNV@B9#esGiM?C+{6&lye9g?4jqnBy>5sgmBvMR@8;>I zg43LG&w8W`>)$0wMB*aQsd%H*Nhr62=(^_f$?QwWQG2b4mA%meQd#~8*RY4=nmLIG zrz_q0fyk^-@`LO)K{)-ZFm+Ilgo@c8ALm@(%c+&M1&^FJpg(-gADaxFtV=~gRw}el zKe~^4MiR-lD>Od~8bG@RI@DP6r?8W+i#4D4wsl6RtE0X3gPW1ZbVZI zqF3WBtbQ8AbQDCz0H>&4MWWF^NZL9pp@D6h1~Y&PuHM>REyiMB2W^4HT!jLX z1wlKeK$WP$!!7Pw)WZmtM0{?I0mDjL<*QS_ZY;T6g%4SMK9}ZYiw|u@)UIlj)Ur^I zV5vA#1*ip@(ynj#dIU@W{aO2hrSlLiTBYE$_P)$Sk2s?|g=4ZJRecQQ9oOOVV}*Ua z+`eQ@R$rm}7_?ATjmL8}*KUtqF!F2|-!Fcb$dGNc?-GQ43g^z+(B7g8m0IYlfdV#H zme_vLeD8R+Hr+y{Jf-AF?I@2@g>ZzX)uu^qN(W(n`}$kGjcx_?lU~uD&#H1;i0-V= znnGqJKVrxKE{vr<8z^aKQRSJMzRx8aic-YS3EL7+9{7X=;Z2;8xRTs7H&^ zf5r1cn<5hEy($^FNWxPVc-6MJ@aRv{W8}e34^jRGh%cAb8md+f4e4%RuUAnbikXR{ z_u_Bd83~aK&qI1ubFzu%x9@@BhW^++Dg(o3GaBYlRN;HodaYL;? zq9w-hKFaDDCb*S*+Ne8xwa-RZDOqCD%o2C9jFHJbINL;*koN2U8#yIiV=UKMm;VwT zK?2T>W4iBBm2UXA+Vf^k24>1$`80RcIJ;+|t$pDi#3|9!cnLH5Gk2r2^cnM8_@Qsn z5dT3qF}>kGS8giI2eT*r%c_)=lCL6One8kA&x-wVa;2&Ic-fn8{JIC%`J^v|i|5qz z?zBB`8Tq&KQ#AW=(#0>Et^^az!xs~RZe0jIaH8(u*SISI!Pj>N{bO|P0Nt=QVCR*F zh7j9=t8e}8uj1PeF#1Xd!;I0mZ)~Jj6j9KlpZx0H?{Q`h{l%J22&A9oC`Vxu5CO!b zrx5yHtEJ4V$>W;~5y`?>4%7POC3{oVEq(E!Rg{v2ku(iv(kW*27FyBiHA?pD9WPx4 z=!$q~D2BK+GsdanARlaecogB6vtTS2XIBl?*w7gBnntP`^nYcMkeNy8wAwBs(L&3i zh6VkE!x{u#3z0`O%5_0{LL2H5FlKB+Q4A-Z+Kvv=EgrOCOQ1~--)s;N8?`3jqLo#g z1=$akO|}6A!I}$21QBmuE*hhi>q|Ah5fcZd*%VpZVr#3Ci&55LgL}Ic)q-Sq=z0on8!dp|V9j#Nb?+}ETQZo8ItK8aAfB{Os9o2I2xG}FBJ<*i({KA~ z)=2~K?1AP|G#1w~yNvR%{W_sQ3pEzLGalkg?{ioRnY2-m37115*Z;E3a~#<{<;b!e zp9M(?LW=Fem+iwt2)TYTZ9#f>Md;-JXfO9yC!>_avB@qNTE-G7v5sZ8KnjT1Gywo?RaJsFCNI8R zw;Vw!R|_BdFzl5S!{4$hp3AJ4OWApQ()v=3aNSxu5T0Qv(XVLGu-Q|nNTFG&eAU>o zDyzJL=LA;?k<+EE*40O}TIIuWJOvAVDe?DR_Y;QZI93?V&8Pi8SA!G1XM)r0M7746 zQtv1Bl}gr#3$_>%-JuIj|ID~4ZHefexp5>N!j+#n(l&0?iCQ7q<8a*)>LkgXRMGi8){D-`vA_!vK8P$S#u8HY~v>UI4{{Qy!mJvzd^k6(R#Mi_TtgK zYJregd7FE%yl#mF%{QWZ?l{P+2fVYlPRQEVO;uV(R(;g~LXQkwi@#=Dw{df7r_Qa^ zB~)OU7(}$PGN_LG^-WZ|Usb_OWVG-dsackr|EKX_ZE%YsHJ58MxMwwW3Do9g;T0FX z{fu*RF2Q1ZqkHCY?y#X-v7SZ53U=$@5si%J*z6-V(xQ@j<_r|c#5mTljm?)?hy&pj zfM`yHmV)2jJK~K`(~>87stS^-Lz1uDzM6#(PS;A=F2*;!vwJ0N!@igIXZ}1Fb+qm} zKt+8#>UxXuU(Q{S5AT;4TjX>LiyWA*3eovNF1 z#3BitUQ<<0rO4mYR?H9lrkXF`9VgW(7Q_gJR3I9_>%3lnHg_yDsH?l zGD#1egwwq)v5@&7h5hxD(K%eBIPGqVX$EX$bn-QISx@44(@PFLx9?2s-#R*fmOrSuUvX_Yj34&p+E1N-TIa+#EWVj>jNjDy6KB^p1J*vf!umo? zSpIJm!VK-G^yl&V&R_M_owi;5eqHEv{Z(jb`#7D|@xBU)$+$x^58U4vkUQ77 z=flr=2cOBU^u=h0oG7~WtYWLpvsb+e9?qv6TFMW$79+D2Ium|-E)*l6|LvyJl7>4& zBcHX?aK`B4k<^iA8;Fe<$3PO&C}Lc&M(_t{QPdb3N0?rKkn*k zcA}-i;9Xw6Wrg?NqiZ%lQbue>oVtP7h%ory!q+dht-oDh^#CfSz8Xg6{Cg|)?;k8_ z1aUr{o(y`BR;KH8>|{3E(Y3DR-P&EMd)zl4S+8_nMooEyKQdlRj@_?mi@6nh zbLS1jtEX&dC+SrOv68leKsezs5S|>^tIk-v)%;b}f%=Ms_dN1%dBMS8LzCU|2VQHO zs^qJ6bRjTl-tiY#b(4WTw>wdoHM$sb;UScgTCF8YH4K^eYId4@9=Aex5fvE}-BJB$R0JZ| z8in~~xcA_mZ%;@UZ1;Y5eE~Po$KE9c>7~6mRUk)IHBf85#q$@jSirCU(jcIerzi~$ zp(lIQq|cDqW_B#NFAwSyT5`QFi_^^ByPVn=Qk)h6Rv)iU1Lo(f#+`?LDrPMPq(ndL zcq*;KZz~h6!eT*Rj^Bi=x0$l?#RpvM7AWFAq#M^Hkwf)Ej%CI+c9-bw12Nb{8y3geo^Yl!EeXRhfZ>{xMq2JR7_5vum5&15d^(D6u%Z zB4{`vCT}hga3A0F6!w*moQ&`OfiP5svzFR)xc6_tCMCno%Byp0>bfLnfNf0?K=t+T zAJ*f~YJC?DNv}E&{PRS(szDOq=gP2WZuP!cWU}gtXB;UoN`(M0X;v^|)J8RXW`F3y zvqyS$RC3L2xamyeL~czsY%~?0v@<5cTQ#*bQ#ZbxUkl~m0nwdfR5LE3{b*eEV$@nI zx*??XfxTZ7Gbgw?5LMk;H}`Vn6gtMWN2RC?bgD)7TWDd}IbU%&qqf#Ka1OfOfk5_= z(6mO7KFoO@*gF&tfMB6N#8_dSNKC90r%CJ;3koh6i#G=XXem~Jw<9K;$b8R>VU=Pf z&SJ(-R=JOEG{VQqsY>t)S%6 z&fQDO)WwO@=EI*AtMrPDkr2^D3${$DrP`Imk{`0Uc}uG+5TqxhQ|~eT)VeduGt>69 z^ue(-3*iAlX01`y<|l*(79z9ewI(Ywc6vZRnJUNVZLJYw;0vJzlQfv?k_zj&8%N5+ zeEyAcX?PN!9K)?w7`Xy~iw1&ys9>E15u0ySYq%*Mp1Y}7d?OT#9(u zca1#Ja>Zg@0a`USE~!EE{V-Iz*%GE2Z@RWh{=i5sHE7jCmI$Q z^m2Bxjnd#U@)sLdvlpk2=es)__4@KsJ0N39ueTGW7S>(ez}eA~tE!}vVzTlp`Qeq% zFyl-gJ6whVPP4J1mKL~b|I}_IA9WFZ0#Avd@LdqmKKsNZ4nyI$Z|G(XOIBXf^gR5i zY1vib^m9U8w-Lkene1q?L< zsG@*PEtWC1b4lHyx{2B2?~t~ z4}dY-i)txGX=wR1()*(T`(O%-T`B~bfu7PX-e8<7YuF5U3ACgM+K)a}zZ2K7xf@bz zb?i;j99vnd?oE$Y#h2(4ZPYftuza^!WJgv`j6ZJ@X5-JCDsJj21=M;-hc(oX^4GGs zv&$k{5ym#wcOf;%mFle3cX2$MtUb2s&IE$lJKF2&R+rzcbgJ=IqnyT~fjDxTV7iTh zVHaV~Tua&d3qoUZopaDg+1FNDaEoY6fO{Gj%TKHs8Xau;wbvYwmtCMqgf;^aa}Q7kUfsr3|==( zeg|@rTmz3#ZEuod-er~~js+bJviM&PrpFlfwJ0onY`)y0>9n$8npAi%d4ls(l)Z79 zca~HCrUehX;-Xpj@`c}xg@09Tv1F*b?D`a$oM~mnU?EQe<79vweR@mUkU|V_TLT;% zGs6&>^H7D2v2}W)rR7=4GdR*Po|#$s{y*%5(;IwWMZKDs`pmOqxz=Pp1_j}6{b&l# z$IyDlS^1T7;MC9{(vxK%YLh)JTYLk|`98)3IR?Eq!i7haQ84nD^#|vu z?IwQubv3m)+o!*r-nfCJJ6B(8GYkJP1xX);bPCBC5autA)4-+`$eSs(z;nix4UHd}EB^v9 z9{CXeEWJGT9Lg&>fZQhC3v!;!dF|~!GSA!4qRE8zw(5wHJzp$5ASF9i(~P- zzHlaBfLSQR%pDSJGdpx3PGtGG)>OTKpj49#yUG>d=IG$BzIlZ{AZJEA{;hl{&ar2S zOkv{bbAl@db?d6#a^X&6s#GUAf)e~dJcC=Yn@aU>yMD6zw!={MzSsU;e%5cgMon!( z3^%8_3{Pfm90)C|nO3`-Hv&__KC*v*Z}ci?D8&5Cw+>?S9p6 zTWh{YBqG%9o*BU`{Qw7T>iM_RuJQ>IW;v@>;7O zfaOA{elZ5R^#EJL?s<;F(C%8r;qlBGhINV#1qDqh){Eh(998R#akPn`9(gh@BFO}P z?5mBUi3#prC7*^}W0@Pu0U*58P!H>F5e@y$*|R&NKW^K}{XE@aUV0Bxc;D7~tQ3o_ zfJRq6-48Pk4MrnOcie*DeX2o0i6@yhPMO{H3RD}MmdZU%om0CemCJ`j#$=pcYl953Ux^tFyrfK;A}%fh@|`G<+`Lo zbK%&$R1aPe%lLo$-_-AI;aQarr9>&!;YL7~0@g6oVry+36=71Kz6NSXN1DVV>hzzn zbyx7GqT}ol>ZoD_vV%DdAgSBMK4&Mqpn0H?sKIH2@&RZUrC(Uz)~kvhA|6@g_uCuF z3Ld8|ns})}i8{^c;`gFeIhoh(u;7tW>T`2iki}N$FFj%$3wsmTfmi(dFhV|UTZ=K> zG)h4?OHEn`zCC7OQ9v46)1U2SSyZNNlIxb!{jD1wUWK;!^2dA8^3|^2lN7}9LTwR0 zo!dOzpsnS7Dv2e~MijlucBDz*p~k5I>A6xqFVf1&^swF_7Sp?LSw@<#GySjl;I5Vx z>$CS3h;3{llX{@XR#(X+#op3t932~up|Hn>nFJ`;{`I|wns37{jtY#lPR6qmTQF3x zsXASX1@A{jEzFnnG;LR4VZe~%ZdvCvkb=sJo@93Sz)PcER2c)GNfm^D-TBu<7U`Li z(}IDpsE3CC6htlwih9QTAP5B?A!J^w&%7TeWEb^?A27xY#2tn$STZMk4q{l1eEF%( z>Sk(xvmUZxW5%U(?VX($-nqhZM$kcn_pz~X%HXj!M$=wPrKqPbvtT}S8tPxh1RVX{ zL~=!s(w$F7Q(SyhQX;3FxbS%T`xF}eZVh6i3Oq)j@M{D-pHKX`)uAqN)aXcmj5|-N zVxvleJ1`+FmP>&SoLuOJnLKC2S3!A^yP$yq^T>LNuH?R&=77wN6xyWOLW_!iXgJ|$ z)zI*lm)t&~b^}9}Q5RMV)27s>Ya$;W&vsw1Qt5X_P8%!`hWBt4mY+}Bqz01?kv*6D z;5(@C;?guvt=6y$zc(h#s5QdF28E~Dx2l7#s`mxdwCzY+ZgBCTrsV%Dg21E8c$KXF<3qT`B(*|wye z6vLde1M#sWC&1$v(av~Le>*6(H90*{m35dmJcI$}uYqlHW=`Z$UWOvSS4H8n?8YzH z>apgN{G?E~K(|n70KmF{5-q2xH(aWv>ttWBv=SGp*hp0RW~WD@!3%M1sGu(8q~=<> z4m1Y!Xvs9oYAG?^Pno;joi~&@G=um8ripj5aOWP2M6=QZ)|ATcho2Rd{pU{wsKF;^ zpvmp4nj3^&T_6AEt~*S0Bmj^4MbeWD;&hG?s5vyDC?D5DEEMmX#k&sAd^7l_HDaJTke zR%dKjmKQOnqe0XdB)7xw(u7Of)Z$s?+9CO$vLO-5hb4fR;}4&dhmA?p2xr6%2G~DR z1QJMG5O|F;sPd2;o}eVd3VGUpR`3i_vryNZ z-@xiucd#oWeBxeqK;YXq%CY#0Inl+)OaKsq{Lu7O12>WWT32m>JYyLGr(Xp~P9i{fDX6i7ewxGW7^z zHu@oRrRLndSR-evx*LJHYj=r|c^xeFu!OL6@wVE!lD|v_7Q~sk8ogr@*>nbH zU&M)`VnnvemoGdbY-pkAKpJr2W~YGFe>~^aWroqhpu~M)Y?4e8oTs3Nd6zv}llqHi z+=WaEbZ8DIeHw706=5lch*!?^KB9g4>y2w9_Cyqz8}O{2YO8B}U*En3L~c{wLSIy( z73gOM%o7lwi-=5C)O%cOa!GG@y+NL=V3B`S`0g4)Z_B=*#(c3OMayOm$i2jsEQ0Vi zQb0^lbPG>ud!pGI!$}`S`D!xYzdv&`dZ?wpTPnCdEl_3*ocnyn(hwt=9%cxe#>yv7 z=^I{ZYRZdtS*;w>bU+pn4lS^K5t@YdSFaqjP5t^Spx?{VI`tf|9N|HI3;pk1dFO^R z+fQ`LzhkJ(FRZQ%xXW7$?MTFUW~!o*l6Xk$J*aMX30Tx^uWM!n3Nh&H%omfEbVCYX zu0a;UrxoGWAAj=j&U+UNuAat;pR%027AD}#o8+iIdmIrRBPZWZic+H(Qx>&Efo@EG zIJYR1@(n56HD$iQ=#_)zG3q=V$13QBw8PrwQ93+@ssdeqfdnR#bI^Vn;^5O4+-aDy zFXo^$2^pANVw?QWy@dOVmOA9e!+GVy?HZHOA_(&&u(4*`$GHjFYZzM0DXumGISCq$ zTOF>U^4%4>DXK19JBVzBJSK_kf%d^ug~ZsPFH>6My6P&%MU@|BG~k2ymtzarpQP7A zqdOW*a*v3{IAYMb%EX6i?T(YD^rdE2AbD)a4E>rxOY#1&b+WydR1YyssfxlSUVW!?#ro}dL{XzTZN zhE}->V>_gGu8dJ2N_sv6E4S0xFbz%9ajxgI4~7}a0#+4meKgyaRcKD%OLThc-(rx+ zlFdhs*8LsLwvj?W2w?Y0YwAr- zRcO&Y%O_c!9|%VoOC9hy(8sCfpYQ{5+zLUiG*Hk1wdJkT~-MFCrkoK>87x`P|d%LfaMd+M40Jy@Pli`>VuP>&s$ zmoi|93YD4o8Uhb?9w8s^F+Ck*WtHu_QfrQqTMO`l8E2Z!Xq z3={qqe`O@C)T&hCjVv3uF%%yP>f0^c;V#>tFmtxJ>gFj67aM70tIF^bxU`}yo87Nt((dvFHFdZ^nQ zz!wo8v({?Dowukn|5>X4@E-(4rU{XIF1iATeKt7itr1 zBnF{Rcb5H`Vo)4OuBg`n{R7yq<_ijWG2}Aj$)Yl5dLgrrkteP*IHD>yOC~G}L8`Y%*P*z+D%Q)b+>*NYpWI_a$mQ|JXkM?W)?GLY<-Bu2 z)jqdpnU^&NFv^o-&4v};Z`v(gQMmsLh$?k zqG5V0d9kFbAddJotLd;%&+7XD#PwaR4ps)mptrN&dV)7EI(6^NhrFs2g-)C=ykTI_ zM^B#_y_e`mRgK!3#(9q5Sk_LYkyy}CKE|a_W-&G<8pgPAF!@&E&58x^uwlZHUI^3I z_i;6y!=dq$I;;}r%LlDvz~`djDXtk~eXVL;qhC7ZU~q(Sj_HoQat2wNee}aZX5dX; zT68ERrdNCX1)KITKc*EX^_!DtAoQ63W8^ z3qY6b<5B_;_`$3QJ^ho(IdK5mk%ddzYIKqc8+Px!{Xn^Qt(8Hp>(tPk%pjweEW*vP zvG%VT%n(EpPj$A z@_S@*jM?T~U1zu$29g9X8G=XVME6O=P_~O!eLoSeN_K|=#qKcf4sio!|Gz@T;qK+W zB`qsyv&g}XIWaG24`UdkuUn@|jOLt}Ube}bO{kW7m34!JyBC5q9`O--oaOd-yY|Ja&Lh~sgHZy8kJ6ltuGmHuo`%%cBK}PP8QJ!vY^K! zLR)cNis@;s_o>^j_b4Jejp6!Bd##`N#7Mq9FS>=%U~}0nrVr z*_gRR*7hq%9w;X?;3x4*Q|vt)Tczo(QqUVGhv623SOrV%iZy2))XZ zti#P^)W6mbncv6{4~VKC`?{}340!#T8Nr{W;*+XFDP+Y|0J@%1Vd;D?=`YrFT7ac%DPY)y~Go zs0n|%sq^x@d#U-%KPl;{widjw)IE`3SWn zN{;M4egMm0(d832W4(~#(Z{d#)t0jlkF(48s>T#>Y4|Lsb9>K*b{Z5YV+JpTrzd|X zq8Ti@5@yD@hkTUBhkucO`9_WXuYJ@S_=bj41Rq1GM2a_6O#*x+T9 z01}eX2FykLwP*Ju)+kRoNbhcpQW1(8y=YMDP(N8~Wq04TORo8@h5*h^5z7w9GIeqZ zPgK)1Y%)_&?-Lm&!;SSDxRgoQv<%g;YQ6;vzYM{)<6j^sPLAV+_ z4edd@m=|4i7`(u&grQlm0Yd2VNe;(KS@g;8x;<`mD4X?ZniP;2TZUdnmDlr?#}SA1 zHpR!b$fjEIdF<-|Z-ks;F2V{mN^X})_1~FU`miYifaOj`uPa-@6A&pJU=P#X?U<9^ zbyw(W@eirc-wKtvlIcDg{?9>l+|jys)pjf|lD!o$3#o@pXun{0N*ljF$i&RDwe*rX z*3f0f%L=$!*X1Bo$w%ZSGONo{;isH|U9)qc3cLF(YrwI)a~BlELpAQeGCsRvcVb_7 z=1@^bDxyGx1o-Nkf)vNSaZ?dKn-Ox&xsE>&*07wbr}R{xHG4F6Qd2oMan~Yq8V)C@ zM!(fVJI9PeRR4A|7o8rwH0F-TR!jY|2%8DH>+rf#wPhH8eOm-KG9%?OJ72Z) z|EJB;@(t|*qR~5=&lsC#mwox0_$d&Y5z@mpbQNe#t^j7oXSdp0>(B^yMA-OG=~9yv zcUXvh=2$j}1MH*Zq+M{z1Vg|74c~gjcqBz3{$ZkCoD-*gWmZVF7FxHz_eVW$FsfXFUw7ie<*`D1tPs9CP{pEdQVB1)iV8wR zu7frrb8sIhEfjFr%oA>)KVH$fVxv%&Suo?YGQvdG1NOPYx?@LJc$oB3qE=AE+VNZj zs&Ax;?JqPShDJI+3;5O9yev~4B=vL|e-lbyA+7Yaj#b*{5$@Pd*%V2uZ&P-4{d(D$`i?3Ly&@R`)$r_kU19k;m!jwat%CjA(nzN56 z4i#Du`G3y|@JAjJ#z-o?+=1XO9vKF0upp2EE~LMvK7Fjkdi$Z@%zG$C<;&PerMk7~ zo*QAZ^;)?i+=J!a#ogp`7JSv0!(sijS@6huD_Y{%am6rj22^O^VE1HTBRbIX>}Z@Ia^tpp*3;$zKY&O<`ok^R3@C@0@(dVgZkfI+ET{; z8K}xfK)!_y=rr=uj2Mqm>auLmuB{&%mRM8Wz$vOCl($7yay(RaNsC8dK*u-rQSZF* zIeIf#Iu(Sfu=#d5__fT(sbeY@u2I1ji zqlD9W@g~Z?770U5%QfMfz0QuUdZ{r8E93pWN-0Re%7`AmnXy^nG(FI-eDDXNYoriL zr@T0fQ|Z)dQn_7`2f`$4Eus(%Y)K-1DD98NFPFS00oJ~tARZpt)3BO6$i@iLReld4 zw+zMjPw=Dc7d`-v#vRvTJ^N&%ck@Hk(ZlfEQUz)NSQ5Eq*o57uj^=WeTCLFl^%SR0 z!(e>ghVZ5G#3gOj@X3Z9?3@^~rJcyF4w_fXJf0juNTSTilkw4TXWqcMv=`U(#ykE+ zu7bQ=(7yOC8-JE z_oV&N6Of@nc473Y^!X{A+^C_j{U`0%rl_@A4K}(P&3l;8?x{kP zck0)&nK_u{G`T&+5FHCL8r-Ta8h)yHGAUHwT9Z1Fa#(Q#6cBz4|0a;f*2dYQ3LsZu zH9?sj1H57Kgj>Vq;~`bSP`ma(s=aHZ6gL9n56zc#9{qH0K=lYFOp(%?Bz_Nf_@CyS;H?Eg;1efWoPwIn4mScfeoBj}MV=dcON;Yog@|zCa z`TfFt#Y%XV{;4XZK-$~umb=Db-BN$bTw>dWI`3e>_zTmIh(CKyPfS~qa;?N@NDY@% z2n9N`;mZBfA!HLu#e{n)SOQ?RxK*HvZ9u-$mh2J<19Kz8S2%=c*0aqI?J>Pa*2||S zqxTrx_YNEubFtSOv>A-i@fcJE3R6@DT_?hyxw^S8KSh+Kw<^*{+cJv)5zBpYLfAg3 zl7-i;mwipuPGjI}k_5Wx6K?ll_5EC5Tjm8t5PcPMVj`h=dwx2A@RWx2*n-(o`{{wSF=$sq{6})2Y)Z>HHYO|U#p1}XT9{$Dj6z;19c_ck@4Yq zL5G!`Q3X=99|&mC;-pIMg#>v^)`kXY@sxOlF5{YZ&BB3<+qN-z@LBJ_EY{UXBKGw_ ztM8m3MR-8xU7xE^u7lN|8r*6p8EDF&VGriIJw)tQo^qsxL?RUn;AgI%;BNfWO-oKo zx$?O5z7iEJ^W}NW*jT?H@4P`5r+M%1W$_t^O!!=kV3YYrTRqqV!`mJr&&|Qe5*uls+l9 zwB{y%_lx|s(JcY>Mn-&cD$Qq?j|jG63)(QI9h*%tv$Y?JQIQbMaRSwnSE|;$g7(jU zZJ?Ib)JmXzyq~)3vN7o;qsW4<4HG0b6-YMZydmlMAl;uZ1d=XTiCgE4MBDLxj{lBC zV=j)bNTadGh6}P^Ki12hPC5nuVlK4Y2!N7h*%=_QjOzGzGTGwL9=8>R@S>*1YOJWowLLG=!%e$Z7F7 zW0mraq&D79;l4SAvZ%V26wcaklKDtR4~CjD%0NfuvZ(pqGy&8XOAAcX1={t&{W5o> zCtR4-e697&maL=fIsbP@CKuMfPuvtmAYAeEkY9}zAFytWvG|@J)ZB?vd*9FmhQvvb z@A~T*xUU94yvlAUl)@+oa0;J(RZIsFb{s$a#KPgwE5+|aMy8X~!`E_pZGU!Nb7hy` zeM>jTkqVcW_4yD`atILkc$?xi`0`KayyFCy9?vpkCRoW9UUxE!8yOqdeth4NpFz9s zsS4@suh55K@?Dn67iE!am7h;!qXI@bMW)%vkbZ2IOSgTL{^rz=BlYF+aJ8ym^2EMc zK6>*y#}&~EUo2Y_Nd(zPbwMeIiuEn6TDcRm-W3qD!h3iv-qHl^5FGamYM?x4A2-jO zuVZ`UFgEI;wj}TU`)Lcu9aH9WFF^GT^7pRdip+;^{im%=w|CQ)!=x(h;W|Qdcrn)j z$R~M5);Qg`8`1Od*qmLcI(}Z>zP$!NepGTHGLj>tMvh-@uYi89owx7)z-`gGqOIc$ zE&q&Ur-4*BFhzW4`9HEDuM4kP9`d+P-qmz{v8HDese)z53RL64Bc63W!nh*4Ebf9d z%cRAdlK8XL7iX{aL^H$6>kgA&9$;D7-QORzY|p2-M_6!eQavOZZ%k#Ra!&Mr zmvc~I1$UU!FW67ir$>hG!UF5->N(`jbJvuX!>8hxSvtlsAa?u^+c2D!uSXJ9l|7VZ zjeQOB#8D_;YI;keA7u+Zj{joy@GEY`VKpXZMWTRXC!cj|(scJ{WO!F$!=dH= zmX;qs1X=|u#=n|^CZyyUdz%%jGA4hKCs0%*r2uaJLnqtLiS2{k$9SV`ZdIh~uLA{m zrl_XB;XkGRTDz}5v7ZF&%0Z4B20)*ku=A1Rb(L4=1xY5AIF#wQ2G)U8dFKWIk*x<|g6tTCrpQMV2|J3MMR4G?|*b-J#X~Mn4dwc~e zxI1a|sF?tY2pQ=3KZts2@b~bheSd9$u~7;+BMd}Iv%&xg*M|fnJ7n} z8&iM)Po6#Qm%gv8#c+EiTWdTjur8FJW(z}VaZ!;qeS3BTKL)~2XH z^cT&-ia>4Bq92vH{7?{Ar+jJsyb}Whd$O4tlRH(3Ii-&uzDe@(oLSVRFEo81JV+C* zlV6M%+u%$5S``@`&`YslpFFUg9eX0IT4gyY!?H}p`7*bKX$SFxnQpe$neM%qI<8K- zhr3R(2TTDqk?pQ`8XH?J_8M*DOgdT<#=)lY3f5bH@1*P!+nf7S=_x1kmn<*SvwIHa*2M&Kb*}lrAQ2CsSc!+6eK}2RWUlaAPX8Bm zr1)=|t*Qy6-_q zru^Z-4IP*8M%HJ9%UUIIlNy%D!&XRyG;k~l$Dx6Edq&6)(9r5;Z4*C~=qX4M~1V@b?~yR0EM1u6B{Hb9*V86ysLqed~)aj}7_o@=(Hd@S+f7 zgYK^_wTyTKB{EL4*MRk)H*de+e(~?OFZ_2M*X41Usf?%2S0NA<8TwkRSGvK(N<0?) zaXeq}u?xhh8cLzSH-pM#_r8Ic6JdPUaXp8^#U(|q7F%!2n?St@R zLe~9lFxnD*92%MY(*0R_qagb$(Wpd9j-}G0#Xk8^aQ;QXc3$t1y_pDkc`>n9G+rWD zX#2Ho0ptB(OpzDVC@ZN=O!0A=QELykQ<73^@ZSaNl=>O>0B9VI@lWdoP5sU6f#c#; zmWtQgFH(HX{94;kSwuL5N(dc@eWNE@=D4nTn|}VS@gjJ?VB|<>=k30vE`8I`5Zsn$ z(V2HhRS24gkz>)feiVi63AhcHHM_b9BQ%}Q9s3`CT0VWZ5cdUdUOn7ZOI&g5;rI%b z-~WD_ua-buhq5d~bH}$@+B4K7P&TkJcUcxT4yzAPHqk9)XLR0OXyy1t-=xQ~QAQQ6O1}!iDU>D-> zr@JH;ajb}bFJ6~?#NnGhgYAQWlTtrsG<;uEuyp-PKc@qEH4*vdUhDSav;juF5HmJU z?#TPm<(X+PSMTA1Vg(SlHAI15#QhBiwkH4Q3fG};2M%ZJn8)ENqle`X0((A;OxLxr z`V!rhS9M&0?tVY=S@j8g)M7C!iL!PmjTAB!FlA&-m{8=rUV_AsYl+xWejTxDjKv%O#JRsUV!vP_zgHO!!kB?=72Fdi-h591?}}6#5@!_>7=GUKT$zBwPVA6jPrP%b2TGZ zhAz2Dl4}~VDRLu`@ZezVrLBqaC?{Fz4hsu@zfyxSkcwGayS#sE8^BS^vetLX@h0%M z+h$&7e>iGRP&8EYx*@UAqY+B=1bEEIXBql2xF0tf`pM7<0Z*_@5?iCE0@K6tiBGGn zjfw`pJ`Y(^UtPE%zK}_NC^^knu)JH8PW=qCP@Wy{C$eN$J(~EA5-FR6ZDCBvXZ8AF zr59Fy0{dR;U({dmEkdn}6nn;`!%QtmFdpVRu@BY0cz&8$FiTpfB#OzdgGK<>)7g~jZd zUc37`TW*OPp~-EIUU1hMQ|g0}al{xq`TOa{cmoR?$|0l|1J(|y;TTi6Gy|iM^lFu# z1quX@{8VH>hV)^oK;?03p>Nql`I3VMg?AgG-rO#0b=mDwWZ9<%bTotK|10t^k9SfO zZ#|ilo0<|jZkMFbKU6~SsKNE3ul6@o_U&fisH6^fQ8C-+kd6lDq!v$8B&`Q?AQ{*g zR|$4C4Zg<}+Nqj!)RqYa4i@2Tunb+3$)s|#KsP0;%A~AQ>D>;% zXWV$?g@EF}Blc>!<|&vR3UiI_)#P5FA^C!Dsg@!t;F)RvBZ1NNAV~$p)sa}wj2%~L z2TNd}6~L&Rlxb@~9u@b6yWWfwhME3F_{lyPV@E@V_lJG=j59ungFe8?i@Hv8Z-qb~ z==IuP@+N`0;jTAcivIpgmA}#85SrFK2Bz `Xx*%TG!_iiiwMjiWlrXPENMfoYf} ze~Yf36dfwtYi&MJk+fsA23XYg+Ur!XqI4Ng}7Dk@F2F4DU4BT*EemI+RN>;c(Hm0d!4#uM{0=xXk@-luIft$O-<_?tYe| zbu7i9pWtl?KIx;(b;J_%z}bY*;HJne6&J%D*cN4lS}ynlE;%nq_JO1s@zlo!0YmrwZ% zJCG?a6gUv?*b*wQyX&ZeG15RxD4Qp5x5-X=@>uv|AmiLg)xF)z&ue!rBGN6@C3C{! zz1Ni&_AV`izkMfq>=*Z({6pb7|MJs&{lkraKCYu|ZUg+{-g9kxUV z9rC*KZ-(fc1b@9&ckQt8B3jEB0(UQ=t#5l{lXl;#xc?kEtDL3YP?2(AnX;JuC}*Xd z^J>M@+xZ=CO`B=mJlKMH*vPwjY8dp8r|nhVHFUw8bYV*VrH%MwOoR-(ElgK^IyG1) zA6mDE`Ce%W|GWv*E`@lfGZu!fLuTH5vF3iHTsv%BSG4&WHYh%%XROb=WqBx{lFyX< zHiK+Xd@9A68y2YoT6s^j%V9r8WSiX%wnAZ}oOhL)up_RP!LJxj{a47(iL9bcw%O;0 zqFf#=D(QN8`l6Az9Gm0f5|gGMpg^yS#O_^j)It|jDNwG#{|EOtSQzD;wf|9}Ll^`i zs~+-57q*GMJGTjk&PWZ?4rn%tVH9a5)SoI^ypJ{fcay=;s#=`@*k#9@y3W{B#Aob$@&u10c~8!SJ6-pridbW~f~#Vi3gKbyCtY@2al zIhF+lBr?H+Rcq>o4c?qW`T|z{M4|kwdwp5YY1ZGUCQE1MB(hc@_>mAQFJoQGY?iZb2H%nmQaom)5cDA(nd2pfn}S<0cFWAQ{k-rD6)@ztg~-$nuBkjZEB z4)Bk~e8YC_)&8&Zj;P-Uv)kLkRyT%ub3ns zb)p?j!jNYh6?MQ)7`))^&?k z;iY~yP*#n>+z}dvkziQdx^I4F7IIH3RHz|nP9@r=9_<4n`UU%pj>KAX@2h-}lZ*bZ z(L$6gvmZjMt8-7?SMa_xBk$58_497hl}6TTaPMQ{=Ix-mn8$uiOz6UIBO1ZH^$_FD zkVYJ;Ux<5RUw<=K!MXLm6Pf%MbzyE=03WiQe<42W&O2cSF(b#!xPY}Clm0`9$Omng{Cv2y`d|_6%dJhAORP3A;u@zM#gnk`s0+AT`pd zpKbov;7}T6J@TY!yaa)r0FY(9?~l@D`A^2tlj;j;v_&Ql>4j{x_SjQlrIC^%m0v42 zZYnpUM`J_;sg+L)db1)#0J>(mHQg75(d@xg`nW$x)lG^adi4d}dr|o>$`1^QXb>J-yz(pG z^L9U9Zg2WeS_c4a+r+Os+1kgjJ@#f*6+lIE7iRkGg&S*0{y1vY)BHnLeniSnH{r>z zRQUC_&8%TZ`A0>)yq+4Qs7s--t|tUSaNB5i?W1O*iGgme(c>mrV=G5<<#`4YvJ4j= zK1t`0!YnZ{by_2!-uPwtSRthqN`?XOC?1o1)Sxdxf>N-AP>j zOICp9VB+GxAH6qek7pF>UU;Hk6a%+R%dc%O6w3<|oK$6!~< zKXN!jLtCjAbHiE7LoQV$E51;6ONxx+{Ai%FG>!g-6+GQb+|pxceD-h+V+Bb{5qpu~ zhCaG^lH-_>;Gr&rxbjMZ0C{l?6PB_=%VYDR3IqHjEAq6zSWB_Ws4VJUU4MsB8r9=K zkOp-$gk7k_+2~o^*M2dD+N`#0b;OY24-pUtX;?ce$iC6u8lAcWQ#S$2IJ=e~LV$2* zLO!v4mo&lDk+v^X_)Ywb`K#jd_A2eZklz`zAwBmgp|Bm%%m(;(8*YTCtF6tc^a7vQ zJ+Q&%_3<)SM3dm8X%Y4*k#Azt)S5_n^Xt zVg_XPxxKLFx-~Wfo8cjo>_@eCqTh>%pHP*|?y*U=w^BcbY5I)yX5P~N&5Khy6foQx zEJ#hkd|;bERN%aX8;tAsu_Jn`<0>HCmYc|qghl`3M^}d9A}dHaRA2QK#au6sme0=W zf5tL2x#@`C=+iF@wAl!MFp&vRGWR30;gS7hPJcv?FeN2`FIs32>(^)fs`za${@VI( zY2c(K=u6U*DAWC3Ckk0TVN(X2SF`&VD>4#7p(gN_iy!n7{;55K@r&2}68W%;0ZKnI z1UwXf{1+9u+~A|S-o0-O@=wMD^4sC86HjmKfw`;PiGedGE%^YYf#%KWwoQ!RX?Z_C zXLv%z>(*A}KrEWtUO!gvuKs$Fy%C+tFValj|3HMZwx>Qc1hA>0^$bj%HhkABe*?7f zM?O=Y4kLsF+76=sQ^w ze%wBd$gmzB5#|hscwt4x*;7qi!>9B*8_d)Uaf_nfG<(OFm)OBNPwc<{82;(Rdqy#J zSN*hQ5_O5Fy|i%Yb#E9OKiFhMURJ$BU{D<`vcSYGl*8}>gjAHnI`w94XC3k8S6r5w z3;Qc;?B=s;<+rfoE~-33mBHbsWyyz+@Cre}4YIA36}G89V-32?hd5STUZHn|M)%4U z%CBr?IlJzsq~IRseN_0qe*u%AlgRFN|AtdB$0INLO@ul&DKg^M3{k!Fhk3_4nSU*j zp9i%iJr|+SDM_X}H2=g7P>91m?2njoDf*lpTbNAha|T&g7cDMF+MdXwyUEP8bz9w> zeSON8biq=a!!DI}o|7TgJ9y5f4NVCqcdFA~EXLK0=Zp}T##qVdpv$?`?{-S0m{+-v zK*A4FvQcR}FMZafbE_iy;e0CEve7UYRdN#?Zf*S~c6V;q^$p)hNLK86S13)$JOGYG zH59|+85H}wjgnf@zS1o{sOZl<3)B0WyKMu_$_$$B;~I~)-p5SUV*E(i%C-@VcU$~3 z^`=bu@#K)(g0CLnos=y+2)|vi6Z!q1EN@v#bl0H0#N`}xX%B$T2ZsXQ>f!uouHDVG z6N=+Thcf`e5dAF>Umm}Z&1$d7OA>6;DcL_B^JzCj4UNVJ0&gPJyDdzxBmZ)w;U2vKVtJxe zS-u37{ET)#J5_Qu3}s`aW`8oQbGbdDc|F}%A#v~hmUKl*Fm3PKpg!l5Q7J77ux7-O z2yB!4N-0TZAuLMTffdu4Yib2x=By~_|%zL%qVFPs`WA-GU=6CV$S!{E} z_C~!e31@JBXsfg?VA<0@Ro9~@id$-0gV%ielYH5G_O)%1t9jj~mp|MNthv2qJp1_j zb$?o&PE32zp_A^@S^0Bh!u#P*T~AN`DenLLNrXJSqI;3*T6~rgdA6IV2Lqx2Wreff z`r+Otq~bhpo9O@a(#J~In0@!m2rZDLse*kV&=V}v&wsw0-kV^G8pOl)_pm@;Maz~U zgLR0-@9+25#JO4d9+lTT~KwG`*oLR+7* zV1hrU8&jDBPJUkiwLD$janusE6;q$DpcX9ag92d~%+g#;CC>9d+m7XIut%-p=9JvX z^U$GC6n|wmLZ(FMSh^WqcilnH9;`5P~^yoqFUc4h&8opH6ym?fS*<5_?5NdwG-gN{UCO+ zyXyGkO8F-J8ak>!H7O9HBp0j<<<|dDb&5@4;cM&WW-|z=r$A=$gY89i;_9~y#W^Qr zsqd;!B~(;w@<+-66o;G8BFW8B{84b}U({nBGKHLcl>OMT&u_f6t62~~>f1QhXQ)xV zO0owwi}lv~hOV8MlsB$l;M;)ZQjl1j{qR{%-U}inNGDeYi>wA342@=v zYQTeT&nEg`)Mwt8doXnPQLIg>ZB*G)f}JAkDM3C6EtHIO=Yq*-$kv{+!)_0Z+y>J$ z)b)z&1%m45w?d;h@c*Ayg?{Vh&3NVPKrRd~K)CY^s%V4fAYfglD+%9B@j?2hCoa}V zeN+7GE0Q#*%}&u>@#?lbf!A64(xAf$DWuxhSvHUk%9MAUJT2T|Dyn_>Q83dhhqY%i zNEX;y2i^N5>O-FzT&UEV%J~J21GDlOYyFcty6Zv0!+%k}9?n~2lCR!3ppo7v+B(BP z;f#!T4XuQ^9@sdC)5PunRB(f)lDz9v&|xkaB%$xZ^`GR^+lp^A*>ACI^%3SJ3uH52 z-oZO~zGG#4ia&a?@qq8RR&_-vGzt^q6ZN+` zI5ZicLwSwU;p7mjS zt2D=<*Y5A%d=xp*wJyL=CvzMWHSIj{iS4TIf|~CYji~BXIhbBh+s-1lgwgKdM^Ht$ z6*=jyKHVB>@jkA3m2SE=o^q(jy?@{d{NM|rNjNlx^c`>HV>SE|Muqo{@+H2^ZULf* z?i(6#cZGDC21yE9{x%STGzF9%v9Nop+~1?CN@}CnUrf~(o_;?O<_$XgkC%}Ao!>`1 zyR&5;SMYr(`Yca%NI~^ll;1vPgPmaacj79;w8o9?Q$xORU_!tTKc^WfV8u8^nPPvE z&)t+@;u&a=nbQN0v%jvgO}jYA*o0R38RGDR+q9$sknM#aBEgzoyQb^<(he;Id#+i) z9Y}iuy~iR}POHTKRh51a;VPm9Uzc$f^Oqnx6Qp%QoZe`|ZQ}w!1?E**(@MmeT;{Lj z-?|Ir=DcK^rNY!RblLpxUf%=&HR{IG2Egy_*m(QY?FXeo^R+<5nz z`jQ3jhn2@g1sQ%~i-DsFy7IUI;>zk3q#g@P&GR#awoO2@7aJ8P($w7e0G9rk(v(L| z(f%OHX+GNT;e7RLt954lYbioYbUuf6ldTaUVsF2S&@6Ku$ zjYzj>?D1HRNfWk(>4~ntNclb(_<#^3PnFgzkxTqSKM!q8@$)WwP}i@vf2*X3MGvr0 zEUw(>rh_JyH5i@X3$JKB4c7eDU(X``EMeJB-=~Md&6975Ii4$F6juU-u2o)Xrpbr6 zjVQb|z560Doir^Vv-g-hNZC*M$wyF3LzSl{SC{0Bij-XPZ^t)1?JnH|v##4d<>?-+ zuuLel<8Jj_ks3NayJZQ5f|<3cr~JJa_F;lky9ld*c>Ai@jLYTiT zmjf<2f0D?%be!`~b6n*0#Ojr_h03guID*$MzBl&|lbav*4Aw<*q{L#h-bfrANg&HL z-_>Mgc7}LDq1HDzBH6ak5DullN3?58KV>t~+}G0HqCd5p0mEx%C4sBhm$$u1`%;4b zd_gmc;|^ElW)U}SC&HNAlJU3LqOUC!m3kwuD@K*#wRk=i>0CO*DkyxFYWOxUWKcnh zuTk&NEFkz>Krj8ft*7-yhl>iF3f;VvNChG{1mr|r#%**&HE@I>0w4dx#QI4R71htI zEJfhzug;J6r|-L-j@qxbShxWSI><(JldS0YP{3^k=w*}l0w`1NWWp+R)c z#%ACS!1Mt(X#UUJPh&_50k??!M%C@qFQDA z#h2sr#^#L@T%+;FN}@e#>JUM#?Eb7Nu%79mI@iD4In?z-pVQ)&%1`P338IpR40 z694v_eB_dO$oWR&WFvY1Qo`ddS`3K(AUU)z_-N_dK5^rIIi|mq$}geH*n~L`q{aSi zAI>aL=c|Fbr9a=CUfdhGA~(vBW8YD* z$g9lo_>ltvJ@$loBRQlm^|G@oxL5UqgaDEc+v6cLDWeVGOX})z@PJm&E(GIWAJG8a32ZzMuGYI2U2S-%;i{W>%=cqAuqbfn3hOe`5yzM?;CS=00PnjRdHI16bK-lyR=dk+>aCGT zM^ia(F{^^-|FGFB)h&Zbwm49g1(@(w?LOZDSkPw6;e!06|yEi5>KrMHMWboF}Oq-2v>u8q!tu(yAOEn z26Py-m;`7%aSd%;cdK&=mUG0)o6KoK1uy#n&=W<1)1;8xruM3uZ=M-7mDd->&KL8_ zyBq8pQL?w8i!geJtq^*F?aG-&Zt8|yS#WREfok5NO!orp7Q;Uy{}HpEHr}~#$jvIc zJ1+~Uwoo}RmrM!Vwo4Kft^(D#Ryjira)2aD8*HspKWjO?JbjnyV4YpFq9`MSlwA`e zm_;s}HBA-U4T8$N6)NH|9(rj-eFS~IdZ@S=7Ow4n3%HaG?;Yn z8Y(iUEH0m5mUpsuqWu}D6m2a78<=w_HC#4w@q2-7w5g}wxDkG%kXlX41u3N*Hp175 zWu}rcYiZkAmAjiG4U{M`&<(ulw%_0x#r$@JBr~d=qp=si4a$)~`-z61OFJWPLHp)Y zASu7et|`uh4>G4a+PjMUylHRGGQA!H6`YYirz1faGY^xEc!CF=IyO_bo2U|D~oM2&OLPZsV{X-*^+RwXzmdo zx{{mJmo27t5B3yVdd3u$;@pLW_UWeIKmfwS3*`mBUr9KGDD}MCntL|cTwed^9^j@`fj$TfznR$1?bWM~C9xL8v>#k*oi)p_@WbfQ%izdQ9xTVU>xENwU@JkRFTDkwf+{ z9;D>#=r(zPKG3k8-Z5o~oKlz=*uzf%bQi!>Wz2Se+x2iX%7g#vjRa21G%$`{%%ew; z&Bzv!jZMlGF95#$ZAMKYIk9$sM%JqeRZx1t+YGq-uC>weHLW=n)Ut5ovAe;#$IM2H zj~%i|4Xp_~K=BFBpayx%vKL-=vwpj>?!se+ok9On^JiKZKnfsJX3i^cHZ}_z>LjED z2J@?_`rZ&9On{Yz<*w)E&#ER9R?P~~sadK`KKif+r@rKMvzqNKEV&0(H%FmbRi~Pq z6mi3Kxrj*7S$|c&uJC5a=ShxzMlZaWIBKsQZ(nPjq-m4y#v{(b4y6zUsev32MSM^4 zyB^gevf-OttFz82nN7q}pH4vjeE~>Q!ol1QVW8rgzamb#OsNrTZHe)|cIx_BgN6&9 zlX?=D0v6e5HdHbES#-DfK_9xurf9Ip6o%kN7a|w%+2r=dl@9-+7>xjA4UQL&F;HD- zkjs6TLkNjpCs+T`dW^COqU1vLMp?@ohUY3cz@A=Z>pP3KDI@jvjY$E~2n*V(t=O?t z+@=#2j)cd89tJCKUxgGk=?u0tIZQs;Fd_v%0*7z1$_D!`uoCwNQ_zZeHK%Ts492~K z$AU@fS z3?KzBa#7iQ8)^!PbW`=M04rwWeRW3iNb+$bqp!5Vx3K?`Uan!stVT}%R?QKX_ZaH_ zb@3@(_XQsq-##2>KGxq1cx8Z@=MUfUOjV!!puvV(7np;%ZtRv4|tOEs!Hx1~PRB~j|;IfNU5-t7Q*Sg5gCyKkg! zA+fJ>n|l?NQon@<m1DsqKfcao2T?WH(0>G z80JZ@#jNoP%y_D0(C2GRUfy2bdBO&4DO3jtoyU^jyS80EE5TbI#|#MWFuza>^EG=e zuQaZ+xc%=n`h6)PJJv~tmiHAnuFs2sRB9GxCa8;Xcl)R`OA7T?g%|Vu@HX=DGm5)f z*Z0OnumQt*^y7jC_b~E{Ch$^={A2nQ+029YSw+1iQG+PHOU(Rgd#X@`jy#YlM|tgO zA;}9B^9!uzFzow?3$OPzw+(G`U=%eM6zW4Z!8?7kde^C3h*j*+XT z5to5T2WbOw)m{NC@%bE-MX}tt*{|5R-BdA_MZTJ5hiLW*-!J9{8K6jDmbUsiSFz5G(1R#%V`YgGXQ!Kj@1ZDL-A$klZsUy;@P z#0~BskiY>voH@geGKf3^43H?w<^B8r zdIwV3s+){h<1vT&I;F`^tf*I@ry*=-5=9Xy`lzNmryb=-ltmGmIwN-d&kc`Zy>?CZ{{uR`U0&YGb7BRRIl@-BaJ4wXiV-YEi&{JKBl6nsCtV z1~Do`)EUHuwNy5S6yxD_a@VHI;nIX1E7G;lPx!B*|39W}U*o$=D9Pl36j9ijF=>lk z6M z9!v?_#Fq9oQmbpN<4wN$5Oj278o~>i3OS;JX{t8WIoN3~=Zd-lLIfpSvEv5o?&Ssg z?AxhbG?=%&auSq!ysDUEC3WP*~aVPwO2sP!4a*Gfwbi>uGE@P#~2t_eiO43S0lH= zJL0{Ih!`ep)@orX52#*t8Z*1w!Ce1)S^!sTL7$#wlRMoxAuhrB2_MhfP`n%dp6E*n zgk4CE1pCjEn%GORKly7ntgHcjagDp@Th-WbVNCb_*U_VEDt1Qj=%*|^b=@O4pxOso zr&7^zs;OQV+C&q4fpYL1ZG~bGl1UtS24=7L++@t4$_3SIB!CWMR?Ncofz^nIIyB zM5gUExbqtnS}jM>dw;0ojyE=TZ zvbjcr(ic}&*<941)RNMc$S)WJiCJ6H4b!Uc;)hhUAk7DrO_tn1j*xKu>aKJ%?L|IF z?iUE7p#<(_EZxzB7IgQ=vLHU@HE3T!u>)o_BCA?UVf=)Pin*AUs;P||7pA^y1f``% zj>d)16T2rSX+gX~9_3on68Qruwug6iU5}0`WctPVA&P$gNFf232Y$r0sy!;-xHurI zVP;@J8vuS99}>RI@08y7+$kkJCB>&3dX8aUCacVEfEHwtk~Jnp8`mhkrkRnv1c#7Z zdz@KHvQ+1-ikR~XIo9wK3=DcU$M4YYP~zw)U>M#F!+uehv%2W|HfAGJz+23o?TtaK zH^|BafIBXyEpC|DuUYLP`!bH>DO~(;@dvnylSc62S(^2GK-M4h3giK63t z@z-FV%50e&8C+9?bF?=~XHD(>zvxbc6tvK0CBNaDDSwnyHCRvNk_4V_6eUvbf>i$H zMy+#~R9|$miI1u5&j1WEk9-IF;jk6m>bant#AKx`bEJDIs_l58Sn~M^x@8bgW}=O^ zwk~C(m+YH&Os}(V5dpoc=_U;e3kB5ULoIfUrXxdpX6`NljEz(wx|angodpQ&wOm2^*!pM{jzq5T@ z{I&s7f9eSASXV59?pQoA&`zLa(cP9AGf#~+=!>4xoLwLV?zLBy*J_wyYW=lUxb>)E1n|oAv#lASDBR8#VUe z#1wM1w1rV;;^H_?UO1S%8%95V)Ht3-tFe=IVud zH@amDET&k`;y3O1u76PnT;z?3kLyimpc!e8O?5p;{cu5mPA11tT;%s>ApSKCIe9Dl zlbIjN<>@u&ATD1A2b%AuefL7`xb(a?bdLDUIOb6Y#5?gc&13ma9WAZF&Bpcw5b*4y z7QwsAIfsbDb{r?w-QBh+aC~Uim#=^TELtHu>o@X~?H10<#t_-MU@a(=O`#(qJjfnj z*23G6dIyTc}mVf!=< zc_G9`OJaHIQ+}9_{m>x5kYCG?`V)PwDS?VEJjHM@m8P$8to<5@E3Wn|`GkTFO$Lul!lbL>0^LGhK3>65+ z*%RqjQVR(sgsX!x#q^E9f!)d4NOZl9(_i~w7 z)^s35Rw_C=u0_4||0{2!J3~5#oTEhJ=s{Jm&=u`Ti=&S2Ywi-thnrGYv8&nDSCmX< zvg1Y2i^5v7=g`Iu;Tl%epYVkx_z_i_ABk;}hFHBUuQ;G{n`7QGrxNzK#*iCoy06XN zcn{Nl?Q?0Mo)VY00}Z-#;9~&P2lpV~zo@{*dTrjxA^ZsopJMNJ2~Uu4#($PFDa{ddR7t*8_HSCE@$gYatk4J<#SD_U}$K|P6W5e~G>{PD|HzCK8qNAf*h&U>G_IG1Or-w{qo~)8? zjNF9FPQvj%KRVmzqHg2^Gl_gLfbK6RT2MjgME6k45H;WSEO7cN8aP+0-FF;^TSmJTFsFMrg_UvY6CCwve2`S&0L9=fa>N(F4ZyErKa zjp+V*ij{|vz1)uzB|xKs3f(JBr+y>0xaf^?`2BO;v&;1tRbHR$cwL8jS#LwQRw=%Q zlwAwsRA<^CEF^PSf6zx+J}AI7C|)o1!{U@nmiC`T3{ZD>_E#4XegONs(O_fDTQCND z{es!o6y!;NeX;;m=My^9tY*q#`fS3<+a}t2Gxw-adqrZZZSH6RUu!HM`lS9f$Y1m& zqt(e;f)(+)xi*!(uV@dxz3Ppry%mT{ffZ;)e_Fo*;zxeSOCg_dG%<)V zfqS6bU!>c2{l(KFjuG)hVnWQPWi}Y_aI^8N8@lpN@3_oh7+IU^KAI+hwEy>PAv1>3oInedkBDIVzL)PP6)J7f!EQXROk-@>Y50U$G0eu_&*JC?LW zj=8nj%_x^84&)Z56c)z*=zLTZ*nFnUH~xj3IIPIjY_M#yzdG&xvA|d=m&)S4x}@%7 zs36w~yl|_U`g4j&0z(f4WeZ$AyuZj7^6n_?lptLxPs_1bKjjSXMO0WwaQvYN1yl4^ zp}xhyDUOAvvr&3w{x-pKzPZMz&O-e}uluV3mk(x3+Z?5BqN@QmNNa)9U-{y~B81R< z;rvw0%b8o+w6|&PFvBP}fm#7-ikGdMniu<)dB$CowWfrEDF#yC2%JyY`CF~CaHmmR zeQj`z45@}5+$27Wbm>_orJPiwEuBhUun((Y_)UO<(5bHswMFjO=|Y@9I}7RV!y&L^@Q87&p2-y+UBNke*Mxlj+hi<$T!*4o{o6B7oN zom=bOG~x)T&sfJ1(OuCGs}z}hVR<}m1#x5!Cg+#2ujI&gM?gFBITcr)VEXEeQ^_ZN z00ePxC0OS*7tA_ENV@Zkmq#dQ(5E=)?#Az-f8aJ85a6E>^KU83Uer{wfkG*OAyg63VXJ%JPKhOo zaoT23y;Gy6=_qdfWN6@P+BaV7!}u3<0+hx%W5acwObO*$8lcGA?<)c=6%0Ex2cXYi z+BUst82V&m_AHTzGYi$Z2(XvOtpM#zn?r6jEo=JZb7S@(Lw#d$li!4rqWGiRu6Z5~ zA^FyptLxv-AMO~(6U1M=kwgxeO>QMj{+C~UgRWcK7Cj+q$IUHCZUhcoM4R;w?%S-c5=ES zDpTu>T2U6UNU8*A-|ja!uOm5X+I^AiGwC^x*R6R13v&*bAj~M2sAkmvK5o6?{Mid< zulBQS)x2UTK3{gu^owB`I#pT-j89GVjp=eWfkI-W4Jxz8+$08;k1l_aQ725{>jMR$w|20$3WaUkQ{;N@39&pSlBtZ@ zjB-Z;H~PZM)J2K5Ma9{>=MnzvdXI%!h6!|eS6f1?v2zA5?8D8|qUJ=!}=>RY_eMkl<=%*_%&sR~zW0_&84PvAbbz!V@Q- zHPg{XqL@*zOZZNPoNqnWtuQDkv0P4hAx_IM$y0_ue#B{cvn_9%#1m5kuOpMPk5GWi z{{e0UmUY%dWq%c~*8lY=UkH4mpYTBDRr5lgma4sD+fkstV%E61TZeExhY+QwAFQyP z^~m9XvQ+jm!h5r}0b(3k7^Il}EdpRjVLG9X6FAjQh4F+qkK50(EDaDCPnzeXyfpPS z9NH4Sb#B;0u!?T>VglN9>CNinOv)E}UE1My`I!9l1WLSEKl~mRfYK z{a}8EXnYgA*?n-$B;TeZ2Fi)y7F@!Ki5y#?vbUS!IyDo;&SX8yBbVD3$Lobfvi=91 zKmW|6n{yc1;?##fDvIjt%V>qo+eE`G9PbL*x1SZ;y^z$U84BExffk$J)u7r;3Qaoj z>@jwT)Fp%msTzh1)u)GYSu!F=b&L@6du_a;UiiBxZ7u?ti@2GIQ@!E{y;^sy_*+v0 z-qDQ?!6Ij9nT~n+)6zs>Ki{ey`*B%;y0$_1Hi`8!Yx~FEjw=2oBYl5%=hF)5E0g#S zcNH4BaFZ*?Lyply1L%zCBfjk_C!G+Vg!BoCk@E7~2tOgoN>n{KqZqzfdu$ zrj&yB-d;wx@wG&;KtU__B6<7%pWply^)C?>C1XSzo`%Q!KAV zVmGy`FZ~W;b1m%@ZlT>{KMU0& zn}a9nd`rVN#6DXG7r6VXT4nq;6U?$2CAM+jU#Xw6G#n7mjc=n^^S{7$2!) z*Qmuf8@~5gQXu@+yI(W~RSc#r^vB6el)fucJ~Y)N4#&ofeD-|s2i{iwU`LsQPJAJ|^XaoheTRYet&5}{ zN?fp`FN(cE@Qzqg9!}^j4_RjU$li<$>n8K}goXw`7UlnbFz{_5v+M1(?`n=1)lZu7J=?YyrsAnT%sc^h`sC!&07ccU{d^p@(Dj?o`6rV-GN#@eHuk)1<2(x0F*Xka$^Hpo5e$Vv2_v+Lc36tMyG0H+AxnX4$h=K&YcTc7K9i_>b8_FC}&XYk^d zW6o*EOL?=^@|t{C5bSy~(1)+$xL0|TD2xuB=nxQ8_L3$HbyXItZE-TqtlG!P$k#br zxl+Lhj0o?>Y!MFN?LKFutLHA)i>w=p%Eu~0oA+j2oq9pEWcWzhKKu9ivK7z$*t!BE zDxk;B2vJ`i^dOK1UwZ@aN2d#|0af+|Dv9InHw*W)x!QkS)kwD8|8fS#c&MBycF*58 zI&gC0te67qlWfgaaI0@`VKb7jZO`)lLxex0zLye-fx@M>2_LyQ0~pF*j_rt-iZ`c2 zcySF45a=EFx^xxymTfvZ)JY@t&4v9s`qMGoQcOu-g={5x{|rGE33+pLn4{rCozzsQfrMiNdFAX-ZD zZOgSiaGqj-uCwYOD<9MaZ~Md-CS8Oj2Ya(R*~&B#yVkv7A?cgdXE+=-Rd_UcECxD9 zE&1`Aal^)7Pj2_V&c4h7wHZ2YtDz$rd}Fn&gi3gMv9@<#To#!9 zTS3XsPwLm&+!3l$A_1J4h>_beyNOGvB2x$taYLVvvknzp37N1lX-tfr!~h;rP)M0& z9l5;G6d4xbR^~;3QXvh&>^ScOX_l3E(UxdPyC_)fo;lEQfM zA=HLn^;L-qIqI>sIn7o0KZK7#E9D!g0BhVS=8@NVt)ffe5rJa00wcH-na&mYl8cTr zF8Z9l9UhJq4&8$Av22+A6wGRy;a4Dbsd*7=H`2Kc8sq(I=#`_sD*pT5w$%nbvQS1a z1*eIt=|yx(5UZ9u+Ui zpZU7pcz0D-lV+ZTIt40avAJecV=M-J4@0)5OYp)C6~5f*Auvn*r_ zdO0tkRNCAsB;I27*Z)#sv3y=%G(v}kw#uwd5m=zShJfJXOs`FPNx^o9h>34JN~rCl z8j=-OJ5Uj>>$u5xiAp&v9>TgjYb*49gOcZrG9%9xs>I^Xi8r#9k5J#IPs~TYMuD@= zo#f7{5&gHd`CYMtT>Py#ZCH_2g|HIo-dohNEEK3Z<8^v=YX;Lq91tvx!K=7Cmn~*p zYe`A>oye44BUApo8HatealS;3 z(3HM7Gl@Hxq8UY5V=@VbBKeo71E4jZ`?c^VcY2Xi!gEiLwpKvfZhUMp03a#lrc6sN zSJyu@EW+MkMh<}@;$TaVh7RosWg#^R?S6Q!0+80apCr?8q7d>NhV=@q5gaKP$ts& zBQr@043Za(^VYs*Ol)s>?B~}TXE)5K({Opk4qOU)azAwUPl?ZTw$W;b32w!tnq`?L zntWnR>=4(0ipmaHaD5jGU7a#*r{9pXZ+KBJM<$3BlK@IzUnO}hlQ6e%HVvOSF(G3^7)(^u zf(!J_ll=Z;Zt)(<&qLcv>O6Ms%J#^S zOdl{-(8e?fep5E1 z3j!pCCV3coO0ew-X05XBqL)OM5-QbVpixRyKqvWQX~)L$=aDm`cg)X?&~lio9aVO? zmlHk~3BHOf%`uS@7MSJOA5HNNAKAoIpVNsJAO^ddus8MIr{|6Ss=Lu@B`>Cc&bXmT zaJ3a7K7p!ZR`ojit>r1f^CLQs-e_Bj`ppMK%md=Fxv;guIpPt+J!x&@R(qiY&`dvB z^m{)&pv9;YqKYm?ysRGtw&>=f?YE1nN@SDnj1JS^*``(fD|6C22f!Q?E>nKz8+IMj zZ(08I(1%n((0yZw;z06ykrQ7=xw1PcsA^UGD{Uwrqa;7^eQkAm7TQm4vg*Qj`*kt> zjhBDMcjQ>ijB?;~Mn(8mn#FSJMx`bs}-An;5cg!jS=W{b0Fw6aI& zRzKGo3yG9crRe{`^?GZIJh`-8(c`&58d-GF@2j(=4i-Y2o8n;I_eXZgg*(Ms6lwn< z+&fddSDQ9%C=yuzx9UigtAT-<)X_*=1M?|RoI6C6ann~!hV&k@gYf#P-yA)neAIz#5~?OK`$mYA+ta&2G;&pd8-8>nQgJx86p8!H0A^25JKgSUSJ!+vVUV= zofCKS7kl>@FRO(*!yl*fP1klXyAe^Gx0;RtdvwBJAyYXc9|lWU-~^LdNdLncNWp2P z0~_tt@;VkUzIy(~e*FCB#a4z#eDR%qmeXf>x-q|}Cn$F4iDIpauOFHdrJi8X`PW62 zi0s`l8#EMdDw8sY`zkbm6}q_1WqiCiZh6s0_c!=sdPyR)%snD9`o7ay@efi-Y{fKq z+}MOUE)~rk(y|v7zNz<6j?7aMx?(;ER|wzV&NVtc79xz@hB`JIWlZI9+R_4s15i+< zU4laaog+QvHb{6KJ8ju`Jl+n|9_CZpV5H>TNm*uSI5j%}8g7fcxcxqAVl_RXSYz{( z!kJ+qo3BgeHS|hJ+kN{dEy_nVJy&@I3pk~@oS<$l-SzR{GNsNc#m}CvG^e|no5b$q z_ymb03b_GQbXT~&`0B+?@b$A*5}D+bQn3rW?b_H~vpQ4j+`j7~0^;mM`x2|YVerI1 zUA+e9cfTolaB}#js~h8W#r7|Ot`xSKmGA}Bth$2W?BO%t&{U!6jf5p`)EJ`tpS5_u zuk-e?_jIzeJ~SSBEY7%f>v7kcwZF$=;^R9OZejh<+*|e1Jgll%N1pStf!5}7qH6XF z(@-m4yP-k*arQ=Qi#VVM!5zv{yxO*M$Kl$`Zwii%<#sjUHYSDUBnmb{uc1-ieUO(T zynAHq=SW1w1P`7QLI`89CUjiiiEy>~-ewAr@*^w=Y)8Oxpai;ooyn2f-UDPWt~hFH zZM8!LmhV?OZCnqmwjfpW)Zk(`JJERD7YaiHLQ)mPYU|iy0`;-+SI!6F;VJSe_tu-* zb+5jak(eFu#yLE+M#3C+L_tO>m-Tc@Rb>@h;}e+t%{3rkYshTG0Yh}FB9U7^?Pvz~ zVj^ZV8F7)SFksx`OgBUntpb+8i(Bq9AqWY6mM6isubQ0)0V9I6>sLwsT?NJ#@{?}9 z%(+b;1+#?_$IYA(iO>+b!m#QuXFqeM!Ja)}!3RU21fIQ(^-y!o*39tn@ceZphY4H&f%Um#JqL-eSWfe?85+W0T5 z3-1qq?s{FY_l6qJjlNW#yJ^txHs)*(xblza|M^&JBbk#!nL4t(aV~Ry9sOBWZ!7DC zSSuxQU;e!RVQ|ceFm-jd@DXRSquzv@Ys$m5Gj{cdO6V_+TEh8c zVrn5F!V9z!Z`XpIM^R_Ed)4xgGh%#TqSiXsp%)^~)&52{42WfPv}fZ9vSzFEthTxO zkOQJs4Lsh>UjjQ)H^{b}MY^wq2(&W~T>g~$BJ8v$O(1q1*pMtQPWo|asWO^Uj_&fI z{*@a#z}*0Th+ez3q-qPUue&8AYo{C&fk81WA%=xhK29g0%pT{NU}F5w={Fif=|5$^^5er6hPpZQS>|@aA2M~8{xkUqd-LgNYYM>6 z;!l~{9C~7EA!TF`Zfj64x;+BF_?z3&k{F8hoKY1XCY+Y7@YPG8Pqh4m{x_(gg=6^2G9BwxV41#n8t{|MxxD9v9;f9rU##d^~2A)u3muaphQO6e`xm3&y74e z!6U?}E?>=vVO2Xawe}{|!oAJ8+A$zfLO}v#+`nf@Qih^Obd0Htjj)7ohf(0t@mk_Y z6{z%C156&ECoxbE$IvlzM*)YpXf{!Dz z3=L8D`-@1?2+5Lam|%Au?}cHM6?wHYc5E zuOpItn2tnw6`DhD#z%q?ma1-#8F^vLSB(_~s-&tc1vp>VeK7K&wh9f?jBwfaKZPeI zu9th6|K)98eyAU4Sx2U_*7_ff!rf zHZ@EuHAE_f+scP`wLNZ;^XFf6MU0(7k#=hxC6 zuSmig(V11vJpROf-atWu$3|}S5!vQ`xQbmBbl*4S-q|gF&K^(467__%2D?AcauyiN z9QyCfmXxq_Wwe}AA(K+0TmrCP@vGZZ$#gYt*03e=B4f{8ek`>7nfP%Qx)Os(GU}AT zhG-F~p}cT=^~pr*{nMXfxgFqyW^GAx+WpfOIk0t>q2~$HN)deq-xKkZyY=&9)9Ct{ z34#AD3t!!Ew^cs~n*7k`ydud9y{{_GzZA(l6rx1fqM!`fFIJKF>!{(h=PGUu1`Kdd8k2!sbJxOk?=NU4jPfMl1I1Q_yVKYLcYQFdQB*81key{+2c>7Skfmt=EJV`ViNWL=rJ$|Uz)nF2Z4wW8Q-pCiW`vEkH zX7tApZ|-ZW(h46>!oGXKTsgf*LJsi#27>^}jIzRgkx0O$NF&vcS0)*vl7-Z#$LY#H zIbBalMIN4ZCh{KkA8gdb57C@@X$o)-;)$4E(PpCX%W3!h6XkB{>7de#nY4X=+f$6; zVdNh(t~>HLJR-N_@i-4YFq0d2v3+p?(P38<3|)D<%(yF2ocIL2#=RzayvoT(3~Q4K zr%bE=5cF~0dlOUKFNK(Y_CA=+Ek^wcA+8qnQ~ZB&u8IfyQYs<#Q!Ff`y(cvh^>`5W z;I(kps}^7hr;kaPUo*-3^0dG}G#O4H(^!|U9fZpmgf(Buy{z;8jRA6V-6oR}bXOw| z=}fW2J{LryJ`{W6!4e3;2G$Kux&Q9UZ4sSGIxYY^9@w(kQ2UY+6=68G7$m2z7<9U)2NlzJaf^P0GR*V80~^=G};*x$TEF*AlCyF_vW z6GmZApvm~Fx9+r*+|FuY8>g-Tc_UV(jYOs`OwmkY5hi@31(9XyzawCNCRzUL48&jv z3nWBvVY^FJs*qixX5Hh6Ib-3k^d(rll9yC2Cmx;@i=2F<7yfo^M?e%lJ`R}X5X<4_ zyCx0nT%wCJ)oB|99#!wz!Skk(dSAjvT#`@Zt9TLzb71oDi(lr@T)1xtXM45;1x2^3 z{E_g~Mzof~YsYcXT}=4!tU`rMNYk8RXQgTdNcGDe(7G(+$*o88=b$-LC- zHn17nxUtwbr5BuZb{lIrC@^IA!{AQ@)CAmh_7?=YIR{O59g!+3XL>r?WpV3QzN#tb`Y5x1n6*{zpq`78nx@nN&3q-lLRl)x1e%aa zc+FXtlX%!fqgHKe28?s_3m^M?Yn?OEpC=JEhGLf=Nx#hV4`t4L0*4+M5Xv0Y0_})- zp)^hXAGC?3zS`wUP#$*ndoKOPzD`H(OD=LH(Oh}LG@(x7I{4Qmaok32`*QC)#0*RS zcEHr~eC~O6ZxH~x_Pm+TrRx>)kFvx9XyFoy1*E{OCaJ5Wdz^R|j&|9dSu3I@QX*aG z$?_#}IuRU|{k}`2{?d4_|H~XcyRYZG`b$Q4{D{S#j;%gy)W zoW^A3KFG>0CFGa88QfzYbz7RZ%ItCY^0$9oabWM&L}f*>Ir|Mhmns(SqAE1Mg_#@K)=53bGSm*UC5muI~dXTG@sZ< znd3p_D#`m{;^SOwgU;pLav<(Mj0%B!CtRs8mTo#vbao$MMVggo*$AE41S#TS-K>3A z;#aiJpqO?-Q%ItX78JQJahUD%maKz*Y2Az`8Dsg)%VY6bMy`;(bK%f;fu})JIq^x7 zf?)&doIuu)51=L55{EH0&q}<2wyyB-9I^Ugl`dzMk+fR%8=4MiS$&sP8!v;|v{b5O zbPi?+R_$+W8hKev_Wf|!hH5@2-OJp0pXRpz5D5$SnvQ)d$Y?jr3FB$xyz6Z?co!12 zUoz>`B~tI3v`01G*nN+KX7W#Fl}()buCtn#SEk?EntAMNdS#*xLCmId9gRDLzwvQo z_x;;Z#rumQY`)t@Le0ilw8ehfC?8JXM=RxJm49I0&Nnt_&bLUtfD4&pH!Q=#P1lK@ zlen%gwH3P@37T2w4hS>Veu`a(<=d$hZU$no6d@EM(6iNz{$|lUw5c@2(`BAP^wm4M ziiN&c(JJj9_t9Sru3NAr{%BSZ&}w#D%d0+6y!KS4ZeJa^5&{-{FSEy8Nj~i8;uh(E zmy3OPKes0)Qh-JLAIjtV@YzI5=~sEr6&gO%07Kxo@d_dUvgA6;!#nmDy5IRcASFef z%|8spJysDWjhKizj(BD=x*=II%b_!1)FQ+N)tR5Sk+ks_Iew&przFq?)?jTCR8m}p zVM8*{LAQ$LSD=xZz=ZUp?+KLvB;3ba5lZRNI+lj;HXx~zXER$ay>C}BKNa#RO=6D9 zfx8bh3pJ7A2^W}>Ig`nj8a6y{p^IJ{TUOh5Fe&J+n>}{#a=GTGDz>kw<-=ok9$wI= zX5ptbYeE#OiMTS3ZWRBA_-oEC(Hz3_1boeDZ2`dz9g)!Y!|gu=1HzB06jnhh3m}Gx zGGzvBV<7i}*)3B7rT|%QyF%KN*4f+*lS`Bg%K8lmYUjU2T+@W786(y#NB$Ci{Z}1&#YnaBn1bZvR0*5b=Lv3< zjPFs92y!c=#NKqT6T9yar1^H{m05 zc`W&DM5zE9U78b%@M6QRADf#M`l`S#(8H>>uLWs9rKlQDF*z*prc~awmVh@}4g!64JP)i3m?HFi%z3AcN1YpX5Y29lgEgmA$#00ph1^3!e-T)^`LP zOQ!v7`cDz1V|S2haQT|fPZAtn@K|JXMM!4(Nm2Ox+&3Gg1ih`R;nj>dvF6}?sdstB zNXoa;1Yc9o7bo6wKRC2S;N=vS!LI``b@Hb3P*$&jER<$Id6{KVPko=AP_g;VPzjxJ zuWM!_4)3+y=i-%h82)J}ScvC99P0EKP#>O&3UziAqaK-mGX>KfumZatpKMUjP9SOe z@d^>E?UFL>(e}QE4qHSI8+_&`BsECbuKqBM%{mYa2DXjsj{c^nlH;E#Q0h#1Fu}~= zKHKa|lz!9jx$7%yW}FFiW%Wj?4ZB2#mV%fj8#x$IBzDkW^~RH0BI{Mo-S<-{I}>x7xVQNq`5|G@_UE-+PJL=<`ob?)Ez; z<;O`V8G$btX1yojt^*X8{+iz=*%G)b{b)mLyk&EX2vmpyaga1~0QdQ=t$_rGm(f#b z{@M?|R^z;i>B2Ul`-~hZ2pD`j^N8C#3Xvj^uvw;&aVO-ZL@w&`JpQXNC?^LFG$Z?J&JWCD&z^y!d#-->k^zEFBWA!mD8YWX?M> zPiYyb$#pi%GZh?pb#WSiU1|a)1&6))?VV-QBNs`2^cc=wnP5J&&c%`6wQ!DI61rWn zui1B|KogUHNnw@)Z>&1>YOSnyso2?ie;p{q$U;D{(ozdBj{}sy6ST48^(8A#9(SD@ zC<4uV-RtWSV54UT76hR0pDNa{QOylI@HkUncqBBUG$sL#SFpo8kM{Vs(Sbd*od)ZK z5P5UvYMl|s_hLJ4$+Rv=)4M81FWi_{DgB!dg1`$_P+gq)TBcdg{u6$)6z9ZqXFBXTDr%L6X6L z-yTts8*)cEOYDs%uC)H^G=%?vL(P5NpfD5luG|D{9++DC8mtpx*D+Wp_Nq#}`S!II zq;7fE;dqEog)K0&NI33f57xTsGi_d^;B?V<&#{CI3Mjx$bz^790`0g%1nYALcoVtw zb$A*31lXPVHt{hn@a;Jmb~ax}e)v6{3BA%MKTZ+Vi7b4Erf_e+A)I_Guya6FYG)YLu!yzinXw9jvDYsOoVFdbPjC zDmgzo9CJX~^VPt4czO>nj9)g5_$n=d5pqTA@ZSELkiXHdpq74Z|JeT^CnTqW7=Kk( zeRDF0S_ybjHN;`K^VH5(L?4w6$vTl!>^(A`9SAq1TJUXABBuZV?K)U`C~D6Cfh9BC z+!-^m+2%9Nx+aaI8C{r3D*Jp29}@CY?8n4{Du?JxDbj0c5PyMDN~u77j67c=RtwT{ zJ9kh>C4<3>h2A9s5bU;~Hy2mI=>QF>^-Q z>NGer-JAw{x=!4Ax)ig#V&Czp{{p!e8y>9gA}BtjNccAqZ7>`**-H6Y=WybJd4a|6 zzqG2=Cj5HI7r*sYk1Ay!qofq1*H&J6=4o>NaKz`yw@>u&0d5Q1UhgTn^6Bd0!+qzE z+3eLnF%)}CUMKTq&pR>V14F}*$fXLIZ-++z*!gHr`DcKHexD0oCx%JbJQaJI^7>b` z?4s=GU?6`FdxS4>dB)(`xu)ZX8F;12)ju(B^OXKFb2s)GRrxFLTSZBpPcxak%T8Zr zBsoX&;3>)2i}z<@9EC;2y1wcTYhE+{%d@>-#e%lwMM#bjv*Rj2*G~_xJS#?C(oSkA zLQnt3=3W5y{H0J*=*pS5y)URmJJKpgE(>CI863Lc&mljPxhrsm1@zVkJM_~kKrixl=w_#E~~sLMgmtf#`wxS$zXMMS7USPh!l_qWUT z+?-$sv!2=FqV|M5U6}=T-`#UhkL5q#H{=Cqk~4zQ7TzD{_cnOMzZlJTDvxr)7V2w^ zI#{}U-OI@-*==VQvDf9p;PVql=c!N0|HquV93B*sgH(S?oAj{M(l3^NP$9yYEuR{B z)@`Hy$x<`WV8*21vLmRz zxshjImZn#1`)2Wpk)XWTWjGDxh`$pMsV8f|Q;Ije(QZ?oZb zw)*^HS`Q@poN75hj`z1Uxjn|*|2b*OZF`2Mec^$x$MGUiQHFMGpx zuZ9O5Z4)!OoHN_B=Z{*~ZCmydQ64@%`mT0z*IvC2-gmE3Sw_!DW9ZqZ(~(w+4SQX- z{pvctG@j(2qVTVneky?ye&k`T-0?Oahb?FUidWk#JeJ6t( z6b#ggxTJ-T)0V7CPxrbldRrK=P8O2qtM4eb1jZ=~E%=!|yM*AR)Q4<;VJOxr{NgvS zUK!*o36jHxPn4BZg*Y-0Y6B+t2#Epvb$|`?R`X)HBS#|6

    W2i;i@yZhXA10sCAW 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

    4!d>zL9YuQ?jWh`1I3n}D3=xJeiE$)wo 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

    =_6?xmk~_lBA)WTnv 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 L4ZR$J7Qg%-23Fix diff --git a/bower_components/paper-scroll-header-panel/demo/images/bg6.jpg b/bower_components/paper-scroll-header-panel/demo/images/bg6.jpg deleted file mode 100644 index 1dec3f392a3c56c5da0f5da1ebc45c1ffc4d893c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179472 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 SOJgY0 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 U#_UU*+2ZH@|BSV}xO(RQ1Hqv(H2?qr diff --git a/bower_components/paper-scroll-header-panel/demo/images/bg9.jpg b/bower_components/paper-scroll-header-panel/demo/images/bg9.jpg deleted file mode 100644 index c9a2e6581dbe5a062d6808ba6d2ed2381506e6e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 178111 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

    ;M-h`k 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

    |BtoqACOuz| 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 diff --git a/bower_components/paper-scroll-header-panel/demo/index.html b/bower_components/paper-scroll-header-panel/demo/index.html deleted file mode 100644 index f2119b4..0000000 --- a/bower_components/paper-scroll-header-panel/demo/index.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - paper-scroll-header-panel: demo4 - - - - - - - - - - - - - - - - - - - - - - - - - -

    - - -
    Title
    - - - -
    - - - -
    - - - - - - - diff --git a/bower_components/paper-scroll-header-panel/demo/lorem-ipsum.html b/bower_components/paper-scroll-header-panel/demo/lorem-ipsum.html deleted file mode 100644 index ed4fb4c..0000000 --- a/bower_components/paper-scroll-header-panel/demo/lorem-ipsum.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - diff --git a/bower_components/paper-scroll-header-panel/demo/sample-content.html b/bower_components/paper-scroll-header-panel/demo/sample-content.html deleted file mode 100644 index e325fe2..0000000 --- a/bower_components/paper-scroll-header-panel/demo/sample-content.html +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - diff --git a/bower_components/paper-scroll-header-panel/hero.svg b/bower_components/paper-scroll-header-panel/hero.svg deleted file mode 100644 index 25710e9..0000000 --- a/bower_components/paper-scroll-header-panel/hero.svg +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/paper-scroll-header-panel/index.html b/bower_components/paper-scroll-header-panel/index.html deleted file mode 100644 index e2e7712..0000000 --- a/bower_components/paper-scroll-header-panel/index.html +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - paper-scroll-header-panel - - - - - - - - - - - diff --git a/bower_components/paper-scroll-header-panel/paper-scroll-header-panel.html b/bower_components/paper-scroll-header-panel/paper-scroll-header-panel.html deleted file mode 100644 index ba6b5cd..0000000 --- a/bower_components/paper-scroll-header-panel/paper-scroll-header-panel.html +++ /dev/null @@ -1,455 +0,0 @@ - - - - - - - - - - - - - - diff --git a/bower_components/paper-scroll-header-panel/test/basic.html b/bower_components/paper-scroll-header-panel/test/basic.html deleted file mode 100644 index 9017654..0000000 --- a/bower_components/paper-scroll-header-panel/test/basic.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - paper-scroll-header-panel test - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/paper-scroll-header-panel/test/index.html b/bower_components/paper-scroll-header-panel/test/index.html deleted file mode 100644 index f07aca9..0000000 --- a/bower_components/paper-scroll-header-panel/test/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - Tests - - - - - - diff --git a/bower_components/paper-styles/.bower.json b/bower_components/paper-styles/.bower.json deleted file mode 100644 index 32205aa..0000000 --- a/bower_components/paper-styles/.bower.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "paper-styles", - "version": "1.0.7", - "description": "Common (global) styles for Material Design elements.", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-component", - "polymer", - "style" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-styles.git" - }, - "main": "paper-styles.html", - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/polymerelements/paper-styles/", - "ignore": [ - "/.*" - ], - "dependencies": { - "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", - "font-roboto": "PolymerElements/font-roboto#^1.0.0", - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "_release": "1.0.7", - "_resolution": { - "type": "version", - "tag": "v1.0.7", - "commit": "c65f5ce6b898bb756fca35cedaa53c3e8011abeb" - }, - "_source": "git://github.com/PolymerElements/paper-styles.git", - "_target": "^1.0.0", - "_originalSource": "PolymerElements/paper-styles" -} \ No newline at end of file diff --git a/bower_components/paper-styles/README.md b/bower_components/paper-styles/README.md deleted file mode 100644 index 82a7847..0000000 --- a/bower_components/paper-styles/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# paper-styles - -Material design CSS styles. diff --git a/bower_components/paper-styles/bower.json b/bower_components/paper-styles/bower.json deleted file mode 100644 index 576dc4c..0000000 --- a/bower_components/paper-styles/bower.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "paper-styles", - "version": "1.0.7", - "description": "Common (global) styles for Material Design elements.", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-component", - "polymer", - "style" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-styles.git" - }, - "main": "paper-styles.html", - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/polymerelements/paper-styles/", - "ignore": [ - "/.*" - ], - "dependencies": { - "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", - "font-roboto": "PolymerElements/font-roboto#^1.0.0", - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - } -} diff --git a/bower_components/paper-styles/classes/global.html b/bower_components/paper-styles/classes/global.html deleted file mode 100644 index 6f0d5dd..0000000 --- a/bower_components/paper-styles/classes/global.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - diff --git a/bower_components/paper-styles/classes/shadow-layout.html b/bower_components/paper-styles/classes/shadow-layout.html deleted file mode 100644 index fc69fb3..0000000 --- a/bower_components/paper-styles/classes/shadow-layout.html +++ /dev/null @@ -1,302 +0,0 @@ - - diff --git a/bower_components/paper-styles/classes/shadow.html b/bower_components/paper-styles/classes/shadow.html deleted file mode 100644 index 4c40a14..0000000 --- a/bower_components/paper-styles/classes/shadow.html +++ /dev/null @@ -1,52 +0,0 @@ - - - diff --git a/bower_components/paper-styles/classes/typography.html b/bower_components/paper-styles/classes/typography.html deleted file mode 100644 index 5514abb..0000000 --- a/bower_components/paper-styles/classes/typography.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - diff --git a/bower_components/paper-styles/color.html b/bower_components/paper-styles/color.html deleted file mode 100644 index f0be341..0000000 --- a/bower_components/paper-styles/color.html +++ /dev/null @@ -1,333 +0,0 @@ - - - - - diff --git a/bower_components/paper-styles/default-theme.html b/bower_components/paper-styles/default-theme.html deleted file mode 100644 index add581c..0000000 --- a/bower_components/paper-styles/default-theme.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - diff --git a/bower_components/paper-styles/demo-pages.html b/bower_components/paper-styles/demo-pages.html deleted file mode 100644 index 44f2288..0000000 --- a/bower_components/paper-styles/demo-pages.html +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - diff --git a/bower_components/paper-styles/demo.css b/bower_components/paper-styles/demo.css deleted file mode 100644 index efd8b47..0000000 --- a/bower_components/paper-styles/demo.css +++ /dev/null @@ -1,25 +0,0 @@ -/** -@license -Copyright (c) 2015 The Polymer Project Authors. All rights reserved. -This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt -The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt -The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt -Code distributed by Google as part of the polymer project is also -subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt - -*/ -body { - font-family: 'Roboto', 'Noto', sans-serif; - font-size: 14px; - margin: 0; - padding: 24px; -} - -section { - padding: 20px 0; -} - -section > div { - padding: 14px; - font-size: 16px; -} diff --git a/bower_components/paper-styles/demo/index.html b/bower_components/paper-styles/demo/index.html deleted file mode 100644 index 42f449f..0000000 --- a/bower_components/paper-styles/demo/index.html +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - paper-styles demo - - - - - - - - - - - - - - - - - - - - - - - -
    -

    demo-pages.html

    - -

    Horizontal sections

    -
    -
    -

    Column 1

    -
    -
    Oxygen
    -
    Carbon
    -
    Hydrogen
    -
    Nitrogen
    -
    Calcium
    -
    -
    - -
    -

    Column 2

    -
    -
    Oxygen
    -
    Carbon
    -
    Hydrogen
    -
    Nitrogen
    -
    Calcium
    -
    -
    - -
    -

    Column 3

    -
    -
    Oxygen
    -
    Carbon
    -
    Hydrogen
    -
    Nitrogen
    -
    Calcium
    -
    -
    -
    - -

    Vertical sections

    -
    -
    -

    Section 1

    -
    -
    Oxygen
    -
    Carbon
    -
    Hydrogen
    -
    Nitrogen
    -
    Calcium
    -
    -
    -
    - -
    -

    Section 2 (centered)

    -
    -
    Oxygen
    -
    Carbon
    -
    Hydrogen
    -
    Nitrogen
    -
    Calcium
    -
    -
    - -
    - - - diff --git a/bower_components/paper-styles/paper-styles-classes.html b/bower_components/paper-styles/paper-styles-classes.html deleted file mode 100644 index ae315a5..0000000 --- a/bower_components/paper-styles/paper-styles-classes.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - diff --git a/bower_components/paper-styles/paper-styles.html b/bower_components/paper-styles/paper-styles.html deleted file mode 100644 index 1e4fce5..0000000 --- a/bower_components/paper-styles/paper-styles.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - diff --git a/bower_components/paper-styles/shadow.html b/bower_components/paper-styles/shadow.html deleted file mode 100644 index dfb7e8a..0000000 --- a/bower_components/paper-styles/shadow.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - diff --git a/bower_components/paper-styles/typography.html b/bower_components/paper-styles/typography.html deleted file mode 100644 index 15ae115..0000000 --- a/bower_components/paper-styles/typography.html +++ /dev/null @@ -1,238 +0,0 @@ - - - - - - diff --git a/bower_components/paper-toolbar/.bower.json b/bower_components/paper-toolbar/.bower.json deleted file mode 100644 index de532ef..0000000 --- a/bower_components/paper-toolbar/.bower.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "paper-toolbar", - "version": "1.0.2", - "license": "http://polymer.github.io/LICENSE.txt", - "description": "A material design toolbar that is easily customizable", - "private": true, - "main": [ - "paper-toolbar.html" - ], - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "toolbar", - "layout" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-toolbar.git" - }, - "dependencies": { - "paper-styles": "PolymerElements/paper-styles#^1.0.0", - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "iron-icons": "PolymerElements/iron-icons#^1.0.0", - "paper-icon-button": "PolymerElements/paper-icon-button#^1.0.0", - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "homepage": "https://github.com/PolymerElements/paper-toolbar", - "_release": "1.0.2", - "_resolution": { - "type": "version", - "tag": "v1.0.2", - "commit": "402eb11da736a5ae19713748bfa04cd96f3f7a0c" - }, - "_source": "git://github.com/PolymerElements/paper-toolbar.git", - "_target": "^1.0.0", - "_originalSource": "PolymerElements/paper-toolbar" -} \ No newline at end of file diff --git a/bower_components/paper-toolbar/.gitignore b/bower_components/paper-toolbar/.gitignore deleted file mode 100644 index fbe05fc..0000000 --- a/bower_components/paper-toolbar/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bower_components/ diff --git a/bower_components/paper-toolbar/README.md b/bower_components/paper-toolbar/README.md deleted file mode 100644 index 4356276..0000000 --- a/bower_components/paper-toolbar/README.md +++ /dev/null @@ -1,51 +0,0 @@ -paper-toolbar -============ - -`paper-toolbar` is a horizontal bar containing items that can be used for -label, navigation, search and actions. The items place inside the -`paper-toolbar` are projected into a `class="horizontal center layout"` container inside of -`paper-toolbar`'s Shadow DOM. You can use flex attributes to control the items' -sizing. - -Example: - -```html - - -
    Title
    - -
    -``` - -`paper-toolbar` has a standard height, but can made be taller by setting `tall` -class on the `paper-toolbar`. This will make the toolbar 3x the normal height. - -```html - - - -``` - -Apply `medium-tall` class to make the toolbar medium tall. This will make the -toolbar 2x the normal height. - -```html - - - -``` - -When `tall`, items can pin to either the top (default), middle or bottom. Use -`middle` class for middle content and `bottom` class for bottom content. - -```html - - -
    Middle Title
    -
    Bottom Title
    -
    -``` - -For `medium-tall` toolbar, the middle and bottom contents overlap and are -pinned to the bottom. But `middleJustify` and `bottomJustify` attributes are -still honored separately. diff --git a/bower_components/paper-toolbar/bower.json b/bower_components/paper-toolbar/bower.json deleted file mode 100644 index 26a02b6..0000000 --- a/bower_components/paper-toolbar/bower.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "paper-toolbar", - "version": "1.0.2", - "license": "http://polymer.github.io/LICENSE.txt", - "description": "A material design toolbar that is easily customizable", - "private": true, - "main": [ - "paper-toolbar.html" - ], - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "toolbar", - "layout" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-toolbar.git" - }, - "dependencies": { - "paper-styles": "PolymerElements/paper-styles#^1.0.0", - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "iron-icons": "PolymerElements/iron-icons#^1.0.0", - "paper-icon-button": "PolymerElements/paper-icon-button#^1.0.0", - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "*", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - } -} diff --git a/bower_components/paper-toolbar/demo/index.html b/bower_components/paper-toolbar/demo/index.html deleted file mode 100644 index 104bb14..0000000 --- a/bower_components/paper-toolbar/demo/index.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - paper-toolbar demo - - - - - - - - - - - - - - - - Toolbar - - + - - - - - Toolbar: tall - - + - - - - - Toolbar: tall with elements pin to the bottom - - + - - - - - - - + - Toolbar: medium-tall with label aligns to the bottom - - - - -
    - - + -
    label aligns to the middle
    -
    some stuffs align to the bottom
    -
    - - - -
    - - + -
    element (e.g. progress) fits at the bottom of the toolbar
    -
    -
    - - - diff --git a/bower_components/paper-toolbar/index.html b/bower_components/paper-toolbar/index.html deleted file mode 100644 index 6533b73..0000000 --- a/bower_components/paper-toolbar/index.html +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - paper-toolbar - - - - - - - - - - - - - - - diff --git a/bower_components/paper-toolbar/paper-toolbar.html b/bower_components/paper-toolbar/paper-toolbar.html deleted file mode 100644 index 153305e..0000000 --- a/bower_components/paper-toolbar/paper-toolbar.html +++ /dev/null @@ -1,368 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/bower_components/paper-toolbar/test/index.html b/bower_components/paper-toolbar/test/index.html deleted file mode 100644 index a1bd42a..0000000 --- a/bower_components/paper-toolbar/test/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - paper-toolbar tests - - - - - - diff --git a/bower_components/paper-toolbar/test/paper-toolbar.html b/bower_components/paper-toolbar/test/paper-toolbar.html deleted file mode 100644 index a5998c1..0000000 --- a/bower_components/paper-toolbar/test/paper-toolbar.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - paper-toolbar basic tests - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/polymer/.bower.json b/bower_components/polymer/.bower.json deleted file mode 100644 index d0373ee..0000000 --- a/bower_components/polymer/.bower.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "polymer", - "version": "1.0.5", - "main": [ - "polymer.html" - ], - "license": "http://polymer.github.io/LICENSE.txt", - "ignore": [ - "/.*", - "/test/" - ], - "authors": [ - "The Polymer Authors (http://polymer.github.io/AUTHORS.txt)" - ], - "repository": { - "type": "git", - "url": "https://github.com/Polymer/polymer.git" - }, - "dependencies": { - "webcomponentsjs": "^0.7.2" - }, - "devDependencies": { - "web-component-tester": "*" - }, - "private": true, - "homepage": "https://github.com/Polymer/polymer", - "_release": "1.0.5", - "_resolution": { - "type": "version", - "tag": "v1.0.5", - "commit": "b93f076d7b2606733d7166f311b77550deb98a39" - }, - "_source": "git://github.com/Polymer/polymer.git", - "_target": "^1.0.0", - "_originalSource": "Polymer/polymer" -} \ No newline at end of file diff --git a/bower_components/polymer/LICENSE.txt b/bower_components/polymer/LICENSE.txt deleted file mode 100644 index 95987ba..0000000 --- a/bower_components/polymer/LICENSE.txt +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright (c) 2014 The Polymer Authors. All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/bower_components/polymer/bower.json b/bower_components/polymer/bower.json deleted file mode 100644 index a8799d3..0000000 --- a/bower_components/polymer/bower.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "polymer", - "version": "1.0.5", - "main": [ - "polymer.html" - ], - "license": "http://polymer.github.io/LICENSE.txt", - "ignore": [ - "/.*", - "/test/" - ], - "authors": [ - "The Polymer Authors (http://polymer.github.io/AUTHORS.txt)" - ], - "repository": { - "type": "git", - "url": "https://github.com/Polymer/polymer.git" - }, - "dependencies": { - "webcomponentsjs": "^0.7.2" - }, - "devDependencies": { - "web-component-tester": "*" - }, - "private": true -} diff --git a/bower_components/polymer/build.log b/bower_components/polymer/build.log deleted file mode 100644 index 4e4c0d8..0000000 --- a/bower_components/polymer/build.log +++ /dev/null @@ -1,26 +0,0 @@ -BUILD LOG ---------- -Build Time: 2015-06-25T16:47:16-0700 - -NODEJS INFORMATION -================== -nodejs: v0.12.2 -del: 1.2.0 -gulp: 3.9.0 -gulp-audit: 1.0.0 -gulp-rename: 1.2.2 -gulp-replace: 0.5.3 -gulp-vulcanize: 6.0.1 -polyclean: 1.2.0 -run-sequence: 1.1.1 -lazypipe: 0.2.4 - -REPO REVISIONS -============== -polymer: e859b532a7fb5b10ae1311c22988b76cc6cbc04a - -BUILD HASHES -============ -polymer-mini.html: 93f4b283ba95fd687562b965bf7651eab7a66a1f -polymer-micro.html: db73818583996fe27b9f1119f0e4ef46ccadc859 -polymer.html: 9b0cd22e821422a8afe809ca5715612e682e5622 \ No newline at end of file diff --git a/bower_components/polymer/polymer-micro.html b/bower_components/polymer/polymer-micro.html deleted file mode 100644 index 4bf4234..0000000 --- a/bower_components/polymer/polymer-micro.html +++ /dev/null @@ -1,529 +0,0 @@ - - diff --git a/bower_components/polymer/polymer-mini.html b/bower_components/polymer/polymer-mini.html deleted file mode 100644 index da6e750..0000000 --- a/bower_components/polymer/polymer-mini.html +++ /dev/null @@ -1,1396 +0,0 @@ - - - - diff --git a/bower_components/polymer/polymer.html b/bower_components/polymer/polymer.html deleted file mode 100644 index 9d7e47c..0000000 --- a/bower_components/polymer/polymer.html +++ /dev/null @@ -1,3985 +0,0 @@ - - - diff --git a/bower_components/webcomponentsjs/.bower.json b/bower_components/webcomponentsjs/.bower.json deleted file mode 100644 index 161ba54..0000000 --- a/bower_components/webcomponentsjs/.bower.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "webcomponentsjs", - "main": "webcomponents.js", - "version": "0.7.5", - "homepage": "http://webcomponents.org", - "authors": [ - "The Polymer Authors" - ], - "repository": { - "type": "git", - "url": "https://github.com/webcomponents/webcomponentsjs.git" - }, - "keywords": [ - "webcomponents" - ], - "license": "BSD", - "ignore": [], - "_release": "0.7.5", - "_resolution": { - "type": "version", - "tag": "v0.7.5", - "commit": "6e2fd746392a9fbec95711872e21fa22bff22fae" - }, - "_source": "git://github.com/Polymer/webcomponentsjs.git", - "_target": "^0.7.2", - "_originalSource": "webcomponentsjs" -} \ No newline at end of file diff --git a/bower_components/webcomponentsjs/CustomElements.js b/bower_components/webcomponentsjs/CustomElements.js deleted file mode 100644 index ae4af3b..0000000 --- a/bower_components/webcomponentsjs/CustomElements.js +++ /dev/null @@ -1,963 +0,0 @@ -/** - * @license - * Copyright (c) 2014 The Polymer Project Authors. All rights reserved. - * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt - * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt - * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt - * Code distributed by Google as part of the polymer project is also - * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt - */ -// @version 0.7.5 -if (typeof WeakMap === "undefined") { - (function() { - var defineProperty = Object.defineProperty; - var counter = Date.now() % 1e9; - var WeakMap = function() { - this.name = "__st" + (Math.random() * 1e9 >>> 0) + (counter++ + "__"); - }; - WeakMap.prototype = { - set: function(key, value) { - var entry = key[this.name]; - if (entry && entry[0] === key) entry[1] = value; else defineProperty(key, this.name, { - value: [ key, value ], - writable: true - }); - return this; - }, - get: function(key) { - var entry; - return (entry = key[this.name]) && entry[0] === key ? entry[1] : undefined; - }, - "delete": function(key) { - var entry = key[this.name]; - if (!entry || entry[0] !== key) return false; - entry[0] = entry[1] = undefined; - return true; - }, - has: function(key) { - var entry = key[this.name]; - if (!entry) return false; - return entry[0] === key; - } - }; - window.WeakMap = WeakMap; - })(); -} - -(function(global) { - var registrationsTable = new WeakMap(); - var setImmediate; - if (/Trident|Edge/.test(navigator.userAgent)) { - setImmediate = setTimeout; - } else if (window.setImmediate) { - setImmediate = window.setImmediate; - } else { - var setImmediateQueue = []; - var sentinel = String(Math.random()); - window.addEventListener("message", function(e) { - if (e.data === sentinel) { - var queue = setImmediateQueue; - setImmediateQueue = []; - queue.forEach(function(func) { - func(); - }); - } - }); - setImmediate = function(func) { - setImmediateQueue.push(func); - window.postMessage(sentinel, "*"); - }; - } - var isScheduled = false; - var scheduledObservers = []; - function scheduleCallback(observer) { - scheduledObservers.push(observer); - if (!isScheduled) { - isScheduled = true; - setImmediate(dispatchCallbacks); - } - } - function wrapIfNeeded(node) { - return window.ShadowDOMPolyfill && window.ShadowDOMPolyfill.wrapIfNeeded(node) || node; - } - function dispatchCallbacks() { - isScheduled = false; - var observers = scheduledObservers; - scheduledObservers = []; - observers.sort(function(o1, o2) { - return o1.uid_ - o2.uid_; - }); - var anyNonEmpty = false; - observers.forEach(function(observer) { - var queue = observer.takeRecords(); - removeTransientObserversFor(observer); - if (queue.length) { - observer.callback_(queue, observer); - anyNonEmpty = true; - } - }); - if (anyNonEmpty) dispatchCallbacks(); - } - function removeTransientObserversFor(observer) { - observer.nodes_.forEach(function(node) { - var registrations = registrationsTable.get(node); - if (!registrations) return; - registrations.forEach(function(registration) { - if (registration.observer === observer) registration.removeTransientObservers(); - }); - }); - } - function forEachAncestorAndObserverEnqueueRecord(target, callback) { - for (var node = target; node; node = node.parentNode) { - var registrations = registrationsTable.get(node); - if (registrations) { - for (var j = 0; j < registrations.length; j++) { - var registration = registrations[j]; - var options = registration.options; - if (node !== target && !options.subtree) continue; - var record = callback(options); - if (record) registration.enqueue(record); - } - } - } - } - var uidCounter = 0; - function JsMutationObserver(callback) { - this.callback_ = callback; - this.nodes_ = []; - this.records_ = []; - this.uid_ = ++uidCounter; - } - JsMutationObserver.prototype = { - observe: function(target, options) { - target = wrapIfNeeded(target); - if (!options.childList && !options.attributes && !options.characterData || options.attributeOldValue && !options.attributes || options.attributeFilter && options.attributeFilter.length && !options.attributes || options.characterDataOldValue && !options.characterData) { - throw new SyntaxError(); - } - var registrations = registrationsTable.get(target); - if (!registrations) registrationsTable.set(target, registrations = []); - var registration; - for (var i = 0; i < registrations.length; i++) { - if (registrations[i].observer === this) { - registration = registrations[i]; - registration.removeListeners(); - registration.options = options; - break; - } - } - if (!registration) { - registration = new Registration(this, target, options); - registrations.push(registration); - this.nodes_.push(target); - } - registration.addListeners(); - }, - disconnect: function() { - this.nodes_.forEach(function(node) { - var registrations = registrationsTable.get(node); - for (var i = 0; i < registrations.length; i++) { - var registration = registrations[i]; - if (registration.observer === this) { - registration.removeListeners(); - registrations.splice(i, 1); - break; - } - } - }, this); - this.records_ = []; - }, - takeRecords: function() { - var copyOfRecords = this.records_; - this.records_ = []; - return copyOfRecords; - } - }; - function MutationRecord(type, target) { - this.type = type; - this.target = target; - this.addedNodes = []; - this.removedNodes = []; - this.previousSibling = null; - this.nextSibling = null; - this.attributeName = null; - this.attributeNamespace = null; - this.oldValue = null; - } - function copyMutationRecord(original) { - var record = new MutationRecord(original.type, original.target); - record.addedNodes = original.addedNodes.slice(); - record.removedNodes = original.removedNodes.slice(); - record.previousSibling = original.previousSibling; - record.nextSibling = original.nextSibling; - record.attributeName = original.attributeName; - record.attributeNamespace = original.attributeNamespace; - record.oldValue = original.oldValue; - return record; - } - var currentRecord, recordWithOldValue; - function getRecord(type, target) { - return currentRecord = new MutationRecord(type, target); - } - function getRecordWithOldValue(oldValue) { - if (recordWithOldValue) return recordWithOldValue; - recordWithOldValue = copyMutationRecord(currentRecord); - recordWithOldValue.oldValue = oldValue; - return recordWithOldValue; - } - function clearRecords() { - currentRecord = recordWithOldValue = undefined; - } - function recordRepresentsCurrentMutation(record) { - return record === recordWithOldValue || record === currentRecord; - } - function selectRecord(lastRecord, newRecord) { - if (lastRecord === newRecord) return lastRecord; - if (recordWithOldValue && recordRepresentsCurrentMutation(lastRecord)) return recordWithOldValue; - return null; - } - function Registration(observer, target, options) { - this.observer = observer; - this.target = target; - this.options = options; - this.transientObservedNodes = []; - } - Registration.prototype = { - enqueue: function(record) { - var records = this.observer.records_; - var length = records.length; - if (records.length > 0) { - var lastRecord = records[length - 1]; - var recordToReplaceLast = selectRecord(lastRecord, record); - if (recordToReplaceLast) { - records[length - 1] = recordToReplaceLast; - return; - } - } else { - scheduleCallback(this.observer); - } - records[length] = record; - }, - addListeners: function() { - this.addListeners_(this.target); - }, - addListeners_: function(node) { - var options = this.options; - if (options.attributes) node.addEventListener("DOMAttrModified", this, true); - if (options.characterData) node.addEventListener("DOMCharacterDataModified", this, true); - if (options.childList) node.addEventListener("DOMNodeInserted", this, true); - if (options.childList || options.subtree) node.addEventListener("DOMNodeRemoved", this, true); - }, - removeListeners: function() { - this.removeListeners_(this.target); - }, - removeListeners_: function(node) { - var options = this.options; - if (options.attributes) node.removeEventListener("DOMAttrModified", this, true); - if (options.characterData) node.removeEventListener("DOMCharacterDataModified", this, true); - if (options.childList) node.removeEventListener("DOMNodeInserted", this, true); - if (options.childList || options.subtree) node.removeEventListener("DOMNodeRemoved", this, true); - }, - addTransientObserver: function(node) { - if (node === this.target) return; - this.addListeners_(node); - this.transientObservedNodes.push(node); - var registrations = registrationsTable.get(node); - if (!registrations) registrationsTable.set(node, registrations = []); - registrations.push(this); - }, - removeTransientObservers: function() { - var transientObservedNodes = this.transientObservedNodes; - this.transientObservedNodes = []; - transientObservedNodes.forEach(function(node) { - this.removeListeners_(node); - var registrations = registrationsTable.get(node); - for (var i = 0; i < registrations.length; i++) { - if (registrations[i] === this) { - registrations.splice(i, 1); - break; - } - } - }, this); - }, - handleEvent: function(e) { - e.stopImmediatePropagation(); - switch (e.type) { - case "DOMAttrModified": - var name = e.attrName; - var namespace = e.relatedNode.namespaceURI; - var target = e.target; - var record = new getRecord("attributes", target); - record.attributeName = name; - record.attributeNamespace = namespace; - var oldValue = e.attrChange === MutationEvent.ADDITION ? null : e.prevValue; - forEachAncestorAndObserverEnqueueRecord(target, function(options) { - if (!options.attributes) return; - if (options.attributeFilter && options.attributeFilter.length && options.attributeFilter.indexOf(name) === -1 && options.attributeFilter.indexOf(namespace) === -1) { - return; - } - if (options.attributeOldValue) return getRecordWithOldValue(oldValue); - return record; - }); - break; - - case "DOMCharacterDataModified": - var target = e.target; - var record = getRecord("characterData", target); - var oldValue = e.prevValue; - forEachAncestorAndObserverEnqueueRecord(target, function(options) { - if (!options.characterData) return; - if (options.characterDataOldValue) return getRecordWithOldValue(oldValue); - return record; - }); - break; - - case "DOMNodeRemoved": - this.addTransientObserver(e.target); - - case "DOMNodeInserted": - var changedNode = e.target; - var addedNodes, removedNodes; - if (e.type === "DOMNodeInserted") { - addedNodes = [ changedNode ]; - removedNodes = []; - } else { - addedNodes = []; - removedNodes = [ changedNode ]; - } - var previousSibling = changedNode.previousSibling; - var nextSibling = changedNode.nextSibling; - var record = getRecord("childList", e.target.parentNode); - record.addedNodes = addedNodes; - record.removedNodes = removedNodes; - record.previousSibling = previousSibling; - record.nextSibling = nextSibling; - forEachAncestorAndObserverEnqueueRecord(e.relatedNode, function(options) { - if (!options.childList) return; - return record; - }); - } - clearRecords(); - } - }; - global.JsMutationObserver = JsMutationObserver; - if (!global.MutationObserver) global.MutationObserver = JsMutationObserver; -})(this); - -window.CustomElements = window.CustomElements || { - flags: {} -}; - -(function(scope) { - var flags = scope.flags; - var modules = []; - var addModule = function(module) { - modules.push(module); - }; - var initializeModules = function() { - modules.forEach(function(module) { - module(scope); - }); - }; - scope.addModule = addModule; - scope.initializeModules = initializeModules; - scope.hasNative = Boolean(document.registerElement); - scope.useNative = !flags.register && scope.hasNative && !window.ShadowDOMPolyfill && (!window.HTMLImports || window.HTMLImports.useNative); -})(window.CustomElements); - -window.CustomElements.addModule(function(scope) { - var IMPORT_LINK_TYPE = window.HTMLImports ? window.HTMLImports.IMPORT_LINK_TYPE : "none"; - function forSubtree(node, cb) { - findAllElements(node, function(e) { - if (cb(e)) { - return true; - } - forRoots(e, cb); - }); - forRoots(node, cb); - } - function findAllElements(node, find, data) { - var e = node.firstElementChild; - if (!e) { - e = node.firstChild; - while (e && e.nodeType !== Node.ELEMENT_NODE) { - e = e.nextSibling; - } - } - while (e) { - if (find(e, data) !== true) { - findAllElements(e, find, data); - } - e = e.nextElementSibling; - } - return null; - } - function forRoots(node, cb) { - var root = node.shadowRoot; - while (root) { - forSubtree(root, cb); - root = root.olderShadowRoot; - } - } - function forDocumentTree(doc, cb) { - _forDocumentTree(doc, cb, []); - } - function _forDocumentTree(doc, cb, processingDocuments) { - doc = window.wrap(doc); - if (processingDocuments.indexOf(doc) >= 0) { - return; - } - processingDocuments.push(doc); - var imports = doc.querySelectorAll("link[rel=" + IMPORT_LINK_TYPE + "]"); - for (var i = 0, l = imports.length, n; i < l && (n = imports[i]); i++) { - if (n.import) { - _forDocumentTree(n.import, cb, processingDocuments); - } - } - cb(doc); - } - scope.forDocumentTree = forDocumentTree; - scope.forSubtree = forSubtree; -}); - -window.CustomElements.addModule(function(scope) { - var flags = scope.flags; - var forSubtree = scope.forSubtree; - var forDocumentTree = scope.forDocumentTree; - function addedNode(node) { - return added(node) || addedSubtree(node); - } - function added(node) { - if (scope.upgrade(node)) { - return true; - } - attached(node); - } - function addedSubtree(node) { - forSubtree(node, function(e) { - if (added(e)) { - return true; - } - }); - } - function attachedNode(node) { - attached(node); - if (inDocument(node)) { - forSubtree(node, function(e) { - attached(e); - }); - } - } - var hasPolyfillMutations = !window.MutationObserver || window.MutationObserver === window.JsMutationObserver; - scope.hasPolyfillMutations = hasPolyfillMutations; - var isPendingMutations = false; - var pendingMutations = []; - function deferMutation(fn) { - pendingMutations.push(fn); - if (!isPendingMutations) { - isPendingMutations = true; - setTimeout(takeMutations); - } - } - function takeMutations() { - isPendingMutations = false; - var $p = pendingMutations; - for (var i = 0, l = $p.length, p; i < l && (p = $p[i]); i++) { - p(); - } - pendingMutations = []; - } - function attached(element) { - if (hasPolyfillMutations) { - deferMutation(function() { - _attached(element); - }); - } else { - _attached(element); - } - } - function _attached(element) { - if (element.__upgraded__ && (element.attachedCallback || element.detachedCallback)) { - if (!element.__attached && inDocument(element)) { - element.__attached = true; - if (element.attachedCallback) { - element.attachedCallback(); - } - } - } - } - function detachedNode(node) { - detached(node); - forSubtree(node, function(e) { - detached(e); - }); - } - function detached(element) { - if (hasPolyfillMutations) { - deferMutation(function() { - _detached(element); - }); - } else { - _detached(element); - } - } - function _detached(element) { - if (element.__upgraded__ && (element.attachedCallback || element.detachedCallback)) { - if (element.__attached && !inDocument(element)) { - element.__attached = false; - if (element.detachedCallback) { - element.detachedCallback(); - } - } - } - } - function inDocument(element) { - var p = element; - var doc = wrap(document); - while (p) { - if (p == doc) { - return true; - } - p = p.parentNode || p.nodeType === Node.DOCUMENT_FRAGMENT_NODE && p.host; - } - } - function watchShadow(node) { - if (node.shadowRoot && !node.shadowRoot.__watched) { - flags.dom && console.log("watching shadow-root for: ", node.localName); - var root = node.shadowRoot; - while (root) { - observe(root); - root = root.olderShadowRoot; - } - } - } - function handler(mutations) { - if (flags.dom) { - var mx = mutations[0]; - if (mx && mx.type === "childList" && mx.addedNodes) { - if (mx.addedNodes) { - var d = mx.addedNodes[0]; - while (d && d !== document && !d.host) { - d = d.parentNode; - } - var u = d && (d.URL || d._URL || d.host && d.host.localName) || ""; - u = u.split("/?").shift().split("/").pop(); - } - } - console.group("mutations (%d) [%s]", mutations.length, u || ""); - } - mutations.forEach(function(mx) { - if (mx.type === "childList") { - forEach(mx.addedNodes, function(n) { - if (!n.localName) { - return; - } - addedNode(n); - }); - forEach(mx.removedNodes, function(n) { - if (!n.localName) { - return; - } - detachedNode(n); - }); - } - }); - flags.dom && console.groupEnd(); - } - function takeRecords(node) { - node = window.wrap(node); - if (!node) { - node = window.wrap(document); - } - while (node.parentNode) { - node = node.parentNode; - } - var observer = node.__observer; - if (observer) { - handler(observer.takeRecords()); - takeMutations(); - } - } - var forEach = Array.prototype.forEach.call.bind(Array.prototype.forEach); - function observe(inRoot) { - if (inRoot.__observer) { - return; - } - var observer = new MutationObserver(handler); - observer.observe(inRoot, { - childList: true, - subtree: true - }); - inRoot.__observer = observer; - } - function upgradeDocument(doc) { - doc = window.wrap(doc); - flags.dom && console.group("upgradeDocument: ", doc.baseURI.split("/").pop()); - addedNode(doc); - observe(doc); - flags.dom && console.groupEnd(); - } - function upgradeDocumentTree(doc) { - forDocumentTree(doc, upgradeDocument); - } - var originalCreateShadowRoot = Element.prototype.createShadowRoot; - if (originalCreateShadowRoot) { - Element.prototype.createShadowRoot = function() { - var root = originalCreateShadowRoot.call(this); - window.CustomElements.watchShadow(this); - return root; - }; - } - scope.watchShadow = watchShadow; - scope.upgradeDocumentTree = upgradeDocumentTree; - scope.upgradeSubtree = addedSubtree; - scope.upgradeAll = addedNode; - scope.attachedNode = attachedNode; - scope.takeRecords = takeRecords; -}); - -window.CustomElements.addModule(function(scope) { - var flags = scope.flags; - function upgrade(node) { - if (!node.__upgraded__ && node.nodeType === Node.ELEMENT_NODE) { - var is = node.getAttribute("is"); - var definition = scope.getRegisteredDefinition(is || node.localName); - if (definition) { - if (is && definition.tag == node.localName) { - return upgradeWithDefinition(node, definition); - } else if (!is && !definition.extends) { - return upgradeWithDefinition(node, definition); - } - } - } - } - function upgradeWithDefinition(element, definition) { - flags.upgrade && console.group("upgrade:", element.localName); - if (definition.is) { - element.setAttribute("is", definition.is); - } - implementPrototype(element, definition); - element.__upgraded__ = true; - created(element); - scope.attachedNode(element); - scope.upgradeSubtree(element); - flags.upgrade && console.groupEnd(); - return element; - } - function implementPrototype(element, definition) { - if (Object.__proto__) { - element.__proto__ = definition.prototype; - } else { - customMixin(element, definition.prototype, definition.native); - element.__proto__ = definition.prototype; - } - } - function customMixin(inTarget, inSrc, inNative) { - var used = {}; - var p = inSrc; - while (p !== inNative && p !== HTMLElement.prototype) { - var keys = Object.getOwnPropertyNames(p); - for (var i = 0, k; k = keys[i]; i++) { - if (!used[k]) { - Object.defineProperty(inTarget, k, Object.getOwnPropertyDescriptor(p, k)); - used[k] = 1; - } - } - p = Object.getPrototypeOf(p); - } - } - function created(element) { - if (element.createdCallback) { - element.createdCallback(); - } - } - scope.upgrade = upgrade; - scope.upgradeWithDefinition = upgradeWithDefinition; - scope.implementPrototype = implementPrototype; -}); - -window.CustomElements.addModule(function(scope) { - var isIE11OrOlder = scope.isIE11OrOlder; - var upgradeDocumentTree = scope.upgradeDocumentTree; - var upgradeAll = scope.upgradeAll; - var upgradeWithDefinition = scope.upgradeWithDefinition; - var implementPrototype = scope.implementPrototype; - var useNative = scope.useNative; - function register(name, options) { - var definition = options || {}; - if (!name) { - throw new Error("document.registerElement: first argument `name` must not be empty"); - } - if (name.indexOf("-") < 0) { - throw new Error("document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '" + String(name) + "'."); - } - if (isReservedTag(name)) { - throw new Error("Failed to execute 'registerElement' on 'Document': Registration failed for type '" + String(name) + "'. The type name is invalid."); - } - if (getRegisteredDefinition(name)) { - throw new Error("DuplicateDefinitionError: a type with name '" + String(name) + "' is already registered"); - } - if (!definition.prototype) { - definition.prototype = Object.create(HTMLElement.prototype); - } - definition.__name = name.toLowerCase(); - definition.lifecycle = definition.lifecycle || {}; - definition.ancestry = ancestry(definition.extends); - resolveTagName(definition); - resolvePrototypeChain(definition); - overrideAttributeApi(definition.prototype); - registerDefinition(definition.__name, definition); - definition.ctor = generateConstructor(definition); - definition.ctor.prototype = definition.prototype; - definition.prototype.constructor = definition.ctor; - if (scope.ready) { - upgradeDocumentTree(document); - } - return definition.ctor; - } - function overrideAttributeApi(prototype) { - if (prototype.setAttribute._polyfilled) { - return; - } - var setAttribute = prototype.setAttribute; - prototype.setAttribute = function(name, value) { - changeAttribute.call(this, name, value, setAttribute); - }; - var removeAttribute = prototype.removeAttribute; - prototype.removeAttribute = function(name) { - changeAttribute.call(this, name, null, removeAttribute); - }; - prototype.setAttribute._polyfilled = true; - } - function changeAttribute(name, value, operation) { - name = name.toLowerCase(); - var oldValue = this.getAttribute(name); - operation.apply(this, arguments); - var newValue = this.getAttribute(name); - if (this.attributeChangedCallback && newValue !== oldValue) { - this.attributeChangedCallback(name, oldValue, newValue); - } - } - function isReservedTag(name) { - for (var i = 0; i < reservedTagList.length; i++) { - if (name === reservedTagList[i]) { - return true; - } - } - } - var reservedTagList = [ "annotation-xml", "color-profile", "font-face", "font-face-src", "font-face-uri", "font-face-format", "font-face-name", "missing-glyph" ]; - function ancestry(extnds) { - var extendee = getRegisteredDefinition(extnds); - if (extendee) { - return ancestry(extendee.extends).concat([ extendee ]); - } - return []; - } - function resolveTagName(definition) { - var baseTag = definition.extends; - for (var i = 0, a; a = definition.ancestry[i]; i++) { - baseTag = a.is && a.tag; - } - definition.tag = baseTag || definition.__name; - if (baseTag) { - definition.is = definition.__name; - } - } - function resolvePrototypeChain(definition) { - if (!Object.__proto__) { - var nativePrototype = HTMLElement.prototype; - if (definition.is) { - var inst = document.createElement(definition.tag); - var expectedPrototype = Object.getPrototypeOf(inst); - if (expectedPrototype === definition.prototype) { - nativePrototype = expectedPrototype; - } - } - var proto = definition.prototype, ancestor; - while (proto && proto !== nativePrototype) { - ancestor = Object.getPrototypeOf(proto); - proto.__proto__ = ancestor; - proto = ancestor; - } - definition.native = nativePrototype; - } - } - function instantiate(definition) { - return upgradeWithDefinition(domCreateElement(definition.tag), definition); - } - var registry = {}; - function getRegisteredDefinition(name) { - if (name) { - return registry[name.toLowerCase()]; - } - } - function registerDefinition(name, definition) { - registry[name] = definition; - } - function generateConstructor(definition) { - return function() { - return instantiate(definition); - }; - } - var HTML_NAMESPACE = "http://www.w3.org/1999/xhtml"; - function createElementNS(namespace, tag, typeExtension) { - if (namespace === HTML_NAMESPACE) { - return createElement(tag, typeExtension); - } else { - return domCreateElementNS(namespace, tag); - } - } - function createElement(tag, typeExtension) { - if (tag) { - tag = tag.toLowerCase(); - } - if (typeExtension) { - typeExtension = typeExtension.toLowerCase(); - } - var definition = getRegisteredDefinition(typeExtension || tag); - if (definition) { - if (tag == definition.tag && typeExtension == definition.is) { - return new definition.ctor(); - } - if (!typeExtension && !definition.is) { - return new definition.ctor(); - } - } - var element; - if (typeExtension) { - element = createElement(tag); - element.setAttribute("is", typeExtension); - return element; - } - element = domCreateElement(tag); - if (tag.indexOf("-") >= 0) { - implementPrototype(element, HTMLElement); - } - return element; - } - var domCreateElement = document.createElement.bind(document); - var domCreateElementNS = document.createElementNS.bind(document); - var isInstance; - if (!Object.__proto__ && !useNative) { - isInstance = function(obj, ctor) { - var p = obj; - while (p) { - if (p === ctor.prototype) { - return true; - } - p = p.__proto__; - } - return false; - }; - } else { - isInstance = function(obj, base) { - return obj instanceof base; - }; - } - function wrapDomMethodToForceUpgrade(obj, methodName) { - var orig = obj[methodName]; - obj[methodName] = function() { - var n = orig.apply(this, arguments); - upgradeAll(n); - return n; - }; - } - wrapDomMethodToForceUpgrade(Node.prototype, "cloneNode"); - wrapDomMethodToForceUpgrade(document, "importNode"); - if (isIE11OrOlder) { - (function() { - var importNode = document.importNode; - document.importNode = function() { - var n = importNode.apply(document, arguments); - if (n.nodeType == n.DOCUMENT_FRAGMENT_NODE) { - var f = document.createDocumentFragment(); - f.appendChild(n); - return f; - } else { - return n; - } - }; - })(); - } - document.registerElement = register; - document.createElement = createElement; - document.createElementNS = createElementNS; - scope.registry = registry; - scope.instanceof = isInstance; - scope.reservedTagList = reservedTagList; - scope.getRegisteredDefinition = getRegisteredDefinition; - document.register = document.registerElement; -}); - -(function(scope) { - var useNative = scope.useNative; - var initializeModules = scope.initializeModules; - var isIE11OrOlder = /Trident/.test(navigator.userAgent); - if (useNative) { - var nop = function() {}; - scope.watchShadow = nop; - scope.upgrade = nop; - scope.upgradeAll = nop; - scope.upgradeDocumentTree = nop; - scope.upgradeSubtree = nop; - scope.takeRecords = nop; - scope.instanceof = function(obj, base) { - return obj instanceof base; - }; - } else { - initializeModules(); - } - var upgradeDocumentTree = scope.upgradeDocumentTree; - if (!window.wrap) { - if (window.ShadowDOMPolyfill) { - window.wrap = window.ShadowDOMPolyfill.wrapIfNeeded; - window.unwrap = window.ShadowDOMPolyfill.unwrapIfNeeded; - } else { - window.wrap = window.unwrap = function(node) { - return node; - }; - } - } - function bootstrap() { - upgradeDocumentTree(window.wrap(document)); - if (window.HTMLImports) { - window.HTMLImports.__importsParsingHook = function(elt) { - upgradeDocumentTree(wrap(elt.import)); - }; - } - window.CustomElements.ready = true; - setTimeout(function() { - window.CustomElements.readyTime = Date.now(); - if (window.HTMLImports) { - window.CustomElements.elapsed = window.CustomElements.readyTime - window.HTMLImports.readyTime; - } - document.dispatchEvent(new CustomEvent("WebComponentsReady", { - bubbles: true - })); - }); - } - if (isIE11OrOlder && typeof window.CustomEvent !== "function") { - window.CustomEvent = function(inType, params) { - params = params || {}; - var e = document.createEvent("CustomEvent"); - e.initCustomEvent(inType, Boolean(params.bubbles), Boolean(params.cancelable), params.detail); - e.preventDefault = function() { - Object.defineProperty(this, "defaultPrevented", { - get: function() { - return true; - } - }); - }; - return e; - }; - window.CustomEvent.prototype = window.Event.prototype; - } - if (document.readyState === "complete" || scope.flags.eager) { - bootstrap(); - } else if (document.readyState === "interactive" && !window.attachEvent && (!window.HTMLImports || window.HTMLImports.ready)) { - bootstrap(); - } else { - var loadEvent = window.HTMLImports && !window.HTMLImports.ready ? "HTMLImportsLoaded" : "DOMContentLoaded"; - window.addEventListener(loadEvent, bootstrap); - } - scope.isIE11OrOlder = isIE11OrOlder; -})(window.CustomElements); \ No newline at end of file diff --git a/bower_components/webcomponentsjs/CustomElements.min.js b/bower_components/webcomponentsjs/CustomElements.min.js deleted file mode 100644 index c4eff21..0000000 --- a/bower_components/webcomponentsjs/CustomElements.min.js +++ /dev/null @@ -1,11 +0,0 @@ -/** - * @license - * Copyright (c) 2014 The Polymer Project Authors. All rights reserved. - * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt - * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt - * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt - * Code distributed by Google as part of the polymer project is also - * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt - */ -// @version 0.7.5 -"undefined"==typeof WeakMap&&!function(){var e=Object.defineProperty,t=Date.now()%1e9,n=function(){this.name="__st"+(1e9*Math.random()>>>0)+(t++ +"__")};n.prototype={set:function(t,n){var o=t[this.name];return o&&o[0]===t?o[1]=n:e(t,this.name,{value:[t,n],writable:!0}),this},get:function(e){var t;return(t=e[this.name])&&t[0]===e?t[1]:void 0},"delete":function(e){var t=e[this.name];return t&&t[0]===e?(t[0]=t[1]=void 0,!0):!1},has:function(e){var t=e[this.name];return t?t[0]===e:!1}},window.WeakMap=n}(),function(e){function t(e){_.push(e),b||(b=!0,h(o))}function n(e){return window.ShadowDOMPolyfill&&window.ShadowDOMPolyfill.wrapIfNeeded(e)||e}function o(){b=!1;var e=_;_=[],e.sort(function(e,t){return e.uid_-t.uid_});var t=!1;e.forEach(function(e){var n=e.takeRecords();r(e),n.length&&(e.callback_(n,e),t=!0)}),t&&o()}function r(e){e.nodes_.forEach(function(t){var n=v.get(t);n&&n.forEach(function(t){t.observer===e&&t.removeTransientObservers()})})}function i(e,t){for(var n=e;n;n=n.parentNode){var o=v.get(n);if(o)for(var r=0;r0){var r=n[o-1],i=p(r,e);if(i)return void(n[o-1]=i)}else t(this.observer);n[o]=e},addListeners:function(){this.addListeners_(this.target)},addListeners_:function(e){var t=this.options;t.attributes&&e.addEventListener("DOMAttrModified",this,!0),t.characterData&&e.addEventListener("DOMCharacterDataModified",this,!0),t.childList&&e.addEventListener("DOMNodeInserted",this,!0),(t.childList||t.subtree)&&e.addEventListener("DOMNodeRemoved",this,!0)},removeListeners:function(){this.removeListeners_(this.target)},removeListeners_:function(e){var t=this.options;t.attributes&&e.removeEventListener("DOMAttrModified",this,!0),t.characterData&&e.removeEventListener("DOMCharacterDataModified",this,!0),t.childList&&e.removeEventListener("DOMNodeInserted",this,!0),(t.childList||t.subtree)&&e.removeEventListener("DOMNodeRemoved",this,!0)},addTransientObserver:function(e){if(e!==this.target){this.addListeners_(e),this.transientObservedNodes.push(e);var t=v.get(e);t||v.set(e,t=[]),t.push(this)}},removeTransientObservers:function(){var e=this.transientObservedNodes;this.transientObservedNodes=[],e.forEach(function(e){this.removeListeners_(e);for(var t=v.get(e),n=0;n=0)){n.push(e);for(var o,r=e.querySelectorAll("link[rel="+a+"]"),d=0,s=r.length;s>d&&(o=r[d]);d++)o["import"]&&i(o["import"],t,n);t(e)}}var a=window.HTMLImports?window.HTMLImports.IMPORT_LINK_TYPE:"none";e.forDocumentTree=r,e.forSubtree=t}),window.CustomElements.addModule(function(e){function t(e){return n(e)||o(e)}function n(t){return e.upgrade(t)?!0:void d(t)}function o(e){_(e,function(e){return n(e)?!0:void 0})}function r(e){d(e),f(e)&&_(e,function(e){d(e)})}function i(e){O.push(e),N||(N=!0,setTimeout(a))}function a(){N=!1;for(var e,t=O,n=0,o=t.length;o>n&&(e=t[n]);n++)e();O=[]}function d(e){y?i(function(){s(e)}):s(e)}function s(e){e.__upgraded__&&(e.attachedCallback||e.detachedCallback)&&!e.__attached&&f(e)&&(e.__attached=!0,e.attachedCallback&&e.attachedCallback())}function u(e){c(e),_(e,function(e){c(e)})}function c(e){y?i(function(){l(e)}):l(e)}function l(e){e.__upgraded__&&(e.attachedCallback||e.detachedCallback)&&e.__attached&&!f(e)&&(e.__attached=!1,e.detachedCallback&&e.detachedCallback())}function f(e){for(var t=e,n=wrap(document);t;){if(t==n)return!0;t=t.parentNode||t.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&t.host}}function p(e){if(e.shadowRoot&&!e.shadowRoot.__watched){b.dom&&console.log("watching shadow-root for: ",e.localName);for(var t=e.shadowRoot;t;)v(t),t=t.olderShadowRoot}}function m(e){if(b.dom){var n=e[0];if(n&&"childList"===n.type&&n.addedNodes&&n.addedNodes){for(var o=n.addedNodes[0];o&&o!==document&&!o.host;)o=o.parentNode;var r=o&&(o.URL||o._URL||o.host&&o.host.localName)||"";r=r.split("/?").shift().split("/").pop()}console.group("mutations (%d) [%s]",e.length,r||"")}e.forEach(function(e){"childList"===e.type&&(M(e.addedNodes,function(e){e.localName&&t(e)}),M(e.removedNodes,function(e){e.localName&&u(e)}))}),b.dom&&console.groupEnd()}function h(e){for(e=window.wrap(e),e||(e=window.wrap(document));e.parentNode;)e=e.parentNode;var t=e.__observer;t&&(m(t.takeRecords()),a())}function v(e){if(!e.__observer){var t=new MutationObserver(m);t.observe(e,{childList:!0,subtree:!0}),e.__observer=t}}function w(e){e=window.wrap(e),b.dom&&console.group("upgradeDocument: ",e.baseURI.split("/").pop()),t(e),v(e),b.dom&&console.groupEnd()}function g(e){E(e,w)}var b=e.flags,_=e.forSubtree,E=e.forDocumentTree,y=!window.MutationObserver||window.MutationObserver===window.JsMutationObserver;e.hasPolyfillMutations=y;var N=!1,O=[],M=Array.prototype.forEach.call.bind(Array.prototype.forEach),L=Element.prototype.createShadowRoot;L&&(Element.prototype.createShadowRoot=function(){var e=L.call(this);return window.CustomElements.watchShadow(this),e}),e.watchShadow=p,e.upgradeDocumentTree=g,e.upgradeSubtree=o,e.upgradeAll=t,e.attachedNode=r,e.takeRecords=h}),window.CustomElements.addModule(function(e){function t(t){if(!t.__upgraded__&&t.nodeType===Node.ELEMENT_NODE){var o=t.getAttribute("is"),r=e.getRegisteredDefinition(o||t.localName);if(r){if(o&&r.tag==t.localName)return n(t,r);if(!o&&!r["extends"])return n(t,r)}}}function n(t,n){return a.upgrade&&console.group("upgrade:",t.localName),n.is&&t.setAttribute("is",n.is),o(t,n),t.__upgraded__=!0,i(t),e.attachedNode(t),e.upgradeSubtree(t),a.upgrade&&console.groupEnd(),t}function o(e,t){Object.__proto__?e.__proto__=t.prototype:(r(e,t.prototype,t["native"]),e.__proto__=t.prototype)}function r(e,t,n){for(var o={},r=t;r!==n&&r!==HTMLElement.prototype;){for(var i,a=Object.getOwnPropertyNames(r),d=0;i=a[d];d++)o[i]||(Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i)),o[i]=1);r=Object.getPrototypeOf(r)}}function i(e){e.createdCallback&&e.createdCallback()}var a=e.flags;e.upgrade=t,e.upgradeWithDefinition=n,e.implementPrototype=o}),window.CustomElements.addModule(function(e){function t(t,o){var s=o||{};if(!t)throw new Error("document.registerElement: first argument `name` must not be empty");if(t.indexOf("-")<0)throw new Error("document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '"+String(t)+"'.");if(r(t))throw new Error("Failed to execute 'registerElement' on 'Document': Registration failed for type '"+String(t)+"'. The type name is invalid.");if(u(t))throw new Error("DuplicateDefinitionError: a type with name '"+String(t)+"' is already registered");return s.prototype||(s.prototype=Object.create(HTMLElement.prototype)),s.__name=t.toLowerCase(),s.lifecycle=s.lifecycle||{},s.ancestry=i(s["extends"]),a(s),d(s),n(s.prototype),c(s.__name,s),s.ctor=l(s),s.ctor.prototype=s.prototype,s.prototype.constructor=s.ctor,e.ready&&w(document),s.ctor}function n(e){if(!e.setAttribute._polyfilled){var t=e.setAttribute;e.setAttribute=function(e,n){o.call(this,e,n,t)};var n=e.removeAttribute;e.removeAttribute=function(e){o.call(this,e,null,n)},e.setAttribute._polyfilled=!0}}function o(e,t,n){e=e.toLowerCase();var o=this.getAttribute(e);n.apply(this,arguments);var r=this.getAttribute(e);this.attributeChangedCallback&&r!==o&&this.attributeChangedCallback(e,o,r)}function r(e){for(var t=0;t=0&&_(o,HTMLElement),o)}function m(e,t){var n=e[t];e[t]=function(){var e=n.apply(this,arguments);return g(e),e}}var h,v=e.isIE11OrOlder,w=e.upgradeDocumentTree,g=e.upgradeAll,b=e.upgradeWithDefinition,_=e.implementPrototype,E=e.useNative,y=["annotation-xml","color-profile","font-face","font-face-src","font-face-uri","font-face-format","font-face-name","missing-glyph"],N={},O="http://www.w3.org/1999/xhtml",M=document.createElement.bind(document),L=document.createElementNS.bind(document);h=Object.__proto__||E?function(e,t){return e instanceof t}:function(e,t){for(var n=e;n;){if(n===t.prototype)return!0;n=n.__proto__}return!1},m(Node.prototype,"cloneNode"),m(document,"importNode"),v&&!function(){var e=document.importNode;document.importNode=function(){var t=e.apply(document,arguments);if(t.nodeType==t.DOCUMENT_FRAGMENT_NODE){var n=document.createDocumentFragment();return n.appendChild(t),n}return t}}(),document.registerElement=t,document.createElement=p,document.createElementNS=f,e.registry=N,e["instanceof"]=h,e.reservedTagList=y,e.getRegisteredDefinition=u,document.register=document.registerElement}),function(e){function t(){a(window.wrap(document)),window.HTMLImports&&(window.HTMLImports.__importsParsingHook=function(e){a(wrap(e["import"]))}),window.CustomElements.ready=!0,setTimeout(function(){window.CustomElements.readyTime=Date.now(),window.HTMLImports&&(window.CustomElements.elapsed=window.CustomElements.readyTime-window.HTMLImports.readyTime),document.dispatchEvent(new CustomEvent("WebComponentsReady",{bubbles:!0}))})}var n=e.useNative,o=e.initializeModules,r=/Trident/.test(navigator.userAgent);if(n){var i=function(){};e.watchShadow=i,e.upgrade=i,e.upgradeAll=i,e.upgradeDocumentTree=i,e.upgradeSubtree=i,e.takeRecords=i,e["instanceof"]=function(e,t){return e instanceof t}}else o();var a=e.upgradeDocumentTree;if(window.wrap||(window.ShadowDOMPolyfill?(window.wrap=window.ShadowDOMPolyfill.wrapIfNeeded,window.unwrap=window.ShadowDOMPolyfill.unwrapIfNeeded):window.wrap=window.unwrap=function(e){return e}),r&&"function"!=typeof window.CustomEvent&&(window.CustomEvent=function(e,t){t=t||{};var n=document.createEvent("CustomEvent");return n.initCustomEvent(e,Boolean(t.bubbles),Boolean(t.cancelable),t.detail),n.preventDefault=function(){Object.defineProperty(this,"defaultPrevented",{get:function(){return!0}})},n},window.CustomEvent.prototype=window.Event.prototype),"complete"===document.readyState||e.flags.eager)t();else if("interactive"!==document.readyState||window.attachEvent||window.HTMLImports&&!window.HTMLImports.ready){var d=window.HTMLImports&&!window.HTMLImports.ready?"HTMLImportsLoaded":"DOMContentLoaded";window.addEventListener(d,t)}else t();e.isIE11OrOlder=r}(window.CustomElements); \ No newline at end of file diff --git a/bower_components/webcomponentsjs/HTMLImports.js b/bower_components/webcomponentsjs/HTMLImports.js deleted file mode 100644 index e9f03ec..0000000 --- a/bower_components/webcomponentsjs/HTMLImports.js +++ /dev/null @@ -1,1085 +0,0 @@ -/** - * @license - * Copyright (c) 2014 The Polymer Project Authors. All rights reserved. - * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt - * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt - * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt - * Code distributed by Google as part of the polymer project is also - * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt - */ -// @version 0.7.5 -if (typeof WeakMap === "undefined") { - (function() { - var defineProperty = Object.defineProperty; - var counter = Date.now() % 1e9; - var WeakMap = function() { - this.name = "__st" + (Math.random() * 1e9 >>> 0) + (counter++ + "__"); - }; - WeakMap.prototype = { - set: function(key, value) { - var entry = key[this.name]; - if (entry && entry[0] === key) entry[1] = value; else defineProperty(key, this.name, { - value: [ key, value ], - writable: true - }); - return this; - }, - get: function(key) { - var entry; - return (entry = key[this.name]) && entry[0] === key ? entry[1] : undefined; - }, - "delete": function(key) { - var entry = key[this.name]; - if (!entry || entry[0] !== key) return false; - entry[0] = entry[1] = undefined; - return true; - }, - has: function(key) { - var entry = key[this.name]; - if (!entry) return false; - return entry[0] === key; - } - }; - window.WeakMap = WeakMap; - })(); -} - -(function(global) { - var registrationsTable = new WeakMap(); - var setImmediate; - if (/Trident|Edge/.test(navigator.userAgent)) { - setImmediate = setTimeout; - } else if (window.setImmediate) { - setImmediate = window.setImmediate; - } else { - var setImmediateQueue = []; - var sentinel = String(Math.random()); - window.addEventListener("message", function(e) { - if (e.data === sentinel) { - var queue = setImmediateQueue; - setImmediateQueue = []; - queue.forEach(function(func) { - func(); - }); - } - }); - setImmediate = function(func) { - setImmediateQueue.push(func); - window.postMessage(sentinel, "*"); - }; - } - var isScheduled = false; - var scheduledObservers = []; - function scheduleCallback(observer) { - scheduledObservers.push(observer); - if (!isScheduled) { - isScheduled = true; - setImmediate(dispatchCallbacks); - } - } - function wrapIfNeeded(node) { - return window.ShadowDOMPolyfill && window.ShadowDOMPolyfill.wrapIfNeeded(node) || node; - } - function dispatchCallbacks() { - isScheduled = false; - var observers = scheduledObservers; - scheduledObservers = []; - observers.sort(function(o1, o2) { - return o1.uid_ - o2.uid_; - }); - var anyNonEmpty = false; - observers.forEach(function(observer) { - var queue = observer.takeRecords(); - removeTransientObserversFor(observer); - if (queue.length) { - observer.callback_(queue, observer); - anyNonEmpty = true; - } - }); - if (anyNonEmpty) dispatchCallbacks(); - } - function removeTransientObserversFor(observer) { - observer.nodes_.forEach(function(node) { - var registrations = registrationsTable.get(node); - if (!registrations) return; - registrations.forEach(function(registration) { - if (registration.observer === observer) registration.removeTransientObservers(); - }); - }); - } - function forEachAncestorAndObserverEnqueueRecord(target, callback) { - for (var node = target; node; node = node.parentNode) { - var registrations = registrationsTable.get(node); - if (registrations) { - for (var j = 0; j < registrations.length; j++) { - var registration = registrations[j]; - var options = registration.options; - if (node !== target && !options.subtree) continue; - var record = callback(options); - if (record) registration.enqueue(record); - } - } - } - } - var uidCounter = 0; - function JsMutationObserver(callback) { - this.callback_ = callback; - this.nodes_ = []; - this.records_ = []; - this.uid_ = ++uidCounter; - } - JsMutationObserver.prototype = { - observe: function(target, options) { - target = wrapIfNeeded(target); - if (!options.childList && !options.attributes && !options.characterData || options.attributeOldValue && !options.attributes || options.attributeFilter && options.attributeFilter.length && !options.attributes || options.characterDataOldValue && !options.characterData) { - throw new SyntaxError(); - } - var registrations = registrationsTable.get(target); - if (!registrations) registrationsTable.set(target, registrations = []); - var registration; - for (var i = 0; i < registrations.length; i++) { - if (registrations[i].observer === this) { - registration = registrations[i]; - registration.removeListeners(); - registration.options = options; - break; - } - } - if (!registration) { - registration = new Registration(this, target, options); - registrations.push(registration); - this.nodes_.push(target); - } - registration.addListeners(); - }, - disconnect: function() { - this.nodes_.forEach(function(node) { - var registrations = registrationsTable.get(node); - for (var i = 0; i < registrations.length; i++) { - var registration = registrations[i]; - if (registration.observer === this) { - registration.removeListeners(); - registrations.splice(i, 1); - break; - } - } - }, this); - this.records_ = []; - }, - takeRecords: function() { - var copyOfRecords = this.records_; - this.records_ = []; - return copyOfRecords; - } - }; - function MutationRecord(type, target) { - this.type = type; - this.target = target; - this.addedNodes = []; - this.removedNodes = []; - this.previousSibling = null; - this.nextSibling = null; - this.attributeName = null; - this.attributeNamespace = null; - this.oldValue = null; - } - function copyMutationRecord(original) { - var record = new MutationRecord(original.type, original.target); - record.addedNodes = original.addedNodes.slice(); - record.removedNodes = original.removedNodes.slice(); - record.previousSibling = original.previousSibling; - record.nextSibling = original.nextSibling; - record.attributeName = original.attributeName; - record.attributeNamespace = original.attributeNamespace; - record.oldValue = original.oldValue; - return record; - } - var currentRecord, recordWithOldValue; - function getRecord(type, target) { - return currentRecord = new MutationRecord(type, target); - } - function getRecordWithOldValue(oldValue) { - if (recordWithOldValue) return recordWithOldValue; - recordWithOldValue = copyMutationRecord(currentRecord); - recordWithOldValue.oldValue = oldValue; - return recordWithOldValue; - } - function clearRecords() { - currentRecord = recordWithOldValue = undefined; - } - function recordRepresentsCurrentMutation(record) { - return record === recordWithOldValue || record === currentRecord; - } - function selectRecord(lastRecord, newRecord) { - if (lastRecord === newRecord) return lastRecord; - if (recordWithOldValue && recordRepresentsCurrentMutation(lastRecord)) return recordWithOldValue; - return null; - } - function Registration(observer, target, options) { - this.observer = observer; - this.target = target; - this.options = options; - this.transientObservedNodes = []; - } - Registration.prototype = { - enqueue: function(record) { - var records = this.observer.records_; - var length = records.length; - if (records.length > 0) { - var lastRecord = records[length - 1]; - var recordToReplaceLast = selectRecord(lastRecord, record); - if (recordToReplaceLast) { - records[length - 1] = recordToReplaceLast; - return; - } - } else { - scheduleCallback(this.observer); - } - records[length] = record; - }, - addListeners: function() { - this.addListeners_(this.target); - }, - addListeners_: function(node) { - var options = this.options; - if (options.attributes) node.addEventListener("DOMAttrModified", this, true); - if (options.characterData) node.addEventListener("DOMCharacterDataModified", this, true); - if (options.childList) node.addEventListener("DOMNodeInserted", this, true); - if (options.childList || options.subtree) node.addEventListener("DOMNodeRemoved", this, true); - }, - removeListeners: function() { - this.removeListeners_(this.target); - }, - removeListeners_: function(node) { - var options = this.options; - if (options.attributes) node.removeEventListener("DOMAttrModified", this, true); - if (options.characterData) node.removeEventListener("DOMCharacterDataModified", this, true); - if (options.childList) node.removeEventListener("DOMNodeInserted", this, true); - if (options.childList || options.subtree) node.removeEventListener("DOMNodeRemoved", this, true); - }, - addTransientObserver: function(node) { - if (node === this.target) return; - this.addListeners_(node); - this.transientObservedNodes.push(node); - var registrations = registrationsTable.get(node); - if (!registrations) registrationsTable.set(node, registrations = []); - registrations.push(this); - }, - removeTransientObservers: function() { - var transientObservedNodes = this.transientObservedNodes; - this.transientObservedNodes = []; - transientObservedNodes.forEach(function(node) { - this.removeListeners_(node); - var registrations = registrationsTable.get(node); - for (var i = 0; i < registrations.length; i++) { - if (registrations[i] === this) { - registrations.splice(i, 1); - break; - } - } - }, this); - }, - handleEvent: function(e) { - e.stopImmediatePropagation(); - switch (e.type) { - case "DOMAttrModified": - var name = e.attrName; - var namespace = e.relatedNode.namespaceURI; - var target = e.target; - var record = new getRecord("attributes", target); - record.attributeName = name; - record.attributeNamespace = namespace; - var oldValue = e.attrChange === MutationEvent.ADDITION ? null : e.prevValue; - forEachAncestorAndObserverEnqueueRecord(target, function(options) { - if (!options.attributes) return; - if (options.attributeFilter && options.attributeFilter.length && options.attributeFilter.indexOf(name) === -1 && options.attributeFilter.indexOf(namespace) === -1) { - return; - } - if (options.attributeOldValue) return getRecordWithOldValue(oldValue); - return record; - }); - break; - - case "DOMCharacterDataModified": - var target = e.target; - var record = getRecord("characterData", target); - var oldValue = e.prevValue; - forEachAncestorAndObserverEnqueueRecord(target, function(options) { - if (!options.characterData) return; - if (options.characterDataOldValue) return getRecordWithOldValue(oldValue); - return record; - }); - break; - - case "DOMNodeRemoved": - this.addTransientObserver(e.target); - - case "DOMNodeInserted": - var changedNode = e.target; - var addedNodes, removedNodes; - if (e.type === "DOMNodeInserted") { - addedNodes = [ changedNode ]; - removedNodes = []; - } else { - addedNodes = []; - removedNodes = [ changedNode ]; - } - var previousSibling = changedNode.previousSibling; - var nextSibling = changedNode.nextSibling; - var record = getRecord("childList", e.target.parentNode); - record.addedNodes = addedNodes; - record.removedNodes = removedNodes; - record.previousSibling = previousSibling; - record.nextSibling = nextSibling; - forEachAncestorAndObserverEnqueueRecord(e.relatedNode, function(options) { - if (!options.childList) return; - return record; - }); - } - clearRecords(); - } - }; - global.JsMutationObserver = JsMutationObserver; - if (!global.MutationObserver) global.MutationObserver = JsMutationObserver; -})(this); - -window.HTMLImports = window.HTMLImports || { - flags: {} -}; - -(function(scope) { - var IMPORT_LINK_TYPE = "import"; - var useNative = Boolean(IMPORT_LINK_TYPE in document.createElement("link")); - var hasShadowDOMPolyfill = Boolean(window.ShadowDOMPolyfill); - var wrap = function(node) { - return hasShadowDOMPolyfill ? window.ShadowDOMPolyfill.wrapIfNeeded(node) : node; - }; - var rootDocument = wrap(document); - var currentScriptDescriptor = { - get: function() { - var script = window.HTMLImports.currentScript || document.currentScript || (document.readyState !== "complete" ? document.scripts[document.scripts.length - 1] : null); - return wrap(script); - }, - configurable: true - }; - Object.defineProperty(document, "_currentScript", currentScriptDescriptor); - Object.defineProperty(rootDocument, "_currentScript", currentScriptDescriptor); - var isIE = /Trident/.test(navigator.userAgent); - function whenReady(callback, doc) { - doc = doc || rootDocument; - whenDocumentReady(function() { - watchImportsLoad(callback, doc); - }, doc); - } - var requiredReadyState = isIE ? "complete" : "interactive"; - var READY_EVENT = "readystatechange"; - function isDocumentReady(doc) { - return doc.readyState === "complete" || doc.readyState === requiredReadyState; - } - function whenDocumentReady(callback, doc) { - if (!isDocumentReady(doc)) { - var checkReady = function() { - if (doc.readyState === "complete" || doc.readyState === requiredReadyState) { - doc.removeEventListener(READY_EVENT, checkReady); - whenDocumentReady(callback, doc); - } - }; - doc.addEventListener(READY_EVENT, checkReady); - } else if (callback) { - callback(); - } - } - function markTargetLoaded(event) { - event.target.__loaded = true; - } - function watchImportsLoad(callback, doc) { - var imports = doc.querySelectorAll("link[rel=import]"); - var parsedCount = 0, importCount = imports.length, newImports = [], errorImports = []; - function checkDone() { - if (parsedCount == importCount && callback) { - callback({ - allImports: imports, - loadedImports: newImports, - errorImports: errorImports - }); - } - } - function loadedImport(e) { - markTargetLoaded(e); - newImports.push(this); - parsedCount++; - checkDone(); - } - function errorLoadingImport(e) { - errorImports.push(this); - parsedCount++; - checkDone(); - } - if (importCount) { - for (var i = 0, imp; i < importCount && (imp = imports[i]); i++) { - if (isImportLoaded(imp)) { - parsedCount++; - checkDone(); - } else { - imp.addEventListener("load", loadedImport); - imp.addEventListener("error", errorLoadingImport); - } - } - } else { - checkDone(); - } - } - function isImportLoaded(link) { - return useNative ? link.__loaded || link.import && link.import.readyState !== "loading" : link.__importParsed; - } - if (useNative) { - new MutationObserver(function(mxns) { - for (var i = 0, l = mxns.length, m; i < l && (m = mxns[i]); i++) { - if (m.addedNodes) { - handleImports(m.addedNodes); - } - } - }).observe(document.head, { - childList: true - }); - function handleImports(nodes) { - for (var i = 0, l = nodes.length, n; i < l && (n = nodes[i]); i++) { - if (isImport(n)) { - handleImport(n); - } - } - } - function isImport(element) { - return element.localName === "link" && element.rel === "import"; - } - function handleImport(element) { - var loaded = element.import; - if (loaded) { - markTargetLoaded({ - target: element - }); - } else { - element.addEventListener("load", markTargetLoaded); - element.addEventListener("error", markTargetLoaded); - } - } - (function() { - if (document.readyState === "loading") { - var imports = document.querySelectorAll("link[rel=import]"); - for (var i = 0, l = imports.length, imp; i < l && (imp = imports[i]); i++) { - handleImport(imp); - } - } - })(); - } - whenReady(function(detail) { - window.HTMLImports.ready = true; - window.HTMLImports.readyTime = new Date().getTime(); - var evt = rootDocument.createEvent("CustomEvent"); - evt.initCustomEvent("HTMLImportsLoaded", true, true, detail); - rootDocument.dispatchEvent(evt); - }); - scope.IMPORT_LINK_TYPE = IMPORT_LINK_TYPE; - scope.useNative = useNative; - scope.rootDocument = rootDocument; - scope.whenReady = whenReady; - scope.isIE = isIE; -})(window.HTMLImports); - -(function(scope) { - var modules = []; - var addModule = function(module) { - modules.push(module); - }; - var initializeModules = function() { - modules.forEach(function(module) { - module(scope); - }); - }; - scope.addModule = addModule; - scope.initializeModules = initializeModules; -})(window.HTMLImports); - -window.HTMLImports.addModule(function(scope) { - var CSS_URL_REGEXP = /(url\()([^)]*)(\))/g; - var CSS_IMPORT_REGEXP = /(@import[\s]+(?!url\())([^;]*)(;)/g; - var path = { - resolveUrlsInStyle: function(style, linkUrl) { - var doc = style.ownerDocument; - var resolver = doc.createElement("a"); - style.textContent = this.resolveUrlsInCssText(style.textContent, linkUrl, resolver); - return style; - }, - resolveUrlsInCssText: function(cssText, linkUrl, urlObj) { - var r = this.replaceUrls(cssText, urlObj, linkUrl, CSS_URL_REGEXP); - r = this.replaceUrls(r, urlObj, linkUrl, CSS_IMPORT_REGEXP); - return r; - }, - replaceUrls: function(text, urlObj, linkUrl, regexp) { - return text.replace(regexp, function(m, pre, url, post) { - var urlPath = url.replace(/["']/g, ""); - if (linkUrl) { - urlPath = new URL(urlPath, linkUrl).href; - } - urlObj.href = urlPath; - urlPath = urlObj.href; - return pre + "'" + urlPath + "'" + post; - }); - } - }; - scope.path = path; -}); - -window.HTMLImports.addModule(function(scope) { - var xhr = { - async: true, - ok: function(request) { - return request.status >= 200 && request.status < 300 || request.status === 304 || request.status === 0; - }, - load: function(url, next, nextContext) { - var request = new XMLHttpRequest(); - if (scope.flags.debug || scope.flags.bust) { - url += "?" + Math.random(); - } - request.open("GET", url, xhr.async); - request.addEventListener("readystatechange", function(e) { - if (request.readyState === 4) { - var locationHeader = request.getResponseHeader("Location"); - var redirectedUrl = null; - if (locationHeader) { - var redirectedUrl = locationHeader.substr(0, 1) === "/" ? location.origin + locationHeader : locationHeader; - } - next.call(nextContext, !xhr.ok(request) && request, request.response || request.responseText, redirectedUrl); - } - }); - request.send(); - return request; - }, - loadDocument: function(url, next, nextContext) { - this.load(url, next, nextContext).responseType = "document"; - } - }; - scope.xhr = xhr; -}); - -window.HTMLImports.addModule(function(scope) { - var xhr = scope.xhr; - var flags = scope.flags; - var Loader = function(onLoad, onComplete) { - this.cache = {}; - this.onload = onLoad; - this.oncomplete = onComplete; - this.inflight = 0; - this.pending = {}; - }; - Loader.prototype = { - addNodes: function(nodes) { - this.inflight += nodes.length; - for (var i = 0, l = nodes.length, n; i < l && (n = nodes[i]); i++) { - this.require(n); - } - this.checkDone(); - }, - addNode: function(node) { - this.inflight++; - this.require(node); - this.checkDone(); - }, - require: function(elt) { - var url = elt.src || elt.href; - elt.__nodeUrl = url; - if (!this.dedupe(url, elt)) { - this.fetch(url, elt); - } - }, - dedupe: function(url, elt) { - if (this.pending[url]) { - this.pending[url].push(elt); - return true; - } - var resource; - if (this.cache[url]) { - this.onload(url, elt, this.cache[url]); - this.tail(); - return true; - } - this.pending[url] = [ elt ]; - return false; - }, - fetch: function(url, elt) { - flags.load && console.log("fetch", url, elt); - if (!url) { - setTimeout(function() { - this.receive(url, elt, { - error: "href must be specified" - }, null); - }.bind(this), 0); - } else if (url.match(/^data:/)) { - var pieces = url.split(","); - var header = pieces[0]; - var body = pieces[1]; - if (header.indexOf(";base64") > -1) { - body = atob(body); - } else { - body = decodeURIComponent(body); - } - setTimeout(function() { - this.receive(url, elt, null, body); - }.bind(this), 0); - } else { - var receiveXhr = function(err, resource, redirectedUrl) { - this.receive(url, elt, err, resource, redirectedUrl); - }.bind(this); - xhr.load(url, receiveXhr); - } - }, - receive: function(url, elt, err, resource, redirectedUrl) { - this.cache[url] = resource; - var $p = this.pending[url]; - for (var i = 0, l = $p.length, p; i < l && (p = $p[i]); i++) { - this.onload(url, p, resource, err, redirectedUrl); - this.tail(); - } - this.pending[url] = null; - }, - tail: function() { - --this.inflight; - this.checkDone(); - }, - checkDone: function() { - if (!this.inflight) { - this.oncomplete(); - } - } - }; - scope.Loader = Loader; -}); - -window.HTMLImports.addModule(function(scope) { - var Observer = function(addCallback) { - this.addCallback = addCallback; - this.mo = new MutationObserver(this.handler.bind(this)); - }; - Observer.prototype = { - handler: function(mutations) { - for (var i = 0, l = mutations.length, m; i < l && (m = mutations[i]); i++) { - if (m.type === "childList" && m.addedNodes.length) { - this.addedNodes(m.addedNodes); - } - } - }, - addedNodes: function(nodes) { - if (this.addCallback) { - this.addCallback(nodes); - } - for (var i = 0, l = nodes.length, n, loading; i < l && (n = nodes[i]); i++) { - if (n.children && n.children.length) { - this.addedNodes(n.children); - } - } - }, - observe: function(root) { - this.mo.observe(root, { - childList: true, - subtree: true - }); - } - }; - scope.Observer = Observer; -}); - -window.HTMLImports.addModule(function(scope) { - var path = scope.path; - var rootDocument = scope.rootDocument; - var flags = scope.flags; - var isIE = scope.isIE; - var IMPORT_LINK_TYPE = scope.IMPORT_LINK_TYPE; - var IMPORT_SELECTOR = "link[rel=" + IMPORT_LINK_TYPE + "]"; - var importParser = { - documentSelectors: IMPORT_SELECTOR, - importsSelectors: [ IMPORT_SELECTOR, "link[rel=stylesheet]", "style", "script:not([type])", 'script[type="application/javascript"]', 'script[type="text/javascript"]' ].join(","), - map: { - link: "parseLink", - script: "parseScript", - style: "parseStyle" - }, - dynamicElements: [], - parseNext: function() { - var next = this.nextToParse(); - if (next) { - this.parse(next); - } - }, - parse: function(elt) { - if (this.isParsed(elt)) { - flags.parse && console.log("[%s] is already parsed", elt.localName); - return; - } - var fn = this[this.map[elt.localName]]; - if (fn) { - this.markParsing(elt); - fn.call(this, elt); - } - }, - parseDynamic: function(elt, quiet) { - this.dynamicElements.push(elt); - if (!quiet) { - this.parseNext(); - } - }, - markParsing: function(elt) { - flags.parse && console.log("parsing", elt); - this.parsingElement = elt; - }, - markParsingComplete: function(elt) { - elt.__importParsed = true; - this.markDynamicParsingComplete(elt); - if (elt.__importElement) { - elt.__importElement.__importParsed = true; - this.markDynamicParsingComplete(elt.__importElement); - } - this.parsingElement = null; - flags.parse && console.log("completed", elt); - }, - markDynamicParsingComplete: function(elt) { - var i = this.dynamicElements.indexOf(elt); - if (i >= 0) { - this.dynamicElements.splice(i, 1); - } - }, - parseImport: function(elt) { - if (window.HTMLImports.__importsParsingHook) { - window.HTMLImports.__importsParsingHook(elt); - } - if (elt.import) { - elt.import.__importParsed = true; - } - this.markParsingComplete(elt); - if (elt.__resource && !elt.__error) { - elt.dispatchEvent(new CustomEvent("load", { - bubbles: false - })); - } else { - elt.dispatchEvent(new CustomEvent("error", { - bubbles: false - })); - } - if (elt.__pending) { - var fn; - while (elt.__pending.length) { - fn = elt.__pending.shift(); - if (fn) { - fn({ - target: elt - }); - } - } - } - this.parseNext(); - }, - parseLink: function(linkElt) { - if (nodeIsImport(linkElt)) { - this.parseImport(linkElt); - } else { - linkElt.href = linkElt.href; - this.parseGeneric(linkElt); - } - }, - parseStyle: function(elt) { - var src = elt; - elt = cloneStyle(elt); - src.__appliedElement = elt; - elt.__importElement = src; - this.parseGeneric(elt); - }, - parseGeneric: function(elt) { - this.trackElement(elt); - this.addElementToDocument(elt); - }, - rootImportForElement: function(elt) { - var n = elt; - while (n.ownerDocument.__importLink) { - n = n.ownerDocument.__importLink; - } - return n; - }, - addElementToDocument: function(elt) { - var port = this.rootImportForElement(elt.__importElement || elt); - port.parentNode.insertBefore(elt, port); - }, - trackElement: function(elt, callback) { - var self = this; - var done = function(e) { - if (callback) { - callback(e); - } - self.markParsingComplete(elt); - self.parseNext(); - }; - elt.addEventListener("load", done); - elt.addEventListener("error", done); - if (isIE && elt.localName === "style") { - var fakeLoad = false; - if (elt.textContent.indexOf("@import") == -1) { - fakeLoad = true; - } else if (elt.sheet) { - fakeLoad = true; - var csr = elt.sheet.cssRules; - var len = csr ? csr.length : 0; - for (var i = 0, r; i < len && (r = csr[i]); i++) { - if (r.type === CSSRule.IMPORT_RULE) { - fakeLoad = fakeLoad && Boolean(r.styleSheet); - } - } - } - if (fakeLoad) { - setTimeout(function() { - elt.dispatchEvent(new CustomEvent("load", { - bubbles: false - })); - }); - } - } - }, - parseScript: function(scriptElt) { - var script = document.createElement("script"); - script.__importElement = scriptElt; - script.src = scriptElt.src ? scriptElt.src : generateScriptDataUrl(scriptElt); - scope.currentScript = scriptElt; - this.trackElement(script, function(e) { - script.parentNode.removeChild(script); - scope.currentScript = null; - }); - this.addElementToDocument(script); - }, - nextToParse: function() { - this._mayParse = []; - return !this.parsingElement && (this.nextToParseInDoc(rootDocument) || this.nextToParseDynamic()); - }, - nextToParseInDoc: function(doc, link) { - if (doc && this._mayParse.indexOf(doc) < 0) { - this._mayParse.push(doc); - var nodes = doc.querySelectorAll(this.parseSelectorsForNode(doc)); - for (var i = 0, l = nodes.length, p = 0, n; i < l && (n = nodes[i]); i++) { - if (!this.isParsed(n)) { - if (this.hasResource(n)) { - return nodeIsImport(n) ? this.nextToParseInDoc(n.import, n) : n; - } else { - return; - } - } - } - } - return link; - }, - nextToParseDynamic: function() { - return this.dynamicElements[0]; - }, - parseSelectorsForNode: function(node) { - var doc = node.ownerDocument || node; - return doc === rootDocument ? this.documentSelectors : this.importsSelectors; - }, - isParsed: function(node) { - return node.__importParsed; - }, - needsDynamicParsing: function(elt) { - return this.dynamicElements.indexOf(elt) >= 0; - }, - hasResource: function(node) { - if (nodeIsImport(node) && node.import === undefined) { - return false; - } - return true; - } - }; - function nodeIsImport(elt) { - return elt.localName === "link" && elt.rel === IMPORT_LINK_TYPE; - } - function generateScriptDataUrl(script) { - var scriptContent = generateScriptContent(script); - return "data:text/javascript;charset=utf-8," + encodeURIComponent(scriptContent); - } - function generateScriptContent(script) { - return script.textContent + generateSourceMapHint(script); - } - function generateSourceMapHint(script) { - var owner = script.ownerDocument; - owner.__importedScripts = owner.__importedScripts || 0; - var moniker = script.ownerDocument.baseURI; - var num = owner.__importedScripts ? "-" + owner.__importedScripts : ""; - owner.__importedScripts++; - return "\n//# sourceURL=" + moniker + num + ".js\n"; - } - function cloneStyle(style) { - var clone = style.ownerDocument.createElement("style"); - clone.textContent = style.textContent; - path.resolveUrlsInStyle(clone); - return clone; - } - scope.parser = importParser; - scope.IMPORT_SELECTOR = IMPORT_SELECTOR; -}); - -window.HTMLImports.addModule(function(scope) { - var flags = scope.flags; - var IMPORT_LINK_TYPE = scope.IMPORT_LINK_TYPE; - var IMPORT_SELECTOR = scope.IMPORT_SELECTOR; - var rootDocument = scope.rootDocument; - var Loader = scope.Loader; - var Observer = scope.Observer; - var parser = scope.parser; - var importer = { - documents: {}, - documentPreloadSelectors: IMPORT_SELECTOR, - importsPreloadSelectors: [ IMPORT_SELECTOR ].join(","), - loadNode: function(node) { - importLoader.addNode(node); - }, - loadSubtree: function(parent) { - var nodes = this.marshalNodes(parent); - importLoader.addNodes(nodes); - }, - marshalNodes: function(parent) { - return parent.querySelectorAll(this.loadSelectorsForNode(parent)); - }, - loadSelectorsForNode: function(node) { - var doc = node.ownerDocument || node; - return doc === rootDocument ? this.documentPreloadSelectors : this.importsPreloadSelectors; - }, - loaded: function(url, elt, resource, err, redirectedUrl) { - flags.load && console.log("loaded", url, elt); - elt.__resource = resource; - elt.__error = err; - if (isImportLink(elt)) { - var doc = this.documents[url]; - if (doc === undefined) { - doc = err ? null : makeDocument(resource, redirectedUrl || url); - if (doc) { - doc.__importLink = elt; - this.bootDocument(doc); - } - this.documents[url] = doc; - } - elt.import = doc; - } - parser.parseNext(); - }, - bootDocument: function(doc) { - this.loadSubtree(doc); - this.observer.observe(doc); - parser.parseNext(); - }, - loadedAll: function() { - parser.parseNext(); - } - }; - var importLoader = new Loader(importer.loaded.bind(importer), importer.loadedAll.bind(importer)); - importer.observer = new Observer(); - function isImportLink(elt) { - return isLinkRel(elt, IMPORT_LINK_TYPE); - } - function isLinkRel(elt, rel) { - return elt.localName === "link" && elt.getAttribute("rel") === rel; - } - function hasBaseURIAccessor(doc) { - return !!Object.getOwnPropertyDescriptor(doc, "baseURI"); - } - function makeDocument(resource, url) { - var doc = document.implementation.createHTMLDocument(IMPORT_LINK_TYPE); - doc._URL = url; - var base = doc.createElement("base"); - base.setAttribute("href", url); - if (!doc.baseURI && !hasBaseURIAccessor(doc)) { - Object.defineProperty(doc, "baseURI", { - value: url - }); - } - var meta = doc.createElement("meta"); - meta.setAttribute("charset", "utf-8"); - doc.head.appendChild(meta); - doc.head.appendChild(base); - doc.body.innerHTML = resource; - if (window.HTMLTemplateElement && HTMLTemplateElement.bootstrap) { - HTMLTemplateElement.bootstrap(doc); - } - return doc; - } - if (!document.baseURI) { - var baseURIDescriptor = { - get: function() { - var base = document.querySelector("base"); - return base ? base.href : window.location.href; - }, - configurable: true - }; - Object.defineProperty(document, "baseURI", baseURIDescriptor); - Object.defineProperty(rootDocument, "baseURI", baseURIDescriptor); - } - scope.importer = importer; - scope.importLoader = importLoader; -}); - -window.HTMLImports.addModule(function(scope) { - var parser = scope.parser; - var importer = scope.importer; - var dynamic = { - added: function(nodes) { - var owner, parsed, loading; - for (var i = 0, l = nodes.length, n; i < l && (n = nodes[i]); i++) { - if (!owner) { - owner = n.ownerDocument; - parsed = parser.isParsed(owner); - } - loading = this.shouldLoadNode(n); - if (loading) { - importer.loadNode(n); - } - if (this.shouldParseNode(n) && parsed) { - parser.parseDynamic(n, loading); - } - } - }, - shouldLoadNode: function(node) { - return node.nodeType === 1 && matches.call(node, importer.loadSelectorsForNode(node)); - }, - shouldParseNode: function(node) { - return node.nodeType === 1 && matches.call(node, parser.parseSelectorsForNode(node)); - } - }; - importer.observer.addCallback = dynamic.added.bind(dynamic); - var matches = HTMLElement.prototype.matches || HTMLElement.prototype.matchesSelector || HTMLElement.prototype.webkitMatchesSelector || HTMLElement.prototype.mozMatchesSelector || HTMLElement.prototype.msMatchesSelector; -}); - -(function(scope) { - var initializeModules = scope.initializeModules; - var isIE = scope.isIE; - if (scope.useNative) { - return; - } - if (isIE && typeof window.CustomEvent !== "function") { - window.CustomEvent = function(inType, params) { - params = params || {}; - var e = document.createEvent("CustomEvent"); - e.initCustomEvent(inType, Boolean(params.bubbles), Boolean(params.cancelable), params.detail); - e.preventDefault = function() { - Object.defineProperty(this, "defaultPrevented", { - get: function() { - return true; - } - }); - }; - return e; - }; - window.CustomEvent.prototype = window.Event.prototype; - } - initializeModules(); - var rootDocument = scope.rootDocument; - function bootstrap() { - window.HTMLImports.importer.bootDocument(rootDocument); - } - if (document.readyState === "complete" || document.readyState === "interactive" && !window.attachEvent) { - bootstrap(); - } else { - document.addEventListener("DOMContentLoaded", bootstrap); - } -})(window.HTMLImports); \ No newline at end of file diff --git a/bower_components/webcomponentsjs/HTMLImports.min.js b/bower_components/webcomponentsjs/HTMLImports.min.js deleted file mode 100644 index c13580a..0000000 --- a/bower_components/webcomponentsjs/HTMLImports.min.js +++ /dev/null @@ -1,11 +0,0 @@ -/** - * @license - * Copyright (c) 2014 The Polymer Project Authors. All rights reserved. - * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt - * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt - * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt - * Code distributed by Google as part of the polymer project is also - * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt - */ -// @version 0.7.5 -"undefined"==typeof WeakMap&&!function(){var e=Object.defineProperty,t=Date.now()%1e9,n=function(){this.name="__st"+(1e9*Math.random()>>>0)+(t++ +"__")};n.prototype={set:function(t,n){var r=t[this.name];return r&&r[0]===t?r[1]=n:e(t,this.name,{value:[t,n],writable:!0}),this},get:function(e){var t;return(t=e[this.name])&&t[0]===e?t[1]:void 0},"delete":function(e){var t=e[this.name];return t&&t[0]===e?(t[0]=t[1]=void 0,!0):!1},has:function(e){var t=e[this.name];return t?t[0]===e:!1}},window.WeakMap=n}(),function(e){function t(e){_.push(e),w||(w=!0,f(r))}function n(e){return window.ShadowDOMPolyfill&&window.ShadowDOMPolyfill.wrapIfNeeded(e)||e}function r(){w=!1;var e=_;_=[],e.sort(function(e,t){return e.uid_-t.uid_});var t=!1;e.forEach(function(e){var n=e.takeRecords();o(e),n.length&&(e.callback_(n,e),t=!0)}),t&&r()}function o(e){e.nodes_.forEach(function(t){var n=v.get(t);n&&n.forEach(function(t){t.observer===e&&t.removeTransientObservers()})})}function i(e,t){for(var n=e;n;n=n.parentNode){var r=v.get(n);if(r)for(var o=0;o0){var o=n[r-1],i=m(o,e);if(i)return void(n[r-1]=i)}else t(this.observer);n[r]=e},addListeners:function(){this.addListeners_(this.target)},addListeners_:function(e){var t=this.options;t.attributes&&e.addEventListener("DOMAttrModified",this,!0),t.characterData&&e.addEventListener("DOMCharacterDataModified",this,!0),t.childList&&e.addEventListener("DOMNodeInserted",this,!0),(t.childList||t.subtree)&&e.addEventListener("DOMNodeRemoved",this,!0)},removeListeners:function(){this.removeListeners_(this.target)},removeListeners_:function(e){var t=this.options;t.attributes&&e.removeEventListener("DOMAttrModified",this,!0),t.characterData&&e.removeEventListener("DOMCharacterDataModified",this,!0),t.childList&&e.removeEventListener("DOMNodeInserted",this,!0),(t.childList||t.subtree)&&e.removeEventListener("DOMNodeRemoved",this,!0)},addTransientObserver:function(e){if(e!==this.target){this.addListeners_(e),this.transientObservedNodes.push(e);var t=v.get(e);t||v.set(e,t=[]),t.push(this)}},removeTransientObservers:function(){var e=this.transientObservedNodes;this.transientObservedNodes=[],e.forEach(function(e){this.removeListeners_(e);for(var t=v.get(e),n=0;nm&&(h=s[m]);m++)a(h)?(d++,n()):(h.addEventListener("load",r),h.addEventListener("error",i));else n()}function a(e){return l?e.__loaded||e["import"]&&"loading"!==e["import"].readyState:e.__importParsed}function s(e){for(var t,n=0,r=e.length;r>n&&(t=e[n]);n++)d(t)&&c(t)}function d(e){return"link"===e.localName&&"import"===e.rel}function c(e){var t=e["import"];t?o({target:e}):(e.addEventListener("load",o),e.addEventListener("error",o))}var u="import",l=Boolean(u in document.createElement("link")),h=Boolean(window.ShadowDOMPolyfill),m=function(e){return h?window.ShadowDOMPolyfill.wrapIfNeeded(e):e},p=m(document),f={get:function(){var e=window.HTMLImports.currentScript||document.currentScript||("complete"!==document.readyState?document.scripts[document.scripts.length-1]:null);return m(e)},configurable:!0};Object.defineProperty(document,"_currentScript",f),Object.defineProperty(p,"_currentScript",f);var v=/Trident/.test(navigator.userAgent),b=v?"complete":"interactive",g="readystatechange";l&&(new MutationObserver(function(e){for(var t,n=0,r=e.length;r>n&&(t=e[n]);n++)t.addedNodes&&s(t.addedNodes)}).observe(document.head,{childList:!0}),function(){if("loading"===document.readyState)for(var e,t=document.querySelectorAll("link[rel=import]"),n=0,r=t.length;r>n&&(e=t[n]);n++)c(e)}()),t(function(e){window.HTMLImports.ready=!0,window.HTMLImports.readyTime=(new Date).getTime();var t=p.createEvent("CustomEvent");t.initCustomEvent("HTMLImportsLoaded",!0,!0,e),p.dispatchEvent(t)}),e.IMPORT_LINK_TYPE=u,e.useNative=l,e.rootDocument=p,e.whenReady=t,e.isIE=v}(window.HTMLImports),function(e){var t=[],n=function(e){t.push(e)},r=function(){t.forEach(function(t){t(e)})};e.addModule=n,e.initializeModules=r}(window.HTMLImports),window.HTMLImports.addModule(function(e){var t=/(url\()([^)]*)(\))/g,n=/(@import[\s]+(?!url\())([^;]*)(;)/g,r={resolveUrlsInStyle:function(e,t){var n=e.ownerDocument,r=n.createElement("a");return e.textContent=this.resolveUrlsInCssText(e.textContent,t,r),e},resolveUrlsInCssText:function(e,r,o){var i=this.replaceUrls(e,o,r,t);return i=this.replaceUrls(i,o,r,n)},replaceUrls:function(e,t,n,r){return e.replace(r,function(e,r,o,i){var a=o.replace(/["']/g,"");return n&&(a=new URL(a,n).href),t.href=a,a=t.href,r+"'"+a+"'"+i})}};e.path=r}),window.HTMLImports.addModule(function(e){var t={async:!0,ok:function(e){return e.status>=200&&e.status<300||304===e.status||0===e.status},load:function(n,r,o){var i=new XMLHttpRequest;return(e.flags.debug||e.flags.bust)&&(n+="?"+Math.random()),i.open("GET",n,t.async),i.addEventListener("readystatechange",function(e){if(4===i.readyState){var n=i.getResponseHeader("Location"),a=null;if(n)var a="/"===n.substr(0,1)?location.origin+n:n;r.call(o,!t.ok(i)&&i,i.response||i.responseText,a)}}),i.send(),i},loadDocument:function(e,t,n){this.load(e,t,n).responseType="document"}};e.xhr=t}),window.HTMLImports.addModule(function(e){var t=e.xhr,n=e.flags,r=function(e,t){this.cache={},this.onload=e,this.oncomplete=t,this.inflight=0,this.pending={}};r.prototype={addNodes:function(e){this.inflight+=e.length;for(var t,n=0,r=e.length;r>n&&(t=e[n]);n++)this.require(t);this.checkDone()},addNode:function(e){this.inflight++,this.require(e),this.checkDone()},require:function(e){var t=e.src||e.href;e.__nodeUrl=t,this.dedupe(t,e)||this.fetch(t,e)},dedupe:function(e,t){if(this.pending[e])return this.pending[e].push(t),!0;return this.cache[e]?(this.onload(e,t,this.cache[e]),this.tail(),!0):(this.pending[e]=[t],!1)},fetch:function(e,r){if(n.load&&console.log("fetch",e,r),e)if(e.match(/^data:/)){var o=e.split(","),i=o[0],a=o[1];a=i.indexOf(";base64")>-1?atob(a):decodeURIComponent(a),setTimeout(function(){this.receive(e,r,null,a)}.bind(this),0)}else{var s=function(t,n,o){this.receive(e,r,t,n,o)}.bind(this);t.load(e,s)}else setTimeout(function(){this.receive(e,r,{error:"href must be specified"},null)}.bind(this),0)},receive:function(e,t,n,r,o){this.cache[e]=r;for(var i,a=this.pending[e],s=0,d=a.length;d>s&&(i=a[s]);s++)this.onload(e,i,r,n,o),this.tail();this.pending[e]=null},tail:function(){--this.inflight,this.checkDone()},checkDone:function(){this.inflight||this.oncomplete()}},e.Loader=r}),window.HTMLImports.addModule(function(e){var t=function(e){this.addCallback=e,this.mo=new MutationObserver(this.handler.bind(this))};t.prototype={handler:function(e){for(var t,n=0,r=e.length;r>n&&(t=e[n]);n++)"childList"===t.type&&t.addedNodes.length&&this.addedNodes(t.addedNodes)},addedNodes:function(e){this.addCallback&&this.addCallback(e);for(var t,n=0,r=e.length;r>n&&(t=e[n]);n++)t.children&&t.children.length&&this.addedNodes(t.children)},observe:function(e){this.mo.observe(e,{childList:!0,subtree:!0})}},e.Observer=t}),window.HTMLImports.addModule(function(e){function t(e){return"link"===e.localName&&e.rel===u}function n(e){var t=r(e);return"data:text/javascript;charset=utf-8,"+encodeURIComponent(t)}function r(e){return e.textContent+o(e)}function o(e){var t=e.ownerDocument;t.__importedScripts=t.__importedScripts||0;var n=e.ownerDocument.baseURI,r=t.__importedScripts?"-"+t.__importedScripts:"";return t.__importedScripts++,"\n//# sourceURL="+n+r+".js\n"}function i(e){var t=e.ownerDocument.createElement("style");return t.textContent=e.textContent,a.resolveUrlsInStyle(t),t}var a=e.path,s=e.rootDocument,d=e.flags,c=e.isIE,u=e.IMPORT_LINK_TYPE,l="link[rel="+u+"]",h={documentSelectors:l,importsSelectors:[l,"link[rel=stylesheet]","style","script:not([type])",'script[type="application/javascript"]','script[type="text/javascript"]'].join(","),map:{link:"parseLink",script:"parseScript",style:"parseStyle"},dynamicElements:[],parseNext:function(){var e=this.nextToParse();e&&this.parse(e)},parse:function(e){if(this.isParsed(e))return void(d.parse&&console.log("[%s] is already parsed",e.localName));var t=this[this.map[e.localName]];t&&(this.markParsing(e),t.call(this,e))},parseDynamic:function(e,t){this.dynamicElements.push(e),t||this.parseNext()},markParsing:function(e){d.parse&&console.log("parsing",e),this.parsingElement=e},markParsingComplete:function(e){e.__importParsed=!0,this.markDynamicParsingComplete(e),e.__importElement&&(e.__importElement.__importParsed=!0,this.markDynamicParsingComplete(e.__importElement)),this.parsingElement=null,d.parse&&console.log("completed",e)},markDynamicParsingComplete:function(e){var t=this.dynamicElements.indexOf(e);t>=0&&this.dynamicElements.splice(t,1)},parseImport:function(e){if(window.HTMLImports.__importsParsingHook&&window.HTMLImports.__importsParsingHook(e),e["import"]&&(e["import"].__importParsed=!0),this.markParsingComplete(e),e.dispatchEvent(e.__resource&&!e.__error?new CustomEvent("load",{bubbles:!1}):new CustomEvent("error",{bubbles:!1})),e.__pending)for(var t;e.__pending.length;)t=e.__pending.shift(),t&&t({target:e});this.parseNext()},parseLink:function(e){t(e)?this.parseImport(e):(e.href=e.href,this.parseGeneric(e))},parseStyle:function(e){var t=e;e=i(e),t.__appliedElement=e,e.__importElement=t,this.parseGeneric(e)},parseGeneric:function(e){this.trackElement(e),this.addElementToDocument(e)},rootImportForElement:function(e){for(var t=e;t.ownerDocument.__importLink;)t=t.ownerDocument.__importLink;return t},addElementToDocument:function(e){var t=this.rootImportForElement(e.__importElement||e);t.parentNode.insertBefore(e,t)},trackElement:function(e,t){var n=this,r=function(r){t&&t(r),n.markParsingComplete(e),n.parseNext()};if(e.addEventListener("load",r),e.addEventListener("error",r),c&&"style"===e.localName){var o=!1;if(-1==e.textContent.indexOf("@import"))o=!0;else if(e.sheet){o=!0;for(var i,a=e.sheet.cssRules,s=a?a.length:0,d=0;s>d&&(i=a[d]);d++)i.type===CSSRule.IMPORT_RULE&&(o=o&&Boolean(i.styleSheet))}o&&setTimeout(function(){e.dispatchEvent(new CustomEvent("load",{bubbles:!1}))})}},parseScript:function(t){var r=document.createElement("script");r.__importElement=t,r.src=t.src?t.src:n(t),e.currentScript=t,this.trackElement(r,function(t){r.parentNode.removeChild(r),e.currentScript=null}),this.addElementToDocument(r)},nextToParse:function(){return this._mayParse=[],!this.parsingElement&&(this.nextToParseInDoc(s)||this.nextToParseDynamic())},nextToParseInDoc:function(e,n){if(e&&this._mayParse.indexOf(e)<0){this._mayParse.push(e);for(var r,o=e.querySelectorAll(this.parseSelectorsForNode(e)),i=0,a=o.length;a>i&&(r=o[i]);i++)if(!this.isParsed(r))return this.hasResource(r)?t(r)?this.nextToParseInDoc(r["import"],r):r:void 0}return n},nextToParseDynamic:function(){return this.dynamicElements[0]},parseSelectorsForNode:function(e){var t=e.ownerDocument||e;return t===s?this.documentSelectors:this.importsSelectors},isParsed:function(e){return e.__importParsed},needsDynamicParsing:function(e){return this.dynamicElements.indexOf(e)>=0},hasResource:function(e){return t(e)&&void 0===e["import"]?!1:!0}};e.parser=h,e.IMPORT_SELECTOR=l}),window.HTMLImports.addModule(function(e){function t(e){return n(e,a)}function n(e,t){return"link"===e.localName&&e.getAttribute("rel")===t}function r(e){return!!Object.getOwnPropertyDescriptor(e,"baseURI")}function o(e,t){var n=document.implementation.createHTMLDocument(a);n._URL=t;var o=n.createElement("base");o.setAttribute("href",t),n.baseURI||r(n)||Object.defineProperty(n,"baseURI",{value:t});var i=n.createElement("meta");return i.setAttribute("charset","utf-8"),n.head.appendChild(i),n.head.appendChild(o),n.body.innerHTML=e,window.HTMLTemplateElement&&HTMLTemplateElement.bootstrap&&HTMLTemplateElement.bootstrap(n),n}var i=e.flags,a=e.IMPORT_LINK_TYPE,s=e.IMPORT_SELECTOR,d=e.rootDocument,c=e.Loader,u=e.Observer,l=e.parser,h={documents:{},documentPreloadSelectors:s,importsPreloadSelectors:[s].join(","),loadNode:function(e){m.addNode(e)},loadSubtree:function(e){var t=this.marshalNodes(e);m.addNodes(t)},marshalNodes:function(e){return e.querySelectorAll(this.loadSelectorsForNode(e))},loadSelectorsForNode:function(e){var t=e.ownerDocument||e;return t===d?this.documentPreloadSelectors:this.importsPreloadSelectors},loaded:function(e,n,r,a,s){if(i.load&&console.log("loaded",e,n),n.__resource=r,n.__error=a,t(n)){var d=this.documents[e];void 0===d&&(d=a?null:o(r,s||e),d&&(d.__importLink=n,this.bootDocument(d)),this.documents[e]=d),n["import"]=d}l.parseNext()},bootDocument:function(e){this.loadSubtree(e),this.observer.observe(e),l.parseNext()},loadedAll:function(){l.parseNext()}},m=new c(h.loaded.bind(h),h.loadedAll.bind(h));if(h.observer=new u,!document.baseURI){var p={get:function(){var e=document.querySelector("base");return e?e.href:window.location.href},configurable:!0};Object.defineProperty(document,"baseURI",p),Object.defineProperty(d,"baseURI",p)}e.importer=h,e.importLoader=m}),window.HTMLImports.addModule(function(e){var t=e.parser,n=e.importer,r={added:function(e){for(var r,o,i,a,s=0,d=e.length;d>s&&(a=e[s]);s++)r||(r=a.ownerDocument,o=t.isParsed(r)),i=this.shouldLoadNode(a),i&&n.loadNode(a),this.shouldParseNode(a)&&o&&t.parseDynamic(a,i)},shouldLoadNode:function(e){return 1===e.nodeType&&o.call(e,n.loadSelectorsForNode(e))},shouldParseNode:function(e){return 1===e.nodeType&&o.call(e,t.parseSelectorsForNode(e))}};n.observer.addCallback=r.added.bind(r);var o=HTMLElement.prototype.matches||HTMLElement.prototype.matchesSelector||HTMLElement.prototype.webkitMatchesSelector||HTMLElement.prototype.mozMatchesSelector||HTMLElement.prototype.msMatchesSelector}),function(e){function t(){window.HTMLImports.importer.bootDocument(o)}var n=e.initializeModules,r=e.isIE;if(!e.useNative){r&&"function"!=typeof window.CustomEvent&&(window.CustomEvent=function(e,t){t=t||{};var n=document.createEvent("CustomEvent");return n.initCustomEvent(e,Boolean(t.bubbles),Boolean(t.cancelable),t.detail),n.preventDefault=function(){Object.defineProperty(this,"defaultPrevented",{get:function(){return!0}})},n},window.CustomEvent.prototype=window.Event.prototype),n();var o=e.rootDocument;"complete"===document.readyState||"interactive"===document.readyState&&!window.attachEvent?t():document.addEventListener("DOMContentLoaded",t)}}(window.HTMLImports); \ No newline at end of file diff --git a/bower_components/webcomponentsjs/MutationObserver.js b/bower_components/webcomponentsjs/MutationObserver.js deleted file mode 100644 index b8fb3cf..0000000 --- a/bower_components/webcomponentsjs/MutationObserver.js +++ /dev/null @@ -1,344 +0,0 @@ -/** - * @license - * Copyright (c) 2014 The Polymer Project Authors. All rights reserved. - * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt - * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt - * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt - * Code distributed by Google as part of the polymer project is also - * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt - */ -// @version 0.7.5 -if (typeof WeakMap === "undefined") { - (function() { - var defineProperty = Object.defineProperty; - var counter = Date.now() % 1e9; - var WeakMap = function() { - this.name = "__st" + (Math.random() * 1e9 >>> 0) + (counter++ + "__"); - }; - WeakMap.prototype = { - set: function(key, value) { - var entry = key[this.name]; - if (entry && entry[0] === key) entry[1] = value; else defineProperty(key, this.name, { - value: [ key, value ], - writable: true - }); - return this; - }, - get: function(key) { - var entry; - return (entry = key[this.name]) && entry[0] === key ? entry[1] : undefined; - }, - "delete": function(key) { - var entry = key[this.name]; - if (!entry || entry[0] !== key) return false; - entry[0] = entry[1] = undefined; - return true; - }, - has: function(key) { - var entry = key[this.name]; - if (!entry) return false; - return entry[0] === key; - } - }; - window.WeakMap = WeakMap; - })(); -} - -(function(global) { - var registrationsTable = new WeakMap(); - var setImmediate; - if (/Trident|Edge/.test(navigator.userAgent)) { - setImmediate = setTimeout; - } else if (window.setImmediate) { - setImmediate = window.setImmediate; - } else { - var setImmediateQueue = []; - var sentinel = String(Math.random()); - window.addEventListener("message", function(e) { - if (e.data === sentinel) { - var queue = setImmediateQueue; - setImmediateQueue = []; - queue.forEach(function(func) { - func(); - }); - } - }); - setImmediate = function(func) { - setImmediateQueue.push(func); - window.postMessage(sentinel, "*"); - }; - } - var isScheduled = false; - var scheduledObservers = []; - function scheduleCallback(observer) { - scheduledObservers.push(observer); - if (!isScheduled) { - isScheduled = true; - setImmediate(dispatchCallbacks); - } - } - function wrapIfNeeded(node) { - return window.ShadowDOMPolyfill && window.ShadowDOMPolyfill.wrapIfNeeded(node) || node; - } - function dispatchCallbacks() { - isScheduled = false; - var observers = scheduledObservers; - scheduledObservers = []; - observers.sort(function(o1, o2) { - return o1.uid_ - o2.uid_; - }); - var anyNonEmpty = false; - observers.forEach(function(observer) { - var queue = observer.takeRecords(); - removeTransientObserversFor(observer); - if (queue.length) { - observer.callback_(queue, observer); - anyNonEmpty = true; - } - }); - if (anyNonEmpty) dispatchCallbacks(); - } - function removeTransientObserversFor(observer) { - observer.nodes_.forEach(function(node) { - var registrations = registrationsTable.get(node); - if (!registrations) return; - registrations.forEach(function(registration) { - if (registration.observer === observer) registration.removeTransientObservers(); - }); - }); - } - function forEachAncestorAndObserverEnqueueRecord(target, callback) { - for (var node = target; node; node = node.parentNode) { - var registrations = registrationsTable.get(node); - if (registrations) { - for (var j = 0; j < registrations.length; j++) { - var registration = registrations[j]; - var options = registration.options; - if (node !== target && !options.subtree) continue; - var record = callback(options); - if (record) registration.enqueue(record); - } - } - } - } - var uidCounter = 0; - function JsMutationObserver(callback) { - this.callback_ = callback; - this.nodes_ = []; - this.records_ = []; - this.uid_ = ++uidCounter; - } - JsMutationObserver.prototype = { - observe: function(target, options) { - target = wrapIfNeeded(target); - if (!options.childList && !options.attributes && !options.characterData || options.attributeOldValue && !options.attributes || options.attributeFilter && options.attributeFilter.length && !options.attributes || options.characterDataOldValue && !options.characterData) { - throw new SyntaxError(); - } - var registrations = registrationsTable.get(target); - if (!registrations) registrationsTable.set(target, registrations = []); - var registration; - for (var i = 0; i < registrations.length; i++) { - if (registrations[i].observer === this) { - registration = registrations[i]; - registration.removeListeners(); - registration.options = options; - break; - } - } - if (!registration) { - registration = new Registration(this, target, options); - registrations.push(registration); - this.nodes_.push(target); - } - registration.addListeners(); - }, - disconnect: function() { - this.nodes_.forEach(function(node) { - var registrations = registrationsTable.get(node); - for (var i = 0; i < registrations.length; i++) { - var registration = registrations[i]; - if (registration.observer === this) { - registration.removeListeners(); - registrations.splice(i, 1); - break; - } - } - }, this); - this.records_ = []; - }, - takeRecords: function() { - var copyOfRecords = this.records_; - this.records_ = []; - return copyOfRecords; - } - }; - function MutationRecord(type, target) { - this.type = type; - this.target = target; - this.addedNodes = []; - this.removedNodes = []; - this.previousSibling = null; - this.nextSibling = null; - this.attributeName = null; - this.attributeNamespace = null; - this.oldValue = null; - } - function copyMutationRecord(original) { - var record = new MutationRecord(original.type, original.target); - record.addedNodes = original.addedNodes.slice(); - record.removedNodes = original.removedNodes.slice(); - record.previousSibling = original.previousSibling; - record.nextSibling = original.nextSibling; - record.attributeName = original.attributeName; - record.attributeNamespace = original.attributeNamespace; - record.oldValue = original.oldValue; - return record; - } - var currentRecord, recordWithOldValue; - function getRecord(type, target) { - return currentRecord = new MutationRecord(type, target); - } - function getRecordWithOldValue(oldValue) { - if (recordWithOldValue) return recordWithOldValue; - recordWithOldValue = copyMutationRecord(currentRecord); - recordWithOldValue.oldValue = oldValue; - return recordWithOldValue; - } - function clearRecords() { - currentRecord = recordWithOldValue = undefined; - } - function recordRepresentsCurrentMutation(record) { - return record === recordWithOldValue || record === currentRecord; - } - function selectRecord(lastRecord, newRecord) { - if (lastRecord === newRecord) return lastRecord; - if (recordWithOldValue && recordRepresentsCurrentMutation(lastRecord)) return recordWithOldValue; - return null; - } - function Registration(observer, target, options) { - this.observer = observer; - this.target = target; - this.options = options; - this.transientObservedNodes = []; - } - Registration.prototype = { - enqueue: function(record) { - var records = this.observer.records_; - var length = records.length; - if (records.length > 0) { - var lastRecord = records[length - 1]; - var recordToReplaceLast = selectRecord(lastRecord, record); - if (recordToReplaceLast) { - records[length - 1] = recordToReplaceLast; - return; - } - } else { - scheduleCallback(this.observer); - } - records[length] = record; - }, - addListeners: function() { - this.addListeners_(this.target); - }, - addListeners_: function(node) { - var options = this.options; - if (options.attributes) node.addEventListener("DOMAttrModified", this, true); - if (options.characterData) node.addEventListener("DOMCharacterDataModified", this, true); - if (options.childList) node.addEventListener("DOMNodeInserted", this, true); - if (options.childList || options.subtree) node.addEventListener("DOMNodeRemoved", this, true); - }, - removeListeners: function() { - this.removeListeners_(this.target); - }, - removeListeners_: function(node) { - var options = this.options; - if (options.attributes) node.removeEventListener("DOMAttrModified", this, true); - if (options.characterData) node.removeEventListener("DOMCharacterDataModified", this, true); - if (options.childList) node.removeEventListener("DOMNodeInserted", this, true); - if (options.childList || options.subtree) node.removeEventListener("DOMNodeRemoved", this, true); - }, - addTransientObserver: function(node) { - if (node === this.target) return; - this.addListeners_(node); - this.transientObservedNodes.push(node); - var registrations = registrationsTable.get(node); - if (!registrations) registrationsTable.set(node, registrations = []); - registrations.push(this); - }, - removeTransientObservers: function() { - var transientObservedNodes = this.transientObservedNodes; - this.transientObservedNodes = []; - transientObservedNodes.forEach(function(node) { - this.removeListeners_(node); - var registrations = registrationsTable.get(node); - for (var i = 0; i < registrations.length; i++) { - if (registrations[i] === this) { - registrations.splice(i, 1); - break; - } - } - }, this); - }, - handleEvent: function(e) { - e.stopImmediatePropagation(); - switch (e.type) { - case "DOMAttrModified": - var name = e.attrName; - var namespace = e.relatedNode.namespaceURI; - var target = e.target; - var record = new getRecord("attributes", target); - record.attributeName = name; - record.attributeNamespace = namespace; - var oldValue = e.attrChange === MutationEvent.ADDITION ? null : e.prevValue; - forEachAncestorAndObserverEnqueueRecord(target, function(options) { - if (!options.attributes) return; - if (options.attributeFilter && options.attributeFilter.length && options.attributeFilter.indexOf(name) === -1 && options.attributeFilter.indexOf(namespace) === -1) { - return; - } - if (options.attributeOldValue) return getRecordWithOldValue(oldValue); - return record; - }); - break; - - case "DOMCharacterDataModified": - var target = e.target; - var record = getRecord("characterData", target); - var oldValue = e.prevValue; - forEachAncestorAndObserverEnqueueRecord(target, function(options) { - if (!options.characterData) return; - if (options.characterDataOldValue) return getRecordWithOldValue(oldValue); - return record; - }); - break; - - case "DOMNodeRemoved": - this.addTransientObserver(e.target); - - case "DOMNodeInserted": - var changedNode = e.target; - var addedNodes, removedNodes; - if (e.type === "DOMNodeInserted") { - addedNodes = [ changedNode ]; - removedNodes = []; - } else { - addedNodes = []; - removedNodes = [ changedNode ]; - } - var previousSibling = changedNode.previousSibling; - var nextSibling = changedNode.nextSibling; - var record = getRecord("childList", e.target.parentNode); - record.addedNodes = addedNodes; - record.removedNodes = removedNodes; - record.previousSibling = previousSibling; - record.nextSibling = nextSibling; - forEachAncestorAndObserverEnqueueRecord(e.relatedNode, function(options) { - if (!options.childList) return; - return record; - }); - } - clearRecords(); - } - }; - global.JsMutationObserver = JsMutationObserver; - if (!global.MutationObserver) global.MutationObserver = JsMutationObserver; -})(this); \ No newline at end of file diff --git a/bower_components/webcomponentsjs/MutationObserver.min.js b/bower_components/webcomponentsjs/MutationObserver.min.js deleted file mode 100644 index 45b4cbf..0000000 --- a/bower_components/webcomponentsjs/MutationObserver.min.js +++ /dev/null @@ -1,11 +0,0 @@ -/** - * @license - * Copyright (c) 2014 The Polymer Project Authors. All rights reserved. - * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt - * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt - * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt - * Code distributed by Google as part of the polymer project is also - * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt - */ -// @version 0.7.5 -"undefined"==typeof WeakMap&&!function(){var e=Object.defineProperty,t=Date.now()%1e9,r=function(){this.name="__st"+(1e9*Math.random()>>>0)+(t++ +"__")};r.prototype={set:function(t,r){var i=t[this.name];return i&&i[0]===t?i[1]=r:e(t,this.name,{value:[t,r],writable:!0}),this},get:function(e){var t;return(t=e[this.name])&&t[0]===e?t[1]:void 0},"delete":function(e){var t=e[this.name];return t&&t[0]===e?(t[0]=t[1]=void 0,!0):!1},has:function(e){var t=e[this.name];return t?t[0]===e:!1}},window.WeakMap=r}(),function(e){function t(e){O.push(e),N||(N=!0,b(i))}function r(e){return window.ShadowDOMPolyfill&&window.ShadowDOMPolyfill.wrapIfNeeded(e)||e}function i(){N=!1;var e=O;O=[],e.sort(function(e,t){return e.uid_-t.uid_});var t=!1;e.forEach(function(e){var r=e.takeRecords();n(e),r.length&&(e.callback_(r,e),t=!0)}),t&&i()}function n(e){e.nodes_.forEach(function(t){var r=p.get(t);r&&r.forEach(function(t){t.observer===e&&t.removeTransientObservers()})})}function a(e,t){for(var r=e;r;r=r.parentNode){var i=p.get(r);if(i)for(var n=0;n0){var n=r[i-1],a=l(n,e);if(a)return void(r[i-1]=a)}else t(this.observer);r[i]=e},addListeners:function(){this.addListeners_(this.target)},addListeners_:function(e){var t=this.options;t.attributes&&e.addEventListener("DOMAttrModified",this,!0),t.characterData&&e.addEventListener("DOMCharacterDataModified",this,!0),t.childList&&e.addEventListener("DOMNodeInserted",this,!0),(t.childList||t.subtree)&&e.addEventListener("DOMNodeRemoved",this,!0)},removeListeners:function(){this.removeListeners_(this.target)},removeListeners_:function(e){var t=this.options;t.attributes&&e.removeEventListener("DOMAttrModified",this,!0),t.characterData&&e.removeEventListener("DOMCharacterDataModified",this,!0),t.childList&&e.removeEventListener("DOMNodeInserted",this,!0),(t.childList||t.subtree)&&e.removeEventListener("DOMNodeRemoved",this,!0)},addTransientObserver:function(e){if(e!==this.target){this.addListeners_(e),this.transientObservedNodes.push(e);var t=p.get(e);t||p.set(e,t=[]),t.push(this)}},removeTransientObservers:function(){var e=this.transientObservedNodes;this.transientObservedNodes=[],e.forEach(function(e){this.removeListeners_(e);for(var t=p.get(e),r=0;r` tags in the main document block the loading of such imports. This is to ensure the imports have loaded and any registered elements in them have been upgraded. - -The webcomponents.js and webcomponents-lite.js polyfills parse element definitions and handle their upgrade asynchronously. If prematurely fetching the element from the DOM before it has an opportunity to upgrade, you'll be working with an `HTMLUnknownElement`. - -For these situations (or when you need an approximate replacement for the Polymer 0.5 `polymer-ready` behavior), you can use the `WebComponentsReady` event as a signal before interacting with the element. The criteria for this event to fire is all Custom Elements with definitions registered by the time HTML Imports available at load time have loaded have upgraded. - -```js -window.addEventListener('WebComponentsReady', function(e) { - // imports are loaded and elements have been registered - console.log('Components are ready'); -}); -``` - -## Known Issues - - * [Custom element's constructor property is unreliable](#constructor) - * [Contenteditable elements do not trigger MutationObserver](#contentedit) - * [ShadowCSS: :host-context(...):host(...) doesn't work](#hostcontext) - * [execCommand isn't supported under Shadow DOM](#execcommand) - -### Custom element's constructor property is unreliable
    -See [#215](https://github.com/webcomponents/webcomponentsjs/issues/215) for background. - -In Safari and IE, instances of Custom Elements have a `constructor` property of `HTMLUnknownElementConstructor` and `HTMLUnknownElement`, respectively. It's unsafe to rely on this property for checking element types. - -It's worth noting that `customElement.__proto__.__proto__.constructor` is `HTMLElementPrototype` and that the prototype chain isn't modified by the polyfills(onto `ElementPrototype`, etc.) - -### Contenteditable elements do not trigger MutationObserver -Using the MutationObserver polyfill, it isn't possible to monitor mutations of an element marked `contenteditable`. -See [the mailing list](https://groups.google.com/forum/#!msg/polymer-dev/LHdtRVXXVsA/v1sGoiTYWUkJ) - -### ShadowCSS: :host-context(...):host(...) doesn't work -See [#16](https://github.com/webcomponents/webcomponentsjs/issues/16) for background. - -Under the shadow DOM polyfill, rules like: -``` -:host-context(.foo):host(.bar) {...} -``` -don't work, despite working under native Shadow DOM. The solution is to use `polyfill-next-selector` like: - -``` -polyfill-next-selector { content: '.foo :host.bar, :host.foo.bar'; } -``` - -### execCommand and contenteditable isn't supported under Shadow DOM -See [#212](https://github.com/webcomponents/webcomponentsjs/issues/212) - -`execCommand`, and `contenteditable` aren't supported under the ShadowDOM polyfill, with commands that insert or remove nodes being especially prone to failure. diff --git a/bower_components/webcomponentsjs/ShadowDOM.js b/bower_components/webcomponentsjs/ShadowDOM.js deleted file mode 100644 index dc67ad9..0000000 --- a/bower_components/webcomponentsjs/ShadowDOM.js +++ /dev/null @@ -1,4414 +0,0 @@ -/** - * @license - * Copyright (c) 2014 The Polymer Project Authors. All rights reserved. - * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt - * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt - * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt - * Code distributed by Google as part of the polymer project is also - * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt - */ -// @version 0.7.5 -if (typeof WeakMap === "undefined") { - (function() { - var defineProperty = Object.defineProperty; - var counter = Date.now() % 1e9; - var WeakMap = function() { - this.name = "__st" + (Math.random() * 1e9 >>> 0) + (counter++ + "__"); - }; - WeakMap.prototype = { - set: function(key, value) { - var entry = key[this.name]; - if (entry && entry[0] === key) entry[1] = value; else defineProperty(key, this.name, { - value: [ key, value ], - writable: true - }); - return this; - }, - get: function(key) { - var entry; - return (entry = key[this.name]) && entry[0] === key ? entry[1] : undefined; - }, - "delete": function(key) { - var entry = key[this.name]; - if (!entry || entry[0] !== key) return false; - entry[0] = entry[1] = undefined; - return true; - }, - has: function(key) { - var entry = key[this.name]; - if (!entry) return false; - return entry[0] === key; - } - }; - window.WeakMap = WeakMap; - })(); -} - -window.ShadowDOMPolyfill = {}; - -(function(scope) { - "use strict"; - var constructorTable = new WeakMap(); - var nativePrototypeTable = new WeakMap(); - var wrappers = Object.create(null); - function detectEval() { - if (typeof chrome !== "undefined" && chrome.app && chrome.app.runtime) { - return false; - } - if (navigator.getDeviceStorage) { - return false; - } - try { - var f = new Function("return true;"); - return f(); - } catch (ex) { - return false; - } - } - var hasEval = detectEval(); - function assert(b) { - if (!b) throw new Error("Assertion failed"); - } - var defineProperty = Object.defineProperty; - var getOwnPropertyNames = Object.getOwnPropertyNames; - var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; - function mixin(to, from) { - var names = getOwnPropertyNames(from); - for (var i = 0; i < names.length; i++) { - var name = names[i]; - defineProperty(to, name, getOwnPropertyDescriptor(from, name)); - } - return to; - } - function mixinStatics(to, from) { - var names = getOwnPropertyNames(from); - for (var i = 0; i < names.length; i++) { - var name = names[i]; - switch (name) { - case "arguments": - case "caller": - case "length": - case "name": - case "prototype": - case "toString": - continue; - } - defineProperty(to, name, getOwnPropertyDescriptor(from, name)); - } - return to; - } - function oneOf(object, propertyNames) { - for (var i = 0; i < propertyNames.length; i++) { - if (propertyNames[i] in object) return propertyNames[i]; - } - } - var nonEnumerableDataDescriptor = { - value: undefined, - configurable: true, - enumerable: false, - writable: true - }; - function defineNonEnumerableDataProperty(object, name, value) { - nonEnumerableDataDescriptor.value = value; - defineProperty(object, name, nonEnumerableDataDescriptor); - } - getOwnPropertyNames(window); - function getWrapperConstructor(node, opt_instance) { - var nativePrototype = node.__proto__ || Object.getPrototypeOf(node); - if (isFirefox) { - try { - getOwnPropertyNames(nativePrototype); - } catch (error) { - nativePrototype = nativePrototype.__proto__; - } - } - var wrapperConstructor = constructorTable.get(nativePrototype); - if (wrapperConstructor) return wrapperConstructor; - var parentWrapperConstructor = getWrapperConstructor(nativePrototype); - var GeneratedWrapper = createWrapperConstructor(parentWrapperConstructor); - registerInternal(nativePrototype, GeneratedWrapper, opt_instance); - return GeneratedWrapper; - } - function addForwardingProperties(nativePrototype, wrapperPrototype) { - installProperty(nativePrototype, wrapperPrototype, true); - } - function registerInstanceProperties(wrapperPrototype, instanceObject) { - installProperty(instanceObject, wrapperPrototype, false); - } - var isFirefox = /Firefox/.test(navigator.userAgent); - var dummyDescriptor = { - get: function() {}, - set: function(v) {}, - configurable: true, - enumerable: true - }; - function isEventHandlerName(name) { - return /^on[a-z]+$/.test(name); - } - function isIdentifierName(name) { - return /^[a-zA-Z_$][a-zA-Z_$0-9]*$/.test(name); - } - function getGetter(name) { - return hasEval && isIdentifierName(name) ? new Function("return this.__impl4cf1e782hg__." + name) : function() { - return this.__impl4cf1e782hg__[name]; - }; - } - function getSetter(name) { - return hasEval && isIdentifierName(name) ? new Function("v", "this.__impl4cf1e782hg__." + name + " = v") : function(v) { - this.__impl4cf1e782hg__[name] = v; - }; - } - function getMethod(name) { - return hasEval && isIdentifierName(name) ? new Function("return this.__impl4cf1e782hg__." + name + ".apply(this.__impl4cf1e782hg__, arguments)") : function() { - return this.__impl4cf1e782hg__[name].apply(this.__impl4cf1e782hg__, arguments); - }; - } - function getDescriptor(source, name) { - try { - return Object.getOwnPropertyDescriptor(source, name); - } catch (ex) { - return dummyDescriptor; - } - } - var isBrokenSafari = function() { - var descr = Object.getOwnPropertyDescriptor(Node.prototype, "nodeType"); - return descr && !descr.get && !descr.set; - }(); - function installProperty(source, target, allowMethod, opt_blacklist) { - var names = getOwnPropertyNames(source); - for (var i = 0; i < names.length; i++) { - var name = names[i]; - if (name === "polymerBlackList_") continue; - if (name in target) continue; - if (source.polymerBlackList_ && source.polymerBlackList_[name]) continue; - if (isFirefox) { - source.__lookupGetter__(name); - } - var descriptor = getDescriptor(source, name); - var getter, setter; - if (typeof descriptor.value === "function") { - if (allowMethod) { - target[name] = getMethod(name); - } - continue; - } - var isEvent = isEventHandlerName(name); - if (isEvent) getter = scope.getEventHandlerGetter(name); else getter = getGetter(name); - if (descriptor.writable || descriptor.set || isBrokenSafari) { - if (isEvent) setter = scope.getEventHandlerSetter(name); else setter = getSetter(name); - } - var configurable = isBrokenSafari || descriptor.configurable; - defineProperty(target, name, { - get: getter, - set: setter, - configurable: configurable, - enumerable: descriptor.enumerable - }); - } - } - function register(nativeConstructor, wrapperConstructor, opt_instance) { - if (nativeConstructor == null) { - return; - } - var nativePrototype = nativeConstructor.prototype; - registerInternal(nativePrototype, wrapperConstructor, opt_instance); - mixinStatics(wrapperConstructor, nativeConstructor); - } - function registerInternal(nativePrototype, wrapperConstructor, opt_instance) { - var wrapperPrototype = wrapperConstructor.prototype; - assert(constructorTable.get(nativePrototype) === undefined); - constructorTable.set(nativePrototype, wrapperConstructor); - nativePrototypeTable.set(wrapperPrototype, nativePrototype); - addForwardingProperties(nativePrototype, wrapperPrototype); - if (opt_instance) registerInstanceProperties(wrapperPrototype, opt_instance); - defineNonEnumerableDataProperty(wrapperPrototype, "constructor", wrapperConstructor); - wrapperConstructor.prototype = wrapperPrototype; - } - function isWrapperFor(wrapperConstructor, nativeConstructor) { - return constructorTable.get(nativeConstructor.prototype) === wrapperConstructor; - } - function registerObject(object) { - var nativePrototype = Object.getPrototypeOf(object); - var superWrapperConstructor = getWrapperConstructor(nativePrototype); - var GeneratedWrapper = createWrapperConstructor(superWrapperConstructor); - registerInternal(nativePrototype, GeneratedWrapper, object); - return GeneratedWrapper; - } - function createWrapperConstructor(superWrapperConstructor) { - function GeneratedWrapper(node) { - superWrapperConstructor.call(this, node); - } - var p = Object.create(superWrapperConstructor.prototype); - p.constructor = GeneratedWrapper; - GeneratedWrapper.prototype = p; - return GeneratedWrapper; - } - function isWrapper(object) { - return object && object.__impl4cf1e782hg__; - } - function isNative(object) { - return !isWrapper(object); - } - function wrap(impl) { - if (impl === null) return null; - assert(isNative(impl)); - var wrapper = impl.__wrapper8e3dd93a60__; - if (wrapper != null) { - return wrapper; - } - return impl.__wrapper8e3dd93a60__ = new (getWrapperConstructor(impl, impl))(impl); - } - function unwrap(wrapper) { - if (wrapper === null) return null; - assert(isWrapper(wrapper)); - return wrapper.__impl4cf1e782hg__; - } - function unsafeUnwrap(wrapper) { - return wrapper.__impl4cf1e782hg__; - } - function setWrapper(impl, wrapper) { - wrapper.__impl4cf1e782hg__ = impl; - impl.__wrapper8e3dd93a60__ = wrapper; - } - function unwrapIfNeeded(object) { - return object && isWrapper(object) ? unwrap(object) : object; - } - function wrapIfNeeded(object) { - return object && !isWrapper(object) ? wrap(object) : object; - } - function rewrap(node, wrapper) { - if (wrapper === null) return; - assert(isNative(node)); - assert(wrapper === undefined || isWrapper(wrapper)); - node.__wrapper8e3dd93a60__ = wrapper; - } - var getterDescriptor = { - get: undefined, - configurable: true, - enumerable: true - }; - function defineGetter(constructor, name, getter) { - getterDescriptor.get = getter; - defineProperty(constructor.prototype, name, getterDescriptor); - } - function defineWrapGetter(constructor, name) { - defineGetter(constructor, name, function() { - return wrap(this.__impl4cf1e782hg__[name]); - }); - } - function forwardMethodsToWrapper(constructors, names) { - constructors.forEach(function(constructor) { - names.forEach(function(name) { - constructor.prototype[name] = function() { - var w = wrapIfNeeded(this); - return w[name].apply(w, arguments); - }; - }); - }); - } - scope.assert = assert; - scope.constructorTable = constructorTable; - scope.defineGetter = defineGetter; - scope.defineWrapGetter = defineWrapGetter; - scope.forwardMethodsToWrapper = forwardMethodsToWrapper; - scope.isIdentifierName = isIdentifierName; - scope.isWrapper = isWrapper; - scope.isWrapperFor = isWrapperFor; - scope.mixin = mixin; - scope.nativePrototypeTable = nativePrototypeTable; - scope.oneOf = oneOf; - scope.registerObject = registerObject; - scope.registerWrapper = register; - scope.rewrap = rewrap; - scope.setWrapper = setWrapper; - scope.unsafeUnwrap = unsafeUnwrap; - scope.unwrap = unwrap; - scope.unwrapIfNeeded = unwrapIfNeeded; - scope.wrap = wrap; - scope.wrapIfNeeded = wrapIfNeeded; - scope.wrappers = wrappers; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - function newSplice(index, removed, addedCount) { - return { - index: index, - removed: removed, - addedCount: addedCount - }; - } - var EDIT_LEAVE = 0; - var EDIT_UPDATE = 1; - var EDIT_ADD = 2; - var EDIT_DELETE = 3; - function ArraySplice() {} - ArraySplice.prototype = { - calcEditDistances: function(current, currentStart, currentEnd, old, oldStart, oldEnd) { - var rowCount = oldEnd - oldStart + 1; - var columnCount = currentEnd - currentStart + 1; - var distances = new Array(rowCount); - for (var i = 0; i < rowCount; i++) { - distances[i] = new Array(columnCount); - distances[i][0] = i; - } - for (var j = 0; j < columnCount; j++) distances[0][j] = j; - for (var i = 1; i < rowCount; i++) { - for (var j = 1; j < columnCount; j++) { - if (this.equals(current[currentStart + j - 1], old[oldStart + i - 1])) distances[i][j] = distances[i - 1][j - 1]; else { - var north = distances[i - 1][j] + 1; - var west = distances[i][j - 1] + 1; - distances[i][j] = north < west ? north : west; - } - } - } - return distances; - }, - spliceOperationsFromEditDistances: function(distances) { - var i = distances.length - 1; - var j = distances[0].length - 1; - var current = distances[i][j]; - var edits = []; - while (i > 0 || j > 0) { - if (i == 0) { - edits.push(EDIT_ADD); - j--; - continue; - } - if (j == 0) { - edits.push(EDIT_DELETE); - i--; - continue; - } - var northWest = distances[i - 1][j - 1]; - var west = distances[i - 1][j]; - var north = distances[i][j - 1]; - var min; - if (west < north) min = west < northWest ? west : northWest; else min = north < northWest ? north : northWest; - if (min == northWest) { - if (northWest == current) { - edits.push(EDIT_LEAVE); - } else { - edits.push(EDIT_UPDATE); - current = northWest; - } - i--; - j--; - } else if (min == west) { - edits.push(EDIT_DELETE); - i--; - current = west; - } else { - edits.push(EDIT_ADD); - j--; - current = north; - } - } - edits.reverse(); - return edits; - }, - calcSplices: function(current, currentStart, currentEnd, old, oldStart, oldEnd) { - var prefixCount = 0; - var suffixCount = 0; - var minLength = Math.min(currentEnd - currentStart, oldEnd - oldStart); - if (currentStart == 0 && oldStart == 0) prefixCount = this.sharedPrefix(current, old, minLength); - if (currentEnd == current.length && oldEnd == old.length) suffixCount = this.sharedSuffix(current, old, minLength - prefixCount); - currentStart += prefixCount; - oldStart += prefixCount; - currentEnd -= suffixCount; - oldEnd -= suffixCount; - if (currentEnd - currentStart == 0 && oldEnd - oldStart == 0) return []; - if (currentStart == currentEnd) { - var splice = newSplice(currentStart, [], 0); - while (oldStart < oldEnd) splice.removed.push(old[oldStart++]); - return [ splice ]; - } else if (oldStart == oldEnd) return [ newSplice(currentStart, [], currentEnd - currentStart) ]; - var ops = this.spliceOperationsFromEditDistances(this.calcEditDistances(current, currentStart, currentEnd, old, oldStart, oldEnd)); - var splice = undefined; - var splices = []; - var index = currentStart; - var oldIndex = oldStart; - for (var i = 0; i < ops.length; i++) { - switch (ops[i]) { - case EDIT_LEAVE: - if (splice) { - splices.push(splice); - splice = undefined; - } - index++; - oldIndex++; - break; - - case EDIT_UPDATE: - if (!splice) splice = newSplice(index, [], 0); - splice.addedCount++; - index++; - splice.removed.push(old[oldIndex]); - oldIndex++; - break; - - case EDIT_ADD: - if (!splice) splice = newSplice(index, [], 0); - splice.addedCount++; - index++; - break; - - case EDIT_DELETE: - if (!splice) splice = newSplice(index, [], 0); - splice.removed.push(old[oldIndex]); - oldIndex++; - break; - } - } - if (splice) { - splices.push(splice); - } - return splices; - }, - sharedPrefix: function(current, old, searchLength) { - for (var i = 0; i < searchLength; i++) if (!this.equals(current[i], old[i])) return i; - return searchLength; - }, - sharedSuffix: function(current, old, searchLength) { - var index1 = current.length; - var index2 = old.length; - var count = 0; - while (count < searchLength && this.equals(current[--index1], old[--index2])) count++; - return count; - }, - calculateSplices: function(current, previous) { - return this.calcSplices(current, 0, current.length, previous, 0, previous.length); - }, - equals: function(currentValue, previousValue) { - return currentValue === previousValue; - } - }; - scope.ArraySplice = ArraySplice; -})(window.ShadowDOMPolyfill); - -(function(context) { - "use strict"; - var OriginalMutationObserver = window.MutationObserver; - var callbacks = []; - var pending = false; - var timerFunc; - function handle() { - pending = false; - var copies = callbacks.slice(0); - callbacks = []; - for (var i = 0; i < copies.length; i++) { - (0, copies[i])(); - } - } - if (OriginalMutationObserver) { - var counter = 1; - var observer = new OriginalMutationObserver(handle); - var textNode = document.createTextNode(counter); - observer.observe(textNode, { - characterData: true - }); - timerFunc = function() { - counter = (counter + 1) % 2; - textNode.data = counter; - }; - } else { - timerFunc = window.setTimeout; - } - function setEndOfMicrotask(func) { - callbacks.push(func); - if (pending) return; - pending = true; - timerFunc(handle, 0); - } - context.setEndOfMicrotask = setEndOfMicrotask; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var setEndOfMicrotask = scope.setEndOfMicrotask; - var wrapIfNeeded = scope.wrapIfNeeded; - var wrappers = scope.wrappers; - var registrationsTable = new WeakMap(); - var globalMutationObservers = []; - var isScheduled = false; - function scheduleCallback(observer) { - if (observer.scheduled_) return; - observer.scheduled_ = true; - globalMutationObservers.push(observer); - if (isScheduled) return; - setEndOfMicrotask(notifyObservers); - isScheduled = true; - } - function notifyObservers() { - isScheduled = false; - while (globalMutationObservers.length) { - var notifyList = globalMutationObservers; - globalMutationObservers = []; - notifyList.sort(function(x, y) { - return x.uid_ - y.uid_; - }); - for (var i = 0; i < notifyList.length; i++) { - var mo = notifyList[i]; - mo.scheduled_ = false; - var queue = mo.takeRecords(); - removeTransientObserversFor(mo); - if (queue.length) { - mo.callback_(queue, mo); - } - } - } - } - function MutationRecord(type, target) { - this.type = type; - this.target = target; - this.addedNodes = new wrappers.NodeList(); - this.removedNodes = new wrappers.NodeList(); - this.previousSibling = null; - this.nextSibling = null; - this.attributeName = null; - this.attributeNamespace = null; - this.oldValue = null; - } - function registerTransientObservers(ancestor, node) { - for (;ancestor; ancestor = ancestor.parentNode) { - var registrations = registrationsTable.get(ancestor); - if (!registrations) continue; - for (var i = 0; i < registrations.length; i++) { - var registration = registrations[i]; - if (registration.options.subtree) registration.addTransientObserver(node); - } - } - } - function removeTransientObserversFor(observer) { - for (var i = 0; i < observer.nodes_.length; i++) { - var node = observer.nodes_[i]; - var registrations = registrationsTable.get(node); - if (!registrations) return; - for (var j = 0; j < registrations.length; j++) { - var registration = registrations[j]; - if (registration.observer === observer) registration.removeTransientObservers(); - } - } - } - function enqueueMutation(target, type, data) { - var interestedObservers = Object.create(null); - var associatedStrings = Object.create(null); - for (var node = target; node; node = node.parentNode) { - var registrations = registrationsTable.get(node); - if (!registrations) continue; - for (var j = 0; j < registrations.length; j++) { - var registration = registrations[j]; - var options = registration.options; - if (node !== target && !options.subtree) continue; - if (type === "attributes" && !options.attributes) continue; - if (type === "attributes" && options.attributeFilter && (data.namespace !== null || options.attributeFilter.indexOf(data.name) === -1)) { - continue; - } - if (type === "characterData" && !options.characterData) continue; - if (type === "childList" && !options.childList) continue; - var observer = registration.observer; - interestedObservers[observer.uid_] = observer; - if (type === "attributes" && options.attributeOldValue || type === "characterData" && options.characterDataOldValue) { - associatedStrings[observer.uid_] = data.oldValue; - } - } - } - for (var uid in interestedObservers) { - var observer = interestedObservers[uid]; - var record = new MutationRecord(type, target); - if ("name" in data && "namespace" in data) { - record.attributeName = data.name; - record.attributeNamespace = data.namespace; - } - if (data.addedNodes) record.addedNodes = data.addedNodes; - if (data.removedNodes) record.removedNodes = data.removedNodes; - if (data.previousSibling) record.previousSibling = data.previousSibling; - if (data.nextSibling) record.nextSibling = data.nextSibling; - if (associatedStrings[uid] !== undefined) record.oldValue = associatedStrings[uid]; - scheduleCallback(observer); - observer.records_.push(record); - } - } - var slice = Array.prototype.slice; - function MutationObserverOptions(options) { - this.childList = !!options.childList; - this.subtree = !!options.subtree; - if (!("attributes" in options) && ("attributeOldValue" in options || "attributeFilter" in options)) { - this.attributes = true; - } else { - this.attributes = !!options.attributes; - } - if ("characterDataOldValue" in options && !("characterData" in options)) this.characterData = true; else this.characterData = !!options.characterData; - if (!this.attributes && (options.attributeOldValue || "attributeFilter" in options) || !this.characterData && options.characterDataOldValue) { - throw new TypeError(); - } - this.characterData = !!options.characterData; - this.attributeOldValue = !!options.attributeOldValue; - this.characterDataOldValue = !!options.characterDataOldValue; - if ("attributeFilter" in options) { - if (options.attributeFilter == null || typeof options.attributeFilter !== "object") { - throw new TypeError(); - } - this.attributeFilter = slice.call(options.attributeFilter); - } else { - this.attributeFilter = null; - } - } - var uidCounter = 0; - function MutationObserver(callback) { - this.callback_ = callback; - this.nodes_ = []; - this.records_ = []; - this.uid_ = ++uidCounter; - this.scheduled_ = false; - } - MutationObserver.prototype = { - constructor: MutationObserver, - observe: function(target, options) { - target = wrapIfNeeded(target); - var newOptions = new MutationObserverOptions(options); - var registration; - var registrations = registrationsTable.get(target); - if (!registrations) registrationsTable.set(target, registrations = []); - for (var i = 0; i < registrations.length; i++) { - if (registrations[i].observer === this) { - registration = registrations[i]; - registration.removeTransientObservers(); - registration.options = newOptions; - } - } - if (!registration) { - registration = new Registration(this, target, newOptions); - registrations.push(registration); - this.nodes_.push(target); - } - }, - disconnect: function() { - this.nodes_.forEach(function(node) { - var registrations = registrationsTable.get(node); - for (var i = 0; i < registrations.length; i++) { - var registration = registrations[i]; - if (registration.observer === this) { - registrations.splice(i, 1); - break; - } - } - }, this); - this.records_ = []; - }, - takeRecords: function() { - var copyOfRecords = this.records_; - this.records_ = []; - return copyOfRecords; - } - }; - function Registration(observer, target, options) { - this.observer = observer; - this.target = target; - this.options = options; - this.transientObservedNodes = []; - } - Registration.prototype = { - addTransientObserver: function(node) { - if (node === this.target) return; - scheduleCallback(this.observer); - this.transientObservedNodes.push(node); - var registrations = registrationsTable.get(node); - if (!registrations) registrationsTable.set(node, registrations = []); - registrations.push(this); - }, - removeTransientObservers: function() { - var transientObservedNodes = this.transientObservedNodes; - this.transientObservedNodes = []; - for (var i = 0; i < transientObservedNodes.length; i++) { - var node = transientObservedNodes[i]; - var registrations = registrationsTable.get(node); - for (var j = 0; j < registrations.length; j++) { - if (registrations[j] === this) { - registrations.splice(j, 1); - break; - } - } - } - } - }; - scope.enqueueMutation = enqueueMutation; - scope.registerTransientObservers = registerTransientObservers; - scope.wrappers.MutationObserver = MutationObserver; - scope.wrappers.MutationRecord = MutationRecord; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - function TreeScope(root, parent) { - this.root = root; - this.parent = parent; - } - TreeScope.prototype = { - get renderer() { - if (this.root instanceof scope.wrappers.ShadowRoot) { - return scope.getRendererForHost(this.root.host); - } - return null; - }, - contains: function(treeScope) { - for (;treeScope; treeScope = treeScope.parent) { - if (treeScope === this) return true; - } - return false; - } - }; - function setTreeScope(node, treeScope) { - if (node.treeScope_ !== treeScope) { - node.treeScope_ = treeScope; - for (var sr = node.shadowRoot; sr; sr = sr.olderShadowRoot) { - sr.treeScope_.parent = treeScope; - } - for (var child = node.firstChild; child; child = child.nextSibling) { - setTreeScope(child, treeScope); - } - } - } - function getTreeScope(node) { - if (node instanceof scope.wrappers.Window) { - debugger; - } - if (node.treeScope_) return node.treeScope_; - var parent = node.parentNode; - var treeScope; - if (parent) treeScope = getTreeScope(parent); else treeScope = new TreeScope(node, null); - return node.treeScope_ = treeScope; - } - scope.TreeScope = TreeScope; - scope.getTreeScope = getTreeScope; - scope.setTreeScope = setTreeScope; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var forwardMethodsToWrapper = scope.forwardMethodsToWrapper; - var getTreeScope = scope.getTreeScope; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var setWrapper = scope.setWrapper; - var unsafeUnwrap = scope.unsafeUnwrap; - var unwrap = scope.unwrap; - var wrap = scope.wrap; - var wrappers = scope.wrappers; - var wrappedFuns = new WeakMap(); - var listenersTable = new WeakMap(); - var handledEventsTable = new WeakMap(); - var currentlyDispatchingEvents = new WeakMap(); - var targetTable = new WeakMap(); - var currentTargetTable = new WeakMap(); - var relatedTargetTable = new WeakMap(); - var eventPhaseTable = new WeakMap(); - var stopPropagationTable = new WeakMap(); - var stopImmediatePropagationTable = new WeakMap(); - var eventHandlersTable = new WeakMap(); - var eventPathTable = new WeakMap(); - function isShadowRoot(node) { - return node instanceof wrappers.ShadowRoot; - } - function rootOfNode(node) { - return getTreeScope(node).root; - } - function getEventPath(node, event) { - var path = []; - var current = node; - path.push(current); - while (current) { - var destinationInsertionPoints = getDestinationInsertionPoints(current); - if (destinationInsertionPoints && destinationInsertionPoints.length > 0) { - for (var i = 0; i < destinationInsertionPoints.length; i++) { - var insertionPoint = destinationInsertionPoints[i]; - if (isShadowInsertionPoint(insertionPoint)) { - var shadowRoot = rootOfNode(insertionPoint); - var olderShadowRoot = shadowRoot.olderShadowRoot; - if (olderShadowRoot) path.push(olderShadowRoot); - } - path.push(insertionPoint); - } - current = destinationInsertionPoints[destinationInsertionPoints.length - 1]; - } else { - if (isShadowRoot(current)) { - if (inSameTree(node, current) && eventMustBeStopped(event)) { - break; - } - current = current.host; - path.push(current); - } else { - current = current.parentNode; - if (current) path.push(current); - } - } - } - return path; - } - function eventMustBeStopped(event) { - if (!event) return false; - switch (event.type) { - case "abort": - case "error": - case "select": - case "change": - case "load": - case "reset": - case "resize": - case "scroll": - case "selectstart": - return true; - } - return false; - } - function isShadowInsertionPoint(node) { - return node instanceof HTMLShadowElement; - } - function getDestinationInsertionPoints(node) { - return scope.getDestinationInsertionPoints(node); - } - function eventRetargetting(path, currentTarget) { - if (path.length === 0) return currentTarget; - if (currentTarget instanceof wrappers.Window) currentTarget = currentTarget.document; - var currentTargetTree = getTreeScope(currentTarget); - var originalTarget = path[0]; - var originalTargetTree = getTreeScope(originalTarget); - var relativeTargetTree = lowestCommonInclusiveAncestor(currentTargetTree, originalTargetTree); - for (var i = 0; i < path.length; i++) { - var node = path[i]; - if (getTreeScope(node) === relativeTargetTree) return node; - } - return path[path.length - 1]; - } - function getTreeScopeAncestors(treeScope) { - var ancestors = []; - for (;treeScope; treeScope = treeScope.parent) { - ancestors.push(treeScope); - } - return ancestors; - } - function lowestCommonInclusiveAncestor(tsA, tsB) { - var ancestorsA = getTreeScopeAncestors(tsA); - var ancestorsB = getTreeScopeAncestors(tsB); - var result = null; - while (ancestorsA.length > 0 && ancestorsB.length > 0) { - var a = ancestorsA.pop(); - var b = ancestorsB.pop(); - if (a === b) result = a; else break; - } - return result; - } - function getTreeScopeRoot(ts) { - if (!ts.parent) return ts; - return getTreeScopeRoot(ts.parent); - } - function relatedTargetResolution(event, currentTarget, relatedTarget) { - if (currentTarget instanceof wrappers.Window) currentTarget = currentTarget.document; - var currentTargetTree = getTreeScope(currentTarget); - var relatedTargetTree = getTreeScope(relatedTarget); - var relatedTargetEventPath = getEventPath(relatedTarget, event); - var lowestCommonAncestorTree; - var lowestCommonAncestorTree = lowestCommonInclusiveAncestor(currentTargetTree, relatedTargetTree); - if (!lowestCommonAncestorTree) lowestCommonAncestorTree = relatedTargetTree.root; - for (var commonAncestorTree = lowestCommonAncestorTree; commonAncestorTree; commonAncestorTree = commonAncestorTree.parent) { - var adjustedRelatedTarget; - for (var i = 0; i < relatedTargetEventPath.length; i++) { - var node = relatedTargetEventPath[i]; - if (getTreeScope(node) === commonAncestorTree) return node; - } - } - return null; - } - function inSameTree(a, b) { - return getTreeScope(a) === getTreeScope(b); - } - var NONE = 0; - var CAPTURING_PHASE = 1; - var AT_TARGET = 2; - var BUBBLING_PHASE = 3; - var pendingError; - function dispatchOriginalEvent(originalEvent) { - if (handledEventsTable.get(originalEvent)) return; - handledEventsTable.set(originalEvent, true); - dispatchEvent(wrap(originalEvent), wrap(originalEvent.target)); - if (pendingError) { - var err = pendingError; - pendingError = null; - throw err; - } - } - function isLoadLikeEvent(event) { - switch (event.type) { - case "load": - case "beforeunload": - case "unload": - return true; - } - return false; - } - function dispatchEvent(event, originalWrapperTarget) { - if (currentlyDispatchingEvents.get(event)) throw new Error("InvalidStateError"); - currentlyDispatchingEvents.set(event, true); - scope.renderAllPending(); - var eventPath; - var overrideTarget; - var win; - if (isLoadLikeEvent(event) && !event.bubbles) { - var doc = originalWrapperTarget; - if (doc instanceof wrappers.Document && (win = doc.defaultView)) { - overrideTarget = doc; - eventPath = []; - } - } - if (!eventPath) { - if (originalWrapperTarget instanceof wrappers.Window) { - win = originalWrapperTarget; - eventPath = []; - } else { - eventPath = getEventPath(originalWrapperTarget, event); - if (!isLoadLikeEvent(event)) { - var doc = eventPath[eventPath.length - 1]; - if (doc instanceof wrappers.Document) win = doc.defaultView; - } - } - } - eventPathTable.set(event, eventPath); - if (dispatchCapturing(event, eventPath, win, overrideTarget)) { - if (dispatchAtTarget(event, eventPath, win, overrideTarget)) { - dispatchBubbling(event, eventPath, win, overrideTarget); - } - } - eventPhaseTable.set(event, NONE); - currentTargetTable.delete(event, null); - currentlyDispatchingEvents.delete(event); - return event.defaultPrevented; - } - function dispatchCapturing(event, eventPath, win, overrideTarget) { - var phase = CAPTURING_PHASE; - if (win) { - if (!invoke(win, event, phase, eventPath, overrideTarget)) return false; - } - for (var i = eventPath.length - 1; i > 0; i--) { - if (!invoke(eventPath[i], event, phase, eventPath, overrideTarget)) return false; - } - return true; - } - function dispatchAtTarget(event, eventPath, win, overrideTarget) { - var phase = AT_TARGET; - var currentTarget = eventPath[0] || win; - return invoke(currentTarget, event, phase, eventPath, overrideTarget); - } - function dispatchBubbling(event, eventPath, win, overrideTarget) { - var phase = BUBBLING_PHASE; - for (var i = 1; i < eventPath.length; i++) { - if (!invoke(eventPath[i], event, phase, eventPath, overrideTarget)) return; - } - if (win && eventPath.length > 0) { - invoke(win, event, phase, eventPath, overrideTarget); - } - } - function invoke(currentTarget, event, phase, eventPath, overrideTarget) { - var listeners = listenersTable.get(currentTarget); - if (!listeners) return true; - var target = overrideTarget || eventRetargetting(eventPath, currentTarget); - if (target === currentTarget) { - if (phase === CAPTURING_PHASE) return true; - if (phase === BUBBLING_PHASE) phase = AT_TARGET; - } else if (phase === BUBBLING_PHASE && !event.bubbles) { - return true; - } - if ("relatedTarget" in event) { - var originalEvent = unwrap(event); - var unwrappedRelatedTarget = originalEvent.relatedTarget; - if (unwrappedRelatedTarget) { - if (unwrappedRelatedTarget instanceof Object && unwrappedRelatedTarget.addEventListener) { - var relatedTarget = wrap(unwrappedRelatedTarget); - var adjusted = relatedTargetResolution(event, currentTarget, relatedTarget); - if (adjusted === target) return true; - } else { - adjusted = null; - } - relatedTargetTable.set(event, adjusted); - } - } - eventPhaseTable.set(event, phase); - var type = event.type; - var anyRemoved = false; - targetTable.set(event, target); - currentTargetTable.set(event, currentTarget); - listeners.depth++; - for (var i = 0, len = listeners.length; i < len; i++) { - var listener = listeners[i]; - if (listener.removed) { - anyRemoved = true; - continue; - } - if (listener.type !== type || !listener.capture && phase === CAPTURING_PHASE || listener.capture && phase === BUBBLING_PHASE) { - continue; - } - try { - if (typeof listener.handler === "function") listener.handler.call(currentTarget, event); else listener.handler.handleEvent(event); - if (stopImmediatePropagationTable.get(event)) return false; - } catch (ex) { - if (!pendingError) pendingError = ex; - } - } - listeners.depth--; - if (anyRemoved && listeners.depth === 0) { - var copy = listeners.slice(); - listeners.length = 0; - for (var i = 0; i < copy.length; i++) { - if (!copy[i].removed) listeners.push(copy[i]); - } - } - return !stopPropagationTable.get(event); - } - function Listener(type, handler, capture) { - this.type = type; - this.handler = handler; - this.capture = Boolean(capture); - } - Listener.prototype = { - equals: function(that) { - return this.handler === that.handler && this.type === that.type && this.capture === that.capture; - }, - get removed() { - return this.handler === null; - }, - remove: function() { - this.handler = null; - } - }; - var OriginalEvent = window.Event; - OriginalEvent.prototype.polymerBlackList_ = { - returnValue: true, - keyLocation: true - }; - function Event(type, options) { - if (type instanceof OriginalEvent) { - var impl = type; - if (!OriginalBeforeUnloadEvent && impl.type === "beforeunload" && !(this instanceof BeforeUnloadEvent)) { - return new BeforeUnloadEvent(impl); - } - setWrapper(impl, this); - } else { - return wrap(constructEvent(OriginalEvent, "Event", type, options)); - } - } - Event.prototype = { - get target() { - return targetTable.get(this); - }, - get currentTarget() { - return currentTargetTable.get(this); - }, - get eventPhase() { - return eventPhaseTable.get(this); - }, - get path() { - var eventPath = eventPathTable.get(this); - if (!eventPath) return []; - return eventPath.slice(); - }, - stopPropagation: function() { - stopPropagationTable.set(this, true); - }, - stopImmediatePropagation: function() { - stopPropagationTable.set(this, true); - stopImmediatePropagationTable.set(this, true); - } - }; - registerWrapper(OriginalEvent, Event, document.createEvent("Event")); - function unwrapOptions(options) { - if (!options || !options.relatedTarget) return options; - return Object.create(options, { - relatedTarget: { - value: unwrap(options.relatedTarget) - } - }); - } - function registerGenericEvent(name, SuperEvent, prototype) { - var OriginalEvent = window[name]; - var GenericEvent = function(type, options) { - if (type instanceof OriginalEvent) setWrapper(type, this); else return wrap(constructEvent(OriginalEvent, name, type, options)); - }; - GenericEvent.prototype = Object.create(SuperEvent.prototype); - if (prototype) mixin(GenericEvent.prototype, prototype); - if (OriginalEvent) { - try { - registerWrapper(OriginalEvent, GenericEvent, new OriginalEvent("temp")); - } catch (ex) { - registerWrapper(OriginalEvent, GenericEvent, document.createEvent(name)); - } - } - return GenericEvent; - } - var UIEvent = registerGenericEvent("UIEvent", Event); - var CustomEvent = registerGenericEvent("CustomEvent", Event); - var relatedTargetProto = { - get relatedTarget() { - var relatedTarget = relatedTargetTable.get(this); - if (relatedTarget !== undefined) return relatedTarget; - return wrap(unwrap(this).relatedTarget); - } - }; - function getInitFunction(name, relatedTargetIndex) { - return function() { - arguments[relatedTargetIndex] = unwrap(arguments[relatedTargetIndex]); - var impl = unwrap(this); - impl[name].apply(impl, arguments); - }; - } - var mouseEventProto = mixin({ - initMouseEvent: getInitFunction("initMouseEvent", 14) - }, relatedTargetProto); - var focusEventProto = mixin({ - initFocusEvent: getInitFunction("initFocusEvent", 5) - }, relatedTargetProto); - var MouseEvent = registerGenericEvent("MouseEvent", UIEvent, mouseEventProto); - var FocusEvent = registerGenericEvent("FocusEvent", UIEvent, focusEventProto); - var defaultInitDicts = Object.create(null); - var supportsEventConstructors = function() { - try { - new window.FocusEvent("focus"); - } catch (ex) { - return false; - } - return true; - }(); - function constructEvent(OriginalEvent, name, type, options) { - if (supportsEventConstructors) return new OriginalEvent(type, unwrapOptions(options)); - var event = unwrap(document.createEvent(name)); - var defaultDict = defaultInitDicts[name]; - var args = [ type ]; - Object.keys(defaultDict).forEach(function(key) { - var v = options != null && key in options ? options[key] : defaultDict[key]; - if (key === "relatedTarget") v = unwrap(v); - args.push(v); - }); - event["init" + name].apply(event, args); - return event; - } - if (!supportsEventConstructors) { - var configureEventConstructor = function(name, initDict, superName) { - if (superName) { - var superDict = defaultInitDicts[superName]; - initDict = mixin(mixin({}, superDict), initDict); - } - defaultInitDicts[name] = initDict; - }; - configureEventConstructor("Event", { - bubbles: false, - cancelable: false - }); - configureEventConstructor("CustomEvent", { - detail: null - }, "Event"); - configureEventConstructor("UIEvent", { - view: null, - detail: 0 - }, "Event"); - configureEventConstructor("MouseEvent", { - screenX: 0, - screenY: 0, - clientX: 0, - clientY: 0, - ctrlKey: false, - altKey: false, - shiftKey: false, - metaKey: false, - button: 0, - relatedTarget: null - }, "UIEvent"); - configureEventConstructor("FocusEvent", { - relatedTarget: null - }, "UIEvent"); - } - var OriginalBeforeUnloadEvent = window.BeforeUnloadEvent; - function BeforeUnloadEvent(impl) { - Event.call(this, impl); - } - BeforeUnloadEvent.prototype = Object.create(Event.prototype); - mixin(BeforeUnloadEvent.prototype, { - get returnValue() { - return unsafeUnwrap(this).returnValue; - }, - set returnValue(v) { - unsafeUnwrap(this).returnValue = v; - } - }); - if (OriginalBeforeUnloadEvent) registerWrapper(OriginalBeforeUnloadEvent, BeforeUnloadEvent); - function isValidListener(fun) { - if (typeof fun === "function") return true; - return fun && fun.handleEvent; - } - function isMutationEvent(type) { - switch (type) { - case "DOMAttrModified": - case "DOMAttributeNameChanged": - case "DOMCharacterDataModified": - case "DOMElementNameChanged": - case "DOMNodeInserted": - case "DOMNodeInsertedIntoDocument": - case "DOMNodeRemoved": - case "DOMNodeRemovedFromDocument": - case "DOMSubtreeModified": - return true; - } - return false; - } - var OriginalEventTarget = window.EventTarget; - function EventTarget(impl) { - setWrapper(impl, this); - } - var methodNames = [ "addEventListener", "removeEventListener", "dispatchEvent" ]; - [ Node, Window ].forEach(function(constructor) { - var p = constructor.prototype; - methodNames.forEach(function(name) { - Object.defineProperty(p, name + "_", { - value: p[name] - }); - }); - }); - function getTargetToListenAt(wrapper) { - if (wrapper instanceof wrappers.ShadowRoot) wrapper = wrapper.host; - return unwrap(wrapper); - } - EventTarget.prototype = { - addEventListener: function(type, fun, capture) { - if (!isValidListener(fun) || isMutationEvent(type)) return; - var listener = new Listener(type, fun, capture); - var listeners = listenersTable.get(this); - if (!listeners) { - listeners = []; - listeners.depth = 0; - listenersTable.set(this, listeners); - } else { - for (var i = 0; i < listeners.length; i++) { - if (listener.equals(listeners[i])) return; - } - } - listeners.push(listener); - var target = getTargetToListenAt(this); - target.addEventListener_(type, dispatchOriginalEvent, true); - }, - removeEventListener: function(type, fun, capture) { - capture = Boolean(capture); - var listeners = listenersTable.get(this); - if (!listeners) return; - var count = 0, found = false; - for (var i = 0; i < listeners.length; i++) { - if (listeners[i].type === type && listeners[i].capture === capture) { - count++; - if (listeners[i].handler === fun) { - found = true; - listeners[i].remove(); - } - } - } - if (found && count === 1) { - var target = getTargetToListenAt(this); - target.removeEventListener_(type, dispatchOriginalEvent, true); - } - }, - dispatchEvent: function(event) { - var nativeEvent = unwrap(event); - var eventType = nativeEvent.type; - handledEventsTable.set(nativeEvent, false); - scope.renderAllPending(); - var tempListener; - if (!hasListenerInAncestors(this, eventType)) { - tempListener = function() {}; - this.addEventListener(eventType, tempListener, true); - } - try { - return unwrap(this).dispatchEvent_(nativeEvent); - } finally { - if (tempListener) this.removeEventListener(eventType, tempListener, true); - } - } - }; - function hasListener(node, type) { - var listeners = listenersTable.get(node); - if (listeners) { - for (var i = 0; i < listeners.length; i++) { - if (!listeners[i].removed && listeners[i].type === type) return true; - } - } - return false; - } - function hasListenerInAncestors(target, type) { - for (var node = unwrap(target); node; node = node.parentNode) { - if (hasListener(wrap(node), type)) return true; - } - return false; - } - if (OriginalEventTarget) registerWrapper(OriginalEventTarget, EventTarget); - function wrapEventTargetMethods(constructors) { - forwardMethodsToWrapper(constructors, methodNames); - } - var originalElementFromPoint = document.elementFromPoint; - function elementFromPoint(self, document, x, y) { - scope.renderAllPending(); - var element = wrap(originalElementFromPoint.call(unsafeUnwrap(document), x, y)); - if (!element) return null; - var path = getEventPath(element, null); - var idx = path.lastIndexOf(self); - if (idx == -1) return null; else path = path.slice(0, idx); - return eventRetargetting(path, self); - } - function getEventHandlerGetter(name) { - return function() { - var inlineEventHandlers = eventHandlersTable.get(this); - return inlineEventHandlers && inlineEventHandlers[name] && inlineEventHandlers[name].value || null; - }; - } - function getEventHandlerSetter(name) { - var eventType = name.slice(2); - return function(value) { - var inlineEventHandlers = eventHandlersTable.get(this); - if (!inlineEventHandlers) { - inlineEventHandlers = Object.create(null); - eventHandlersTable.set(this, inlineEventHandlers); - } - var old = inlineEventHandlers[name]; - if (old) this.removeEventListener(eventType, old.wrapped, false); - if (typeof value === "function") { - var wrapped = function(e) { - var rv = value.call(this, e); - if (rv === false) e.preventDefault(); else if (name === "onbeforeunload" && typeof rv === "string") e.returnValue = rv; - }; - this.addEventListener(eventType, wrapped, false); - inlineEventHandlers[name] = { - value: value, - wrapped: wrapped - }; - } - }; - } - scope.elementFromPoint = elementFromPoint; - scope.getEventHandlerGetter = getEventHandlerGetter; - scope.getEventHandlerSetter = getEventHandlerSetter; - scope.wrapEventTargetMethods = wrapEventTargetMethods; - scope.wrappers.BeforeUnloadEvent = BeforeUnloadEvent; - scope.wrappers.CustomEvent = CustomEvent; - scope.wrappers.Event = Event; - scope.wrappers.EventTarget = EventTarget; - scope.wrappers.FocusEvent = FocusEvent; - scope.wrappers.MouseEvent = MouseEvent; - scope.wrappers.UIEvent = UIEvent; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var UIEvent = scope.wrappers.UIEvent; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var setWrapper = scope.setWrapper; - var unsafeUnwrap = scope.unsafeUnwrap; - var wrap = scope.wrap; - var OriginalTouchEvent = window.TouchEvent; - if (!OriginalTouchEvent) return; - var nativeEvent; - try { - nativeEvent = document.createEvent("TouchEvent"); - } catch (ex) { - return; - } - var nonEnumDescriptor = { - enumerable: false - }; - function nonEnum(obj, prop) { - Object.defineProperty(obj, prop, nonEnumDescriptor); - } - function Touch(impl) { - setWrapper(impl, this); - } - Touch.prototype = { - get target() { - return wrap(unsafeUnwrap(this).target); - } - }; - var descr = { - configurable: true, - enumerable: true, - get: null - }; - [ "clientX", "clientY", "screenX", "screenY", "pageX", "pageY", "identifier", "webkitRadiusX", "webkitRadiusY", "webkitRotationAngle", "webkitForce" ].forEach(function(name) { - descr.get = function() { - return unsafeUnwrap(this)[name]; - }; - Object.defineProperty(Touch.prototype, name, descr); - }); - function TouchList() { - this.length = 0; - nonEnum(this, "length"); - } - TouchList.prototype = { - item: function(index) { - return this[index]; - } - }; - function wrapTouchList(nativeTouchList) { - var list = new TouchList(); - for (var i = 0; i < nativeTouchList.length; i++) { - list[i] = new Touch(nativeTouchList[i]); - } - list.length = i; - return list; - } - function TouchEvent(impl) { - UIEvent.call(this, impl); - } - TouchEvent.prototype = Object.create(UIEvent.prototype); - mixin(TouchEvent.prototype, { - get touches() { - return wrapTouchList(unsafeUnwrap(this).touches); - }, - get targetTouches() { - return wrapTouchList(unsafeUnwrap(this).targetTouches); - }, - get changedTouches() { - return wrapTouchList(unsafeUnwrap(this).changedTouches); - }, - initTouchEvent: function() { - throw new Error("Not implemented"); - } - }); - registerWrapper(OriginalTouchEvent, TouchEvent, nativeEvent); - scope.wrappers.Touch = Touch; - scope.wrappers.TouchEvent = TouchEvent; - scope.wrappers.TouchList = TouchList; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var unsafeUnwrap = scope.unsafeUnwrap; - var wrap = scope.wrap; - var nonEnumDescriptor = { - enumerable: false - }; - function nonEnum(obj, prop) { - Object.defineProperty(obj, prop, nonEnumDescriptor); - } - function NodeList() { - this.length = 0; - nonEnum(this, "length"); - } - NodeList.prototype = { - item: function(index) { - return this[index]; - } - }; - nonEnum(NodeList.prototype, "item"); - function wrapNodeList(list) { - if (list == null) return list; - var wrapperList = new NodeList(); - for (var i = 0, length = list.length; i < length; i++) { - wrapperList[i] = wrap(list[i]); - } - wrapperList.length = length; - return wrapperList; - } - function addWrapNodeListMethod(wrapperConstructor, name) { - wrapperConstructor.prototype[name] = function() { - return wrapNodeList(unsafeUnwrap(this)[name].apply(unsafeUnwrap(this), arguments)); - }; - } - scope.wrappers.NodeList = NodeList; - scope.addWrapNodeListMethod = addWrapNodeListMethod; - scope.wrapNodeList = wrapNodeList; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - scope.wrapHTMLCollection = scope.wrapNodeList; - scope.wrappers.HTMLCollection = scope.wrappers.NodeList; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var EventTarget = scope.wrappers.EventTarget; - var NodeList = scope.wrappers.NodeList; - var TreeScope = scope.TreeScope; - var assert = scope.assert; - var defineWrapGetter = scope.defineWrapGetter; - var enqueueMutation = scope.enqueueMutation; - var getTreeScope = scope.getTreeScope; - var isWrapper = scope.isWrapper; - var mixin = scope.mixin; - var registerTransientObservers = scope.registerTransientObservers; - var registerWrapper = scope.registerWrapper; - var setTreeScope = scope.setTreeScope; - var unsafeUnwrap = scope.unsafeUnwrap; - var unwrap = scope.unwrap; - var unwrapIfNeeded = scope.unwrapIfNeeded; - var wrap = scope.wrap; - var wrapIfNeeded = scope.wrapIfNeeded; - var wrappers = scope.wrappers; - function assertIsNodeWrapper(node) { - assert(node instanceof Node); - } - function createOneElementNodeList(node) { - var nodes = new NodeList(); - nodes[0] = node; - nodes.length = 1; - return nodes; - } - var surpressMutations = false; - function enqueueRemovalForInsertedNodes(node, parent, nodes) { - enqueueMutation(parent, "childList", { - removedNodes: nodes, - previousSibling: node.previousSibling, - nextSibling: node.nextSibling - }); - } - function enqueueRemovalForInsertedDocumentFragment(df, nodes) { - enqueueMutation(df, "childList", { - removedNodes: nodes - }); - } - function collectNodes(node, parentNode, previousNode, nextNode) { - if (node instanceof DocumentFragment) { - var nodes = collectNodesForDocumentFragment(node); - surpressMutations = true; - for (var i = nodes.length - 1; i >= 0; i--) { - node.removeChild(nodes[i]); - nodes[i].parentNode_ = parentNode; - } - surpressMutations = false; - for (var i = 0; i < nodes.length; i++) { - nodes[i].previousSibling_ = nodes[i - 1] || previousNode; - nodes[i].nextSibling_ = nodes[i + 1] || nextNode; - } - if (previousNode) previousNode.nextSibling_ = nodes[0]; - if (nextNode) nextNode.previousSibling_ = nodes[nodes.length - 1]; - return nodes; - } - var nodes = createOneElementNodeList(node); - var oldParent = node.parentNode; - if (oldParent) { - oldParent.removeChild(node); - } - node.parentNode_ = parentNode; - node.previousSibling_ = previousNode; - node.nextSibling_ = nextNode; - if (previousNode) previousNode.nextSibling_ = node; - if (nextNode) nextNode.previousSibling_ = node; - return nodes; - } - function collectNodesNative(node) { - if (node instanceof DocumentFragment) return collectNodesForDocumentFragment(node); - var nodes = createOneElementNodeList(node); - var oldParent = node.parentNode; - if (oldParent) enqueueRemovalForInsertedNodes(node, oldParent, nodes); - return nodes; - } - function collectNodesForDocumentFragment(node) { - var nodes = new NodeList(); - var i = 0; - for (var child = node.firstChild; child; child = child.nextSibling) { - nodes[i++] = child; - } - nodes.length = i; - enqueueRemovalForInsertedDocumentFragment(node, nodes); - return nodes; - } - function snapshotNodeList(nodeList) { - return nodeList; - } - function nodeWasAdded(node, treeScope) { - setTreeScope(node, treeScope); - node.nodeIsInserted_(); - } - function nodesWereAdded(nodes, parent) { - var treeScope = getTreeScope(parent); - for (var i = 0; i < nodes.length; i++) { - nodeWasAdded(nodes[i], treeScope); - } - } - function nodeWasRemoved(node) { - setTreeScope(node, new TreeScope(node, null)); - } - function nodesWereRemoved(nodes) { - for (var i = 0; i < nodes.length; i++) { - nodeWasRemoved(nodes[i]); - } - } - function ensureSameOwnerDocument(parent, child) { - var ownerDoc = parent.nodeType === Node.DOCUMENT_NODE ? parent : parent.ownerDocument; - if (ownerDoc !== child.ownerDocument) ownerDoc.adoptNode(child); - } - function adoptNodesIfNeeded(owner, nodes) { - if (!nodes.length) return; - var ownerDoc = owner.ownerDocument; - if (ownerDoc === nodes[0].ownerDocument) return; - for (var i = 0; i < nodes.length; i++) { - scope.adoptNodeNoRemove(nodes[i], ownerDoc); - } - } - function unwrapNodesForInsertion(owner, nodes) { - adoptNodesIfNeeded(owner, nodes); - var length = nodes.length; - if (length === 1) return unwrap(nodes[0]); - var df = unwrap(owner.ownerDocument.createDocumentFragment()); - for (var i = 0; i < length; i++) { - df.appendChild(unwrap(nodes[i])); - } - return df; - } - function clearChildNodes(wrapper) { - if (wrapper.firstChild_ !== undefined) { - var child = wrapper.firstChild_; - while (child) { - var tmp = child; - child = child.nextSibling_; - tmp.parentNode_ = tmp.previousSibling_ = tmp.nextSibling_ = undefined; - } - } - wrapper.firstChild_ = wrapper.lastChild_ = undefined; - } - function removeAllChildNodes(wrapper) { - if (wrapper.invalidateShadowRenderer()) { - var childWrapper = wrapper.firstChild; - while (childWrapper) { - assert(childWrapper.parentNode === wrapper); - var nextSibling = childWrapper.nextSibling; - var childNode = unwrap(childWrapper); - var parentNode = childNode.parentNode; - if (parentNode) originalRemoveChild.call(parentNode, childNode); - childWrapper.previousSibling_ = childWrapper.nextSibling_ = childWrapper.parentNode_ = null; - childWrapper = nextSibling; - } - wrapper.firstChild_ = wrapper.lastChild_ = null; - } else { - var node = unwrap(wrapper); - var child = node.firstChild; - var nextSibling; - while (child) { - nextSibling = child.nextSibling; - originalRemoveChild.call(node, child); - child = nextSibling; - } - } - } - function invalidateParent(node) { - var p = node.parentNode; - return p && p.invalidateShadowRenderer(); - } - function cleanupNodes(nodes) { - for (var i = 0, n; i < nodes.length; i++) { - n = nodes[i]; - n.parentNode.removeChild(n); - } - } - var originalImportNode = document.importNode; - var originalCloneNode = window.Node.prototype.cloneNode; - function cloneNode(node, deep, opt_doc) { - var clone; - if (opt_doc) clone = wrap(originalImportNode.call(opt_doc, unsafeUnwrap(node), false)); else clone = wrap(originalCloneNode.call(unsafeUnwrap(node), false)); - if (deep) { - for (var child = node.firstChild; child; child = child.nextSibling) { - clone.appendChild(cloneNode(child, true, opt_doc)); - } - if (node instanceof wrappers.HTMLTemplateElement) { - var cloneContent = clone.content; - for (var child = node.content.firstChild; child; child = child.nextSibling) { - cloneContent.appendChild(cloneNode(child, true, opt_doc)); - } - } - } - return clone; - } - function contains(self, child) { - if (!child || getTreeScope(self) !== getTreeScope(child)) return false; - for (var node = child; node; node = node.parentNode) { - if (node === self) return true; - } - return false; - } - var OriginalNode = window.Node; - function Node(original) { - assert(original instanceof OriginalNode); - EventTarget.call(this, original); - this.parentNode_ = undefined; - this.firstChild_ = undefined; - this.lastChild_ = undefined; - this.nextSibling_ = undefined; - this.previousSibling_ = undefined; - this.treeScope_ = undefined; - } - var OriginalDocumentFragment = window.DocumentFragment; - var originalAppendChild = OriginalNode.prototype.appendChild; - var originalCompareDocumentPosition = OriginalNode.prototype.compareDocumentPosition; - var originalIsEqualNode = OriginalNode.prototype.isEqualNode; - var originalInsertBefore = OriginalNode.prototype.insertBefore; - var originalRemoveChild = OriginalNode.prototype.removeChild; - var originalReplaceChild = OriginalNode.prototype.replaceChild; - var isIe = /Trident|Edge/.test(navigator.userAgent); - var removeChildOriginalHelper = isIe ? function(parent, child) { - try { - originalRemoveChild.call(parent, child); - } catch (ex) { - if (!(parent instanceof OriginalDocumentFragment)) throw ex; - } - } : function(parent, child) { - originalRemoveChild.call(parent, child); - }; - Node.prototype = Object.create(EventTarget.prototype); - mixin(Node.prototype, { - appendChild: function(childWrapper) { - return this.insertBefore(childWrapper, null); - }, - insertBefore: function(childWrapper, refWrapper) { - assertIsNodeWrapper(childWrapper); - var refNode; - if (refWrapper) { - if (isWrapper(refWrapper)) { - refNode = unwrap(refWrapper); - } else { - refNode = refWrapper; - refWrapper = wrap(refNode); - } - } else { - refWrapper = null; - refNode = null; - } - refWrapper && assert(refWrapper.parentNode === this); - var nodes; - var previousNode = refWrapper ? refWrapper.previousSibling : this.lastChild; - var useNative = !this.invalidateShadowRenderer() && !invalidateParent(childWrapper); - if (useNative) nodes = collectNodesNative(childWrapper); else nodes = collectNodes(childWrapper, this, previousNode, refWrapper); - if (useNative) { - ensureSameOwnerDocument(this, childWrapper); - clearChildNodes(this); - originalInsertBefore.call(unsafeUnwrap(this), unwrap(childWrapper), refNode); - } else { - if (!previousNode) this.firstChild_ = nodes[0]; - if (!refWrapper) { - this.lastChild_ = nodes[nodes.length - 1]; - if (this.firstChild_ === undefined) this.firstChild_ = this.firstChild; - } - var parentNode = refNode ? refNode.parentNode : unsafeUnwrap(this); - if (parentNode) { - originalInsertBefore.call(parentNode, unwrapNodesForInsertion(this, nodes), refNode); - } else { - adoptNodesIfNeeded(this, nodes); - } - } - enqueueMutation(this, "childList", { - addedNodes: nodes, - nextSibling: refWrapper, - previousSibling: previousNode - }); - nodesWereAdded(nodes, this); - return childWrapper; - }, - removeChild: function(childWrapper) { - assertIsNodeWrapper(childWrapper); - if (childWrapper.parentNode !== this) { - var found = false; - var childNodes = this.childNodes; - for (var ieChild = this.firstChild; ieChild; ieChild = ieChild.nextSibling) { - if (ieChild === childWrapper) { - found = true; - break; - } - } - if (!found) { - throw new Error("NotFoundError"); - } - } - var childNode = unwrap(childWrapper); - var childWrapperNextSibling = childWrapper.nextSibling; - var childWrapperPreviousSibling = childWrapper.previousSibling; - if (this.invalidateShadowRenderer()) { - var thisFirstChild = this.firstChild; - var thisLastChild = this.lastChild; - var parentNode = childNode.parentNode; - if (parentNode) removeChildOriginalHelper(parentNode, childNode); - if (thisFirstChild === childWrapper) this.firstChild_ = childWrapperNextSibling; - if (thisLastChild === childWrapper) this.lastChild_ = childWrapperPreviousSibling; - if (childWrapperPreviousSibling) childWrapperPreviousSibling.nextSibling_ = childWrapperNextSibling; - if (childWrapperNextSibling) { - childWrapperNextSibling.previousSibling_ = childWrapperPreviousSibling; - } - childWrapper.previousSibling_ = childWrapper.nextSibling_ = childWrapper.parentNode_ = undefined; - } else { - clearChildNodes(this); - removeChildOriginalHelper(unsafeUnwrap(this), childNode); - } - if (!surpressMutations) { - enqueueMutation(this, "childList", { - removedNodes: createOneElementNodeList(childWrapper), - nextSibling: childWrapperNextSibling, - previousSibling: childWrapperPreviousSibling - }); - } - registerTransientObservers(this, childWrapper); - return childWrapper; - }, - replaceChild: function(newChildWrapper, oldChildWrapper) { - assertIsNodeWrapper(newChildWrapper); - var oldChildNode; - if (isWrapper(oldChildWrapper)) { - oldChildNode = unwrap(oldChildWrapper); - } else { - oldChildNode = oldChildWrapper; - oldChildWrapper = wrap(oldChildNode); - } - if (oldChildWrapper.parentNode !== this) { - throw new Error("NotFoundError"); - } - var nextNode = oldChildWrapper.nextSibling; - var previousNode = oldChildWrapper.previousSibling; - var nodes; - var useNative = !this.invalidateShadowRenderer() && !invalidateParent(newChildWrapper); - if (useNative) { - nodes = collectNodesNative(newChildWrapper); - } else { - if (nextNode === newChildWrapper) nextNode = newChildWrapper.nextSibling; - nodes = collectNodes(newChildWrapper, this, previousNode, nextNode); - } - if (!useNative) { - if (this.firstChild === oldChildWrapper) this.firstChild_ = nodes[0]; - if (this.lastChild === oldChildWrapper) this.lastChild_ = nodes[nodes.length - 1]; - oldChildWrapper.previousSibling_ = oldChildWrapper.nextSibling_ = oldChildWrapper.parentNode_ = undefined; - if (oldChildNode.parentNode) { - originalReplaceChild.call(oldChildNode.parentNode, unwrapNodesForInsertion(this, nodes), oldChildNode); - } - } else { - ensureSameOwnerDocument(this, newChildWrapper); - clearChildNodes(this); - originalReplaceChild.call(unsafeUnwrap(this), unwrap(newChildWrapper), oldChildNode); - } - enqueueMutation(this, "childList", { - addedNodes: nodes, - removedNodes: createOneElementNodeList(oldChildWrapper), - nextSibling: nextNode, - previousSibling: previousNode - }); - nodeWasRemoved(oldChildWrapper); - nodesWereAdded(nodes, this); - return oldChildWrapper; - }, - nodeIsInserted_: function() { - for (var child = this.firstChild; child; child = child.nextSibling) { - child.nodeIsInserted_(); - } - }, - hasChildNodes: function() { - return this.firstChild !== null; - }, - get parentNode() { - return this.parentNode_ !== undefined ? this.parentNode_ : wrap(unsafeUnwrap(this).parentNode); - }, - get firstChild() { - return this.firstChild_ !== undefined ? this.firstChild_ : wrap(unsafeUnwrap(this).firstChild); - }, - get lastChild() { - return this.lastChild_ !== undefined ? this.lastChild_ : wrap(unsafeUnwrap(this).lastChild); - }, - get nextSibling() { - return this.nextSibling_ !== undefined ? this.nextSibling_ : wrap(unsafeUnwrap(this).nextSibling); - }, - get previousSibling() { - return this.previousSibling_ !== undefined ? this.previousSibling_ : wrap(unsafeUnwrap(this).previousSibling); - }, - get parentElement() { - var p = this.parentNode; - while (p && p.nodeType !== Node.ELEMENT_NODE) { - p = p.parentNode; - } - return p; - }, - get textContent() { - var s = ""; - for (var child = this.firstChild; child; child = child.nextSibling) { - if (child.nodeType != Node.COMMENT_NODE) { - s += child.textContent; - } - } - return s; - }, - set textContent(textContent) { - if (textContent == null) textContent = ""; - var removedNodes = snapshotNodeList(this.childNodes); - if (this.invalidateShadowRenderer()) { - removeAllChildNodes(this); - if (textContent !== "") { - var textNode = unsafeUnwrap(this).ownerDocument.createTextNode(textContent); - this.appendChild(textNode); - } - } else { - clearChildNodes(this); - unsafeUnwrap(this).textContent = textContent; - } - var addedNodes = snapshotNodeList(this.childNodes); - enqueueMutation(this, "childList", { - addedNodes: addedNodes, - removedNodes: removedNodes - }); - nodesWereRemoved(removedNodes); - nodesWereAdded(addedNodes, this); - }, - get childNodes() { - var wrapperList = new NodeList(); - var i = 0; - for (var child = this.firstChild; child; child = child.nextSibling) { - wrapperList[i++] = child; - } - wrapperList.length = i; - return wrapperList; - }, - cloneNode: function(deep) { - return cloneNode(this, deep); - }, - contains: function(child) { - return contains(this, wrapIfNeeded(child)); - }, - compareDocumentPosition: function(otherNode) { - return originalCompareDocumentPosition.call(unsafeUnwrap(this), unwrapIfNeeded(otherNode)); - }, - isEqualNode: function(otherNode) { - return originalIsEqualNode.call(unsafeUnwrap(this), unwrapIfNeeded(otherNode)); - }, - normalize: function() { - var nodes = snapshotNodeList(this.childNodes); - var remNodes = []; - var s = ""; - var modNode; - for (var i = 0, n; i < nodes.length; i++) { - n = nodes[i]; - if (n.nodeType === Node.TEXT_NODE) { - if (!modNode && !n.data.length) this.removeChild(n); else if (!modNode) modNode = n; else { - s += n.data; - remNodes.push(n); - } - } else { - if (modNode && remNodes.length) { - modNode.data += s; - cleanupNodes(remNodes); - } - remNodes = []; - s = ""; - modNode = null; - if (n.childNodes.length) n.normalize(); - } - } - if (modNode && remNodes.length) { - modNode.data += s; - cleanupNodes(remNodes); - } - } - }); - defineWrapGetter(Node, "ownerDocument"); - registerWrapper(OriginalNode, Node, document.createDocumentFragment()); - delete Node.prototype.querySelector; - delete Node.prototype.querySelectorAll; - Node.prototype = mixin(Object.create(EventTarget.prototype), Node.prototype); - scope.cloneNode = cloneNode; - scope.nodeWasAdded = nodeWasAdded; - scope.nodeWasRemoved = nodeWasRemoved; - scope.nodesWereAdded = nodesWereAdded; - scope.nodesWereRemoved = nodesWereRemoved; - scope.originalInsertBefore = originalInsertBefore; - scope.originalRemoveChild = originalRemoveChild; - scope.snapshotNodeList = snapshotNodeList; - scope.wrappers.Node = Node; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var HTMLCollection = scope.wrappers.HTMLCollection; - var NodeList = scope.wrappers.NodeList; - var getTreeScope = scope.getTreeScope; - var unsafeUnwrap = scope.unsafeUnwrap; - var wrap = scope.wrap; - var originalDocumentQuerySelector = document.querySelector; - var originalElementQuerySelector = document.documentElement.querySelector; - var originalDocumentQuerySelectorAll = document.querySelectorAll; - var originalElementQuerySelectorAll = document.documentElement.querySelectorAll; - var originalDocumentGetElementsByTagName = document.getElementsByTagName; - var originalElementGetElementsByTagName = document.documentElement.getElementsByTagName; - var originalDocumentGetElementsByTagNameNS = document.getElementsByTagNameNS; - var originalElementGetElementsByTagNameNS = document.documentElement.getElementsByTagNameNS; - var OriginalElement = window.Element; - var OriginalDocument = window.HTMLDocument || window.Document; - function filterNodeList(list, index, result, deep) { - var wrappedItem = null; - var root = null; - for (var i = 0, length = list.length; i < length; i++) { - wrappedItem = wrap(list[i]); - if (!deep && (root = getTreeScope(wrappedItem).root)) { - if (root instanceof scope.wrappers.ShadowRoot) { - continue; - } - } - result[index++] = wrappedItem; - } - return index; - } - function shimSelector(selector) { - return String(selector).replace(/\/deep\/|::shadow|>>>/g, " "); - } - function shimMatchesSelector(selector) { - return String(selector).replace(/:host\(([^\s]+)\)/g, "$1").replace(/([^\s]):host/g, "$1").replace(":host", "*").replace(/\^|\/shadow\/|\/shadow-deep\/|::shadow|\/deep\/|::content|>>>/g, " "); - } - function findOne(node, selector) { - var m, el = node.firstElementChild; - while (el) { - if (el.matches(selector)) return el; - m = findOne(el, selector); - if (m) return m; - el = el.nextElementSibling; - } - return null; - } - function matchesSelector(el, selector) { - return el.matches(selector); - } - var XHTML_NS = "http://www.w3.org/1999/xhtml"; - function matchesTagName(el, localName, localNameLowerCase) { - var ln = el.localName; - return ln === localName || ln === localNameLowerCase && el.namespaceURI === XHTML_NS; - } - function matchesEveryThing() { - return true; - } - function matchesLocalNameOnly(el, ns, localName) { - return el.localName === localName; - } - function matchesNameSpace(el, ns) { - return el.namespaceURI === ns; - } - function matchesLocalNameNS(el, ns, localName) { - return el.namespaceURI === ns && el.localName === localName; - } - function findElements(node, index, result, p, arg0, arg1) { - var el = node.firstElementChild; - while (el) { - if (p(el, arg0, arg1)) result[index++] = el; - index = findElements(el, index, result, p, arg0, arg1); - el = el.nextElementSibling; - } - return index; - } - function querySelectorAllFiltered(p, index, result, selector, deep) { - var target = unsafeUnwrap(this); - var list; - var root = getTreeScope(this).root; - if (root instanceof scope.wrappers.ShadowRoot) { - return findElements(this, index, result, p, selector, null); - } else if (target instanceof OriginalElement) { - list = originalElementQuerySelectorAll.call(target, selector); - } else if (target instanceof OriginalDocument) { - list = originalDocumentQuerySelectorAll.call(target, selector); - } else { - return findElements(this, index, result, p, selector, null); - } - return filterNodeList(list, index, result, deep); - } - var SelectorsInterface = { - querySelector: function(selector) { - var shimmed = shimSelector(selector); - var deep = shimmed !== selector; - selector = shimmed; - var target = unsafeUnwrap(this); - var wrappedItem; - var root = getTreeScope(this).root; - if (root instanceof scope.wrappers.ShadowRoot) { - return findOne(this, selector); - } else if (target instanceof OriginalElement) { - wrappedItem = wrap(originalElementQuerySelector.call(target, selector)); - } else if (target instanceof OriginalDocument) { - wrappedItem = wrap(originalDocumentQuerySelector.call(target, selector)); - } else { - return findOne(this, selector); - } - if (!wrappedItem) { - return wrappedItem; - } else if (!deep && (root = getTreeScope(wrappedItem).root)) { - if (root instanceof scope.wrappers.ShadowRoot) { - return findOne(this, selector); - } - } - return wrappedItem; - }, - querySelectorAll: function(selector) { - var shimmed = shimSelector(selector); - var deep = shimmed !== selector; - selector = shimmed; - var result = new NodeList(); - result.length = querySelectorAllFiltered.call(this, matchesSelector, 0, result, selector, deep); - return result; - } - }; - var MatchesInterface = { - matches: function(selector) { - selector = shimMatchesSelector(selector); - return scope.originalMatches.call(unsafeUnwrap(this), selector); - } - }; - function getElementsByTagNameFiltered(p, index, result, localName, lowercase) { - var target = unsafeUnwrap(this); - var list; - var root = getTreeScope(this).root; - if (root instanceof scope.wrappers.ShadowRoot) { - return findElements(this, index, result, p, localName, lowercase); - } else if (target instanceof OriginalElement) { - list = originalElementGetElementsByTagName.call(target, localName, lowercase); - } else if (target instanceof OriginalDocument) { - list = originalDocumentGetElementsByTagName.call(target, localName, lowercase); - } else { - return findElements(this, index, result, p, localName, lowercase); - } - return filterNodeList(list, index, result, false); - } - function getElementsByTagNameNSFiltered(p, index, result, ns, localName) { - var target = unsafeUnwrap(this); - var list; - var root = getTreeScope(this).root; - if (root instanceof scope.wrappers.ShadowRoot) { - return findElements(this, index, result, p, ns, localName); - } else if (target instanceof OriginalElement) { - list = originalElementGetElementsByTagNameNS.call(target, ns, localName); - } else if (target instanceof OriginalDocument) { - list = originalDocumentGetElementsByTagNameNS.call(target, ns, localName); - } else { - return findElements(this, index, result, p, ns, localName); - } - return filterNodeList(list, index, result, false); - } - var GetElementsByInterface = { - getElementsByTagName: function(localName) { - var result = new HTMLCollection(); - var match = localName === "*" ? matchesEveryThing : matchesTagName; - result.length = getElementsByTagNameFiltered.call(this, match, 0, result, localName, localName.toLowerCase()); - return result; - }, - getElementsByClassName: function(className) { - return this.querySelectorAll("." + className); - }, - getElementsByTagNameNS: function(ns, localName) { - var result = new HTMLCollection(); - var match = null; - if (ns === "*") { - match = localName === "*" ? matchesEveryThing : matchesLocalNameOnly; - } else { - match = localName === "*" ? matchesNameSpace : matchesLocalNameNS; - } - result.length = getElementsByTagNameNSFiltered.call(this, match, 0, result, ns || null, localName); - return result; - } - }; - scope.GetElementsByInterface = GetElementsByInterface; - scope.SelectorsInterface = SelectorsInterface; - scope.MatchesInterface = MatchesInterface; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var NodeList = scope.wrappers.NodeList; - function forwardElement(node) { - while (node && node.nodeType !== Node.ELEMENT_NODE) { - node = node.nextSibling; - } - return node; - } - function backwardsElement(node) { - while (node && node.nodeType !== Node.ELEMENT_NODE) { - node = node.previousSibling; - } - return node; - } - var ParentNodeInterface = { - get firstElementChild() { - return forwardElement(this.firstChild); - }, - get lastElementChild() { - return backwardsElement(this.lastChild); - }, - get childElementCount() { - var count = 0; - for (var child = this.firstElementChild; child; child = child.nextElementSibling) { - count++; - } - return count; - }, - get children() { - var wrapperList = new NodeList(); - var i = 0; - for (var child = this.firstElementChild; child; child = child.nextElementSibling) { - wrapperList[i++] = child; - } - wrapperList.length = i; - return wrapperList; - }, - remove: function() { - var p = this.parentNode; - if (p) p.removeChild(this); - } - }; - var ChildNodeInterface = { - get nextElementSibling() { - return forwardElement(this.nextSibling); - }, - get previousElementSibling() { - return backwardsElement(this.previousSibling); - } - }; - var NonElementParentNodeInterface = { - getElementById: function(id) { - if (/[ \t\n\r\f]/.test(id)) return null; - return this.querySelector('[id="' + id + '"]'); - } - }; - scope.ChildNodeInterface = ChildNodeInterface; - scope.NonElementParentNodeInterface = NonElementParentNodeInterface; - scope.ParentNodeInterface = ParentNodeInterface; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var ChildNodeInterface = scope.ChildNodeInterface; - var Node = scope.wrappers.Node; - var enqueueMutation = scope.enqueueMutation; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var unsafeUnwrap = scope.unsafeUnwrap; - var OriginalCharacterData = window.CharacterData; - function CharacterData(node) { - Node.call(this, node); - } - CharacterData.prototype = Object.create(Node.prototype); - mixin(CharacterData.prototype, { - get nodeValue() { - return this.data; - }, - set nodeValue(data) { - this.data = data; - }, - get textContent() { - return this.data; - }, - set textContent(value) { - this.data = value; - }, - get data() { - return unsafeUnwrap(this).data; - }, - set data(value) { - var oldValue = unsafeUnwrap(this).data; - enqueueMutation(this, "characterData", { - oldValue: oldValue - }); - unsafeUnwrap(this).data = value; - } - }); - mixin(CharacterData.prototype, ChildNodeInterface); - registerWrapper(OriginalCharacterData, CharacterData, document.createTextNode("")); - scope.wrappers.CharacterData = CharacterData; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var CharacterData = scope.wrappers.CharacterData; - var enqueueMutation = scope.enqueueMutation; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - function toUInt32(x) { - return x >>> 0; - } - var OriginalText = window.Text; - function Text(node) { - CharacterData.call(this, node); - } - Text.prototype = Object.create(CharacterData.prototype); - mixin(Text.prototype, { - splitText: function(offset) { - offset = toUInt32(offset); - var s = this.data; - if (offset > s.length) throw new Error("IndexSizeError"); - var head = s.slice(0, offset); - var tail = s.slice(offset); - this.data = head; - var newTextNode = this.ownerDocument.createTextNode(tail); - if (this.parentNode) this.parentNode.insertBefore(newTextNode, this.nextSibling); - return newTextNode; - } - }); - registerWrapper(OriginalText, Text, document.createTextNode("")); - scope.wrappers.Text = Text; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - if (!window.DOMTokenList) { - console.warn("Missing DOMTokenList prototype, please include a " + "compatible classList polyfill such as http://goo.gl/uTcepH."); - return; - } - var unsafeUnwrap = scope.unsafeUnwrap; - var enqueueMutation = scope.enqueueMutation; - function getClass(el) { - return unsafeUnwrap(el).getAttribute("class"); - } - function enqueueClassAttributeChange(el, oldValue) { - enqueueMutation(el, "attributes", { - name: "class", - namespace: null, - oldValue: oldValue - }); - } - function invalidateClass(el) { - scope.invalidateRendererBasedOnAttribute(el, "class"); - } - function changeClass(tokenList, method, args) { - var ownerElement = tokenList.ownerElement_; - if (ownerElement == null) { - return method.apply(tokenList, args); - } - var oldValue = getClass(ownerElement); - var retv = method.apply(tokenList, args); - if (getClass(ownerElement) !== oldValue) { - enqueueClassAttributeChange(ownerElement, oldValue); - invalidateClass(ownerElement); - } - return retv; - } - var oldAdd = DOMTokenList.prototype.add; - DOMTokenList.prototype.add = function() { - changeClass(this, oldAdd, arguments); - }; - var oldRemove = DOMTokenList.prototype.remove; - DOMTokenList.prototype.remove = function() { - changeClass(this, oldRemove, arguments); - }; - var oldToggle = DOMTokenList.prototype.toggle; - DOMTokenList.prototype.toggle = function() { - return changeClass(this, oldToggle, arguments); - }; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var ChildNodeInterface = scope.ChildNodeInterface; - var GetElementsByInterface = scope.GetElementsByInterface; - var Node = scope.wrappers.Node; - var ParentNodeInterface = scope.ParentNodeInterface; - var SelectorsInterface = scope.SelectorsInterface; - var MatchesInterface = scope.MatchesInterface; - var addWrapNodeListMethod = scope.addWrapNodeListMethod; - var enqueueMutation = scope.enqueueMutation; - var mixin = scope.mixin; - var oneOf = scope.oneOf; - var registerWrapper = scope.registerWrapper; - var unsafeUnwrap = scope.unsafeUnwrap; - var wrappers = scope.wrappers; - var OriginalElement = window.Element; - var matchesNames = [ "matches", "mozMatchesSelector", "msMatchesSelector", "webkitMatchesSelector" ].filter(function(name) { - return OriginalElement.prototype[name]; - }); - var matchesName = matchesNames[0]; - var originalMatches = OriginalElement.prototype[matchesName]; - function invalidateRendererBasedOnAttribute(element, name) { - var p = element.parentNode; - if (!p || !p.shadowRoot) return; - var renderer = scope.getRendererForHost(p); - if (renderer.dependsOnAttribute(name)) renderer.invalidate(); - } - function enqueAttributeChange(element, name, oldValue) { - enqueueMutation(element, "attributes", { - name: name, - namespace: null, - oldValue: oldValue - }); - } - var classListTable = new WeakMap(); - function Element(node) { - Node.call(this, node); - } - Element.prototype = Object.create(Node.prototype); - mixin(Element.prototype, { - createShadowRoot: function() { - var newShadowRoot = new wrappers.ShadowRoot(this); - unsafeUnwrap(this).polymerShadowRoot_ = newShadowRoot; - var renderer = scope.getRendererForHost(this); - renderer.invalidate(); - return newShadowRoot; - }, - get shadowRoot() { - return unsafeUnwrap(this).polymerShadowRoot_ || null; - }, - setAttribute: function(name, value) { - var oldValue = unsafeUnwrap(this).getAttribute(name); - unsafeUnwrap(this).setAttribute(name, value); - enqueAttributeChange(this, name, oldValue); - invalidateRendererBasedOnAttribute(this, name); - }, - removeAttribute: function(name) { - var oldValue = unsafeUnwrap(this).getAttribute(name); - unsafeUnwrap(this).removeAttribute(name); - enqueAttributeChange(this, name, oldValue); - invalidateRendererBasedOnAttribute(this, name); - }, - get classList() { - var list = classListTable.get(this); - if (!list) { - list = unsafeUnwrap(this).classList; - if (!list) return; - list.ownerElement_ = this; - classListTable.set(this, list); - } - return list; - }, - get className() { - return unsafeUnwrap(this).className; - }, - set className(v) { - this.setAttribute("class", v); - }, - get id() { - return unsafeUnwrap(this).id; - }, - set id(v) { - this.setAttribute("id", v); - } - }); - matchesNames.forEach(function(name) { - if (name !== "matches") { - Element.prototype[name] = function(selector) { - return this.matches(selector); - }; - } - }); - if (OriginalElement.prototype.webkitCreateShadowRoot) { - Element.prototype.webkitCreateShadowRoot = Element.prototype.createShadowRoot; - } - mixin(Element.prototype, ChildNodeInterface); - mixin(Element.prototype, GetElementsByInterface); - mixin(Element.prototype, ParentNodeInterface); - mixin(Element.prototype, SelectorsInterface); - mixin(Element.prototype, MatchesInterface); - registerWrapper(OriginalElement, Element, document.createElementNS(null, "x")); - scope.invalidateRendererBasedOnAttribute = invalidateRendererBasedOnAttribute; - scope.matchesNames = matchesNames; - scope.originalMatches = originalMatches; - scope.wrappers.Element = Element; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var Element = scope.wrappers.Element; - var defineGetter = scope.defineGetter; - var enqueueMutation = scope.enqueueMutation; - var mixin = scope.mixin; - var nodesWereAdded = scope.nodesWereAdded; - var nodesWereRemoved = scope.nodesWereRemoved; - var registerWrapper = scope.registerWrapper; - var snapshotNodeList = scope.snapshotNodeList; - var unsafeUnwrap = scope.unsafeUnwrap; - var unwrap = scope.unwrap; - var wrap = scope.wrap; - var wrappers = scope.wrappers; - var escapeAttrRegExp = /[&\u00A0"]/g; - var escapeDataRegExp = /[&\u00A0<>]/g; - function escapeReplace(c) { - switch (c) { - case "&": - return "&"; - - case "<": - return "<"; - - case ">": - return ">"; - - case '"': - return """; - - case " ": - return " "; - } - } - function escapeAttr(s) { - return s.replace(escapeAttrRegExp, escapeReplace); - } - function escapeData(s) { - return s.replace(escapeDataRegExp, escapeReplace); - } - function makeSet(arr) { - var set = {}; - for (var i = 0; i < arr.length; i++) { - set[arr[i]] = true; - } - return set; - } - var voidElements = makeSet([ "area", "base", "br", "col", "command", "embed", "hr", "img", "input", "keygen", "link", "meta", "param", "source", "track", "wbr" ]); - var plaintextParents = makeSet([ "style", "script", "xmp", "iframe", "noembed", "noframes", "plaintext", "noscript" ]); - var XHTML_NS = "http://www.w3.org/1999/xhtml"; - function needsSelfClosingSlash(node) { - if (node.namespaceURI !== XHTML_NS) return true; - var doctype = node.ownerDocument.doctype; - return doctype && doctype.publicId && doctype.systemId; - } - function getOuterHTML(node, parentNode) { - switch (node.nodeType) { - case Node.ELEMENT_NODE: - var tagName = node.tagName.toLowerCase(); - var s = "<" + tagName; - var attrs = node.attributes; - for (var i = 0, attr; attr = attrs[i]; i++) { - s += " " + attr.name + '="' + escapeAttr(attr.value) + '"'; - } - if (voidElements[tagName]) { - if (needsSelfClosingSlash(node)) s += "/"; - return s + ">"; - } - return s + ">" + getInnerHTML(node) + ""; - - case Node.TEXT_NODE: - var data = node.data; - if (parentNode && plaintextParents[parentNode.localName]) return data; - return escapeData(data); - - case Node.COMMENT_NODE: - return ""; - - default: - console.error(node); - throw new Error("not implemented"); - } - } - function getInnerHTML(node) { - if (node instanceof wrappers.HTMLTemplateElement) node = node.content; - var s = ""; - for (var child = node.firstChild; child; child = child.nextSibling) { - s += getOuterHTML(child, node); - } - return s; - } - function setInnerHTML(node, value, opt_tagName) { - var tagName = opt_tagName || "div"; - node.textContent = ""; - var tempElement = unwrap(node.ownerDocument.createElement(tagName)); - tempElement.innerHTML = value; - var firstChild; - while (firstChild = tempElement.firstChild) { - node.appendChild(wrap(firstChild)); - } - } - var oldIe = /MSIE/.test(navigator.userAgent); - var OriginalHTMLElement = window.HTMLElement; - var OriginalHTMLTemplateElement = window.HTMLTemplateElement; - function HTMLElement(node) { - Element.call(this, node); - } - HTMLElement.prototype = Object.create(Element.prototype); - mixin(HTMLElement.prototype, { - get innerHTML() { - return getInnerHTML(this); - }, - set innerHTML(value) { - if (oldIe && plaintextParents[this.localName]) { - this.textContent = value; - return; - } - var removedNodes = snapshotNodeList(this.childNodes); - if (this.invalidateShadowRenderer()) { - if (this instanceof wrappers.HTMLTemplateElement) setInnerHTML(this.content, value); else setInnerHTML(this, value, this.tagName); - } else if (!OriginalHTMLTemplateElement && this instanceof wrappers.HTMLTemplateElement) { - setInnerHTML(this.content, value); - } else { - unsafeUnwrap(this).innerHTML = value; - } - var addedNodes = snapshotNodeList(this.childNodes); - enqueueMutation(this, "childList", { - addedNodes: addedNodes, - removedNodes: removedNodes - }); - nodesWereRemoved(removedNodes); - nodesWereAdded(addedNodes, this); - }, - get outerHTML() { - return getOuterHTML(this, this.parentNode); - }, - set outerHTML(value) { - var p = this.parentNode; - if (p) { - p.invalidateShadowRenderer(); - var df = frag(p, value); - p.replaceChild(df, this); - } - }, - insertAdjacentHTML: function(position, text) { - var contextElement, refNode; - switch (String(position).toLowerCase()) { - case "beforebegin": - contextElement = this.parentNode; - refNode = this; - break; - - case "afterend": - contextElement = this.parentNode; - refNode = this.nextSibling; - break; - - case "afterbegin": - contextElement = this; - refNode = this.firstChild; - break; - - case "beforeend": - contextElement = this; - refNode = null; - break; - - default: - return; - } - var df = frag(contextElement, text); - contextElement.insertBefore(df, refNode); - }, - get hidden() { - return this.hasAttribute("hidden"); - }, - set hidden(v) { - if (v) { - this.setAttribute("hidden", ""); - } else { - this.removeAttribute("hidden"); - } - } - }); - function frag(contextElement, html) { - var p = unwrap(contextElement.cloneNode(false)); - p.innerHTML = html; - var df = unwrap(document.createDocumentFragment()); - var c; - while (c = p.firstChild) { - df.appendChild(c); - } - return wrap(df); - } - function getter(name) { - return function() { - scope.renderAllPending(); - return unsafeUnwrap(this)[name]; - }; - } - function getterRequiresRendering(name) { - defineGetter(HTMLElement, name, getter(name)); - } - [ "clientHeight", "clientLeft", "clientTop", "clientWidth", "offsetHeight", "offsetLeft", "offsetTop", "offsetWidth", "scrollHeight", "scrollWidth" ].forEach(getterRequiresRendering); - function getterAndSetterRequiresRendering(name) { - Object.defineProperty(HTMLElement.prototype, name, { - get: getter(name), - set: function(v) { - scope.renderAllPending(); - unsafeUnwrap(this)[name] = v; - }, - configurable: true, - enumerable: true - }); - } - [ "scrollLeft", "scrollTop" ].forEach(getterAndSetterRequiresRendering); - function methodRequiresRendering(name) { - Object.defineProperty(HTMLElement.prototype, name, { - value: function() { - scope.renderAllPending(); - return unsafeUnwrap(this)[name].apply(unsafeUnwrap(this), arguments); - }, - configurable: true, - enumerable: true - }); - } - [ "getBoundingClientRect", "getClientRects", "scrollIntoView" ].forEach(methodRequiresRendering); - registerWrapper(OriginalHTMLElement, HTMLElement, document.createElement("b")); - scope.wrappers.HTMLElement = HTMLElement; - scope.getInnerHTML = getInnerHTML; - scope.setInnerHTML = setInnerHTML; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var HTMLElement = scope.wrappers.HTMLElement; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var unsafeUnwrap = scope.unsafeUnwrap; - var wrap = scope.wrap; - var OriginalHTMLCanvasElement = window.HTMLCanvasElement; - function HTMLCanvasElement(node) { - HTMLElement.call(this, node); - } - HTMLCanvasElement.prototype = Object.create(HTMLElement.prototype); - mixin(HTMLCanvasElement.prototype, { - getContext: function() { - var context = unsafeUnwrap(this).getContext.apply(unsafeUnwrap(this), arguments); - return context && wrap(context); - } - }); - registerWrapper(OriginalHTMLCanvasElement, HTMLCanvasElement, document.createElement("canvas")); - scope.wrappers.HTMLCanvasElement = HTMLCanvasElement; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var HTMLElement = scope.wrappers.HTMLElement; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var OriginalHTMLContentElement = window.HTMLContentElement; - function HTMLContentElement(node) { - HTMLElement.call(this, node); - } - HTMLContentElement.prototype = Object.create(HTMLElement.prototype); - mixin(HTMLContentElement.prototype, { - constructor: HTMLContentElement, - get select() { - return this.getAttribute("select"); - }, - set select(value) { - this.setAttribute("select", value); - }, - setAttribute: function(n, v) { - HTMLElement.prototype.setAttribute.call(this, n, v); - if (String(n).toLowerCase() === "select") this.invalidateShadowRenderer(true); - } - }); - if (OriginalHTMLContentElement) registerWrapper(OriginalHTMLContentElement, HTMLContentElement); - scope.wrappers.HTMLContentElement = HTMLContentElement; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var HTMLElement = scope.wrappers.HTMLElement; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var wrapHTMLCollection = scope.wrapHTMLCollection; - var unwrap = scope.unwrap; - var OriginalHTMLFormElement = window.HTMLFormElement; - function HTMLFormElement(node) { - HTMLElement.call(this, node); - } - HTMLFormElement.prototype = Object.create(HTMLElement.prototype); - mixin(HTMLFormElement.prototype, { - get elements() { - return wrapHTMLCollection(unwrap(this).elements); - } - }); - registerWrapper(OriginalHTMLFormElement, HTMLFormElement, document.createElement("form")); - scope.wrappers.HTMLFormElement = HTMLFormElement; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var HTMLElement = scope.wrappers.HTMLElement; - var registerWrapper = scope.registerWrapper; - var unwrap = scope.unwrap; - var rewrap = scope.rewrap; - var OriginalHTMLImageElement = window.HTMLImageElement; - function HTMLImageElement(node) { - HTMLElement.call(this, node); - } - HTMLImageElement.prototype = Object.create(HTMLElement.prototype); - registerWrapper(OriginalHTMLImageElement, HTMLImageElement, document.createElement("img")); - function Image(width, height) { - if (!(this instanceof Image)) { - throw new TypeError("DOM object constructor cannot be called as a function."); - } - var node = unwrap(document.createElement("img")); - HTMLElement.call(this, node); - rewrap(node, this); - if (width !== undefined) node.width = width; - if (height !== undefined) node.height = height; - } - Image.prototype = HTMLImageElement.prototype; - scope.wrappers.HTMLImageElement = HTMLImageElement; - scope.wrappers.Image = Image; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var HTMLElement = scope.wrappers.HTMLElement; - var mixin = scope.mixin; - var NodeList = scope.wrappers.NodeList; - var registerWrapper = scope.registerWrapper; - var OriginalHTMLShadowElement = window.HTMLShadowElement; - function HTMLShadowElement(node) { - HTMLElement.call(this, node); - } - HTMLShadowElement.prototype = Object.create(HTMLElement.prototype); - HTMLShadowElement.prototype.constructor = HTMLShadowElement; - if (OriginalHTMLShadowElement) registerWrapper(OriginalHTMLShadowElement, HTMLShadowElement); - scope.wrappers.HTMLShadowElement = HTMLShadowElement; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var HTMLElement = scope.wrappers.HTMLElement; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var unsafeUnwrap = scope.unsafeUnwrap; - var unwrap = scope.unwrap; - var wrap = scope.wrap; - var contentTable = new WeakMap(); - var templateContentsOwnerTable = new WeakMap(); - function getTemplateContentsOwner(doc) { - if (!doc.defaultView) return doc; - var d = templateContentsOwnerTable.get(doc); - if (!d) { - d = doc.implementation.createHTMLDocument(""); - while (d.lastChild) { - d.removeChild(d.lastChild); - } - templateContentsOwnerTable.set(doc, d); - } - return d; - } - function extractContent(templateElement) { - var doc = getTemplateContentsOwner(templateElement.ownerDocument); - var df = unwrap(doc.createDocumentFragment()); - var child; - while (child = templateElement.firstChild) { - df.appendChild(child); - } - return df; - } - var OriginalHTMLTemplateElement = window.HTMLTemplateElement; - function HTMLTemplateElement(node) { - HTMLElement.call(this, node); - if (!OriginalHTMLTemplateElement) { - var content = extractContent(node); - contentTable.set(this, wrap(content)); - } - } - HTMLTemplateElement.prototype = Object.create(HTMLElement.prototype); - mixin(HTMLTemplateElement.prototype, { - constructor: HTMLTemplateElement, - get content() { - if (OriginalHTMLTemplateElement) return wrap(unsafeUnwrap(this).content); - return contentTable.get(this); - } - }); - if (OriginalHTMLTemplateElement) registerWrapper(OriginalHTMLTemplateElement, HTMLTemplateElement); - scope.wrappers.HTMLTemplateElement = HTMLTemplateElement; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var HTMLElement = scope.wrappers.HTMLElement; - var registerWrapper = scope.registerWrapper; - var OriginalHTMLMediaElement = window.HTMLMediaElement; - if (!OriginalHTMLMediaElement) return; - function HTMLMediaElement(node) { - HTMLElement.call(this, node); - } - HTMLMediaElement.prototype = Object.create(HTMLElement.prototype); - registerWrapper(OriginalHTMLMediaElement, HTMLMediaElement, document.createElement("audio")); - scope.wrappers.HTMLMediaElement = HTMLMediaElement; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var HTMLMediaElement = scope.wrappers.HTMLMediaElement; - var registerWrapper = scope.registerWrapper; - var unwrap = scope.unwrap; - var rewrap = scope.rewrap; - var OriginalHTMLAudioElement = window.HTMLAudioElement; - if (!OriginalHTMLAudioElement) return; - function HTMLAudioElement(node) { - HTMLMediaElement.call(this, node); - } - HTMLAudioElement.prototype = Object.create(HTMLMediaElement.prototype); - registerWrapper(OriginalHTMLAudioElement, HTMLAudioElement, document.createElement("audio")); - function Audio(src) { - if (!(this instanceof Audio)) { - throw new TypeError("DOM object constructor cannot be called as a function."); - } - var node = unwrap(document.createElement("audio")); - HTMLMediaElement.call(this, node); - rewrap(node, this); - node.setAttribute("preload", "auto"); - if (src !== undefined) node.setAttribute("src", src); - } - Audio.prototype = HTMLAudioElement.prototype; - scope.wrappers.HTMLAudioElement = HTMLAudioElement; - scope.wrappers.Audio = Audio; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var HTMLElement = scope.wrappers.HTMLElement; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var rewrap = scope.rewrap; - var unwrap = scope.unwrap; - var wrap = scope.wrap; - var OriginalHTMLOptionElement = window.HTMLOptionElement; - function trimText(s) { - return s.replace(/\s+/g, " ").trim(); - } - function HTMLOptionElement(node) { - HTMLElement.call(this, node); - } - HTMLOptionElement.prototype = Object.create(HTMLElement.prototype); - mixin(HTMLOptionElement.prototype, { - get text() { - return trimText(this.textContent); - }, - set text(value) { - this.textContent = trimText(String(value)); - }, - get form() { - return wrap(unwrap(this).form); - } - }); - registerWrapper(OriginalHTMLOptionElement, HTMLOptionElement, document.createElement("option")); - function Option(text, value, defaultSelected, selected) { - if (!(this instanceof Option)) { - throw new TypeError("DOM object constructor cannot be called as a function."); - } - var node = unwrap(document.createElement("option")); - HTMLElement.call(this, node); - rewrap(node, this); - if (text !== undefined) node.text = text; - if (value !== undefined) node.setAttribute("value", value); - if (defaultSelected === true) node.setAttribute("selected", ""); - node.selected = selected === true; - } - Option.prototype = HTMLOptionElement.prototype; - scope.wrappers.HTMLOptionElement = HTMLOptionElement; - scope.wrappers.Option = Option; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var HTMLElement = scope.wrappers.HTMLElement; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var unwrap = scope.unwrap; - var wrap = scope.wrap; - var OriginalHTMLSelectElement = window.HTMLSelectElement; - function HTMLSelectElement(node) { - HTMLElement.call(this, node); - } - HTMLSelectElement.prototype = Object.create(HTMLElement.prototype); - mixin(HTMLSelectElement.prototype, { - add: function(element, before) { - if (typeof before === "object") before = unwrap(before); - unwrap(this).add(unwrap(element), before); - }, - remove: function(indexOrNode) { - if (indexOrNode === undefined) { - HTMLElement.prototype.remove.call(this); - return; - } - if (typeof indexOrNode === "object") indexOrNode = unwrap(indexOrNode); - unwrap(this).remove(indexOrNode); - }, - get form() { - return wrap(unwrap(this).form); - } - }); - registerWrapper(OriginalHTMLSelectElement, HTMLSelectElement, document.createElement("select")); - scope.wrappers.HTMLSelectElement = HTMLSelectElement; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var HTMLElement = scope.wrappers.HTMLElement; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var unwrap = scope.unwrap; - var wrap = scope.wrap; - var wrapHTMLCollection = scope.wrapHTMLCollection; - var OriginalHTMLTableElement = window.HTMLTableElement; - function HTMLTableElement(node) { - HTMLElement.call(this, node); - } - HTMLTableElement.prototype = Object.create(HTMLElement.prototype); - mixin(HTMLTableElement.prototype, { - get caption() { - return wrap(unwrap(this).caption); - }, - createCaption: function() { - return wrap(unwrap(this).createCaption()); - }, - get tHead() { - return wrap(unwrap(this).tHead); - }, - createTHead: function() { - return wrap(unwrap(this).createTHead()); - }, - createTFoot: function() { - return wrap(unwrap(this).createTFoot()); - }, - get tFoot() { - return wrap(unwrap(this).tFoot); - }, - get tBodies() { - return wrapHTMLCollection(unwrap(this).tBodies); - }, - createTBody: function() { - return wrap(unwrap(this).createTBody()); - }, - get rows() { - return wrapHTMLCollection(unwrap(this).rows); - }, - insertRow: function(index) { - return wrap(unwrap(this).insertRow(index)); - } - }); - registerWrapper(OriginalHTMLTableElement, HTMLTableElement, document.createElement("table")); - scope.wrappers.HTMLTableElement = HTMLTableElement; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var HTMLElement = scope.wrappers.HTMLElement; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var wrapHTMLCollection = scope.wrapHTMLCollection; - var unwrap = scope.unwrap; - var wrap = scope.wrap; - var OriginalHTMLTableSectionElement = window.HTMLTableSectionElement; - function HTMLTableSectionElement(node) { - HTMLElement.call(this, node); - } - HTMLTableSectionElement.prototype = Object.create(HTMLElement.prototype); - mixin(HTMLTableSectionElement.prototype, { - constructor: HTMLTableSectionElement, - get rows() { - return wrapHTMLCollection(unwrap(this).rows); - }, - insertRow: function(index) { - return wrap(unwrap(this).insertRow(index)); - } - }); - registerWrapper(OriginalHTMLTableSectionElement, HTMLTableSectionElement, document.createElement("thead")); - scope.wrappers.HTMLTableSectionElement = HTMLTableSectionElement; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var HTMLElement = scope.wrappers.HTMLElement; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var wrapHTMLCollection = scope.wrapHTMLCollection; - var unwrap = scope.unwrap; - var wrap = scope.wrap; - var OriginalHTMLTableRowElement = window.HTMLTableRowElement; - function HTMLTableRowElement(node) { - HTMLElement.call(this, node); - } - HTMLTableRowElement.prototype = Object.create(HTMLElement.prototype); - mixin(HTMLTableRowElement.prototype, { - get cells() { - return wrapHTMLCollection(unwrap(this).cells); - }, - insertCell: function(index) { - return wrap(unwrap(this).insertCell(index)); - } - }); - registerWrapper(OriginalHTMLTableRowElement, HTMLTableRowElement, document.createElement("tr")); - scope.wrappers.HTMLTableRowElement = HTMLTableRowElement; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var HTMLContentElement = scope.wrappers.HTMLContentElement; - var HTMLElement = scope.wrappers.HTMLElement; - var HTMLShadowElement = scope.wrappers.HTMLShadowElement; - var HTMLTemplateElement = scope.wrappers.HTMLTemplateElement; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var OriginalHTMLUnknownElement = window.HTMLUnknownElement; - function HTMLUnknownElement(node) { - switch (node.localName) { - case "content": - return new HTMLContentElement(node); - - case "shadow": - return new HTMLShadowElement(node); - - case "template": - return new HTMLTemplateElement(node); - } - HTMLElement.call(this, node); - } - HTMLUnknownElement.prototype = Object.create(HTMLElement.prototype); - registerWrapper(OriginalHTMLUnknownElement, HTMLUnknownElement); - scope.wrappers.HTMLUnknownElement = HTMLUnknownElement; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var Element = scope.wrappers.Element; - var HTMLElement = scope.wrappers.HTMLElement; - var registerObject = scope.registerObject; - var defineWrapGetter = scope.defineWrapGetter; - var SVG_NS = "http://www.w3.org/2000/svg"; - var svgTitleElement = document.createElementNS(SVG_NS, "title"); - var SVGTitleElement = registerObject(svgTitleElement); - var SVGElement = Object.getPrototypeOf(SVGTitleElement.prototype).constructor; - if (!("classList" in svgTitleElement)) { - var descr = Object.getOwnPropertyDescriptor(Element.prototype, "classList"); - Object.defineProperty(HTMLElement.prototype, "classList", descr); - delete Element.prototype.classList; - } - defineWrapGetter(SVGElement, "ownerSVGElement"); - scope.wrappers.SVGElement = SVGElement; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var unwrap = scope.unwrap; - var wrap = scope.wrap; - var OriginalSVGUseElement = window.SVGUseElement; - var SVG_NS = "http://www.w3.org/2000/svg"; - var gWrapper = wrap(document.createElementNS(SVG_NS, "g")); - var useElement = document.createElementNS(SVG_NS, "use"); - var SVGGElement = gWrapper.constructor; - var parentInterfacePrototype = Object.getPrototypeOf(SVGGElement.prototype); - var parentInterface = parentInterfacePrototype.constructor; - function SVGUseElement(impl) { - parentInterface.call(this, impl); - } - SVGUseElement.prototype = Object.create(parentInterfacePrototype); - if ("instanceRoot" in useElement) { - mixin(SVGUseElement.prototype, { - get instanceRoot() { - return wrap(unwrap(this).instanceRoot); - }, - get animatedInstanceRoot() { - return wrap(unwrap(this).animatedInstanceRoot); - } - }); - } - registerWrapper(OriginalSVGUseElement, SVGUseElement, useElement); - scope.wrappers.SVGUseElement = SVGUseElement; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var EventTarget = scope.wrappers.EventTarget; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var unsafeUnwrap = scope.unsafeUnwrap; - var wrap = scope.wrap; - var OriginalSVGElementInstance = window.SVGElementInstance; - if (!OriginalSVGElementInstance) return; - function SVGElementInstance(impl) { - EventTarget.call(this, impl); - } - SVGElementInstance.prototype = Object.create(EventTarget.prototype); - mixin(SVGElementInstance.prototype, { - get correspondingElement() { - return wrap(unsafeUnwrap(this).correspondingElement); - }, - get correspondingUseElement() { - return wrap(unsafeUnwrap(this).correspondingUseElement); - }, - get parentNode() { - return wrap(unsafeUnwrap(this).parentNode); - }, - get childNodes() { - throw new Error("Not implemented"); - }, - get firstChild() { - return wrap(unsafeUnwrap(this).firstChild); - }, - get lastChild() { - return wrap(unsafeUnwrap(this).lastChild); - }, - get previousSibling() { - return wrap(unsafeUnwrap(this).previousSibling); - }, - get nextSibling() { - return wrap(unsafeUnwrap(this).nextSibling); - } - }); - registerWrapper(OriginalSVGElementInstance, SVGElementInstance); - scope.wrappers.SVGElementInstance = SVGElementInstance; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var setWrapper = scope.setWrapper; - var unsafeUnwrap = scope.unsafeUnwrap; - var unwrap = scope.unwrap; - var unwrapIfNeeded = scope.unwrapIfNeeded; - var wrap = scope.wrap; - var OriginalCanvasRenderingContext2D = window.CanvasRenderingContext2D; - function CanvasRenderingContext2D(impl) { - setWrapper(impl, this); - } - mixin(CanvasRenderingContext2D.prototype, { - get canvas() { - return wrap(unsafeUnwrap(this).canvas); - }, - drawImage: function() { - arguments[0] = unwrapIfNeeded(arguments[0]); - unsafeUnwrap(this).drawImage.apply(unsafeUnwrap(this), arguments); - }, - createPattern: function() { - arguments[0] = unwrap(arguments[0]); - return unsafeUnwrap(this).createPattern.apply(unsafeUnwrap(this), arguments); - } - }); - registerWrapper(OriginalCanvasRenderingContext2D, CanvasRenderingContext2D, document.createElement("canvas").getContext("2d")); - scope.wrappers.CanvasRenderingContext2D = CanvasRenderingContext2D; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var setWrapper = scope.setWrapper; - var unsafeUnwrap = scope.unsafeUnwrap; - var unwrapIfNeeded = scope.unwrapIfNeeded; - var wrap = scope.wrap; - var OriginalWebGLRenderingContext = window.WebGLRenderingContext; - if (!OriginalWebGLRenderingContext) return; - function WebGLRenderingContext(impl) { - setWrapper(impl, this); - } - mixin(WebGLRenderingContext.prototype, { - get canvas() { - return wrap(unsafeUnwrap(this).canvas); - }, - texImage2D: function() { - arguments[5] = unwrapIfNeeded(arguments[5]); - unsafeUnwrap(this).texImage2D.apply(unsafeUnwrap(this), arguments); - }, - texSubImage2D: function() { - arguments[6] = unwrapIfNeeded(arguments[6]); - unsafeUnwrap(this).texSubImage2D.apply(unsafeUnwrap(this), arguments); - } - }); - var instanceProperties = /WebKit/.test(navigator.userAgent) ? { - drawingBufferHeight: null, - drawingBufferWidth: null - } : {}; - registerWrapper(OriginalWebGLRenderingContext, WebGLRenderingContext, instanceProperties); - scope.wrappers.WebGLRenderingContext = WebGLRenderingContext; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var GetElementsByInterface = scope.GetElementsByInterface; - var NonElementParentNodeInterface = scope.NonElementParentNodeInterface; - var ParentNodeInterface = scope.ParentNodeInterface; - var SelectorsInterface = scope.SelectorsInterface; - var mixin = scope.mixin; - var registerObject = scope.registerObject; - var DocumentFragment = registerObject(document.createDocumentFragment()); - mixin(DocumentFragment.prototype, ParentNodeInterface); - mixin(DocumentFragment.prototype, SelectorsInterface); - mixin(DocumentFragment.prototype, GetElementsByInterface); - mixin(DocumentFragment.prototype, NonElementParentNodeInterface); - var Comment = registerObject(document.createComment("")); - scope.wrappers.Comment = Comment; - scope.wrappers.DocumentFragment = DocumentFragment; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var DocumentFragment = scope.wrappers.DocumentFragment; - var TreeScope = scope.TreeScope; - var elementFromPoint = scope.elementFromPoint; - var getInnerHTML = scope.getInnerHTML; - var getTreeScope = scope.getTreeScope; - var mixin = scope.mixin; - var rewrap = scope.rewrap; - var setInnerHTML = scope.setInnerHTML; - var unsafeUnwrap = scope.unsafeUnwrap; - var unwrap = scope.unwrap; - var shadowHostTable = new WeakMap(); - var nextOlderShadowTreeTable = new WeakMap(); - function ShadowRoot(hostWrapper) { - var node = unwrap(unsafeUnwrap(hostWrapper).ownerDocument.createDocumentFragment()); - DocumentFragment.call(this, node); - rewrap(node, this); - var oldShadowRoot = hostWrapper.shadowRoot; - nextOlderShadowTreeTable.set(this, oldShadowRoot); - this.treeScope_ = new TreeScope(this, getTreeScope(oldShadowRoot || hostWrapper)); - shadowHostTable.set(this, hostWrapper); - } - ShadowRoot.prototype = Object.create(DocumentFragment.prototype); - mixin(ShadowRoot.prototype, { - constructor: ShadowRoot, - get innerHTML() { - return getInnerHTML(this); - }, - set innerHTML(value) { - setInnerHTML(this, value); - this.invalidateShadowRenderer(); - }, - get olderShadowRoot() { - return nextOlderShadowTreeTable.get(this) || null; - }, - get host() { - return shadowHostTable.get(this) || null; - }, - invalidateShadowRenderer: function() { - return shadowHostTable.get(this).invalidateShadowRenderer(); - }, - elementFromPoint: function(x, y) { - return elementFromPoint(this, this.ownerDocument, x, y); - } - }); - scope.wrappers.ShadowRoot = ShadowRoot; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var registerWrapper = scope.registerWrapper; - var setWrapper = scope.setWrapper; - var unsafeUnwrap = scope.unsafeUnwrap; - var unwrap = scope.unwrap; - var unwrapIfNeeded = scope.unwrapIfNeeded; - var wrap = scope.wrap; - var getTreeScope = scope.getTreeScope; - var OriginalRange = window.Range; - var ShadowRoot = scope.wrappers.ShadowRoot; - function getHost(node) { - var root = getTreeScope(node).root; - if (root instanceof ShadowRoot) { - return root.host; - } - return null; - } - function hostNodeToShadowNode(refNode, offset) { - if (refNode.shadowRoot) { - offset = Math.min(refNode.childNodes.length - 1, offset); - var child = refNode.childNodes[offset]; - if (child) { - var insertionPoint = scope.getDestinationInsertionPoints(child); - if (insertionPoint.length > 0) { - var parentNode = insertionPoint[0].parentNode; - if (parentNode.nodeType == Node.ELEMENT_NODE) { - refNode = parentNode; - } - } - } - } - return refNode; - } - function shadowNodeToHostNode(node) { - node = wrap(node); - return getHost(node) || node; - } - function Range(impl) { - setWrapper(impl, this); - } - Range.prototype = { - get startContainer() { - return shadowNodeToHostNode(unsafeUnwrap(this).startContainer); - }, - get endContainer() { - return shadowNodeToHostNode(unsafeUnwrap(this).endContainer); - }, - get commonAncestorContainer() { - return shadowNodeToHostNode(unsafeUnwrap(this).commonAncestorContainer); - }, - setStart: function(refNode, offset) { - refNode = hostNodeToShadowNode(refNode, offset); - unsafeUnwrap(this).setStart(unwrapIfNeeded(refNode), offset); - }, - setEnd: function(refNode, offset) { - refNode = hostNodeToShadowNode(refNode, offset); - unsafeUnwrap(this).setEnd(unwrapIfNeeded(refNode), offset); - }, - setStartBefore: function(refNode) { - unsafeUnwrap(this).setStartBefore(unwrapIfNeeded(refNode)); - }, - setStartAfter: function(refNode) { - unsafeUnwrap(this).setStartAfter(unwrapIfNeeded(refNode)); - }, - setEndBefore: function(refNode) { - unsafeUnwrap(this).setEndBefore(unwrapIfNeeded(refNode)); - }, - setEndAfter: function(refNode) { - unsafeUnwrap(this).setEndAfter(unwrapIfNeeded(refNode)); - }, - selectNode: function(refNode) { - unsafeUnwrap(this).selectNode(unwrapIfNeeded(refNode)); - }, - selectNodeContents: function(refNode) { - unsafeUnwrap(this).selectNodeContents(unwrapIfNeeded(refNode)); - }, - compareBoundaryPoints: function(how, sourceRange) { - return unsafeUnwrap(this).compareBoundaryPoints(how, unwrap(sourceRange)); - }, - extractContents: function() { - return wrap(unsafeUnwrap(this).extractContents()); - }, - cloneContents: function() { - return wrap(unsafeUnwrap(this).cloneContents()); - }, - insertNode: function(node) { - unsafeUnwrap(this).insertNode(unwrapIfNeeded(node)); - }, - surroundContents: function(newParent) { - unsafeUnwrap(this).surroundContents(unwrapIfNeeded(newParent)); - }, - cloneRange: function() { - return wrap(unsafeUnwrap(this).cloneRange()); - }, - isPointInRange: function(node, offset) { - return unsafeUnwrap(this).isPointInRange(unwrapIfNeeded(node), offset); - }, - comparePoint: function(node, offset) { - return unsafeUnwrap(this).comparePoint(unwrapIfNeeded(node), offset); - }, - intersectsNode: function(node) { - return unsafeUnwrap(this).intersectsNode(unwrapIfNeeded(node)); - }, - toString: function() { - return unsafeUnwrap(this).toString(); - } - }; - if (OriginalRange.prototype.createContextualFragment) { - Range.prototype.createContextualFragment = function(html) { - return wrap(unsafeUnwrap(this).createContextualFragment(html)); - }; - } - registerWrapper(window.Range, Range, document.createRange()); - scope.wrappers.Range = Range; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var Element = scope.wrappers.Element; - var HTMLContentElement = scope.wrappers.HTMLContentElement; - var HTMLShadowElement = scope.wrappers.HTMLShadowElement; - var Node = scope.wrappers.Node; - var ShadowRoot = scope.wrappers.ShadowRoot; - var assert = scope.assert; - var getTreeScope = scope.getTreeScope; - var mixin = scope.mixin; - var oneOf = scope.oneOf; - var unsafeUnwrap = scope.unsafeUnwrap; - var unwrap = scope.unwrap; - var wrap = scope.wrap; - var ArraySplice = scope.ArraySplice; - function updateWrapperUpAndSideways(wrapper) { - wrapper.previousSibling_ = wrapper.previousSibling; - wrapper.nextSibling_ = wrapper.nextSibling; - wrapper.parentNode_ = wrapper.parentNode; - } - function updateWrapperDown(wrapper) { - wrapper.firstChild_ = wrapper.firstChild; - wrapper.lastChild_ = wrapper.lastChild; - } - function updateAllChildNodes(parentNodeWrapper) { - assert(parentNodeWrapper instanceof Node); - for (var childWrapper = parentNodeWrapper.firstChild; childWrapper; childWrapper = childWrapper.nextSibling) { - updateWrapperUpAndSideways(childWrapper); - } - updateWrapperDown(parentNodeWrapper); - } - function insertBefore(parentNodeWrapper, newChildWrapper, refChildWrapper) { - var parentNode = unwrap(parentNodeWrapper); - var newChild = unwrap(newChildWrapper); - var refChild = refChildWrapper ? unwrap(refChildWrapper) : null; - remove(newChildWrapper); - updateWrapperUpAndSideways(newChildWrapper); - if (!refChildWrapper) { - parentNodeWrapper.lastChild_ = parentNodeWrapper.lastChild; - if (parentNodeWrapper.lastChild === parentNodeWrapper.firstChild) parentNodeWrapper.firstChild_ = parentNodeWrapper.firstChild; - var lastChildWrapper = wrap(parentNode.lastChild); - if (lastChildWrapper) lastChildWrapper.nextSibling_ = lastChildWrapper.nextSibling; - } else { - if (parentNodeWrapper.firstChild === refChildWrapper) parentNodeWrapper.firstChild_ = refChildWrapper; - refChildWrapper.previousSibling_ = refChildWrapper.previousSibling; - } - scope.originalInsertBefore.call(parentNode, newChild, refChild); - } - function remove(nodeWrapper) { - var node = unwrap(nodeWrapper); - var parentNode = node.parentNode; - if (!parentNode) return; - var parentNodeWrapper = wrap(parentNode); - updateWrapperUpAndSideways(nodeWrapper); - if (nodeWrapper.previousSibling) nodeWrapper.previousSibling.nextSibling_ = nodeWrapper; - if (nodeWrapper.nextSibling) nodeWrapper.nextSibling.previousSibling_ = nodeWrapper; - if (parentNodeWrapper.lastChild === nodeWrapper) parentNodeWrapper.lastChild_ = nodeWrapper; - if (parentNodeWrapper.firstChild === nodeWrapper) parentNodeWrapper.firstChild_ = nodeWrapper; - scope.originalRemoveChild.call(parentNode, node); - } - var distributedNodesTable = new WeakMap(); - var destinationInsertionPointsTable = new WeakMap(); - var rendererForHostTable = new WeakMap(); - function resetDistributedNodes(insertionPoint) { - distributedNodesTable.set(insertionPoint, []); - } - function getDistributedNodes(insertionPoint) { - var rv = distributedNodesTable.get(insertionPoint); - if (!rv) distributedNodesTable.set(insertionPoint, rv = []); - return rv; - } - function getChildNodesSnapshot(node) { - var result = [], i = 0; - for (var child = node.firstChild; child; child = child.nextSibling) { - result[i++] = child; - } - return result; - } - var request = oneOf(window, [ "requestAnimationFrame", "mozRequestAnimationFrame", "webkitRequestAnimationFrame", "setTimeout" ]); - var pendingDirtyRenderers = []; - var renderTimer; - function renderAllPending() { - for (var i = 0; i < pendingDirtyRenderers.length; i++) { - var renderer = pendingDirtyRenderers[i]; - var parentRenderer = renderer.parentRenderer; - if (parentRenderer && parentRenderer.dirty) continue; - renderer.render(); - } - pendingDirtyRenderers = []; - } - function handleRequestAnimationFrame() { - renderTimer = null; - renderAllPending(); - } - function getRendererForHost(host) { - var renderer = rendererForHostTable.get(host); - if (!renderer) { - renderer = new ShadowRenderer(host); - rendererForHostTable.set(host, renderer); - } - return renderer; - } - function getShadowRootAncestor(node) { - var root = getTreeScope(node).root; - if (root instanceof ShadowRoot) return root; - return null; - } - function getRendererForShadowRoot(shadowRoot) { - return getRendererForHost(shadowRoot.host); - } - var spliceDiff = new ArraySplice(); - spliceDiff.equals = function(renderNode, rawNode) { - return unwrap(renderNode.node) === rawNode; - }; - function RenderNode(node) { - this.skip = false; - this.node = node; - this.childNodes = []; - } - RenderNode.prototype = { - append: function(node) { - var rv = new RenderNode(node); - this.childNodes.push(rv); - return rv; - }, - sync: function(opt_added) { - if (this.skip) return; - var nodeWrapper = this.node; - var newChildren = this.childNodes; - var oldChildren = getChildNodesSnapshot(unwrap(nodeWrapper)); - var added = opt_added || new WeakMap(); - var splices = spliceDiff.calculateSplices(newChildren, oldChildren); - var newIndex = 0, oldIndex = 0; - var lastIndex = 0; - for (var i = 0; i < splices.length; i++) { - var splice = splices[i]; - for (;lastIndex < splice.index; lastIndex++) { - oldIndex++; - newChildren[newIndex++].sync(added); - } - var removedCount = splice.removed.length; - for (var j = 0; j < removedCount; j++) { - var wrapper = wrap(oldChildren[oldIndex++]); - if (!added.get(wrapper)) remove(wrapper); - } - var addedCount = splice.addedCount; - var refNode = oldChildren[oldIndex] && wrap(oldChildren[oldIndex]); - for (var j = 0; j < addedCount; j++) { - var newChildRenderNode = newChildren[newIndex++]; - var newChildWrapper = newChildRenderNode.node; - insertBefore(nodeWrapper, newChildWrapper, refNode); - added.set(newChildWrapper, true); - newChildRenderNode.sync(added); - } - lastIndex += addedCount; - } - for (var i = lastIndex; i < newChildren.length; i++) { - newChildren[i].sync(added); - } - } - }; - function ShadowRenderer(host) { - this.host = host; - this.dirty = false; - this.invalidateAttributes(); - this.associateNode(host); - } - ShadowRenderer.prototype = { - render: function(opt_renderNode) { - if (!this.dirty) return; - this.invalidateAttributes(); - var host = this.host; - this.distribution(host); - var renderNode = opt_renderNode || new RenderNode(host); - this.buildRenderTree(renderNode, host); - var topMostRenderer = !opt_renderNode; - if (topMostRenderer) renderNode.sync(); - this.dirty = false; - }, - get parentRenderer() { - return getTreeScope(this.host).renderer; - }, - invalidate: function() { - if (!this.dirty) { - this.dirty = true; - var parentRenderer = this.parentRenderer; - if (parentRenderer) parentRenderer.invalidate(); - pendingDirtyRenderers.push(this); - if (renderTimer) return; - renderTimer = window[request](handleRequestAnimationFrame, 0); - } - }, - distribution: function(root) { - this.resetAllSubtrees(root); - this.distributionResolution(root); - }, - resetAll: function(node) { - if (isInsertionPoint(node)) resetDistributedNodes(node); else resetDestinationInsertionPoints(node); - this.resetAllSubtrees(node); - }, - resetAllSubtrees: function(node) { - for (var child = node.firstChild; child; child = child.nextSibling) { - this.resetAll(child); - } - if (node.shadowRoot) this.resetAll(node.shadowRoot); - if (node.olderShadowRoot) this.resetAll(node.olderShadowRoot); - }, - distributionResolution: function(node) { - if (isShadowHost(node)) { - var shadowHost = node; - var pool = poolPopulation(shadowHost); - var shadowTrees = getShadowTrees(shadowHost); - for (var i = 0; i < shadowTrees.length; i++) { - this.poolDistribution(shadowTrees[i], pool); - } - for (var i = shadowTrees.length - 1; i >= 0; i--) { - var shadowTree = shadowTrees[i]; - var shadow = getShadowInsertionPoint(shadowTree); - if (shadow) { - var olderShadowRoot = shadowTree.olderShadowRoot; - if (olderShadowRoot) { - pool = poolPopulation(olderShadowRoot); - } - for (var j = 0; j < pool.length; j++) { - destributeNodeInto(pool[j], shadow); - } - } - this.distributionResolution(shadowTree); - } - } - for (var child = node.firstChild; child; child = child.nextSibling) { - this.distributionResolution(child); - } - }, - poolDistribution: function(node, pool) { - if (node instanceof HTMLShadowElement) return; - if (node instanceof HTMLContentElement) { - var content = node; - this.updateDependentAttributes(content.getAttribute("select")); - var anyDistributed = false; - for (var i = 0; i < pool.length; i++) { - var node = pool[i]; - if (!node) continue; - if (matches(node, content)) { - destributeNodeInto(node, content); - pool[i] = undefined; - anyDistributed = true; - } - } - if (!anyDistributed) { - for (var child = content.firstChild; child; child = child.nextSibling) { - destributeNodeInto(child, content); - } - } - return; - } - for (var child = node.firstChild; child; child = child.nextSibling) { - this.poolDistribution(child, pool); - } - }, - buildRenderTree: function(renderNode, node) { - var children = this.compose(node); - for (var i = 0; i < children.length; i++) { - var child = children[i]; - var childRenderNode = renderNode.append(child); - this.buildRenderTree(childRenderNode, child); - } - if (isShadowHost(node)) { - var renderer = getRendererForHost(node); - renderer.dirty = false; - } - }, - compose: function(node) { - var children = []; - var p = node.shadowRoot || node; - for (var child = p.firstChild; child; child = child.nextSibling) { - if (isInsertionPoint(child)) { - this.associateNode(p); - var distributedNodes = getDistributedNodes(child); - for (var j = 0; j < distributedNodes.length; j++) { - var distributedNode = distributedNodes[j]; - if (isFinalDestination(child, distributedNode)) children.push(distributedNode); - } - } else { - children.push(child); - } - } - return children; - }, - invalidateAttributes: function() { - this.attributes = Object.create(null); - }, - updateDependentAttributes: function(selector) { - if (!selector) return; - var attributes = this.attributes; - if (/\.\w+/.test(selector)) attributes["class"] = true; - if (/#\w+/.test(selector)) attributes["id"] = true; - selector.replace(/\[\s*([^\s=\|~\]]+)/g, function(_, name) { - attributes[name] = true; - }); - }, - dependsOnAttribute: function(name) { - return this.attributes[name]; - }, - associateNode: function(node) { - unsafeUnwrap(node).polymerShadowRenderer_ = this; - } - }; - function poolPopulation(node) { - var pool = []; - for (var child = node.firstChild; child; child = child.nextSibling) { - if (isInsertionPoint(child)) { - pool.push.apply(pool, getDistributedNodes(child)); - } else { - pool.push(child); - } - } - return pool; - } - function getShadowInsertionPoint(node) { - if (node instanceof HTMLShadowElement) return node; - if (node instanceof HTMLContentElement) return null; - for (var child = node.firstChild; child; child = child.nextSibling) { - var res = getShadowInsertionPoint(child); - if (res) return res; - } - return null; - } - function destributeNodeInto(child, insertionPoint) { - getDistributedNodes(insertionPoint).push(child); - var points = destinationInsertionPointsTable.get(child); - if (!points) destinationInsertionPointsTable.set(child, [ insertionPoint ]); else points.push(insertionPoint); - } - function getDestinationInsertionPoints(node) { - return destinationInsertionPointsTable.get(node); - } - function resetDestinationInsertionPoints(node) { - destinationInsertionPointsTable.set(node, undefined); - } - var selectorStartCharRe = /^(:not\()?[*.#[a-zA-Z_|]/; - function matches(node, contentElement) { - var select = contentElement.getAttribute("select"); - if (!select) return true; - select = select.trim(); - if (!select) return true; - if (!(node instanceof Element)) return false; - if (!selectorStartCharRe.test(select)) return false; - try { - return node.matches(select); - } catch (ex) { - return false; - } - } - function isFinalDestination(insertionPoint, node) { - var points = getDestinationInsertionPoints(node); - return points && points[points.length - 1] === insertionPoint; - } - function isInsertionPoint(node) { - return node instanceof HTMLContentElement || node instanceof HTMLShadowElement; - } - function isShadowHost(shadowHost) { - return shadowHost.shadowRoot; - } - function getShadowTrees(host) { - var trees = []; - for (var tree = host.shadowRoot; tree; tree = tree.olderShadowRoot) { - trees.push(tree); - } - return trees; - } - function render(host) { - new ShadowRenderer(host).render(); - } - Node.prototype.invalidateShadowRenderer = function(force) { - var renderer = unsafeUnwrap(this).polymerShadowRenderer_; - if (renderer) { - renderer.invalidate(); - return true; - } - return false; - }; - HTMLContentElement.prototype.getDistributedNodes = HTMLShadowElement.prototype.getDistributedNodes = function() { - renderAllPending(); - return getDistributedNodes(this); - }; - Element.prototype.getDestinationInsertionPoints = function() { - renderAllPending(); - return getDestinationInsertionPoints(this) || []; - }; - HTMLContentElement.prototype.nodeIsInserted_ = HTMLShadowElement.prototype.nodeIsInserted_ = function() { - this.invalidateShadowRenderer(); - var shadowRoot = getShadowRootAncestor(this); - var renderer; - if (shadowRoot) renderer = getRendererForShadowRoot(shadowRoot); - unsafeUnwrap(this).polymerShadowRenderer_ = renderer; - if (renderer) renderer.invalidate(); - }; - scope.getRendererForHost = getRendererForHost; - scope.getShadowTrees = getShadowTrees; - scope.renderAllPending = renderAllPending; - scope.getDestinationInsertionPoints = getDestinationInsertionPoints; - scope.visual = { - insertBefore: insertBefore, - remove: remove - }; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var HTMLElement = scope.wrappers.HTMLElement; - var assert = scope.assert; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var unwrap = scope.unwrap; - var wrap = scope.wrap; - var elementsWithFormProperty = [ "HTMLButtonElement", "HTMLFieldSetElement", "HTMLInputElement", "HTMLKeygenElement", "HTMLLabelElement", "HTMLLegendElement", "HTMLObjectElement", "HTMLOutputElement", "HTMLTextAreaElement" ]; - function createWrapperConstructor(name) { - if (!window[name]) return; - assert(!scope.wrappers[name]); - var GeneratedWrapper = function(node) { - HTMLElement.call(this, node); - }; - GeneratedWrapper.prototype = Object.create(HTMLElement.prototype); - mixin(GeneratedWrapper.prototype, { - get form() { - return wrap(unwrap(this).form); - } - }); - registerWrapper(window[name], GeneratedWrapper, document.createElement(name.slice(4, -7))); - scope.wrappers[name] = GeneratedWrapper; - } - elementsWithFormProperty.forEach(createWrapperConstructor); -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var registerWrapper = scope.registerWrapper; - var setWrapper = scope.setWrapper; - var unsafeUnwrap = scope.unsafeUnwrap; - var unwrap = scope.unwrap; - var unwrapIfNeeded = scope.unwrapIfNeeded; - var wrap = scope.wrap; - var OriginalSelection = window.Selection; - function Selection(impl) { - setWrapper(impl, this); - } - Selection.prototype = { - get anchorNode() { - return wrap(unsafeUnwrap(this).anchorNode); - }, - get focusNode() { - return wrap(unsafeUnwrap(this).focusNode); - }, - addRange: function(range) { - unsafeUnwrap(this).addRange(unwrapIfNeeded(range)); - }, - collapse: function(node, index) { - unsafeUnwrap(this).collapse(unwrapIfNeeded(node), index); - }, - containsNode: function(node, allowPartial) { - return unsafeUnwrap(this).containsNode(unwrapIfNeeded(node), allowPartial); - }, - getRangeAt: function(index) { - return wrap(unsafeUnwrap(this).getRangeAt(index)); - }, - removeRange: function(range) { - unsafeUnwrap(this).removeRange(unwrap(range)); - }, - selectAllChildren: function(node) { - unsafeUnwrap(this).selectAllChildren(unwrapIfNeeded(node)); - }, - toString: function() { - return unsafeUnwrap(this).toString(); - } - }; - if (OriginalSelection.prototype.extend) { - Selection.prototype.extend = function(node, offset) { - unsafeUnwrap(this).extend(unwrapIfNeeded(node), offset); - }; - } - registerWrapper(window.Selection, Selection, window.getSelection()); - scope.wrappers.Selection = Selection; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var registerWrapper = scope.registerWrapper; - var setWrapper = scope.setWrapper; - var unsafeUnwrap = scope.unsafeUnwrap; - var unwrapIfNeeded = scope.unwrapIfNeeded; - var wrap = scope.wrap; - var OriginalTreeWalker = window.TreeWalker; - function TreeWalker(impl) { - setWrapper(impl, this); - } - TreeWalker.prototype = { - get root() { - return wrap(unsafeUnwrap(this).root); - }, - get currentNode() { - return wrap(unsafeUnwrap(this).currentNode); - }, - set currentNode(node) { - unsafeUnwrap(this).currentNode = unwrapIfNeeded(node); - }, - get filter() { - return unsafeUnwrap(this).filter; - }, - parentNode: function() { - return wrap(unsafeUnwrap(this).parentNode()); - }, - firstChild: function() { - return wrap(unsafeUnwrap(this).firstChild()); - }, - lastChild: function() { - return wrap(unsafeUnwrap(this).lastChild()); - }, - previousSibling: function() { - return wrap(unsafeUnwrap(this).previousSibling()); - }, - previousNode: function() { - return wrap(unsafeUnwrap(this).previousNode()); - }, - nextNode: function() { - return wrap(unsafeUnwrap(this).nextNode()); - } - }; - registerWrapper(OriginalTreeWalker, TreeWalker); - scope.wrappers.TreeWalker = TreeWalker; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var GetElementsByInterface = scope.GetElementsByInterface; - var Node = scope.wrappers.Node; - var ParentNodeInterface = scope.ParentNodeInterface; - var NonElementParentNodeInterface = scope.NonElementParentNodeInterface; - var Selection = scope.wrappers.Selection; - var SelectorsInterface = scope.SelectorsInterface; - var ShadowRoot = scope.wrappers.ShadowRoot; - var TreeScope = scope.TreeScope; - var cloneNode = scope.cloneNode; - var defineWrapGetter = scope.defineWrapGetter; - var elementFromPoint = scope.elementFromPoint; - var forwardMethodsToWrapper = scope.forwardMethodsToWrapper; - var matchesNames = scope.matchesNames; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var renderAllPending = scope.renderAllPending; - var rewrap = scope.rewrap; - var setWrapper = scope.setWrapper; - var unsafeUnwrap = scope.unsafeUnwrap; - var unwrap = scope.unwrap; - var wrap = scope.wrap; - var wrapEventTargetMethods = scope.wrapEventTargetMethods; - var wrapNodeList = scope.wrapNodeList; - var implementationTable = new WeakMap(); - function Document(node) { - Node.call(this, node); - this.treeScope_ = new TreeScope(this, null); - } - Document.prototype = Object.create(Node.prototype); - defineWrapGetter(Document, "documentElement"); - defineWrapGetter(Document, "body"); - defineWrapGetter(Document, "head"); - function wrapMethod(name) { - var original = document[name]; - Document.prototype[name] = function() { - return wrap(original.apply(unsafeUnwrap(this), arguments)); - }; - } - [ "createComment", "createDocumentFragment", "createElement", "createElementNS", "createEvent", "createEventNS", "createRange", "createTextNode" ].forEach(wrapMethod); - var originalAdoptNode = document.adoptNode; - function adoptNodeNoRemove(node, doc) { - originalAdoptNode.call(unsafeUnwrap(doc), unwrap(node)); - adoptSubtree(node, doc); - } - function adoptSubtree(node, doc) { - if (node.shadowRoot) doc.adoptNode(node.shadowRoot); - if (node instanceof ShadowRoot) adoptOlderShadowRoots(node, doc); - for (var child = node.firstChild; child; child = child.nextSibling) { - adoptSubtree(child, doc); - } - } - function adoptOlderShadowRoots(shadowRoot, doc) { - var oldShadowRoot = shadowRoot.olderShadowRoot; - if (oldShadowRoot) doc.adoptNode(oldShadowRoot); - } - var originalGetSelection = document.getSelection; - mixin(Document.prototype, { - adoptNode: function(node) { - if (node.parentNode) node.parentNode.removeChild(node); - adoptNodeNoRemove(node, this); - return node; - }, - elementFromPoint: function(x, y) { - return elementFromPoint(this, this, x, y); - }, - importNode: function(node, deep) { - return cloneNode(node, deep, unsafeUnwrap(this)); - }, - getSelection: function() { - renderAllPending(); - return new Selection(originalGetSelection.call(unwrap(this))); - }, - getElementsByName: function(name) { - return SelectorsInterface.querySelectorAll.call(this, "[name=" + JSON.stringify(String(name)) + "]"); - } - }); - var originalCreateTreeWalker = document.createTreeWalker; - var TreeWalkerWrapper = scope.wrappers.TreeWalker; - Document.prototype.createTreeWalker = function(root, whatToShow, filter, expandEntityReferences) { - var newFilter = null; - if (filter) { - if (filter.acceptNode && typeof filter.acceptNode === "function") { - newFilter = { - acceptNode: function(node) { - return filter.acceptNode(wrap(node)); - } - }; - } else if (typeof filter === "function") { - newFilter = function(node) { - return filter(wrap(node)); - }; - } - } - return new TreeWalkerWrapper(originalCreateTreeWalker.call(unwrap(this), unwrap(root), whatToShow, newFilter, expandEntityReferences)); - }; - if (document.registerElement) { - var originalRegisterElement = document.registerElement; - Document.prototype.registerElement = function(tagName, object) { - var prototype, extendsOption; - if (object !== undefined) { - prototype = object.prototype; - extendsOption = object.extends; - } - if (!prototype) prototype = Object.create(HTMLElement.prototype); - if (scope.nativePrototypeTable.get(prototype)) { - throw new Error("NotSupportedError"); - } - var proto = Object.getPrototypeOf(prototype); - var nativePrototype; - var prototypes = []; - while (proto) { - nativePrototype = scope.nativePrototypeTable.get(proto); - if (nativePrototype) break; - prototypes.push(proto); - proto = Object.getPrototypeOf(proto); - } - if (!nativePrototype) { - throw new Error("NotSupportedError"); - } - var newPrototype = Object.create(nativePrototype); - for (var i = prototypes.length - 1; i >= 0; i--) { - newPrototype = Object.create(newPrototype); - } - [ "createdCallback", "attachedCallback", "detachedCallback", "attributeChangedCallback" ].forEach(function(name) { - var f = prototype[name]; - if (!f) return; - newPrototype[name] = function() { - if (!(wrap(this) instanceof CustomElementConstructor)) { - rewrap(this); - } - f.apply(wrap(this), arguments); - }; - }); - var p = { - prototype: newPrototype - }; - if (extendsOption) p.extends = extendsOption; - function CustomElementConstructor(node) { - if (!node) { - if (extendsOption) { - return document.createElement(extendsOption, tagName); - } else { - return document.createElement(tagName); - } - } - setWrapper(node, this); - } - CustomElementConstructor.prototype = prototype; - CustomElementConstructor.prototype.constructor = CustomElementConstructor; - scope.constructorTable.set(newPrototype, CustomElementConstructor); - scope.nativePrototypeTable.set(prototype, newPrototype); - var nativeConstructor = originalRegisterElement.call(unwrap(this), tagName, p); - return CustomElementConstructor; - }; - forwardMethodsToWrapper([ window.HTMLDocument || window.Document ], [ "registerElement" ]); - } - forwardMethodsToWrapper([ window.HTMLBodyElement, window.HTMLDocument || window.Document, window.HTMLHeadElement, window.HTMLHtmlElement ], [ "appendChild", "compareDocumentPosition", "contains", "getElementsByClassName", "getElementsByTagName", "getElementsByTagNameNS", "insertBefore", "querySelector", "querySelectorAll", "removeChild", "replaceChild" ]); - forwardMethodsToWrapper([ window.HTMLBodyElement, window.HTMLHeadElement, window.HTMLHtmlElement ], matchesNames); - forwardMethodsToWrapper([ window.HTMLDocument || window.Document ], [ "adoptNode", "importNode", "contains", "createComment", "createDocumentFragment", "createElement", "createElementNS", "createEvent", "createEventNS", "createRange", "createTextNode", "createTreeWalker", "elementFromPoint", "getElementById", "getElementsByName", "getSelection" ]); - mixin(Document.prototype, GetElementsByInterface); - mixin(Document.prototype, ParentNodeInterface); - mixin(Document.prototype, SelectorsInterface); - mixin(Document.prototype, NonElementParentNodeInterface); - mixin(Document.prototype, { - get implementation() { - var implementation = implementationTable.get(this); - if (implementation) return implementation; - implementation = new DOMImplementation(unwrap(this).implementation); - implementationTable.set(this, implementation); - return implementation; - }, - get defaultView() { - return wrap(unwrap(this).defaultView); - } - }); - registerWrapper(window.Document, Document, document.implementation.createHTMLDocument("")); - if (window.HTMLDocument) registerWrapper(window.HTMLDocument, Document); - wrapEventTargetMethods([ window.HTMLBodyElement, window.HTMLDocument || window.Document, window.HTMLHeadElement ]); - function DOMImplementation(impl) { - setWrapper(impl, this); - } - var originalCreateDocument = document.implementation.createDocument; - DOMImplementation.prototype.createDocument = function() { - arguments[2] = unwrap(arguments[2]); - return wrap(originalCreateDocument.apply(unsafeUnwrap(this), arguments)); - }; - function wrapImplMethod(constructor, name) { - var original = document.implementation[name]; - constructor.prototype[name] = function() { - return wrap(original.apply(unsafeUnwrap(this), arguments)); - }; - } - function forwardImplMethod(constructor, name) { - var original = document.implementation[name]; - constructor.prototype[name] = function() { - return original.apply(unsafeUnwrap(this), arguments); - }; - } - wrapImplMethod(DOMImplementation, "createDocumentType"); - wrapImplMethod(DOMImplementation, "createHTMLDocument"); - forwardImplMethod(DOMImplementation, "hasFeature"); - registerWrapper(window.DOMImplementation, DOMImplementation); - forwardMethodsToWrapper([ window.DOMImplementation ], [ "createDocument", "createDocumentType", "createHTMLDocument", "hasFeature" ]); - scope.adoptNodeNoRemove = adoptNodeNoRemove; - scope.wrappers.DOMImplementation = DOMImplementation; - scope.wrappers.Document = Document; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var EventTarget = scope.wrappers.EventTarget; - var Selection = scope.wrappers.Selection; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var renderAllPending = scope.renderAllPending; - var unwrap = scope.unwrap; - var unwrapIfNeeded = scope.unwrapIfNeeded; - var wrap = scope.wrap; - var OriginalWindow = window.Window; - var originalGetComputedStyle = window.getComputedStyle; - var originalGetDefaultComputedStyle = window.getDefaultComputedStyle; - var originalGetSelection = window.getSelection; - function Window(impl) { - EventTarget.call(this, impl); - } - Window.prototype = Object.create(EventTarget.prototype); - OriginalWindow.prototype.getComputedStyle = function(el, pseudo) { - return wrap(this || window).getComputedStyle(unwrapIfNeeded(el), pseudo); - }; - if (originalGetDefaultComputedStyle) { - OriginalWindow.prototype.getDefaultComputedStyle = function(el, pseudo) { - return wrap(this || window).getDefaultComputedStyle(unwrapIfNeeded(el), pseudo); - }; - } - OriginalWindow.prototype.getSelection = function() { - return wrap(this || window).getSelection(); - }; - delete window.getComputedStyle; - delete window.getDefaultComputedStyle; - delete window.getSelection; - [ "addEventListener", "removeEventListener", "dispatchEvent" ].forEach(function(name) { - OriginalWindow.prototype[name] = function() { - var w = wrap(this || window); - return w[name].apply(w, arguments); - }; - delete window[name]; - }); - mixin(Window.prototype, { - getComputedStyle: function(el, pseudo) { - renderAllPending(); - return originalGetComputedStyle.call(unwrap(this), unwrapIfNeeded(el), pseudo); - }, - getSelection: function() { - renderAllPending(); - return new Selection(originalGetSelection.call(unwrap(this))); - }, - get document() { - return wrap(unwrap(this).document); - } - }); - if (originalGetDefaultComputedStyle) { - Window.prototype.getDefaultComputedStyle = function(el, pseudo) { - renderAllPending(); - return originalGetDefaultComputedStyle.call(unwrap(this), unwrapIfNeeded(el), pseudo); - }; - } - registerWrapper(OriginalWindow, Window, window); - scope.wrappers.Window = Window; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var unwrap = scope.unwrap; - var OriginalDataTransfer = window.DataTransfer || window.Clipboard; - var OriginalDataTransferSetDragImage = OriginalDataTransfer.prototype.setDragImage; - if (OriginalDataTransferSetDragImage) { - OriginalDataTransfer.prototype.setDragImage = function(image, x, y) { - OriginalDataTransferSetDragImage.call(this, unwrap(image), x, y); - }; - } -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var registerWrapper = scope.registerWrapper; - var setWrapper = scope.setWrapper; - var unwrap = scope.unwrap; - var OriginalFormData = window.FormData; - if (!OriginalFormData) return; - function FormData(formElement) { - var impl; - if (formElement instanceof OriginalFormData) { - impl = formElement; - } else { - impl = new OriginalFormData(formElement && unwrap(formElement)); - } - setWrapper(impl, this); - } - registerWrapper(OriginalFormData, FormData, new OriginalFormData()); - scope.wrappers.FormData = FormData; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var unwrapIfNeeded = scope.unwrapIfNeeded; - var originalSend = XMLHttpRequest.prototype.send; - XMLHttpRequest.prototype.send = function(obj) { - return originalSend.call(this, unwrapIfNeeded(obj)); - }; -})(window.ShadowDOMPolyfill); - -(function(scope) { - "use strict"; - var isWrapperFor = scope.isWrapperFor; - var elements = { - a: "HTMLAnchorElement", - area: "HTMLAreaElement", - audio: "HTMLAudioElement", - base: "HTMLBaseElement", - body: "HTMLBodyElement", - br: "HTMLBRElement", - button: "HTMLButtonElement", - canvas: "HTMLCanvasElement", - caption: "HTMLTableCaptionElement", - col: "HTMLTableColElement", - content: "HTMLContentElement", - data: "HTMLDataElement", - datalist: "HTMLDataListElement", - del: "HTMLModElement", - dir: "HTMLDirectoryElement", - div: "HTMLDivElement", - dl: "HTMLDListElement", - embed: "HTMLEmbedElement", - fieldset: "HTMLFieldSetElement", - font: "HTMLFontElement", - form: "HTMLFormElement", - frame: "HTMLFrameElement", - frameset: "HTMLFrameSetElement", - h1: "HTMLHeadingElement", - head: "HTMLHeadElement", - hr: "HTMLHRElement", - html: "HTMLHtmlElement", - iframe: "HTMLIFrameElement", - img: "HTMLImageElement", - input: "HTMLInputElement", - keygen: "HTMLKeygenElement", - label: "HTMLLabelElement", - legend: "HTMLLegendElement", - li: "HTMLLIElement", - link: "HTMLLinkElement", - map: "HTMLMapElement", - marquee: "HTMLMarqueeElement", - menu: "HTMLMenuElement", - menuitem: "HTMLMenuItemElement", - meta: "HTMLMetaElement", - meter: "HTMLMeterElement", - object: "HTMLObjectElement", - ol: "HTMLOListElement", - optgroup: "HTMLOptGroupElement", - option: "HTMLOptionElement", - output: "HTMLOutputElement", - p: "HTMLParagraphElement", - param: "HTMLParamElement", - pre: "HTMLPreElement", - progress: "HTMLProgressElement", - q: "HTMLQuoteElement", - script: "HTMLScriptElement", - select: "HTMLSelectElement", - shadow: "HTMLShadowElement", - source: "HTMLSourceElement", - span: "HTMLSpanElement", - style: "HTMLStyleElement", - table: "HTMLTableElement", - tbody: "HTMLTableSectionElement", - template: "HTMLTemplateElement", - textarea: "HTMLTextAreaElement", - thead: "HTMLTableSectionElement", - time: "HTMLTimeElement", - title: "HTMLTitleElement", - tr: "HTMLTableRowElement", - track: "HTMLTrackElement", - ul: "HTMLUListElement", - video: "HTMLVideoElement" - }; - function overrideConstructor(tagName) { - var nativeConstructorName = elements[tagName]; - var nativeConstructor = window[nativeConstructorName]; - if (!nativeConstructor) return; - var element = document.createElement(tagName); - var wrapperConstructor = element.constructor; - window[nativeConstructorName] = wrapperConstructor; - } - Object.keys(elements).forEach(overrideConstructor); - Object.getOwnPropertyNames(scope.wrappers).forEach(function(name) { - window[name] = scope.wrappers[name]; - }); -})(window.ShadowDOMPolyfill); \ No newline at end of file diff --git a/bower_components/webcomponentsjs/ShadowDOM.min.js b/bower_components/webcomponentsjs/ShadowDOM.min.js deleted file mode 100644 index 1380d54..0000000 --- a/bower_components/webcomponentsjs/ShadowDOM.min.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * @license - * Copyright (c) 2014 The Polymer Project Authors. All rights reserved. - * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt - * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt - * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt - * Code distributed by Google as part of the polymer project is also - * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt - */ -// @version 0.7.5 -"undefined"==typeof WeakMap&&!function(){var e=Object.defineProperty,t=Date.now()%1e9,n=function(){this.name="__st"+(1e9*Math.random()>>>0)+(t++ +"__")};n.prototype={set:function(t,n){var r=t[this.name];return r&&r[0]===t?r[1]=n:e(t,this.name,{value:[t,n],writable:!0}),this},get:function(e){var t;return(t=e[this.name])&&t[0]===e?t[1]:void 0},"delete":function(e){var t=e[this.name];return t&&t[0]===e?(t[0]=t[1]=void 0,!0):!1},has:function(e){var t=e[this.name];return t?t[0]===e:!1}},window.WeakMap=n}(),window.ShadowDOMPolyfill={},function(e){"use strict";function t(){if("undefined"!=typeof chrome&&chrome.app&&chrome.app.runtime)return!1;if(navigator.getDeviceStorage)return!1;try{var e=new Function("return true;");return e()}catch(t){return!1}}function n(e){if(!e)throw new Error("Assertion failed")}function r(e,t){for(var n=k(t),r=0;ru;u++)c[u]=new Array(s),c[u][0]=u;for(var l=0;s>l;l++)c[0][l]=l;for(var u=1;a>u;u++)for(var l=1;s>l;l++)if(this.equals(e[t+l-1],r[o+u-1]))c[u][l]=c[u-1][l-1];else{var p=c[u-1][l]+1,d=c[u][l-1]+1;c[u][l]=d>p?p:d}return c},spliceOperationsFromEditDistances:function(e){for(var t=e.length-1,n=e[0].length-1,s=e[t][n],c=[];t>0||n>0;)if(0!=t)if(0!=n){var u,l=e[t-1][n-1],p=e[t-1][n],d=e[t][n-1];u=d>p?l>p?p:l:l>d?d:l,u==l?(l==s?c.push(r):(c.push(o),s=l),t--,n--):u==p?(c.push(a),t--,s=p):(c.push(i),n--,s=d)}else c.push(a),t--;else c.push(i),n--;return c.reverse(),c},calcSplices:function(e,n,s,c,u,l){var p=0,d=0,f=Math.min(s-n,l-u);if(0==n&&0==u&&(p=this.sharedPrefix(e,c,f)),s==e.length&&l==c.length&&(d=this.sharedSuffix(e,c,f-p)),n+=p,u+=p,s-=d,l-=d,s-n==0&&l-u==0)return[];if(n==s){for(var h=t(n,[],0);l>u;)h.removed.push(c[u++]);return[h]}if(u==l)return[t(n,[],s-n)];for(var w=this.spliceOperationsFromEditDistances(this.calcEditDistances(e,n,s,c,u,l)),h=void 0,m=[],g=n,v=u,b=0;br;r++)if(!this.equals(e[r],t[r]))return r;return n},sharedSuffix:function(e,t,n){for(var r=e.length,o=t.length,i=0;n>i&&this.equals(e[--r],t[--o]);)i++;return i},calculateSplices:function(e,t){return this.calcSplices(e,0,e.length,t,0,t.length)},equals:function(e,t){return e===t}},e.ArraySplice=n}(window.ShadowDOMPolyfill),function(e){"use strict";function t(){a=!1;var e=i.slice(0);i=[];for(var t=0;t0){for(var l=0;l0&&r.length>0;){var i=n.pop(),a=r.pop();if(i!==a)break;o=i}return o}function l(e,t,n){t instanceof G.Window&&(t=t.document);var o,i=A(t),a=A(n),s=r(n,e),o=u(i,a);o||(o=a.root);for(var c=o;c;c=c.parent)for(var l=0;l0;i--)if(!v(t[i],e,o,t,r))return!1;return!0}function m(e,t,n,r){var o=ie,i=t[0]||n;return v(i,e,o,t,r)}function g(e,t,n,r){for(var o=ae,i=1;i0&&v(n,e,o,t,r)}function v(e,t,n,r,o){var i=z.get(e);if(!i)return!0;var a=o||s(r,e);if(a===e){if(n===oe)return!0;n===ae&&(n=ie)}else if(n===ae&&!t.bubbles)return!0;if("relatedTarget"in t){var c=q(t),u=c.relatedTarget;if(u){if(u instanceof Object&&u.addEventListener){var p=V(u),d=l(t,e,p);if(d===a)return!0}else d=null;Z.set(t,d)}}J.set(t,n);var f=t.type,h=!1;Y.set(t,a),$.set(t,e),i.depth++;for(var w=0,m=i.length;m>w;w++){var g=i[w];if(g.removed)h=!0;else if(!(g.type!==f||!g.capture&&n===oe||g.capture&&n===ae))try{if("function"==typeof g.handler?g.handler.call(e,t):g.handler.handleEvent(t),ee.get(t))return!1}catch(v){W||(W=v)}}if(i.depth--,h&&0===i.depth){var b=i.slice();i.length=0;for(var w=0;wr;r++)t[r]=a(e[r]);return t.length=o,t}function o(e,t){e.prototype[t]=function(){return r(i(this)[t].apply(i(this),arguments))}}var i=e.unsafeUnwrap,a=e.wrap,s={enumerable:!1};n.prototype={item:function(e){return this[e]}},t(n.prototype,"item"),e.wrappers.NodeList=n,e.addWrapNodeListMethod=o,e.wrapNodeList=r}(window.ShadowDOMPolyfill),function(e){"use strict";e.wrapHTMLCollection=e.wrapNodeList,e.wrappers.HTMLCollection=e.wrappers.NodeList}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){N(e instanceof S)}function n(e){var t=new T;return t[0]=e,t.length=1,t}function r(e,t,n){L(t,"childList",{removedNodes:n,previousSibling:e.previousSibling,nextSibling:e.nextSibling})}function o(e,t){L(e,"childList",{removedNodes:t})}function i(e,t,r,o){if(e instanceof DocumentFragment){var i=s(e);B=!0;for(var a=i.length-1;a>=0;a--)e.removeChild(i[a]),i[a].parentNode_=t;B=!1;for(var a=0;ao;o++)r.appendChild(W(t[o]));return r}function m(e){if(void 0!==e.firstChild_)for(var t=e.firstChild_;t;){var n=t;t=t.nextSibling_,n.parentNode_=n.previousSibling_=n.nextSibling_=void 0}e.firstChild_=e.lastChild_=void 0}function g(e){if(e.invalidateShadowRenderer()){for(var t=e.firstChild;t;){N(t.parentNode===e);var n=t.nextSibling,r=W(t),o=r.parentNode;o&&Y.call(o,r),t.previousSibling_=t.nextSibling_=t.parentNode_=null,t=n}e.firstChild_=e.lastChild_=null}else for(var n,i=W(e),a=i.firstChild;a;)n=a.nextSibling,Y.call(i,a),a=n}function v(e){var t=e.parentNode;return t&&t.invalidateShadowRenderer()}function b(e){for(var t,n=0;ns;s++)i=b(t[s]),!o&&(a=g(i).root)&&a instanceof e.wrappers.ShadowRoot||(r[n++]=i);return n}function n(e){return String(e).replace(/\/deep\/|::shadow|>>>/g," ")}function r(e){return String(e).replace(/:host\(([^\s]+)\)/g,"$1").replace(/([^\s]):host/g,"$1").replace(":host","*").replace(/\^|\/shadow\/|\/shadow-deep\/|::shadow|\/deep\/|::content|>>>/g," ")}function o(e,t){for(var n,r=e.firstElementChild;r;){if(r.matches(t))return r;if(n=o(r,t))return n;r=r.nextElementSibling}return null}function i(e,t){return e.matches(t)}function a(e,t,n){var r=e.localName;return r===t||r===n&&e.namespaceURI===C}function s(){return!0}function c(e,t,n){return e.localName===n}function u(e,t){return e.namespaceURI===t}function l(e,t,n){return e.namespaceURI===t&&e.localName===n}function p(e,t,n,r,o,i){for(var a=e.firstElementChild;a;)r(a,o,i)&&(n[t++]=a),t=p(a,t,n,r,o,i),a=a.nextElementSibling;return t}function d(n,r,o,i,a){var s,c=v(this),u=g(this).root;if(u instanceof e.wrappers.ShadowRoot)return p(this,r,o,n,i,null);if(c instanceof L)s=M.call(c,i);else{if(!(c instanceof _))return p(this,r,o,n,i,null);s=S.call(c,i)}return t(s,r,o,a)}function f(n,r,o,i,a){var s,c=v(this),u=g(this).root;if(u instanceof e.wrappers.ShadowRoot)return p(this,r,o,n,i,a);if(c instanceof L)s=O.call(c,i,a);else{if(!(c instanceof _))return p(this,r,o,n,i,a);s=T.call(c,i,a)}return t(s,r,o,!1)}function h(n,r,o,i,a){var s,c=v(this),u=g(this).root;if(u instanceof e.wrappers.ShadowRoot)return p(this,r,o,n,i,a);if(c instanceof L)s=j.call(c,i,a);else{if(!(c instanceof _))return p(this,r,o,n,i,a);s=N.call(c,i,a)}return t(s,r,o,!1)}var w=e.wrappers.HTMLCollection,m=e.wrappers.NodeList,g=e.getTreeScope,v=e.unsafeUnwrap,b=e.wrap,y=document.querySelector,E=document.documentElement.querySelector,S=document.querySelectorAll,M=document.documentElement.querySelectorAll,T=document.getElementsByTagName,O=document.documentElement.getElementsByTagName,N=document.getElementsByTagNameNS,j=document.documentElement.getElementsByTagNameNS,L=window.Element,_=window.HTMLDocument||window.Document,C="http://www.w3.org/1999/xhtml",D={querySelector:function(t){var r=n(t),i=r!==t;t=r;var a,s=v(this),c=g(this).root;if(c instanceof e.wrappers.ShadowRoot)return o(this,t);if(s instanceof L)a=b(E.call(s,t));else{if(!(s instanceof _))return o(this,t);a=b(y.call(s,t))}return a&&!i&&(c=g(a).root)&&c instanceof e.wrappers.ShadowRoot?o(this,t):a},querySelectorAll:function(e){var t=n(e),r=t!==e;e=t;var o=new m;return o.length=d.call(this,i,0,o,e,r),o}},H={matches:function(t){return t=r(t),e.originalMatches.call(v(this),t)}},x={getElementsByTagName:function(e){var t=new w,n="*"===e?s:a;return t.length=f.call(this,n,0,t,e,e.toLowerCase()),t},getElementsByClassName:function(e){return this.querySelectorAll("."+e)},getElementsByTagNameNS:function(e,t){var n=new w,r=null;return r="*"===e?"*"===t?s:c:"*"===t?u:l,n.length=h.call(this,r,0,n,e||null,t),n}};e.GetElementsByInterface=x,e.SelectorsInterface=D,e.MatchesInterface=H}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){for(;e&&e.nodeType!==Node.ELEMENT_NODE;)e=e.nextSibling; - -return e}function n(e){for(;e&&e.nodeType!==Node.ELEMENT_NODE;)e=e.previousSibling;return e}var r=e.wrappers.NodeList,o={get firstElementChild(){return t(this.firstChild)},get lastElementChild(){return n(this.lastChild)},get childElementCount(){for(var e=0,t=this.firstElementChild;t;t=t.nextElementSibling)e++;return e},get children(){for(var e=new r,t=0,n=this.firstElementChild;n;n=n.nextElementSibling)e[t++]=n;return e.length=t,e},remove:function(){var e=this.parentNode;e&&e.removeChild(this)}},i={get nextElementSibling(){return t(this.nextSibling)},get previousElementSibling(){return n(this.previousSibling)}},a={getElementById:function(e){return/[ \t\n\r\f]/.test(e)?null:this.querySelector('[id="'+e+'"]')}};e.ChildNodeInterface=i,e.NonElementParentNodeInterface=a,e.ParentNodeInterface=o}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){r.call(this,e)}var n=e.ChildNodeInterface,r=e.wrappers.Node,o=e.enqueueMutation,i=e.mixin,a=e.registerWrapper,s=e.unsafeUnwrap,c=window.CharacterData;t.prototype=Object.create(r.prototype),i(t.prototype,{get nodeValue(){return this.data},set nodeValue(e){this.data=e},get textContent(){return this.data},set textContent(e){this.data=e},get data(){return s(this).data},set data(e){var t=s(this).data;o(this,"characterData",{oldValue:t}),s(this).data=e}}),i(t.prototype,n),a(c,t,document.createTextNode("")),e.wrappers.CharacterData=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){return e>>>0}function n(e){r.call(this,e)}var r=e.wrappers.CharacterData,o=(e.enqueueMutation,e.mixin),i=e.registerWrapper,a=window.Text;n.prototype=Object.create(r.prototype),o(n.prototype,{splitText:function(e){e=t(e);var n=this.data;if(e>n.length)throw new Error("IndexSizeError");var r=n.slice(0,e),o=n.slice(e);this.data=r;var i=this.ownerDocument.createTextNode(o);return this.parentNode&&this.parentNode.insertBefore(i,this.nextSibling),i}}),i(a,n,document.createTextNode("")),e.wrappers.Text=n}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){return i(e).getAttribute("class")}function n(e,t){a(e,"attributes",{name:"class",namespace:null,oldValue:t})}function r(t){e.invalidateRendererBasedOnAttribute(t,"class")}function o(e,o,i){var a=e.ownerElement_;if(null==a)return o.apply(e,i);var s=t(a),c=o.apply(e,i);return t(a)!==s&&(n(a,s),r(a)),c}if(!window.DOMTokenList)return void console.warn("Missing DOMTokenList prototype, please include a compatible classList polyfill such as http://goo.gl/uTcepH.");var i=e.unsafeUnwrap,a=e.enqueueMutation,s=DOMTokenList.prototype.add;DOMTokenList.prototype.add=function(){o(this,s,arguments)};var c=DOMTokenList.prototype.remove;DOMTokenList.prototype.remove=function(){o(this,c,arguments)};var u=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(){return o(this,u,arguments)}}(window.ShadowDOMPolyfill),function(e){"use strict";function t(t,n){var r=t.parentNode;if(r&&r.shadowRoot){var o=e.getRendererForHost(r);o.dependsOnAttribute(n)&&o.invalidate()}}function n(e,t,n){l(e,"attributes",{name:t,namespace:null,oldValue:n})}function r(e){a.call(this,e)}var o=e.ChildNodeInterface,i=e.GetElementsByInterface,a=e.wrappers.Node,s=e.ParentNodeInterface,c=e.SelectorsInterface,u=e.MatchesInterface,l=(e.addWrapNodeListMethod,e.enqueueMutation),p=e.mixin,d=(e.oneOf,e.registerWrapper),f=e.unsafeUnwrap,h=e.wrappers,w=window.Element,m=["matches","mozMatchesSelector","msMatchesSelector","webkitMatchesSelector"].filter(function(e){return w.prototype[e]}),g=m[0],v=w.prototype[g],b=new WeakMap;r.prototype=Object.create(a.prototype),p(r.prototype,{createShadowRoot:function(){var t=new h.ShadowRoot(this);f(this).polymerShadowRoot_=t;var n=e.getRendererForHost(this);return n.invalidate(),t},get shadowRoot(){return f(this).polymerShadowRoot_||null},setAttribute:function(e,r){var o=f(this).getAttribute(e);f(this).setAttribute(e,r),n(this,e,o),t(this,e)},removeAttribute:function(e){var r=f(this).getAttribute(e);f(this).removeAttribute(e),n(this,e,r),t(this,e)},get classList(){var e=b.get(this);if(!e){if(e=f(this).classList,!e)return;e.ownerElement_=this,b.set(this,e)}return e},get className(){return f(this).className},set className(e){this.setAttribute("class",e)},get id(){return f(this).id},set id(e){this.setAttribute("id",e)}}),m.forEach(function(e){"matches"!==e&&(r.prototype[e]=function(e){return this.matches(e)})}),w.prototype.webkitCreateShadowRoot&&(r.prototype.webkitCreateShadowRoot=r.prototype.createShadowRoot),p(r.prototype,o),p(r.prototype,i),p(r.prototype,s),p(r.prototype,c),p(r.prototype,u),d(w,r,document.createElementNS(null,"x")),e.invalidateRendererBasedOnAttribute=t,e.matchesNames=m,e.originalMatches=v,e.wrappers.Element=r}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){switch(e){case"&":return"&";case"<":return"<";case">":return">";case'"':return""";case" ":return" "}}function n(e){return e.replace(j,t)}function r(e){return e.replace(L,t)}function o(e){for(var t={},n=0;n"):c+">"+s(e)+"";case Node.TEXT_NODE:var p=e.data;return t&&C[t.localName]?p:r(p);case Node.COMMENT_NODE:return"";default:throw console.error(e),new Error("not implemented")}}function s(e){e instanceof N.HTMLTemplateElement&&(e=e.content);for(var t="",n=e.firstChild;n;n=n.nextSibling)t+=a(n,e);return t}function c(e,t,n){var r=n||"div";e.textContent="";var o=T(e.ownerDocument.createElement(r));o.innerHTML=t;for(var i;i=o.firstChild;)e.appendChild(O(i))}function u(e){w.call(this,e)}function l(e,t){var n=T(e.cloneNode(!1));n.innerHTML=t;for(var r,o=T(document.createDocumentFragment());r=n.firstChild;)o.appendChild(r);return O(o)}function p(t){return function(){return e.renderAllPending(),M(this)[t]}}function d(e){m(u,e,p(e))}function f(t){Object.defineProperty(u.prototype,t,{get:p(t),set:function(n){e.renderAllPending(),M(this)[t]=n},configurable:!0,enumerable:!0})}function h(t){Object.defineProperty(u.prototype,t,{value:function(){return e.renderAllPending(),M(this)[t].apply(M(this),arguments)},configurable:!0,enumerable:!0})}var w=e.wrappers.Element,m=e.defineGetter,g=e.enqueueMutation,v=e.mixin,b=e.nodesWereAdded,y=e.nodesWereRemoved,E=e.registerWrapper,S=e.snapshotNodeList,M=e.unsafeUnwrap,T=e.unwrap,O=e.wrap,N=e.wrappers,j=/[&\u00A0"]/g,L=/[&\u00A0<>]/g,_=o(["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"]),C=o(["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"]),D="http://www.w3.org/1999/xhtml",H=/MSIE/.test(navigator.userAgent),x=window.HTMLElement,R=window.HTMLTemplateElement;u.prototype=Object.create(w.prototype),v(u.prototype,{get innerHTML(){return s(this)},set innerHTML(e){if(H&&C[this.localName])return void(this.textContent=e);var t=S(this.childNodes);this.invalidateShadowRenderer()?this instanceof N.HTMLTemplateElement?c(this.content,e):c(this,e,this.tagName):!R&&this instanceof N.HTMLTemplateElement?c(this.content,e):M(this).innerHTML=e;var n=S(this.childNodes);g(this,"childList",{addedNodes:n,removedNodes:t}),y(t),b(n,this)},get outerHTML(){return a(this,this.parentNode)},set outerHTML(e){var t=this.parentNode;if(t){t.invalidateShadowRenderer();var n=l(t,e);t.replaceChild(n,this)}},insertAdjacentHTML:function(e,t){var n,r;switch(String(e).toLowerCase()){case"beforebegin":n=this.parentNode,r=this;break;case"afterend":n=this.parentNode,r=this.nextSibling;break;case"afterbegin":n=this,r=this.firstChild;break;case"beforeend":n=this,r=null;break;default:return}var o=l(n,t);n.insertBefore(o,r)},get hidden(){return this.hasAttribute("hidden")},set hidden(e){e?this.setAttribute("hidden",""):this.removeAttribute("hidden")}}),["clientHeight","clientLeft","clientTop","clientWidth","offsetHeight","offsetLeft","offsetTop","offsetWidth","scrollHeight","scrollWidth"].forEach(d),["scrollLeft","scrollTop"].forEach(f),["getBoundingClientRect","getClientRects","scrollIntoView"].forEach(h),E(x,u,document.createElement("b")),e.wrappers.HTMLElement=u,e.getInnerHTML=s,e.setInnerHTML=c}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.mixin,o=e.registerWrapper,i=e.unsafeUnwrap,a=e.wrap,s=window.HTMLCanvasElement;t.prototype=Object.create(n.prototype),r(t.prototype,{getContext:function(){var e=i(this).getContext.apply(i(this),arguments);return e&&a(e)}}),o(s,t,document.createElement("canvas")),e.wrappers.HTMLCanvasElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.mixin,o=e.registerWrapper,i=window.HTMLContentElement;t.prototype=Object.create(n.prototype),r(t.prototype,{constructor:t,get select(){return this.getAttribute("select")},set select(e){this.setAttribute("select",e)},setAttribute:function(e,t){n.prototype.setAttribute.call(this,e,t),"select"===String(e).toLowerCase()&&this.invalidateShadowRenderer(!0)}}),i&&o(i,t),e.wrappers.HTMLContentElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.mixin,o=e.registerWrapper,i=e.wrapHTMLCollection,a=e.unwrap,s=window.HTMLFormElement;t.prototype=Object.create(n.prototype),r(t.prototype,{get elements(){return i(a(this).elements)}}),o(s,t,document.createElement("form")),e.wrappers.HTMLFormElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){r.call(this,e)}function n(e,t){if(!(this instanceof n))throw new TypeError("DOM object constructor cannot be called as a function.");var o=i(document.createElement("img"));r.call(this,o),a(o,this),void 0!==e&&(o.width=e),void 0!==t&&(o.height=t)}var r=e.wrappers.HTMLElement,o=e.registerWrapper,i=e.unwrap,a=e.rewrap,s=window.HTMLImageElement;t.prototype=Object.create(r.prototype),o(s,t,document.createElement("img")),n.prototype=t.prototype,e.wrappers.HTMLImageElement=t,e.wrappers.Image=n}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=(e.mixin,e.wrappers.NodeList,e.registerWrapper),o=window.HTMLShadowElement;t.prototype=Object.create(n.prototype),t.prototype.constructor=t,o&&r(o,t),e.wrappers.HTMLShadowElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){if(!e.defaultView)return e;var t=p.get(e);if(!t){for(t=e.implementation.createHTMLDocument("");t.lastChild;)t.removeChild(t.lastChild);p.set(e,t)}return t}function n(e){for(var n,r=t(e.ownerDocument),o=c(r.createDocumentFragment());n=e.firstChild;)o.appendChild(n);return o}function r(e){if(o.call(this,e),!d){var t=n(e);l.set(this,u(t))}}var o=e.wrappers.HTMLElement,i=e.mixin,a=e.registerWrapper,s=e.unsafeUnwrap,c=e.unwrap,u=e.wrap,l=new WeakMap,p=new WeakMap,d=window.HTMLTemplateElement;r.prototype=Object.create(o.prototype),i(r.prototype,{constructor:r,get content(){return d?u(s(this).content):l.get(this)}}),d&&a(d,r),e.wrappers.HTMLTemplateElement=r}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.registerWrapper,o=window.HTMLMediaElement;o&&(t.prototype=Object.create(n.prototype),r(o,t,document.createElement("audio")),e.wrappers.HTMLMediaElement=t)}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){r.call(this,e)}function n(e){if(!(this instanceof n))throw new TypeError("DOM object constructor cannot be called as a function.");var t=i(document.createElement("audio"));r.call(this,t),a(t,this),t.setAttribute("preload","auto"),void 0!==e&&t.setAttribute("src",e)}var r=e.wrappers.HTMLMediaElement,o=e.registerWrapper,i=e.unwrap,a=e.rewrap,s=window.HTMLAudioElement;s&&(t.prototype=Object.create(r.prototype),o(s,t,document.createElement("audio")),n.prototype=t.prototype,e.wrappers.HTMLAudioElement=t,e.wrappers.Audio=n)}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){return e.replace(/\s+/g," ").trim()}function n(e){o.call(this,e)}function r(e,t,n,i){if(!(this instanceof r))throw new TypeError("DOM object constructor cannot be called as a function.");var a=c(document.createElement("option"));o.call(this,a),s(a,this),void 0!==e&&(a.text=e),void 0!==t&&a.setAttribute("value",t),n===!0&&a.setAttribute("selected",""),a.selected=i===!0}var o=e.wrappers.HTMLElement,i=e.mixin,a=e.registerWrapper,s=e.rewrap,c=e.unwrap,u=e.wrap,l=window.HTMLOptionElement;n.prototype=Object.create(o.prototype),i(n.prototype,{get text(){return t(this.textContent)},set text(e){this.textContent=t(String(e))},get form(){return u(c(this).form)}}),a(l,n,document.createElement("option")),r.prototype=n.prototype,e.wrappers.HTMLOptionElement=n,e.wrappers.Option=r}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.mixin,o=e.registerWrapper,i=e.unwrap,a=e.wrap,s=window.HTMLSelectElement;t.prototype=Object.create(n.prototype),r(t.prototype,{add:function(e,t){"object"==typeof t&&(t=i(t)),i(this).add(i(e),t)},remove:function(e){return void 0===e?void n.prototype.remove.call(this):("object"==typeof e&&(e=i(e)),void i(this).remove(e))},get form(){return a(i(this).form)}}),o(s,t,document.createElement("select")),e.wrappers.HTMLSelectElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.mixin,o=e.registerWrapper,i=e.unwrap,a=e.wrap,s=e.wrapHTMLCollection,c=window.HTMLTableElement;t.prototype=Object.create(n.prototype),r(t.prototype,{get caption(){return a(i(this).caption)},createCaption:function(){return a(i(this).createCaption())},get tHead(){return a(i(this).tHead)},createTHead:function(){return a(i(this).createTHead())},createTFoot:function(){return a(i(this).createTFoot())},get tFoot(){return a(i(this).tFoot)},get tBodies(){return s(i(this).tBodies)},createTBody:function(){return a(i(this).createTBody())},get rows(){return s(i(this).rows)},insertRow:function(e){return a(i(this).insertRow(e))}}),o(c,t,document.createElement("table")),e.wrappers.HTMLTableElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.mixin,o=e.registerWrapper,i=e.wrapHTMLCollection,a=e.unwrap,s=e.wrap,c=window.HTMLTableSectionElement;t.prototype=Object.create(n.prototype),r(t.prototype,{constructor:t,get rows(){return i(a(this).rows)},insertRow:function(e){return s(a(this).insertRow(e))}}),o(c,t,document.createElement("thead")),e.wrappers.HTMLTableSectionElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.mixin,o=e.registerWrapper,i=e.wrapHTMLCollection,a=e.unwrap,s=e.wrap,c=window.HTMLTableRowElement;t.prototype=Object.create(n.prototype),r(t.prototype,{get cells(){return i(a(this).cells)},insertCell:function(e){return s(a(this).insertCell(e))}}),o(c,t,document.createElement("tr")),e.wrappers.HTMLTableRowElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){switch(e.localName){case"content":return new n(e);case"shadow":return new o(e);case"template":return new i(e)}r.call(this,e)}var n=e.wrappers.HTMLContentElement,r=e.wrappers.HTMLElement,o=e.wrappers.HTMLShadowElement,i=e.wrappers.HTMLTemplateElement,a=(e.mixin,e.registerWrapper),s=window.HTMLUnknownElement;t.prototype=Object.create(r.prototype),a(s,t),e.wrappers.HTMLUnknownElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";var t=e.wrappers.Element,n=e.wrappers.HTMLElement,r=e.registerObject,o=e.defineWrapGetter,i="http://www.w3.org/2000/svg",a=document.createElementNS(i,"title"),s=r(a),c=Object.getPrototypeOf(s.prototype).constructor;if(!("classList"in a)){var u=Object.getOwnPropertyDescriptor(t.prototype,"classList");Object.defineProperty(n.prototype,"classList",u),delete t.prototype.classList}o(c,"ownerSVGElement"),e.wrappers.SVGElement=c}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){d.call(this,e)}var n=e.mixin,r=e.registerWrapper,o=e.unwrap,i=e.wrap,a=window.SVGUseElement,s="http://www.w3.org/2000/svg",c=i(document.createElementNS(s,"g")),u=document.createElementNS(s,"use"),l=c.constructor,p=Object.getPrototypeOf(l.prototype),d=p.constructor;t.prototype=Object.create(p),"instanceRoot"in u&&n(t.prototype,{get instanceRoot(){return i(o(this).instanceRoot)},get animatedInstanceRoot(){return i(o(this).animatedInstanceRoot)}}),r(a,t,u),e.wrappers.SVGUseElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.EventTarget,r=e.mixin,o=e.registerWrapper,i=e.unsafeUnwrap,a=e.wrap,s=window.SVGElementInstance;s&&(t.prototype=Object.create(n.prototype),r(t.prototype,{get correspondingElement(){return a(i(this).correspondingElement)},get correspondingUseElement(){return a(i(this).correspondingUseElement)},get parentNode(){return a(i(this).parentNode)},get childNodes(){throw new Error("Not implemented")},get firstChild(){return a(i(this).firstChild)},get lastChild(){return a(i(this).lastChild)},get previousSibling(){return a(i(this).previousSibling)},get nextSibling(){return a(i(this).nextSibling)}}),o(s,t),e.wrappers.SVGElementInstance=t)}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){o(e,this)}var n=e.mixin,r=e.registerWrapper,o=e.setWrapper,i=e.unsafeUnwrap,a=e.unwrap,s=e.unwrapIfNeeded,c=e.wrap,u=window.CanvasRenderingContext2D;n(t.prototype,{get canvas(){return c(i(this).canvas)},drawImage:function(){arguments[0]=s(arguments[0]),i(this).drawImage.apply(i(this),arguments)},createPattern:function(){return arguments[0]=a(arguments[0]),i(this).createPattern.apply(i(this),arguments)}}),r(u,t,document.createElement("canvas").getContext("2d")),e.wrappers.CanvasRenderingContext2D=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){o(e,this)}var n=e.mixin,r=e.registerWrapper,o=e.setWrapper,i=e.unsafeUnwrap,a=e.unwrapIfNeeded,s=e.wrap,c=window.WebGLRenderingContext;if(c){n(t.prototype,{get canvas(){return s(i(this).canvas)},texImage2D:function(){arguments[5]=a(arguments[5]),i(this).texImage2D.apply(i(this),arguments)},texSubImage2D:function(){arguments[6]=a(arguments[6]),i(this).texSubImage2D.apply(i(this),arguments)}});var u=/WebKit/.test(navigator.userAgent)?{drawingBufferHeight:null,drawingBufferWidth:null}:{};r(c,t,u),e.wrappers.WebGLRenderingContext=t}}(window.ShadowDOMPolyfill),function(e){"use strict";var t=e.GetElementsByInterface,n=e.NonElementParentNodeInterface,r=e.ParentNodeInterface,o=e.SelectorsInterface,i=e.mixin,a=e.registerObject,s=a(document.createDocumentFragment());i(s.prototype,r),i(s.prototype,o),i(s.prototype,t),i(s.prototype,n);var c=a(document.createComment(""));e.wrappers.Comment=c,e.wrappers.DocumentFragment=s}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){var t=p(l(e).ownerDocument.createDocumentFragment());n.call(this,t),c(t,this);var o=e.shadowRoot;f.set(this,o),this.treeScope_=new r(this,a(o||e)),d.set(this,e)}var n=e.wrappers.DocumentFragment,r=e.TreeScope,o=e.elementFromPoint,i=e.getInnerHTML,a=e.getTreeScope,s=e.mixin,c=e.rewrap,u=e.setInnerHTML,l=e.unsafeUnwrap,p=e.unwrap,d=new WeakMap,f=new WeakMap;t.prototype=Object.create(n.prototype),s(t.prototype,{constructor:t,get innerHTML(){return i(this)},set innerHTML(e){u(this,e),this.invalidateShadowRenderer()},get olderShadowRoot(){return f.get(this)||null},get host(){return d.get(this)||null},invalidateShadowRenderer:function(){return d.get(this).invalidateShadowRenderer()},elementFromPoint:function(e,t){return o(this,this.ownerDocument,e,t)}}),e.wrappers.ShadowRoot=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){var t=p(e).root;return t instanceof f?t.host:null}function n(t,n){if(t.shadowRoot){n=Math.min(t.childNodes.length-1,n);var r=t.childNodes[n];if(r){var o=e.getDestinationInsertionPoints(r);if(o.length>0){var i=o[0].parentNode;i.nodeType==Node.ELEMENT_NODE&&(t=i)}}}return t}function r(e){return e=l(e),t(e)||e}function o(e){a(e,this)}var i=e.registerWrapper,a=e.setWrapper,s=e.unsafeUnwrap,c=e.unwrap,u=e.unwrapIfNeeded,l=e.wrap,p=e.getTreeScope,d=window.Range,f=e.wrappers.ShadowRoot;o.prototype={get startContainer(){return r(s(this).startContainer)},get endContainer(){return r(s(this).endContainer)},get commonAncestorContainer(){return r(s(this).commonAncestorContainer)},setStart:function(e,t){e=n(e,t),s(this).setStart(u(e),t)},setEnd:function(e,t){e=n(e,t),s(this).setEnd(u(e),t)},setStartBefore:function(e){s(this).setStartBefore(u(e))},setStartAfter:function(e){s(this).setStartAfter(u(e))},setEndBefore:function(e){s(this).setEndBefore(u(e))},setEndAfter:function(e){s(this).setEndAfter(u(e))},selectNode:function(e){s(this).selectNode(u(e))},selectNodeContents:function(e){s(this).selectNodeContents(u(e))},compareBoundaryPoints:function(e,t){return s(this).compareBoundaryPoints(e,c(t))},extractContents:function(){return l(s(this).extractContents())},cloneContents:function(){return l(s(this).cloneContents())},insertNode:function(e){s(this).insertNode(u(e))},surroundContents:function(e){s(this).surroundContents(u(e))},cloneRange:function(){return l(s(this).cloneRange())},isPointInRange:function(e,t){return s(this).isPointInRange(u(e),t)},comparePoint:function(e,t){return s(this).comparePoint(u(e),t)},intersectsNode:function(e){return s(this).intersectsNode(u(e))},toString:function(){return s(this).toString()}},d.prototype.createContextualFragment&&(o.prototype.createContextualFragment=function(e){return l(s(this).createContextualFragment(e))}),i(window.Range,o,document.createRange()),e.wrappers.Range=o}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){e.previousSibling_=e.previousSibling,e.nextSibling_=e.nextSibling,e.parentNode_=e.parentNode}function n(n,o,i){var a=x(n),s=x(o),c=i?x(i):null;if(r(o),t(o),i)n.firstChild===i&&(n.firstChild_=i),i.previousSibling_=i.previousSibling;else{n.lastChild_=n.lastChild,n.lastChild===n.firstChild&&(n.firstChild_=n.firstChild);var u=R(a.lastChild);u&&(u.nextSibling_=u.nextSibling)}e.originalInsertBefore.call(a,s,c)}function r(n){var r=x(n),o=r.parentNode;if(o){var i=R(o);t(n),n.previousSibling&&(n.previousSibling.nextSibling_=n),n.nextSibling&&(n.nextSibling.previousSibling_=n),i.lastChild===n&&(i.lastChild_=n),i.firstChild===n&&(i.firstChild_=n),e.originalRemoveChild.call(o,r)}}function o(e){W.set(e,[])}function i(e){var t=W.get(e);return t||W.set(e,t=[]),t}function a(e){for(var t=[],n=0,r=e.firstChild;r;r=r.nextSibling)t[n++]=r;return t}function s(){for(var e=0;ew;w++){var m=R(i[l++]);s.get(m)||r(m)}for(var g=f.addedCount,v=i[l]&&R(i[l]),w=0;g>w;w++){var b=o[u++],y=b.node;n(t,y,v),s.set(y,!0),b.sync(s)}p+=g}for(var d=p;d=0;o--){var i=r[o],a=w(i);if(a){var s=i.olderShadowRoot;s&&(n=h(s));for(var c=0;c=0;l--)u=Object.create(u);["createdCallback","attachedCallback","detachedCallback","attributeChangedCallback"].forEach(function(e){var t=o[e];t&&(u[e]=function(){_(this)instanceof r||O(this),t.apply(_(this),arguments)})});var p={prototype:u};i&&(p["extends"]=i),r.prototype=o,r.prototype.constructor=r,e.constructorTable.set(u,r),e.nativePrototypeTable.set(o,u);W.call(L(this),t,p);return r},y([window.HTMLDocument||window.Document],["registerElement"])}y([window.HTMLBodyElement,window.HTMLDocument||window.Document,window.HTMLHeadElement,window.HTMLHtmlElement],["appendChild","compareDocumentPosition","contains","getElementsByClassName","getElementsByTagName","getElementsByTagNameNS","insertBefore","querySelector","querySelectorAll","removeChild","replaceChild"]),y([window.HTMLBodyElement,window.HTMLHeadElement,window.HTMLHtmlElement],E),y([window.HTMLDocument||window.Document],["adoptNode","importNode","contains","createComment","createDocumentFragment","createElement","createElementNS","createEvent","createEventNS","createRange","createTextNode","createTreeWalker","elementFromPoint","getElementById","getElementsByName","getSelection"]),S(t.prototype,u),S(t.prototype,p),S(t.prototype,h),S(t.prototype,d),S(t.prototype,{get implementation(){var e=D.get(this);return e?e:(e=new a(L(this).implementation),D.set(this,e),e)},get defaultView(){return _(L(this).defaultView)}}),M(window.Document,t,document.implementation.createHTMLDocument("")),window.HTMLDocument&&M(window.HTMLDocument,t),C([window.HTMLBodyElement,window.HTMLDocument||window.Document,window.HTMLHeadElement]);var I=document.implementation.createDocument;a.prototype.createDocument=function(){return arguments[2]=L(arguments[2]),_(I.apply(j(this),arguments))},s(a,"createDocumentType"),s(a,"createHTMLDocument"),c(a,"hasFeature"),M(window.DOMImplementation,a),y([window.DOMImplementation],["createDocument","createDocumentType","createHTMLDocument","hasFeature"]),e.adoptNodeNoRemove=r,e.wrappers.DOMImplementation=a,e.wrappers.Document=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.EventTarget,r=e.wrappers.Selection,o=e.mixin,i=e.registerWrapper,a=e.renderAllPending,s=e.unwrap,c=e.unwrapIfNeeded,u=e.wrap,l=window.Window,p=window.getComputedStyle,d=window.getDefaultComputedStyle,f=window.getSelection;t.prototype=Object.create(n.prototype),l.prototype.getComputedStyle=function(e,t){return u(this||window).getComputedStyle(c(e),t)},d&&(l.prototype.getDefaultComputedStyle=function(e,t){return u(this||window).getDefaultComputedStyle(c(e),t)}),l.prototype.getSelection=function(){return u(this||window).getSelection()},delete window.getComputedStyle,delete window.getDefaultComputedStyle,delete window.getSelection,["addEventListener","removeEventListener","dispatchEvent"].forEach(function(e){l.prototype[e]=function(){var t=u(this||window);return t[e].apply(t,arguments)},delete window[e]}),o(t.prototype,{getComputedStyle:function(e,t){return a(),p.call(s(this),c(e),t)},getSelection:function(){return a(),new r(f.call(s(this)))},get document(){return u(s(this).document)}}),d&&(t.prototype.getDefaultComputedStyle=function(e,t){return a(),d.call(s(this),c(e),t)}),i(l,t,window),e.wrappers.Window=t}(window.ShadowDOMPolyfill),function(e){"use strict";var t=e.unwrap,n=window.DataTransfer||window.Clipboard,r=n.prototype.setDragImage;r&&(n.prototype.setDragImage=function(e,n,o){r.call(this,t(e),n,o)})}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){var t;t=e instanceof i?e:new i(e&&o(e)),r(t,this)}var n=e.registerWrapper,r=e.setWrapper,o=e.unwrap,i=window.FormData;i&&(n(i,t,new i),e.wrappers.FormData=t)}(window.ShadowDOMPolyfill),function(e){"use strict";var t=e.unwrapIfNeeded,n=XMLHttpRequest.prototype.send;XMLHttpRequest.prototype.send=function(e){return n.call(this,t(e))}}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){var t=n[e],r=window[t];if(r){var o=document.createElement(e),i=o.constructor;window[t]=i}}var n=(e.isWrapperFor,{a:"HTMLAnchorElement",area:"HTMLAreaElement",audio:"HTMLAudioElement",base:"HTMLBaseElement",body:"HTMLBodyElement",br:"HTMLBRElement",button:"HTMLButtonElement",canvas:"HTMLCanvasElement",caption:"HTMLTableCaptionElement",col:"HTMLTableColElement",content:"HTMLContentElement",data:"HTMLDataElement",datalist:"HTMLDataListElement",del:"HTMLModElement",dir:"HTMLDirectoryElement",div:"HTMLDivElement",dl:"HTMLDListElement",embed:"HTMLEmbedElement",fieldset:"HTMLFieldSetElement",font:"HTMLFontElement",form:"HTMLFormElement",frame:"HTMLFrameElement",frameset:"HTMLFrameSetElement",h1:"HTMLHeadingElement",head:"HTMLHeadElement",hr:"HTMLHRElement",html:"HTMLHtmlElement",iframe:"HTMLIFrameElement",img:"HTMLImageElement",input:"HTMLInputElement",keygen:"HTMLKeygenElement",label:"HTMLLabelElement",legend:"HTMLLegendElement",li:"HTMLLIElement",link:"HTMLLinkElement",map:"HTMLMapElement",marquee:"HTMLMarqueeElement",menu:"HTMLMenuElement",menuitem:"HTMLMenuItemElement",meta:"HTMLMetaElement",meter:"HTMLMeterElement",object:"HTMLObjectElement",ol:"HTMLOListElement",optgroup:"HTMLOptGroupElement",option:"HTMLOptionElement",output:"HTMLOutputElement",p:"HTMLParagraphElement",param:"HTMLParamElement",pre:"HTMLPreElement",progress:"HTMLProgressElement",q:"HTMLQuoteElement",script:"HTMLScriptElement",select:"HTMLSelectElement",shadow:"HTMLShadowElement",source:"HTMLSourceElement",span:"HTMLSpanElement",style:"HTMLStyleElement",table:"HTMLTableElement",tbody:"HTMLTableSectionElement",template:"HTMLTemplateElement",textarea:"HTMLTextAreaElement",thead:"HTMLTableSectionElement",time:"HTMLTimeElement",title:"HTMLTitleElement",tr:"HTMLTableRowElement",track:"HTMLTrackElement",ul:"HTMLUListElement",video:"HTMLVideoElement"});Object.keys(n).forEach(t),Object.getOwnPropertyNames(e.wrappers).forEach(function(t){window[t]=e.wrappers[t]})}(window.ShadowDOMPolyfill); \ No newline at end of file diff --git a/bower_components/webcomponentsjs/bower.json b/bower_components/webcomponentsjs/bower.json deleted file mode 100644 index aede49c..0000000 --- a/bower_components/webcomponentsjs/bower.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "webcomponentsjs", - "main": "webcomponents.js", - "version": "0.7.5", - "homepage": "http://webcomponents.org", - "authors": [ - "The Polymer Authors" - ], - "repository": { - "type": "git", - "url": "https://github.com/webcomponents/webcomponentsjs.git" - }, - "keywords": [ - "webcomponents" - ], - "license": "BSD", - "ignore": [] -} diff --git a/bower_components/webcomponentsjs/build.log b/bower_components/webcomponentsjs/build.log deleted file mode 100644 index 722c9f7..0000000 --- a/bower_components/webcomponentsjs/build.log +++ /dev/null @@ -1,33 +0,0 @@ -BUILD LOG ---------- -Build Time: 2015-06-17T19:01:18-0700 - -NODEJS INFORMATION -================== -nodejs: v2.3.0 -gulp: 3.9.0 -gulp-audit: 1.0.0 -gulp-concat: 2.5.2 -gulp-header: 1.2.2 -gulp-uglify: 1.2.0 -run-sequence: 1.1.1 -web-component-tester: 3.2.0 - -REPO REVISIONS -============== -webcomponentsjs: 1ee61faca40f109f2f5b6ddc8fa15de0319a6e61 - -BUILD HASHES -============ -CustomElements.js: f3f0c7f3c65aeb5cc56c64300fe89003a4c7fa31 -CustomElements.min.js: 557ccd338ab463c9bcd1e3c0fc4102455432214a -HTMLImports.js: 8c1f33a777d7ff8ee3a22fce8d35e5b927285724 -HTMLImports.min.js: f4ba44076c40f408c661caa8baf81f9e3740689b -MutationObserver.js: 81934731acd4175701d678dbef11aaefa7d701f5 -MutationObserver.min.js: 6202537174240ba28bf71e22cddf90ce80cf73f8 -ShadowDOM.js: 5e901cfe7eb384f15a39b1bf4e510a06ae03b43e -ShadowDOM.min.js: 397715836fdd0cfe15a5e966f5ab187ccc1bec15 -webcomponents-lite.js: 5c38f87a645eea9d282de74340c101e5531cb2c0 -webcomponents-lite.min.js: 2a744443fbfba6b30fde7b17606f68cae6036e52 -webcomponents.js: 637cf33c1ee108fb376891eed0b5b47deed8c238 -webcomponents.min.js: c2841b948265560478872747618cad207a693c4f \ No newline at end of file diff --git a/bower_components/webcomponentsjs/package.json b/bower_components/webcomponentsjs/package.json deleted file mode 100644 index 493782f..0000000 --- a/bower_components/webcomponentsjs/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "webcomponents.js", - "version": "0.7.5", - "description": "webcomponents.js", - "main": "webcomponents.js", - "directories": { - "test": "tests" - }, - "repository": { - "type": "git", - "url": "https://github.com/webcomponents/webcomponentsjs.git" - }, - "author": "The Polymer Authors", - "license": { - "type": "BSD-3-Clause", - "url": "http://polymer.github.io/LICENSE.txt" - }, - "bugs": { - "url": "https://github.com/webcomponents/webcomponentsjs/issues" - }, - "homepage": "http://webcomponents.org", - "devDependencies": { - "gulp": "^3.8.8", - "gulp-audit": "^1.0.0", - "gulp-concat": "^2.4.1", - "gulp-header": "^1.1.1", - "gulp-uglify": "^1.0.1", - "run-sequence": "^1.0.1", - "web-component-tester": "*" - } -} diff --git a/bower_components/webcomponentsjs/webcomponents-lite.js b/bower_components/webcomponentsjs/webcomponents-lite.js deleted file mode 100644 index 47a7d9d..0000000 --- a/bower_components/webcomponentsjs/webcomponents-lite.js +++ /dev/null @@ -1,2314 +0,0 @@ -/** - * @license - * Copyright (c) 2014 The Polymer Project Authors. All rights reserved. - * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt - * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt - * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt - * Code distributed by Google as part of the polymer project is also - * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt - */ -// @version 0.7.5 -window.WebComponents = window.WebComponents || {}; - -(function(scope) { - var flags = scope.flags || {}; - var file = "webcomponents-lite.js"; - var script = document.querySelector('script[src*="' + file + '"]'); - if (!flags.noOpts) { - location.search.slice(1).split("&").forEach(function(option) { - var parts = option.split("="); - var match; - if (parts[0] && (match = parts[0].match(/wc-(.+)/))) { - flags[match[1]] = parts[1] || true; - } - }); - if (script) { - for (var i = 0, a; a = script.attributes[i]; i++) { - if (a.name !== "src") { - flags[a.name] = a.value || true; - } - } - } - if (flags.log) { - var parts = flags.log.split(","); - flags.log = {}; - parts.forEach(function(f) { - flags.log[f] = true; - }); - } else { - flags.log = {}; - } - } - flags.shadow = flags.shadow || flags.shadowdom || flags.polyfill; - if (flags.shadow === "native") { - flags.shadow = false; - } else { - flags.shadow = flags.shadow || !HTMLElement.prototype.createShadowRoot; - } - if (flags.register) { - window.CustomElements = window.CustomElements || { - flags: {} - }; - window.CustomElements.flags.register = flags.register; - } - scope.flags = flags; -})(window.WebComponents); - -(function(scope) { - "use strict"; - var hasWorkingUrl = false; - if (!scope.forceJURL) { - try { - var u = new URL("b", "http://a"); - u.pathname = "c%20d"; - hasWorkingUrl = u.href === "http://a/c%20d"; - } catch (e) {} - } - if (hasWorkingUrl) return; - var relative = Object.create(null); - relative["ftp"] = 21; - relative["file"] = 0; - relative["gopher"] = 70; - relative["http"] = 80; - relative["https"] = 443; - relative["ws"] = 80; - relative["wss"] = 443; - var relativePathDotMapping = Object.create(null); - relativePathDotMapping["%2e"] = "."; - relativePathDotMapping[".%2e"] = ".."; - relativePathDotMapping["%2e."] = ".."; - relativePathDotMapping["%2e%2e"] = ".."; - function isRelativeScheme(scheme) { - return relative[scheme] !== undefined; - } - function invalid() { - clear.call(this); - this._isInvalid = true; - } - function IDNAToASCII(h) { - if ("" == h) { - invalid.call(this); - } - return h.toLowerCase(); - } - function percentEscape(c) { - var unicode = c.charCodeAt(0); - if (unicode > 32 && unicode < 127 && [ 34, 35, 60, 62, 63, 96 ].indexOf(unicode) == -1) { - return c; - } - return encodeURIComponent(c); - } - function percentEscapeQuery(c) { - var unicode = c.charCodeAt(0); - if (unicode > 32 && unicode < 127 && [ 34, 35, 60, 62, 96 ].indexOf(unicode) == -1) { - return c; - } - return encodeURIComponent(c); - } - var EOF = undefined, ALPHA = /[a-zA-Z]/, ALPHANUMERIC = /[a-zA-Z0-9\+\-\.]/; - function parse(input, stateOverride, base) { - function err(message) { - errors.push(message); - } - var state = stateOverride || "scheme start", cursor = 0, buffer = "", seenAt = false, seenBracket = false, errors = []; - loop: while ((input[cursor - 1] != EOF || cursor == 0) && !this._isInvalid) { - var c = input[cursor]; - switch (state) { - case "scheme start": - if (c && ALPHA.test(c)) { - buffer += c.toLowerCase(); - state = "scheme"; - } else if (!stateOverride) { - buffer = ""; - state = "no scheme"; - continue; - } else { - err("Invalid scheme."); - break loop; - } - break; - - case "scheme": - if (c && ALPHANUMERIC.test(c)) { - buffer += c.toLowerCase(); - } else if (":" == c) { - this._scheme = buffer; - buffer = ""; - if (stateOverride) { - break loop; - } - if (isRelativeScheme(this._scheme)) { - this._isRelative = true; - } - if ("file" == this._scheme) { - state = "relative"; - } else if (this._isRelative && base && base._scheme == this._scheme) { - state = "relative or authority"; - } else if (this._isRelative) { - state = "authority first slash"; - } else { - state = "scheme data"; - } - } else if (!stateOverride) { - buffer = ""; - cursor = 0; - state = "no scheme"; - continue; - } else if (EOF == c) { - break loop; - } else { - err("Code point not allowed in scheme: " + c); - break loop; - } - break; - - case "scheme data": - if ("?" == c) { - this._query = "?"; - state = "query"; - } else if ("#" == c) { - this._fragment = "#"; - state = "fragment"; - } else { - if (EOF != c && " " != c && "\n" != c && "\r" != c) { - this._schemeData += percentEscape(c); - } - } - break; - - case "no scheme": - if (!base || !isRelativeScheme(base._scheme)) { - err("Missing scheme."); - invalid.call(this); - } else { - state = "relative"; - continue; - } - break; - - case "relative or authority": - if ("/" == c && "/" == input[cursor + 1]) { - state = "authority ignore slashes"; - } else { - err("Expected /, got: " + c); - state = "relative"; - continue; - } - break; - - case "relative": - this._isRelative = true; - if ("file" != this._scheme) this._scheme = base._scheme; - if (EOF == c) { - this._host = base._host; - this._port = base._port; - this._path = base._path.slice(); - this._query = base._query; - this._username = base._username; - this._password = base._password; - break loop; - } else if ("/" == c || "\\" == c) { - if ("\\" == c) err("\\ is an invalid code point."); - state = "relative slash"; - } else if ("?" == c) { - this._host = base._host; - this._port = base._port; - this._path = base._path.slice(); - this._query = "?"; - this._username = base._username; - this._password = base._password; - state = "query"; - } else if ("#" == c) { - this._host = base._host; - this._port = base._port; - this._path = base._path.slice(); - this._query = base._query; - this._fragment = "#"; - this._username = base._username; - this._password = base._password; - state = "fragment"; - } else { - var nextC = input[cursor + 1]; - var nextNextC = input[cursor + 2]; - if ("file" != this._scheme || !ALPHA.test(c) || nextC != ":" && nextC != "|" || EOF != nextNextC && "/" != nextNextC && "\\" != nextNextC && "?" != nextNextC && "#" != nextNextC) { - this._host = base._host; - this._port = base._port; - this._username = base._username; - this._password = base._password; - this._path = base._path.slice(); - this._path.pop(); - } - state = "relative path"; - continue; - } - break; - - case "relative slash": - if ("/" == c || "\\" == c) { - if ("\\" == c) { - err("\\ is an invalid code point."); - } - if ("file" == this._scheme) { - state = "file host"; - } else { - state = "authority ignore slashes"; - } - } else { - if ("file" != this._scheme) { - this._host = base._host; - this._port = base._port; - this._username = base._username; - this._password = base._password; - } - state = "relative path"; - continue; - } - break; - - case "authority first slash": - if ("/" == c) { - state = "authority second slash"; - } else { - err("Expected '/', got: " + c); - state = "authority ignore slashes"; - continue; - } - break; - - case "authority second slash": - state = "authority ignore slashes"; - if ("/" != c) { - err("Expected '/', got: " + c); - continue; - } - break; - - case "authority ignore slashes": - if ("/" != c && "\\" != c) { - state = "authority"; - continue; - } else { - err("Expected authority, got: " + c); - } - break; - - case "authority": - if ("@" == c) { - if (seenAt) { - err("@ already seen."); - buffer += "%40"; - } - seenAt = true; - for (var i = 0; i < buffer.length; i++) { - var cp = buffer[i]; - if (" " == cp || "\n" == cp || "\r" == cp) { - err("Invalid whitespace in authority."); - continue; - } - if (":" == cp && null === this._password) { - this._password = ""; - continue; - } - var tempC = percentEscape(cp); - null !== this._password ? this._password += tempC : this._username += tempC; - } - buffer = ""; - } else if (EOF == c || "/" == c || "\\" == c || "?" == c || "#" == c) { - cursor -= buffer.length; - buffer = ""; - state = "host"; - continue; - } else { - buffer += c; - } - break; - - case "file host": - if (EOF == c || "/" == c || "\\" == c || "?" == c || "#" == c) { - if (buffer.length == 2 && ALPHA.test(buffer[0]) && (buffer[1] == ":" || buffer[1] == "|")) { - state = "relative path"; - } else if (buffer.length == 0) { - state = "relative path start"; - } else { - this._host = IDNAToASCII.call(this, buffer); - buffer = ""; - state = "relative path start"; - } - continue; - } else if (" " == c || "\n" == c || "\r" == c) { - err("Invalid whitespace in file host."); - } else { - buffer += c; - } - break; - - case "host": - case "hostname": - if (":" == c && !seenBracket) { - this._host = IDNAToASCII.call(this, buffer); - buffer = ""; - state = "port"; - if ("hostname" == stateOverride) { - break loop; - } - } else if (EOF == c || "/" == c || "\\" == c || "?" == c || "#" == c) { - this._host = IDNAToASCII.call(this, buffer); - buffer = ""; - state = "relative path start"; - if (stateOverride) { - break loop; - } - continue; - } else if (" " != c && "\n" != c && "\r" != c) { - if ("[" == c) { - seenBracket = true; - } else if ("]" == c) { - seenBracket = false; - } - buffer += c; - } else { - err("Invalid code point in host/hostname: " + c); - } - break; - - case "port": - if (/[0-9]/.test(c)) { - buffer += c; - } else if (EOF == c || "/" == c || "\\" == c || "?" == c || "#" == c || stateOverride) { - if ("" != buffer) { - var temp = parseInt(buffer, 10); - if (temp != relative[this._scheme]) { - this._port = temp + ""; - } - buffer = ""; - } - if (stateOverride) { - break loop; - } - state = "relative path start"; - continue; - } else if (" " == c || "\n" == c || "\r" == c) { - err("Invalid code point in port: " + c); - } else { - invalid.call(this); - } - break; - - case "relative path start": - if ("\\" == c) err("'\\' not allowed in path."); - state = "relative path"; - if ("/" != c && "\\" != c) { - continue; - } - break; - - case "relative path": - if (EOF == c || "/" == c || "\\" == c || !stateOverride && ("?" == c || "#" == c)) { - if ("\\" == c) { - err("\\ not allowed in relative path."); - } - var tmp; - if (tmp = relativePathDotMapping[buffer.toLowerCase()]) { - buffer = tmp; - } - if (".." == buffer) { - this._path.pop(); - if ("/" != c && "\\" != c) { - this._path.push(""); - } - } else if ("." == buffer && "/" != c && "\\" != c) { - this._path.push(""); - } else if ("." != buffer) { - if ("file" == this._scheme && this._path.length == 0 && buffer.length == 2 && ALPHA.test(buffer[0]) && buffer[1] == "|") { - buffer = buffer[0] + ":"; - } - this._path.push(buffer); - } - buffer = ""; - if ("?" == c) { - this._query = "?"; - state = "query"; - } else if ("#" == c) { - this._fragment = "#"; - state = "fragment"; - } - } else if (" " != c && "\n" != c && "\r" != c) { - buffer += percentEscape(c); - } - break; - - case "query": - if (!stateOverride && "#" == c) { - this._fragment = "#"; - state = "fragment"; - } else if (EOF != c && " " != c && "\n" != c && "\r" != c) { - this._query += percentEscapeQuery(c); - } - break; - - case "fragment": - if (EOF != c && " " != c && "\n" != c && "\r" != c) { - this._fragment += c; - } - break; - } - cursor++; - } - } - function clear() { - this._scheme = ""; - this._schemeData = ""; - this._username = ""; - this._password = null; - this._host = ""; - this._port = ""; - this._path = []; - this._query = ""; - this._fragment = ""; - this._isInvalid = false; - this._isRelative = false; - } - function jURL(url, base) { - if (base !== undefined && !(base instanceof jURL)) base = new jURL(String(base)); - this._url = url; - clear.call(this); - var input = url.replace(/^[ \t\r\n\f]+|[ \t\r\n\f]+$/g, ""); - parse.call(this, input, null, base); - } - jURL.prototype = { - toString: function() { - return this.href; - }, - get href() { - if (this._isInvalid) return this._url; - var authority = ""; - if ("" != this._username || null != this._password) { - authority = this._username + (null != this._password ? ":" + this._password : "") + "@"; - } - return this.protocol + (this._isRelative ? "//" + authority + this.host : "") + this.pathname + this._query + this._fragment; - }, - set href(href) { - clear.call(this); - parse.call(this, href); - }, - get protocol() { - return this._scheme + ":"; - }, - set protocol(protocol) { - if (this._isInvalid) return; - parse.call(this, protocol + ":", "scheme start"); - }, - get host() { - return this._isInvalid ? "" : this._port ? this._host + ":" + this._port : this._host; - }, - set host(host) { - if (this._isInvalid || !this._isRelative) return; - parse.call(this, host, "host"); - }, - get hostname() { - return this._host; - }, - set hostname(hostname) { - if (this._isInvalid || !this._isRelative) return; - parse.call(this, hostname, "hostname"); - }, - get port() { - return this._port; - }, - set port(port) { - if (this._isInvalid || !this._isRelative) return; - parse.call(this, port, "port"); - }, - get pathname() { - return this._isInvalid ? "" : this._isRelative ? "/" + this._path.join("/") : this._schemeData; - }, - set pathname(pathname) { - if (this._isInvalid || !this._isRelative) return; - this._path = []; - parse.call(this, pathname, "relative path start"); - }, - get search() { - return this._isInvalid || !this._query || "?" == this._query ? "" : this._query; - }, - set search(search) { - if (this._isInvalid || !this._isRelative) return; - this._query = "?"; - if ("?" == search[0]) search = search.slice(1); - parse.call(this, search, "query"); - }, - get hash() { - return this._isInvalid || !this._fragment || "#" == this._fragment ? "" : this._fragment; - }, - set hash(hash) { - if (this._isInvalid) return; - this._fragment = "#"; - if ("#" == hash[0]) hash = hash.slice(1); - parse.call(this, hash, "fragment"); - }, - get origin() { - var host; - if (this._isInvalid || !this._scheme) { - return ""; - } - switch (this._scheme) { - case "data": - case "file": - case "javascript": - case "mailto": - return "null"; - } - host = this.host; - if (!host) { - return ""; - } - return this._scheme + "://" + host; - } - }; - var OriginalURL = scope.URL; - if (OriginalURL) { - jURL.createObjectURL = function(blob) { - return OriginalURL.createObjectURL.apply(OriginalURL, arguments); - }; - jURL.revokeObjectURL = function(url) { - OriginalURL.revokeObjectURL(url); - }; - } - scope.URL = jURL; -})(this); - -if (typeof WeakMap === "undefined") { - (function() { - var defineProperty = Object.defineProperty; - var counter = Date.now() % 1e9; - var WeakMap = function() { - this.name = "__st" + (Math.random() * 1e9 >>> 0) + (counter++ + "__"); - }; - WeakMap.prototype = { - set: function(key, value) { - var entry = key[this.name]; - if (entry && entry[0] === key) entry[1] = value; else defineProperty(key, this.name, { - value: [ key, value ], - writable: true - }); - return this; - }, - get: function(key) { - var entry; - return (entry = key[this.name]) && entry[0] === key ? entry[1] : undefined; - }, - "delete": function(key) { - var entry = key[this.name]; - if (!entry || entry[0] !== key) return false; - entry[0] = entry[1] = undefined; - return true; - }, - has: function(key) { - var entry = key[this.name]; - if (!entry) return false; - return entry[0] === key; - } - }; - window.WeakMap = WeakMap; - })(); -} - -(function(global) { - var registrationsTable = new WeakMap(); - var setImmediate; - if (/Trident|Edge/.test(navigator.userAgent)) { - setImmediate = setTimeout; - } else if (window.setImmediate) { - setImmediate = window.setImmediate; - } else { - var setImmediateQueue = []; - var sentinel = String(Math.random()); - window.addEventListener("message", function(e) { - if (e.data === sentinel) { - var queue = setImmediateQueue; - setImmediateQueue = []; - queue.forEach(function(func) { - func(); - }); - } - }); - setImmediate = function(func) { - setImmediateQueue.push(func); - window.postMessage(sentinel, "*"); - }; - } - var isScheduled = false; - var scheduledObservers = []; - function scheduleCallback(observer) { - scheduledObservers.push(observer); - if (!isScheduled) { - isScheduled = true; - setImmediate(dispatchCallbacks); - } - } - function wrapIfNeeded(node) { - return window.ShadowDOMPolyfill && window.ShadowDOMPolyfill.wrapIfNeeded(node) || node; - } - function dispatchCallbacks() { - isScheduled = false; - var observers = scheduledObservers; - scheduledObservers = []; - observers.sort(function(o1, o2) { - return o1.uid_ - o2.uid_; - }); - var anyNonEmpty = false; - observers.forEach(function(observer) { - var queue = observer.takeRecords(); - removeTransientObserversFor(observer); - if (queue.length) { - observer.callback_(queue, observer); - anyNonEmpty = true; - } - }); - if (anyNonEmpty) dispatchCallbacks(); - } - function removeTransientObserversFor(observer) { - observer.nodes_.forEach(function(node) { - var registrations = registrationsTable.get(node); - if (!registrations) return; - registrations.forEach(function(registration) { - if (registration.observer === observer) registration.removeTransientObservers(); - }); - }); - } - function forEachAncestorAndObserverEnqueueRecord(target, callback) { - for (var node = target; node; node = node.parentNode) { - var registrations = registrationsTable.get(node); - if (registrations) { - for (var j = 0; j < registrations.length; j++) { - var registration = registrations[j]; - var options = registration.options; - if (node !== target && !options.subtree) continue; - var record = callback(options); - if (record) registration.enqueue(record); - } - } - } - } - var uidCounter = 0; - function JsMutationObserver(callback) { - this.callback_ = callback; - this.nodes_ = []; - this.records_ = []; - this.uid_ = ++uidCounter; - } - JsMutationObserver.prototype = { - observe: function(target, options) { - target = wrapIfNeeded(target); - if (!options.childList && !options.attributes && !options.characterData || options.attributeOldValue && !options.attributes || options.attributeFilter && options.attributeFilter.length && !options.attributes || options.characterDataOldValue && !options.characterData) { - throw new SyntaxError(); - } - var registrations = registrationsTable.get(target); - if (!registrations) registrationsTable.set(target, registrations = []); - var registration; - for (var i = 0; i < registrations.length; i++) { - if (registrations[i].observer === this) { - registration = registrations[i]; - registration.removeListeners(); - registration.options = options; - break; - } - } - if (!registration) { - registration = new Registration(this, target, options); - registrations.push(registration); - this.nodes_.push(target); - } - registration.addListeners(); - }, - disconnect: function() { - this.nodes_.forEach(function(node) { - var registrations = registrationsTable.get(node); - for (var i = 0; i < registrations.length; i++) { - var registration = registrations[i]; - if (registration.observer === this) { - registration.removeListeners(); - registrations.splice(i, 1); - break; - } - } - }, this); - this.records_ = []; - }, - takeRecords: function() { - var copyOfRecords = this.records_; - this.records_ = []; - return copyOfRecords; - } - }; - function MutationRecord(type, target) { - this.type = type; - this.target = target; - this.addedNodes = []; - this.removedNodes = []; - this.previousSibling = null; - this.nextSibling = null; - this.attributeName = null; - this.attributeNamespace = null; - this.oldValue = null; - } - function copyMutationRecord(original) { - var record = new MutationRecord(original.type, original.target); - record.addedNodes = original.addedNodes.slice(); - record.removedNodes = original.removedNodes.slice(); - record.previousSibling = original.previousSibling; - record.nextSibling = original.nextSibling; - record.attributeName = original.attributeName; - record.attributeNamespace = original.attributeNamespace; - record.oldValue = original.oldValue; - return record; - } - var currentRecord, recordWithOldValue; - function getRecord(type, target) { - return currentRecord = new MutationRecord(type, target); - } - function getRecordWithOldValue(oldValue) { - if (recordWithOldValue) return recordWithOldValue; - recordWithOldValue = copyMutationRecord(currentRecord); - recordWithOldValue.oldValue = oldValue; - return recordWithOldValue; - } - function clearRecords() { - currentRecord = recordWithOldValue = undefined; - } - function recordRepresentsCurrentMutation(record) { - return record === recordWithOldValue || record === currentRecord; - } - function selectRecord(lastRecord, newRecord) { - if (lastRecord === newRecord) return lastRecord; - if (recordWithOldValue && recordRepresentsCurrentMutation(lastRecord)) return recordWithOldValue; - return null; - } - function Registration(observer, target, options) { - this.observer = observer; - this.target = target; - this.options = options; - this.transientObservedNodes = []; - } - Registration.prototype = { - enqueue: function(record) { - var records = this.observer.records_; - var length = records.length; - if (records.length > 0) { - var lastRecord = records[length - 1]; - var recordToReplaceLast = selectRecord(lastRecord, record); - if (recordToReplaceLast) { - records[length - 1] = recordToReplaceLast; - return; - } - } else { - scheduleCallback(this.observer); - } - records[length] = record; - }, - addListeners: function() { - this.addListeners_(this.target); - }, - addListeners_: function(node) { - var options = this.options; - if (options.attributes) node.addEventListener("DOMAttrModified", this, true); - if (options.characterData) node.addEventListener("DOMCharacterDataModified", this, true); - if (options.childList) node.addEventListener("DOMNodeInserted", this, true); - if (options.childList || options.subtree) node.addEventListener("DOMNodeRemoved", this, true); - }, - removeListeners: function() { - this.removeListeners_(this.target); - }, - removeListeners_: function(node) { - var options = this.options; - if (options.attributes) node.removeEventListener("DOMAttrModified", this, true); - if (options.characterData) node.removeEventListener("DOMCharacterDataModified", this, true); - if (options.childList) node.removeEventListener("DOMNodeInserted", this, true); - if (options.childList || options.subtree) node.removeEventListener("DOMNodeRemoved", this, true); - }, - addTransientObserver: function(node) { - if (node === this.target) return; - this.addListeners_(node); - this.transientObservedNodes.push(node); - var registrations = registrationsTable.get(node); - if (!registrations) registrationsTable.set(node, registrations = []); - registrations.push(this); - }, - removeTransientObservers: function() { - var transientObservedNodes = this.transientObservedNodes; - this.transientObservedNodes = []; - transientObservedNodes.forEach(function(node) { - this.removeListeners_(node); - var registrations = registrationsTable.get(node); - for (var i = 0; i < registrations.length; i++) { - if (registrations[i] === this) { - registrations.splice(i, 1); - break; - } - } - }, this); - }, - handleEvent: function(e) { - e.stopImmediatePropagation(); - switch (e.type) { - case "DOMAttrModified": - var name = e.attrName; - var namespace = e.relatedNode.namespaceURI; - var target = e.target; - var record = new getRecord("attributes", target); - record.attributeName = name; - record.attributeNamespace = namespace; - var oldValue = e.attrChange === MutationEvent.ADDITION ? null : e.prevValue; - forEachAncestorAndObserverEnqueueRecord(target, function(options) { - if (!options.attributes) return; - if (options.attributeFilter && options.attributeFilter.length && options.attributeFilter.indexOf(name) === -1 && options.attributeFilter.indexOf(namespace) === -1) { - return; - } - if (options.attributeOldValue) return getRecordWithOldValue(oldValue); - return record; - }); - break; - - case "DOMCharacterDataModified": - var target = e.target; - var record = getRecord("characterData", target); - var oldValue = e.prevValue; - forEachAncestorAndObserverEnqueueRecord(target, function(options) { - if (!options.characterData) return; - if (options.characterDataOldValue) return getRecordWithOldValue(oldValue); - return record; - }); - break; - - case "DOMNodeRemoved": - this.addTransientObserver(e.target); - - case "DOMNodeInserted": - var changedNode = e.target; - var addedNodes, removedNodes; - if (e.type === "DOMNodeInserted") { - addedNodes = [ changedNode ]; - removedNodes = []; - } else { - addedNodes = []; - removedNodes = [ changedNode ]; - } - var previousSibling = changedNode.previousSibling; - var nextSibling = changedNode.nextSibling; - var record = getRecord("childList", e.target.parentNode); - record.addedNodes = addedNodes; - record.removedNodes = removedNodes; - record.previousSibling = previousSibling; - record.nextSibling = nextSibling; - forEachAncestorAndObserverEnqueueRecord(e.relatedNode, function(options) { - if (!options.childList) return; - return record; - }); - } - clearRecords(); - } - }; - global.JsMutationObserver = JsMutationObserver; - if (!global.MutationObserver) global.MutationObserver = JsMutationObserver; -})(this); - -window.HTMLImports = window.HTMLImports || { - flags: {} -}; - -(function(scope) { - var IMPORT_LINK_TYPE = "import"; - var useNative = Boolean(IMPORT_LINK_TYPE in document.createElement("link")); - var hasShadowDOMPolyfill = Boolean(window.ShadowDOMPolyfill); - var wrap = function(node) { - return hasShadowDOMPolyfill ? window.ShadowDOMPolyfill.wrapIfNeeded(node) : node; - }; - var rootDocument = wrap(document); - var currentScriptDescriptor = { - get: function() { - var script = window.HTMLImports.currentScript || document.currentScript || (document.readyState !== "complete" ? document.scripts[document.scripts.length - 1] : null); - return wrap(script); - }, - configurable: true - }; - Object.defineProperty(document, "_currentScript", currentScriptDescriptor); - Object.defineProperty(rootDocument, "_currentScript", currentScriptDescriptor); - var isIE = /Trident/.test(navigator.userAgent); - function whenReady(callback, doc) { - doc = doc || rootDocument; - whenDocumentReady(function() { - watchImportsLoad(callback, doc); - }, doc); - } - var requiredReadyState = isIE ? "complete" : "interactive"; - var READY_EVENT = "readystatechange"; - function isDocumentReady(doc) { - return doc.readyState === "complete" || doc.readyState === requiredReadyState; - } - function whenDocumentReady(callback, doc) { - if (!isDocumentReady(doc)) { - var checkReady = function() { - if (doc.readyState === "complete" || doc.readyState === requiredReadyState) { - doc.removeEventListener(READY_EVENT, checkReady); - whenDocumentReady(callback, doc); - } - }; - doc.addEventListener(READY_EVENT, checkReady); - } else if (callback) { - callback(); - } - } - function markTargetLoaded(event) { - event.target.__loaded = true; - } - function watchImportsLoad(callback, doc) { - var imports = doc.querySelectorAll("link[rel=import]"); - var parsedCount = 0, importCount = imports.length, newImports = [], errorImports = []; - function checkDone() { - if (parsedCount == importCount && callback) { - callback({ - allImports: imports, - loadedImports: newImports, - errorImports: errorImports - }); - } - } - function loadedImport(e) { - markTargetLoaded(e); - newImports.push(this); - parsedCount++; - checkDone(); - } - function errorLoadingImport(e) { - errorImports.push(this); - parsedCount++; - checkDone(); - } - if (importCount) { - for (var i = 0, imp; i < importCount && (imp = imports[i]); i++) { - if (isImportLoaded(imp)) { - parsedCount++; - checkDone(); - } else { - imp.addEventListener("load", loadedImport); - imp.addEventListener("error", errorLoadingImport); - } - } - } else { - checkDone(); - } - } - function isImportLoaded(link) { - return useNative ? link.__loaded || link.import && link.import.readyState !== "loading" : link.__importParsed; - } - if (useNative) { - new MutationObserver(function(mxns) { - for (var i = 0, l = mxns.length, m; i < l && (m = mxns[i]); i++) { - if (m.addedNodes) { - handleImports(m.addedNodes); - } - } - }).observe(document.head, { - childList: true - }); - function handleImports(nodes) { - for (var i = 0, l = nodes.length, n; i < l && (n = nodes[i]); i++) { - if (isImport(n)) { - handleImport(n); - } - } - } - function isImport(element) { - return element.localName === "link" && element.rel === "import"; - } - function handleImport(element) { - var loaded = element.import; - if (loaded) { - markTargetLoaded({ - target: element - }); - } else { - element.addEventListener("load", markTargetLoaded); - element.addEventListener("error", markTargetLoaded); - } - } - (function() { - if (document.readyState === "loading") { - var imports = document.querySelectorAll("link[rel=import]"); - for (var i = 0, l = imports.length, imp; i < l && (imp = imports[i]); i++) { - handleImport(imp); - } - } - })(); - } - whenReady(function(detail) { - window.HTMLImports.ready = true; - window.HTMLImports.readyTime = new Date().getTime(); - var evt = rootDocument.createEvent("CustomEvent"); - evt.initCustomEvent("HTMLImportsLoaded", true, true, detail); - rootDocument.dispatchEvent(evt); - }); - scope.IMPORT_LINK_TYPE = IMPORT_LINK_TYPE; - scope.useNative = useNative; - scope.rootDocument = rootDocument; - scope.whenReady = whenReady; - scope.isIE = isIE; -})(window.HTMLImports); - -(function(scope) { - var modules = []; - var addModule = function(module) { - modules.push(module); - }; - var initializeModules = function() { - modules.forEach(function(module) { - module(scope); - }); - }; - scope.addModule = addModule; - scope.initializeModules = initializeModules; -})(window.HTMLImports); - -window.HTMLImports.addModule(function(scope) { - var CSS_URL_REGEXP = /(url\()([^)]*)(\))/g; - var CSS_IMPORT_REGEXP = /(@import[\s]+(?!url\())([^;]*)(;)/g; - var path = { - resolveUrlsInStyle: function(style, linkUrl) { - var doc = style.ownerDocument; - var resolver = doc.createElement("a"); - style.textContent = this.resolveUrlsInCssText(style.textContent, linkUrl, resolver); - return style; - }, - resolveUrlsInCssText: function(cssText, linkUrl, urlObj) { - var r = this.replaceUrls(cssText, urlObj, linkUrl, CSS_URL_REGEXP); - r = this.replaceUrls(r, urlObj, linkUrl, CSS_IMPORT_REGEXP); - return r; - }, - replaceUrls: function(text, urlObj, linkUrl, regexp) { - return text.replace(regexp, function(m, pre, url, post) { - var urlPath = url.replace(/["']/g, ""); - if (linkUrl) { - urlPath = new URL(urlPath, linkUrl).href; - } - urlObj.href = urlPath; - urlPath = urlObj.href; - return pre + "'" + urlPath + "'" + post; - }); - } - }; - scope.path = path; -}); - -window.HTMLImports.addModule(function(scope) { - var xhr = { - async: true, - ok: function(request) { - return request.status >= 200 && request.status < 300 || request.status === 304 || request.status === 0; - }, - load: function(url, next, nextContext) { - var request = new XMLHttpRequest(); - if (scope.flags.debug || scope.flags.bust) { - url += "?" + Math.random(); - } - request.open("GET", url, xhr.async); - request.addEventListener("readystatechange", function(e) { - if (request.readyState === 4) { - var locationHeader = request.getResponseHeader("Location"); - var redirectedUrl = null; - if (locationHeader) { - var redirectedUrl = locationHeader.substr(0, 1) === "/" ? location.origin + locationHeader : locationHeader; - } - next.call(nextContext, !xhr.ok(request) && request, request.response || request.responseText, redirectedUrl); - } - }); - request.send(); - return request; - }, - loadDocument: function(url, next, nextContext) { - this.load(url, next, nextContext).responseType = "document"; - } - }; - scope.xhr = xhr; -}); - -window.HTMLImports.addModule(function(scope) { - var xhr = scope.xhr; - var flags = scope.flags; - var Loader = function(onLoad, onComplete) { - this.cache = {}; - this.onload = onLoad; - this.oncomplete = onComplete; - this.inflight = 0; - this.pending = {}; - }; - Loader.prototype = { - addNodes: function(nodes) { - this.inflight += nodes.length; - for (var i = 0, l = nodes.length, n; i < l && (n = nodes[i]); i++) { - this.require(n); - } - this.checkDone(); - }, - addNode: function(node) { - this.inflight++; - this.require(node); - this.checkDone(); - }, - require: function(elt) { - var url = elt.src || elt.href; - elt.__nodeUrl = url; - if (!this.dedupe(url, elt)) { - this.fetch(url, elt); - } - }, - dedupe: function(url, elt) { - if (this.pending[url]) { - this.pending[url].push(elt); - return true; - } - var resource; - if (this.cache[url]) { - this.onload(url, elt, this.cache[url]); - this.tail(); - return true; - } - this.pending[url] = [ elt ]; - return false; - }, - fetch: function(url, elt) { - flags.load && console.log("fetch", url, elt); - if (!url) { - setTimeout(function() { - this.receive(url, elt, { - error: "href must be specified" - }, null); - }.bind(this), 0); - } else if (url.match(/^data:/)) { - var pieces = url.split(","); - var header = pieces[0]; - var body = pieces[1]; - if (header.indexOf(";base64") > -1) { - body = atob(body); - } else { - body = decodeURIComponent(body); - } - setTimeout(function() { - this.receive(url, elt, null, body); - }.bind(this), 0); - } else { - var receiveXhr = function(err, resource, redirectedUrl) { - this.receive(url, elt, err, resource, redirectedUrl); - }.bind(this); - xhr.load(url, receiveXhr); - } - }, - receive: function(url, elt, err, resource, redirectedUrl) { - this.cache[url] = resource; - var $p = this.pending[url]; - for (var i = 0, l = $p.length, p; i < l && (p = $p[i]); i++) { - this.onload(url, p, resource, err, redirectedUrl); - this.tail(); - } - this.pending[url] = null; - }, - tail: function() { - --this.inflight; - this.checkDone(); - }, - checkDone: function() { - if (!this.inflight) { - this.oncomplete(); - } - } - }; - scope.Loader = Loader; -}); - -window.HTMLImports.addModule(function(scope) { - var Observer = function(addCallback) { - this.addCallback = addCallback; - this.mo = new MutationObserver(this.handler.bind(this)); - }; - Observer.prototype = { - handler: function(mutations) { - for (var i = 0, l = mutations.length, m; i < l && (m = mutations[i]); i++) { - if (m.type === "childList" && m.addedNodes.length) { - this.addedNodes(m.addedNodes); - } - } - }, - addedNodes: function(nodes) { - if (this.addCallback) { - this.addCallback(nodes); - } - for (var i = 0, l = nodes.length, n, loading; i < l && (n = nodes[i]); i++) { - if (n.children && n.children.length) { - this.addedNodes(n.children); - } - } - }, - observe: function(root) { - this.mo.observe(root, { - childList: true, - subtree: true - }); - } - }; - scope.Observer = Observer; -}); - -window.HTMLImports.addModule(function(scope) { - var path = scope.path; - var rootDocument = scope.rootDocument; - var flags = scope.flags; - var isIE = scope.isIE; - var IMPORT_LINK_TYPE = scope.IMPORT_LINK_TYPE; - var IMPORT_SELECTOR = "link[rel=" + IMPORT_LINK_TYPE + "]"; - var importParser = { - documentSelectors: IMPORT_SELECTOR, - importsSelectors: [ IMPORT_SELECTOR, "link[rel=stylesheet]", "style", "script:not([type])", 'script[type="application/javascript"]', 'script[type="text/javascript"]' ].join(","), - map: { - link: "parseLink", - script: "parseScript", - style: "parseStyle" - }, - dynamicElements: [], - parseNext: function() { - var next = this.nextToParse(); - if (next) { - this.parse(next); - } - }, - parse: function(elt) { - if (this.isParsed(elt)) { - flags.parse && console.log("[%s] is already parsed", elt.localName); - return; - } - var fn = this[this.map[elt.localName]]; - if (fn) { - this.markParsing(elt); - fn.call(this, elt); - } - }, - parseDynamic: function(elt, quiet) { - this.dynamicElements.push(elt); - if (!quiet) { - this.parseNext(); - } - }, - markParsing: function(elt) { - flags.parse && console.log("parsing", elt); - this.parsingElement = elt; - }, - markParsingComplete: function(elt) { - elt.__importParsed = true; - this.markDynamicParsingComplete(elt); - if (elt.__importElement) { - elt.__importElement.__importParsed = true; - this.markDynamicParsingComplete(elt.__importElement); - } - this.parsingElement = null; - flags.parse && console.log("completed", elt); - }, - markDynamicParsingComplete: function(elt) { - var i = this.dynamicElements.indexOf(elt); - if (i >= 0) { - this.dynamicElements.splice(i, 1); - } - }, - parseImport: function(elt) { - if (window.HTMLImports.__importsParsingHook) { - window.HTMLImports.__importsParsingHook(elt); - } - if (elt.import) { - elt.import.__importParsed = true; - } - this.markParsingComplete(elt); - if (elt.__resource && !elt.__error) { - elt.dispatchEvent(new CustomEvent("load", { - bubbles: false - })); - } else { - elt.dispatchEvent(new CustomEvent("error", { - bubbles: false - })); - } - if (elt.__pending) { - var fn; - while (elt.__pending.length) { - fn = elt.__pending.shift(); - if (fn) { - fn({ - target: elt - }); - } - } - } - this.parseNext(); - }, - parseLink: function(linkElt) { - if (nodeIsImport(linkElt)) { - this.parseImport(linkElt); - } else { - linkElt.href = linkElt.href; - this.parseGeneric(linkElt); - } - }, - parseStyle: function(elt) { - var src = elt; - elt = cloneStyle(elt); - src.__appliedElement = elt; - elt.__importElement = src; - this.parseGeneric(elt); - }, - parseGeneric: function(elt) { - this.trackElement(elt); - this.addElementToDocument(elt); - }, - rootImportForElement: function(elt) { - var n = elt; - while (n.ownerDocument.__importLink) { - n = n.ownerDocument.__importLink; - } - return n; - }, - addElementToDocument: function(elt) { - var port = this.rootImportForElement(elt.__importElement || elt); - port.parentNode.insertBefore(elt, port); - }, - trackElement: function(elt, callback) { - var self = this; - var done = function(e) { - if (callback) { - callback(e); - } - self.markParsingComplete(elt); - self.parseNext(); - }; - elt.addEventListener("load", done); - elt.addEventListener("error", done); - if (isIE && elt.localName === "style") { - var fakeLoad = false; - if (elt.textContent.indexOf("@import") == -1) { - fakeLoad = true; - } else if (elt.sheet) { - fakeLoad = true; - var csr = elt.sheet.cssRules; - var len = csr ? csr.length : 0; - for (var i = 0, r; i < len && (r = csr[i]); i++) { - if (r.type === CSSRule.IMPORT_RULE) { - fakeLoad = fakeLoad && Boolean(r.styleSheet); - } - } - } - if (fakeLoad) { - setTimeout(function() { - elt.dispatchEvent(new CustomEvent("load", { - bubbles: false - })); - }); - } - } - }, - parseScript: function(scriptElt) { - var script = document.createElement("script"); - script.__importElement = scriptElt; - script.src = scriptElt.src ? scriptElt.src : generateScriptDataUrl(scriptElt); - scope.currentScript = scriptElt; - this.trackElement(script, function(e) { - script.parentNode.removeChild(script); - scope.currentScript = null; - }); - this.addElementToDocument(script); - }, - nextToParse: function() { - this._mayParse = []; - return !this.parsingElement && (this.nextToParseInDoc(rootDocument) || this.nextToParseDynamic()); - }, - nextToParseInDoc: function(doc, link) { - if (doc && this._mayParse.indexOf(doc) < 0) { - this._mayParse.push(doc); - var nodes = doc.querySelectorAll(this.parseSelectorsForNode(doc)); - for (var i = 0, l = nodes.length, p = 0, n; i < l && (n = nodes[i]); i++) { - if (!this.isParsed(n)) { - if (this.hasResource(n)) { - return nodeIsImport(n) ? this.nextToParseInDoc(n.import, n) : n; - } else { - return; - } - } - } - } - return link; - }, - nextToParseDynamic: function() { - return this.dynamicElements[0]; - }, - parseSelectorsForNode: function(node) { - var doc = node.ownerDocument || node; - return doc === rootDocument ? this.documentSelectors : this.importsSelectors; - }, - isParsed: function(node) { - return node.__importParsed; - }, - needsDynamicParsing: function(elt) { - return this.dynamicElements.indexOf(elt) >= 0; - }, - hasResource: function(node) { - if (nodeIsImport(node) && node.import === undefined) { - return false; - } - return true; - } - }; - function nodeIsImport(elt) { - return elt.localName === "link" && elt.rel === IMPORT_LINK_TYPE; - } - function generateScriptDataUrl(script) { - var scriptContent = generateScriptContent(script); - return "data:text/javascript;charset=utf-8," + encodeURIComponent(scriptContent); - } - function generateScriptContent(script) { - return script.textContent + generateSourceMapHint(script); - } - function generateSourceMapHint(script) { - var owner = script.ownerDocument; - owner.__importedScripts = owner.__importedScripts || 0; - var moniker = script.ownerDocument.baseURI; - var num = owner.__importedScripts ? "-" + owner.__importedScripts : ""; - owner.__importedScripts++; - return "\n//# sourceURL=" + moniker + num + ".js\n"; - } - function cloneStyle(style) { - var clone = style.ownerDocument.createElement("style"); - clone.textContent = style.textContent; - path.resolveUrlsInStyle(clone); - return clone; - } - scope.parser = importParser; - scope.IMPORT_SELECTOR = IMPORT_SELECTOR; -}); - -window.HTMLImports.addModule(function(scope) { - var flags = scope.flags; - var IMPORT_LINK_TYPE = scope.IMPORT_LINK_TYPE; - var IMPORT_SELECTOR = scope.IMPORT_SELECTOR; - var rootDocument = scope.rootDocument; - var Loader = scope.Loader; - var Observer = scope.Observer; - var parser = scope.parser; - var importer = { - documents: {}, - documentPreloadSelectors: IMPORT_SELECTOR, - importsPreloadSelectors: [ IMPORT_SELECTOR ].join(","), - loadNode: function(node) { - importLoader.addNode(node); - }, - loadSubtree: function(parent) { - var nodes = this.marshalNodes(parent); - importLoader.addNodes(nodes); - }, - marshalNodes: function(parent) { - return parent.querySelectorAll(this.loadSelectorsForNode(parent)); - }, - loadSelectorsForNode: function(node) { - var doc = node.ownerDocument || node; - return doc === rootDocument ? this.documentPreloadSelectors : this.importsPreloadSelectors; - }, - loaded: function(url, elt, resource, err, redirectedUrl) { - flags.load && console.log("loaded", url, elt); - elt.__resource = resource; - elt.__error = err; - if (isImportLink(elt)) { - var doc = this.documents[url]; - if (doc === undefined) { - doc = err ? null : makeDocument(resource, redirectedUrl || url); - if (doc) { - doc.__importLink = elt; - this.bootDocument(doc); - } - this.documents[url] = doc; - } - elt.import = doc; - } - parser.parseNext(); - }, - bootDocument: function(doc) { - this.loadSubtree(doc); - this.observer.observe(doc); - parser.parseNext(); - }, - loadedAll: function() { - parser.parseNext(); - } - }; - var importLoader = new Loader(importer.loaded.bind(importer), importer.loadedAll.bind(importer)); - importer.observer = new Observer(); - function isImportLink(elt) { - return isLinkRel(elt, IMPORT_LINK_TYPE); - } - function isLinkRel(elt, rel) { - return elt.localName === "link" && elt.getAttribute("rel") === rel; - } - function hasBaseURIAccessor(doc) { - return !!Object.getOwnPropertyDescriptor(doc, "baseURI"); - } - function makeDocument(resource, url) { - var doc = document.implementation.createHTMLDocument(IMPORT_LINK_TYPE); - doc._URL = url; - var base = doc.createElement("base"); - base.setAttribute("href", url); - if (!doc.baseURI && !hasBaseURIAccessor(doc)) { - Object.defineProperty(doc, "baseURI", { - value: url - }); - } - var meta = doc.createElement("meta"); - meta.setAttribute("charset", "utf-8"); - doc.head.appendChild(meta); - doc.head.appendChild(base); - doc.body.innerHTML = resource; - if (window.HTMLTemplateElement && HTMLTemplateElement.bootstrap) { - HTMLTemplateElement.bootstrap(doc); - } - return doc; - } - if (!document.baseURI) { - var baseURIDescriptor = { - get: function() { - var base = document.querySelector("base"); - return base ? base.href : window.location.href; - }, - configurable: true - }; - Object.defineProperty(document, "baseURI", baseURIDescriptor); - Object.defineProperty(rootDocument, "baseURI", baseURIDescriptor); - } - scope.importer = importer; - scope.importLoader = importLoader; -}); - -window.HTMLImports.addModule(function(scope) { - var parser = scope.parser; - var importer = scope.importer; - var dynamic = { - added: function(nodes) { - var owner, parsed, loading; - for (var i = 0, l = nodes.length, n; i < l && (n = nodes[i]); i++) { - if (!owner) { - owner = n.ownerDocument; - parsed = parser.isParsed(owner); - } - loading = this.shouldLoadNode(n); - if (loading) { - importer.loadNode(n); - } - if (this.shouldParseNode(n) && parsed) { - parser.parseDynamic(n, loading); - } - } - }, - shouldLoadNode: function(node) { - return node.nodeType === 1 && matches.call(node, importer.loadSelectorsForNode(node)); - }, - shouldParseNode: function(node) { - return node.nodeType === 1 && matches.call(node, parser.parseSelectorsForNode(node)); - } - }; - importer.observer.addCallback = dynamic.added.bind(dynamic); - var matches = HTMLElement.prototype.matches || HTMLElement.prototype.matchesSelector || HTMLElement.prototype.webkitMatchesSelector || HTMLElement.prototype.mozMatchesSelector || HTMLElement.prototype.msMatchesSelector; -}); - -(function(scope) { - var initializeModules = scope.initializeModules; - var isIE = scope.isIE; - if (scope.useNative) { - return; - } - if (isIE && typeof window.CustomEvent !== "function") { - window.CustomEvent = function(inType, params) { - params = params || {}; - var e = document.createEvent("CustomEvent"); - e.initCustomEvent(inType, Boolean(params.bubbles), Boolean(params.cancelable), params.detail); - e.preventDefault = function() { - Object.defineProperty(this, "defaultPrevented", { - get: function() { - return true; - } - }); - }; - return e; - }; - window.CustomEvent.prototype = window.Event.prototype; - } - initializeModules(); - var rootDocument = scope.rootDocument; - function bootstrap() { - window.HTMLImports.importer.bootDocument(rootDocument); - } - if (document.readyState === "complete" || document.readyState === "interactive" && !window.attachEvent) { - bootstrap(); - } else { - document.addEventListener("DOMContentLoaded", bootstrap); - } -})(window.HTMLImports); - -window.CustomElements = window.CustomElements || { - flags: {} -}; - -(function(scope) { - var flags = scope.flags; - var modules = []; - var addModule = function(module) { - modules.push(module); - }; - var initializeModules = function() { - modules.forEach(function(module) { - module(scope); - }); - }; - scope.addModule = addModule; - scope.initializeModules = initializeModules; - scope.hasNative = Boolean(document.registerElement); - scope.useNative = !flags.register && scope.hasNative && !window.ShadowDOMPolyfill && (!window.HTMLImports || window.HTMLImports.useNative); -})(window.CustomElements); - -window.CustomElements.addModule(function(scope) { - var IMPORT_LINK_TYPE = window.HTMLImports ? window.HTMLImports.IMPORT_LINK_TYPE : "none"; - function forSubtree(node, cb) { - findAllElements(node, function(e) { - if (cb(e)) { - return true; - } - forRoots(e, cb); - }); - forRoots(node, cb); - } - function findAllElements(node, find, data) { - var e = node.firstElementChild; - if (!e) { - e = node.firstChild; - while (e && e.nodeType !== Node.ELEMENT_NODE) { - e = e.nextSibling; - } - } - while (e) { - if (find(e, data) !== true) { - findAllElements(e, find, data); - } - e = e.nextElementSibling; - } - return null; - } - function forRoots(node, cb) { - var root = node.shadowRoot; - while (root) { - forSubtree(root, cb); - root = root.olderShadowRoot; - } - } - function forDocumentTree(doc, cb) { - _forDocumentTree(doc, cb, []); - } - function _forDocumentTree(doc, cb, processingDocuments) { - doc = window.wrap(doc); - if (processingDocuments.indexOf(doc) >= 0) { - return; - } - processingDocuments.push(doc); - var imports = doc.querySelectorAll("link[rel=" + IMPORT_LINK_TYPE + "]"); - for (var i = 0, l = imports.length, n; i < l && (n = imports[i]); i++) { - if (n.import) { - _forDocumentTree(n.import, cb, processingDocuments); - } - } - cb(doc); - } - scope.forDocumentTree = forDocumentTree; - scope.forSubtree = forSubtree; -}); - -window.CustomElements.addModule(function(scope) { - var flags = scope.flags; - var forSubtree = scope.forSubtree; - var forDocumentTree = scope.forDocumentTree; - function addedNode(node) { - return added(node) || addedSubtree(node); - } - function added(node) { - if (scope.upgrade(node)) { - return true; - } - attached(node); - } - function addedSubtree(node) { - forSubtree(node, function(e) { - if (added(e)) { - return true; - } - }); - } - function attachedNode(node) { - attached(node); - if (inDocument(node)) { - forSubtree(node, function(e) { - attached(e); - }); - } - } - var hasPolyfillMutations = !window.MutationObserver || window.MutationObserver === window.JsMutationObserver; - scope.hasPolyfillMutations = hasPolyfillMutations; - var isPendingMutations = false; - var pendingMutations = []; - function deferMutation(fn) { - pendingMutations.push(fn); - if (!isPendingMutations) { - isPendingMutations = true; - setTimeout(takeMutations); - } - } - function takeMutations() { - isPendingMutations = false; - var $p = pendingMutations; - for (var i = 0, l = $p.length, p; i < l && (p = $p[i]); i++) { - p(); - } - pendingMutations = []; - } - function attached(element) { - if (hasPolyfillMutations) { - deferMutation(function() { - _attached(element); - }); - } else { - _attached(element); - } - } - function _attached(element) { - if (element.__upgraded__ && (element.attachedCallback || element.detachedCallback)) { - if (!element.__attached && inDocument(element)) { - element.__attached = true; - if (element.attachedCallback) { - element.attachedCallback(); - } - } - } - } - function detachedNode(node) { - detached(node); - forSubtree(node, function(e) { - detached(e); - }); - } - function detached(element) { - if (hasPolyfillMutations) { - deferMutation(function() { - _detached(element); - }); - } else { - _detached(element); - } - } - function _detached(element) { - if (element.__upgraded__ && (element.attachedCallback || element.detachedCallback)) { - if (element.__attached && !inDocument(element)) { - element.__attached = false; - if (element.detachedCallback) { - element.detachedCallback(); - } - } - } - } - function inDocument(element) { - var p = element; - var doc = wrap(document); - while (p) { - if (p == doc) { - return true; - } - p = p.parentNode || p.nodeType === Node.DOCUMENT_FRAGMENT_NODE && p.host; - } - } - function watchShadow(node) { - if (node.shadowRoot && !node.shadowRoot.__watched) { - flags.dom && console.log("watching shadow-root for: ", node.localName); - var root = node.shadowRoot; - while (root) { - observe(root); - root = root.olderShadowRoot; - } - } - } - function handler(mutations) { - if (flags.dom) { - var mx = mutations[0]; - if (mx && mx.type === "childList" && mx.addedNodes) { - if (mx.addedNodes) { - var d = mx.addedNodes[0]; - while (d && d !== document && !d.host) { - d = d.parentNode; - } - var u = d && (d.URL || d._URL || d.host && d.host.localName) || ""; - u = u.split("/?").shift().split("/").pop(); - } - } - console.group("mutations (%d) [%s]", mutations.length, u || ""); - } - mutations.forEach(function(mx) { - if (mx.type === "childList") { - forEach(mx.addedNodes, function(n) { - if (!n.localName) { - return; - } - addedNode(n); - }); - forEach(mx.removedNodes, function(n) { - if (!n.localName) { - return; - } - detachedNode(n); - }); - } - }); - flags.dom && console.groupEnd(); - } - function takeRecords(node) { - node = window.wrap(node); - if (!node) { - node = window.wrap(document); - } - while (node.parentNode) { - node = node.parentNode; - } - var observer = node.__observer; - if (observer) { - handler(observer.takeRecords()); - takeMutations(); - } - } - var forEach = Array.prototype.forEach.call.bind(Array.prototype.forEach); - function observe(inRoot) { - if (inRoot.__observer) { - return; - } - var observer = new MutationObserver(handler); - observer.observe(inRoot, { - childList: true, - subtree: true - }); - inRoot.__observer = observer; - } - function upgradeDocument(doc) { - doc = window.wrap(doc); - flags.dom && console.group("upgradeDocument: ", doc.baseURI.split("/").pop()); - addedNode(doc); - observe(doc); - flags.dom && console.groupEnd(); - } - function upgradeDocumentTree(doc) { - forDocumentTree(doc, upgradeDocument); - } - var originalCreateShadowRoot = Element.prototype.createShadowRoot; - if (originalCreateShadowRoot) { - Element.prototype.createShadowRoot = function() { - var root = originalCreateShadowRoot.call(this); - window.CustomElements.watchShadow(this); - return root; - }; - } - scope.watchShadow = watchShadow; - scope.upgradeDocumentTree = upgradeDocumentTree; - scope.upgradeSubtree = addedSubtree; - scope.upgradeAll = addedNode; - scope.attachedNode = attachedNode; - scope.takeRecords = takeRecords; -}); - -window.CustomElements.addModule(function(scope) { - var flags = scope.flags; - function upgrade(node) { - if (!node.__upgraded__ && node.nodeType === Node.ELEMENT_NODE) { - var is = node.getAttribute("is"); - var definition = scope.getRegisteredDefinition(is || node.localName); - if (definition) { - if (is && definition.tag == node.localName) { - return upgradeWithDefinition(node, definition); - } else if (!is && !definition.extends) { - return upgradeWithDefinition(node, definition); - } - } - } - } - function upgradeWithDefinition(element, definition) { - flags.upgrade && console.group("upgrade:", element.localName); - if (definition.is) { - element.setAttribute("is", definition.is); - } - implementPrototype(element, definition); - element.__upgraded__ = true; - created(element); - scope.attachedNode(element); - scope.upgradeSubtree(element); - flags.upgrade && console.groupEnd(); - return element; - } - function implementPrototype(element, definition) { - if (Object.__proto__) { - element.__proto__ = definition.prototype; - } else { - customMixin(element, definition.prototype, definition.native); - element.__proto__ = definition.prototype; - } - } - function customMixin(inTarget, inSrc, inNative) { - var used = {}; - var p = inSrc; - while (p !== inNative && p !== HTMLElement.prototype) { - var keys = Object.getOwnPropertyNames(p); - for (var i = 0, k; k = keys[i]; i++) { - if (!used[k]) { - Object.defineProperty(inTarget, k, Object.getOwnPropertyDescriptor(p, k)); - used[k] = 1; - } - } - p = Object.getPrototypeOf(p); - } - } - function created(element) { - if (element.createdCallback) { - element.createdCallback(); - } - } - scope.upgrade = upgrade; - scope.upgradeWithDefinition = upgradeWithDefinition; - scope.implementPrototype = implementPrototype; -}); - -window.CustomElements.addModule(function(scope) { - var isIE11OrOlder = scope.isIE11OrOlder; - var upgradeDocumentTree = scope.upgradeDocumentTree; - var upgradeAll = scope.upgradeAll; - var upgradeWithDefinition = scope.upgradeWithDefinition; - var implementPrototype = scope.implementPrototype; - var useNative = scope.useNative; - function register(name, options) { - var definition = options || {}; - if (!name) { - throw new Error("document.registerElement: first argument `name` must not be empty"); - } - if (name.indexOf("-") < 0) { - throw new Error("document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '" + String(name) + "'."); - } - if (isReservedTag(name)) { - throw new Error("Failed to execute 'registerElement' on 'Document': Registration failed for type '" + String(name) + "'. The type name is invalid."); - } - if (getRegisteredDefinition(name)) { - throw new Error("DuplicateDefinitionError: a type with name '" + String(name) + "' is already registered"); - } - if (!definition.prototype) { - definition.prototype = Object.create(HTMLElement.prototype); - } - definition.__name = name.toLowerCase(); - definition.lifecycle = definition.lifecycle || {}; - definition.ancestry = ancestry(definition.extends); - resolveTagName(definition); - resolvePrototypeChain(definition); - overrideAttributeApi(definition.prototype); - registerDefinition(definition.__name, definition); - definition.ctor = generateConstructor(definition); - definition.ctor.prototype = definition.prototype; - definition.prototype.constructor = definition.ctor; - if (scope.ready) { - upgradeDocumentTree(document); - } - return definition.ctor; - } - function overrideAttributeApi(prototype) { - if (prototype.setAttribute._polyfilled) { - return; - } - var setAttribute = prototype.setAttribute; - prototype.setAttribute = function(name, value) { - changeAttribute.call(this, name, value, setAttribute); - }; - var removeAttribute = prototype.removeAttribute; - prototype.removeAttribute = function(name) { - changeAttribute.call(this, name, null, removeAttribute); - }; - prototype.setAttribute._polyfilled = true; - } - function changeAttribute(name, value, operation) { - name = name.toLowerCase(); - var oldValue = this.getAttribute(name); - operation.apply(this, arguments); - var newValue = this.getAttribute(name); - if (this.attributeChangedCallback && newValue !== oldValue) { - this.attributeChangedCallback(name, oldValue, newValue); - } - } - function isReservedTag(name) { - for (var i = 0; i < reservedTagList.length; i++) { - if (name === reservedTagList[i]) { - return true; - } - } - } - var reservedTagList = [ "annotation-xml", "color-profile", "font-face", "font-face-src", "font-face-uri", "font-face-format", "font-face-name", "missing-glyph" ]; - function ancestry(extnds) { - var extendee = getRegisteredDefinition(extnds); - if (extendee) { - return ancestry(extendee.extends).concat([ extendee ]); - } - return []; - } - function resolveTagName(definition) { - var baseTag = definition.extends; - for (var i = 0, a; a = definition.ancestry[i]; i++) { - baseTag = a.is && a.tag; - } - definition.tag = baseTag || definition.__name; - if (baseTag) { - definition.is = definition.__name; - } - } - function resolvePrototypeChain(definition) { - if (!Object.__proto__) { - var nativePrototype = HTMLElement.prototype; - if (definition.is) { - var inst = document.createElement(definition.tag); - var expectedPrototype = Object.getPrototypeOf(inst); - if (expectedPrototype === definition.prototype) { - nativePrototype = expectedPrototype; - } - } - var proto = definition.prototype, ancestor; - while (proto && proto !== nativePrototype) { - ancestor = Object.getPrototypeOf(proto); - proto.__proto__ = ancestor; - proto = ancestor; - } - definition.native = nativePrototype; - } - } - function instantiate(definition) { - return upgradeWithDefinition(domCreateElement(definition.tag), definition); - } - var registry = {}; - function getRegisteredDefinition(name) { - if (name) { - return registry[name.toLowerCase()]; - } - } - function registerDefinition(name, definition) { - registry[name] = definition; - } - function generateConstructor(definition) { - return function() { - return instantiate(definition); - }; - } - var HTML_NAMESPACE = "http://www.w3.org/1999/xhtml"; - function createElementNS(namespace, tag, typeExtension) { - if (namespace === HTML_NAMESPACE) { - return createElement(tag, typeExtension); - } else { - return domCreateElementNS(namespace, tag); - } - } - function createElement(tag, typeExtension) { - if (tag) { - tag = tag.toLowerCase(); - } - if (typeExtension) { - typeExtension = typeExtension.toLowerCase(); - } - var definition = getRegisteredDefinition(typeExtension || tag); - if (definition) { - if (tag == definition.tag && typeExtension == definition.is) { - return new definition.ctor(); - } - if (!typeExtension && !definition.is) { - return new definition.ctor(); - } - } - var element; - if (typeExtension) { - element = createElement(tag); - element.setAttribute("is", typeExtension); - return element; - } - element = domCreateElement(tag); - if (tag.indexOf("-") >= 0) { - implementPrototype(element, HTMLElement); - } - return element; - } - var domCreateElement = document.createElement.bind(document); - var domCreateElementNS = document.createElementNS.bind(document); - var isInstance; - if (!Object.__proto__ && !useNative) { - isInstance = function(obj, ctor) { - var p = obj; - while (p) { - if (p === ctor.prototype) { - return true; - } - p = p.__proto__; - } - return false; - }; - } else { - isInstance = function(obj, base) { - return obj instanceof base; - }; - } - function wrapDomMethodToForceUpgrade(obj, methodName) { - var orig = obj[methodName]; - obj[methodName] = function() { - var n = orig.apply(this, arguments); - upgradeAll(n); - return n; - }; - } - wrapDomMethodToForceUpgrade(Node.prototype, "cloneNode"); - wrapDomMethodToForceUpgrade(document, "importNode"); - if (isIE11OrOlder) { - (function() { - var importNode = document.importNode; - document.importNode = function() { - var n = importNode.apply(document, arguments); - if (n.nodeType == n.DOCUMENT_FRAGMENT_NODE) { - var f = document.createDocumentFragment(); - f.appendChild(n); - return f; - } else { - return n; - } - }; - })(); - } - document.registerElement = register; - document.createElement = createElement; - document.createElementNS = createElementNS; - scope.registry = registry; - scope.instanceof = isInstance; - scope.reservedTagList = reservedTagList; - scope.getRegisteredDefinition = getRegisteredDefinition; - document.register = document.registerElement; -}); - -(function(scope) { - var useNative = scope.useNative; - var initializeModules = scope.initializeModules; - var isIE11OrOlder = /Trident/.test(navigator.userAgent); - if (useNative) { - var nop = function() {}; - scope.watchShadow = nop; - scope.upgrade = nop; - scope.upgradeAll = nop; - scope.upgradeDocumentTree = nop; - scope.upgradeSubtree = nop; - scope.takeRecords = nop; - scope.instanceof = function(obj, base) { - return obj instanceof base; - }; - } else { - initializeModules(); - } - var upgradeDocumentTree = scope.upgradeDocumentTree; - if (!window.wrap) { - if (window.ShadowDOMPolyfill) { - window.wrap = window.ShadowDOMPolyfill.wrapIfNeeded; - window.unwrap = window.ShadowDOMPolyfill.unwrapIfNeeded; - } else { - window.wrap = window.unwrap = function(node) { - return node; - }; - } - } - function bootstrap() { - upgradeDocumentTree(window.wrap(document)); - if (window.HTMLImports) { - window.HTMLImports.__importsParsingHook = function(elt) { - upgradeDocumentTree(wrap(elt.import)); - }; - } - window.CustomElements.ready = true; - setTimeout(function() { - window.CustomElements.readyTime = Date.now(); - if (window.HTMLImports) { - window.CustomElements.elapsed = window.CustomElements.readyTime - window.HTMLImports.readyTime; - } - document.dispatchEvent(new CustomEvent("WebComponentsReady", { - bubbles: true - })); - }); - } - if (isIE11OrOlder && typeof window.CustomEvent !== "function") { - window.CustomEvent = function(inType, params) { - params = params || {}; - var e = document.createEvent("CustomEvent"); - e.initCustomEvent(inType, Boolean(params.bubbles), Boolean(params.cancelable), params.detail); - e.preventDefault = function() { - Object.defineProperty(this, "defaultPrevented", { - get: function() { - return true; - } - }); - }; - return e; - }; - window.CustomEvent.prototype = window.Event.prototype; - } - if (document.readyState === "complete" || scope.flags.eager) { - bootstrap(); - } else if (document.readyState === "interactive" && !window.attachEvent && (!window.HTMLImports || window.HTMLImports.ready)) { - bootstrap(); - } else { - var loadEvent = window.HTMLImports && !window.HTMLImports.ready ? "HTMLImportsLoaded" : "DOMContentLoaded"; - window.addEventListener(loadEvent, bootstrap); - } - scope.isIE11OrOlder = isIE11OrOlder; -})(window.CustomElements); - -if (typeof HTMLTemplateElement === "undefined") { - (function() { - var TEMPLATE_TAG = "template"; - HTMLTemplateElement = function() {}; - HTMLTemplateElement.prototype = Object.create(HTMLElement.prototype); - HTMLTemplateElement.decorate = function(template) { - if (!template.content) { - template.content = template.ownerDocument.createDocumentFragment(); - } - var child; - while (child = template.firstChild) { - template.content.appendChild(child); - } - }; - HTMLTemplateElement.bootstrap = function(doc) { - var templates = doc.querySelectorAll(TEMPLATE_TAG); - for (var i = 0, l = templates.length, t; i < l && (t = templates[i]); i++) { - HTMLTemplateElement.decorate(t); - } - }; - window.addEventListener("DOMContentLoaded", function() { - HTMLTemplateElement.bootstrap(document); - }); - var createElement = document.createElement; - document.createElement = function() { - "use strict"; - var el = createElement.apply(document, arguments); - if (el.localName == "template") { - HTMLTemplateElement.decorate(el); - } - return el; - }; - })(); -} - -(function(scope) { - var style = document.createElement("style"); - style.textContent = "" + "body {" + "transition: opacity ease-in 0.2s;" + " } \n" + "body[unresolved] {" + "opacity: 0; display: block; overflow: hidden; position: relative;" + " } \n"; - var head = document.querySelector("head"); - head.insertBefore(style, head.firstChild); -})(window.WebComponents); \ No newline at end of file diff --git a/bower_components/webcomponentsjs/webcomponents-lite.min.js b/bower_components/webcomponentsjs/webcomponents-lite.min.js deleted file mode 100644 index abb6ff6..0000000 --- a/bower_components/webcomponentsjs/webcomponents-lite.min.js +++ /dev/null @@ -1,13 +0,0 @@ -/** - * @license - * Copyright (c) 2014 The Polymer Project Authors. All rights reserved. - * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt - * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt - * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt - * Code distributed by Google as part of the polymer project is also - * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt - */ -// @version 0.7.5 -window.WebComponents=window.WebComponents||{},function(e){var t=e.flags||{},n="webcomponents-lite.js",r=document.querySelector('script[src*="'+n+'"]');if(!t.noOpts){if(location.search.slice(1).split("&").forEach(function(e){var n,r=e.split("=");r[0]&&(n=r[0].match(/wc-(.+)/))&&(t[n[1]]=r[1]||!0)}),r)for(var o,i=0;o=r.attributes[i];i++)"src"!==o.name&&(t[o.name]=o.value||!0);if(t.log){var a=t.log.split(",");t.log={},a.forEach(function(e){t.log[e]=!0})}else t.log={}}t.shadow=t.shadow||t.shadowdom||t.polyfill,t.shadow="native"===t.shadow?!1:t.shadow||!HTMLElement.prototype.createShadowRoot,t.register&&(window.CustomElements=window.CustomElements||{flags:{}},window.CustomElements.flags.register=t.register),e.flags=t}(window.WebComponents),function(e){"use strict";function t(e){return void 0!==h[e]}function n(){s.call(this),this._isInvalid=!0}function r(e){return""==e&&n.call(this),e.toLowerCase()}function o(e){var t=e.charCodeAt(0);return t>32&&127>t&&-1==[34,35,60,62,63,96].indexOf(t)?e:encodeURIComponent(e)}function i(e){var t=e.charCodeAt(0);return t>32&&127>t&&-1==[34,35,60,62,96].indexOf(t)?e:encodeURIComponent(e)}function a(e,a,s){function c(e){b.push(e)}var d=a||"scheme start",u=0,l="",_=!1,w=!1,b=[];e:for(;(e[u-1]!=f||0==u)&&!this._isInvalid;){var g=e[u];switch(d){case"scheme start":if(!g||!m.test(g)){if(a){c("Invalid scheme.");break e}l="",d="no scheme";continue}l+=g.toLowerCase(),d="scheme";break;case"scheme":if(g&&v.test(g))l+=g.toLowerCase();else{if(":"!=g){if(a){if(f==g)break e;c("Code point not allowed in scheme: "+g);break e}l="",u=0,d="no scheme";continue}if(this._scheme=l,l="",a)break e;t(this._scheme)&&(this._isRelative=!0),d="file"==this._scheme?"relative":this._isRelative&&s&&s._scheme==this._scheme?"relative or authority":this._isRelative?"authority first slash":"scheme data"}break;case"scheme data":"?"==g?(this._query="?",d="query"):"#"==g?(this._fragment="#",d="fragment"):f!=g&&" "!=g&&"\n"!=g&&"\r"!=g&&(this._schemeData+=o(g));break;case"no scheme":if(s&&t(s._scheme)){d="relative";continue}c("Missing scheme."),n.call(this);break;case"relative or authority":if("/"!=g||"/"!=e[u+1]){c("Expected /, got: "+g),d="relative";continue}d="authority ignore slashes";break;case"relative":if(this._isRelative=!0,"file"!=this._scheme&&(this._scheme=s._scheme),f==g){this._host=s._host,this._port=s._port,this._path=s._path.slice(),this._query=s._query,this._username=s._username,this._password=s._password;break e}if("/"==g||"\\"==g)"\\"==g&&c("\\ is an invalid code point."),d="relative slash";else if("?"==g)this._host=s._host,this._port=s._port,this._path=s._path.slice(),this._query="?",this._username=s._username,this._password=s._password,d="query";else{if("#"!=g){var y=e[u+1],E=e[u+2];("file"!=this._scheme||!m.test(g)||":"!=y&&"|"!=y||f!=E&&"/"!=E&&"\\"!=E&&"?"!=E&&"#"!=E)&&(this._host=s._host,this._port=s._port,this._username=s._username,this._password=s._password,this._path=s._path.slice(),this._path.pop()),d="relative path";continue}this._host=s._host,this._port=s._port,this._path=s._path.slice(),this._query=s._query,this._fragment="#",this._username=s._username,this._password=s._password,d="fragment"}break;case"relative slash":if("/"!=g&&"\\"!=g){"file"!=this._scheme&&(this._host=s._host,this._port=s._port,this._username=s._username,this._password=s._password),d="relative path";continue}"\\"==g&&c("\\ is an invalid code point."),d="file"==this._scheme?"file host":"authority ignore slashes";break;case"authority first slash":if("/"!=g){c("Expected '/', got: "+g),d="authority ignore slashes";continue}d="authority second slash";break;case"authority second slash":if(d="authority ignore slashes","/"!=g){c("Expected '/', got: "+g);continue}break;case"authority ignore slashes":if("/"!=g&&"\\"!=g){d="authority";continue}c("Expected authority, got: "+g);break;case"authority":if("@"==g){_&&(c("@ already seen."),l+="%40"),_=!0;for(var L=0;L>>0)+(t++ +"__")};n.prototype={set:function(t,n){var r=t[this.name];return r&&r[0]===t?r[1]=n:e(t,this.name,{value:[t,n],writable:!0}),this},get:function(e){var t;return(t=e[this.name])&&t[0]===e?t[1]:void 0},"delete":function(e){var t=e[this.name];return t&&t[0]===e?(t[0]=t[1]=void 0,!0):!1},has:function(e){var t=e[this.name];return t?t[0]===e:!1}},window.WeakMap=n}(),function(e){function t(e){g.push(e),b||(b=!0,m(r))}function n(e){return window.ShadowDOMPolyfill&&window.ShadowDOMPolyfill.wrapIfNeeded(e)||e}function r(){b=!1;var e=g;g=[],e.sort(function(e,t){return e.uid_-t.uid_});var t=!1;e.forEach(function(e){var n=e.takeRecords();o(e),n.length&&(e.callback_(n,e),t=!0)}),t&&r()}function o(e){e.nodes_.forEach(function(t){var n=v.get(t);n&&n.forEach(function(t){t.observer===e&&t.removeTransientObservers()})})}function i(e,t){for(var n=e;n;n=n.parentNode){var r=v.get(n);if(r)for(var o=0;o0){var o=n[r-1],i=p(o,e);if(i)return void(n[r-1]=i)}else t(this.observer);n[r]=e},addListeners:function(){this.addListeners_(this.target)},addListeners_:function(e){var t=this.options;t.attributes&&e.addEventListener("DOMAttrModified",this,!0),t.characterData&&e.addEventListener("DOMCharacterDataModified",this,!0),t.childList&&e.addEventListener("DOMNodeInserted",this,!0),(t.childList||t.subtree)&&e.addEventListener("DOMNodeRemoved",this,!0)},removeListeners:function(){this.removeListeners_(this.target)},removeListeners_:function(e){var t=this.options;t.attributes&&e.removeEventListener("DOMAttrModified",this,!0),t.characterData&&e.removeEventListener("DOMCharacterDataModified",this,!0),t.childList&&e.removeEventListener("DOMNodeInserted",this,!0),(t.childList||t.subtree)&&e.removeEventListener("DOMNodeRemoved",this,!0)},addTransientObserver:function(e){if(e!==this.target){this.addListeners_(e),this.transientObservedNodes.push(e);var t=v.get(e);t||v.set(e,t=[]),t.push(this)}},removeTransientObservers:function(){var e=this.transientObservedNodes;this.transientObservedNodes=[],e.forEach(function(e){this.removeListeners_(e);for(var t=v.get(e),n=0;np&&(h=s[p]);p++)a(h)?(c++,n()):(h.addEventListener("load",r),h.addEventListener("error",i));else n()}function a(e){return l?e.__loaded||e["import"]&&"loading"!==e["import"].readyState:e.__importParsed}function s(e){for(var t,n=0,r=e.length;r>n&&(t=e[n]);n++)c(t)&&d(t)}function c(e){return"link"===e.localName&&"import"===e.rel}function d(e){var t=e["import"];t?o({target:e}):(e.addEventListener("load",o),e.addEventListener("error",o))}var u="import",l=Boolean(u in document.createElement("link")),h=Boolean(window.ShadowDOMPolyfill),p=function(e){return h?window.ShadowDOMPolyfill.wrapIfNeeded(e):e},f=p(document),m={get:function(){var e=window.HTMLImports.currentScript||document.currentScript||("complete"!==document.readyState?document.scripts[document.scripts.length-1]:null);return p(e)},configurable:!0};Object.defineProperty(document,"_currentScript",m),Object.defineProperty(f,"_currentScript",m);var v=/Trident/.test(navigator.userAgent),_=v?"complete":"interactive",w="readystatechange";l&&(new MutationObserver(function(e){for(var t,n=0,r=e.length;r>n&&(t=e[n]);n++)t.addedNodes&&s(t.addedNodes)}).observe(document.head,{childList:!0}),function(){if("loading"===document.readyState)for(var e,t=document.querySelectorAll("link[rel=import]"),n=0,r=t.length;r>n&&(e=t[n]);n++)d(e)}()),t(function(e){window.HTMLImports.ready=!0,window.HTMLImports.readyTime=(new Date).getTime();var t=f.createEvent("CustomEvent");t.initCustomEvent("HTMLImportsLoaded",!0,!0,e),f.dispatchEvent(t)}),e.IMPORT_LINK_TYPE=u,e.useNative=l,e.rootDocument=f,e.whenReady=t,e.isIE=v}(window.HTMLImports),function(e){var t=[],n=function(e){t.push(e)},r=function(){t.forEach(function(t){t(e)})};e.addModule=n,e.initializeModules=r}(window.HTMLImports),window.HTMLImports.addModule(function(e){var t=/(url\()([^)]*)(\))/g,n=/(@import[\s]+(?!url\())([^;]*)(;)/g,r={resolveUrlsInStyle:function(e,t){var n=e.ownerDocument,r=n.createElement("a");return e.textContent=this.resolveUrlsInCssText(e.textContent,t,r),e},resolveUrlsInCssText:function(e,r,o){var i=this.replaceUrls(e,o,r,t);return i=this.replaceUrls(i,o,r,n)},replaceUrls:function(e,t,n,r){return e.replace(r,function(e,r,o,i){var a=o.replace(/["']/g,"");return n&&(a=new URL(a,n).href),t.href=a,a=t.href,r+"'"+a+"'"+i})}};e.path=r}),window.HTMLImports.addModule(function(e){var t={async:!0,ok:function(e){return e.status>=200&&e.status<300||304===e.status||0===e.status},load:function(n,r,o){var i=new XMLHttpRequest;return(e.flags.debug||e.flags.bust)&&(n+="?"+Math.random()),i.open("GET",n,t.async),i.addEventListener("readystatechange",function(e){if(4===i.readyState){var n=i.getResponseHeader("Location"),a=null;if(n)var a="/"===n.substr(0,1)?location.origin+n:n;r.call(o,!t.ok(i)&&i,i.response||i.responseText,a)}}),i.send(),i},loadDocument:function(e,t,n){this.load(e,t,n).responseType="document"}};e.xhr=t}),window.HTMLImports.addModule(function(e){var t=e.xhr,n=e.flags,r=function(e,t){this.cache={},this.onload=e,this.oncomplete=t,this.inflight=0,this.pending={}};r.prototype={addNodes:function(e){this.inflight+=e.length;for(var t,n=0,r=e.length;r>n&&(t=e[n]);n++)this.require(t);this.checkDone()},addNode:function(e){this.inflight++,this.require(e),this.checkDone()},require:function(e){var t=e.src||e.href;e.__nodeUrl=t,this.dedupe(t,e)||this.fetch(t,e)},dedupe:function(e,t){if(this.pending[e])return this.pending[e].push(t),!0;return this.cache[e]?(this.onload(e,t,this.cache[e]),this.tail(),!0):(this.pending[e]=[t],!1)},fetch:function(e,r){if(n.load&&console.log("fetch",e,r),e)if(e.match(/^data:/)){var o=e.split(","),i=o[0],a=o[1];a=i.indexOf(";base64")>-1?atob(a):decodeURIComponent(a),setTimeout(function(){this.receive(e,r,null,a)}.bind(this),0)}else{var s=function(t,n,o){this.receive(e,r,t,n,o)}.bind(this);t.load(e,s)}else setTimeout(function(){this.receive(e,r,{error:"href must be specified"},null)}.bind(this),0)},receive:function(e,t,n,r,o){this.cache[e]=r;for(var i,a=this.pending[e],s=0,c=a.length;c>s&&(i=a[s]);s++)this.onload(e,i,r,n,o),this.tail();this.pending[e]=null},tail:function(){--this.inflight,this.checkDone()},checkDone:function(){this.inflight||this.oncomplete()}},e.Loader=r}),window.HTMLImports.addModule(function(e){var t=function(e){this.addCallback=e,this.mo=new MutationObserver(this.handler.bind(this))};t.prototype={handler:function(e){for(var t,n=0,r=e.length;r>n&&(t=e[n]);n++)"childList"===t.type&&t.addedNodes.length&&this.addedNodes(t.addedNodes)},addedNodes:function(e){this.addCallback&&this.addCallback(e);for(var t,n=0,r=e.length;r>n&&(t=e[n]);n++)t.children&&t.children.length&&this.addedNodes(t.children)},observe:function(e){this.mo.observe(e,{childList:!0,subtree:!0})}},e.Observer=t}),window.HTMLImports.addModule(function(e){function t(e){return"link"===e.localName&&e.rel===u}function n(e){var t=r(e);return"data:text/javascript;charset=utf-8,"+encodeURIComponent(t)}function r(e){return e.textContent+o(e)}function o(e){var t=e.ownerDocument;t.__importedScripts=t.__importedScripts||0;var n=e.ownerDocument.baseURI,r=t.__importedScripts?"-"+t.__importedScripts:"";return t.__importedScripts++,"\n//# sourceURL="+n+r+".js\n"}function i(e){var t=e.ownerDocument.createElement("style");return t.textContent=e.textContent,a.resolveUrlsInStyle(t),t}var a=e.path,s=e.rootDocument,c=e.flags,d=e.isIE,u=e.IMPORT_LINK_TYPE,l="link[rel="+u+"]",h={documentSelectors:l,importsSelectors:[l,"link[rel=stylesheet]","style","script:not([type])",'script[type="application/javascript"]','script[type="text/javascript"]'].join(","),map:{link:"parseLink",script:"parseScript",style:"parseStyle"},dynamicElements:[],parseNext:function(){var e=this.nextToParse();e&&this.parse(e)},parse:function(e){if(this.isParsed(e))return void(c.parse&&console.log("[%s] is already parsed",e.localName));var t=this[this.map[e.localName]];t&&(this.markParsing(e),t.call(this,e))},parseDynamic:function(e,t){this.dynamicElements.push(e),t||this.parseNext()},markParsing:function(e){c.parse&&console.log("parsing",e),this.parsingElement=e},markParsingComplete:function(e){e.__importParsed=!0,this.markDynamicParsingComplete(e),e.__importElement&&(e.__importElement.__importParsed=!0,this.markDynamicParsingComplete(e.__importElement)),this.parsingElement=null,c.parse&&console.log("completed",e)},markDynamicParsingComplete:function(e){var t=this.dynamicElements.indexOf(e);t>=0&&this.dynamicElements.splice(t,1)},parseImport:function(e){if(window.HTMLImports.__importsParsingHook&&window.HTMLImports.__importsParsingHook(e),e["import"]&&(e["import"].__importParsed=!0),this.markParsingComplete(e),e.dispatchEvent(e.__resource&&!e.__error?new CustomEvent("load",{bubbles:!1}):new CustomEvent("error",{bubbles:!1})),e.__pending)for(var t;e.__pending.length;)t=e.__pending.shift(),t&&t({target:e});this.parseNext()},parseLink:function(e){t(e)?this.parseImport(e):(e.href=e.href,this.parseGeneric(e))},parseStyle:function(e){var t=e;e=i(e),t.__appliedElement=e,e.__importElement=t,this.parseGeneric(e)},parseGeneric:function(e){this.trackElement(e),this.addElementToDocument(e)},rootImportForElement:function(e){for(var t=e;t.ownerDocument.__importLink;)t=t.ownerDocument.__importLink;return t},addElementToDocument:function(e){var t=this.rootImportForElement(e.__importElement||e);t.parentNode.insertBefore(e,t)},trackElement:function(e,t){var n=this,r=function(r){t&&t(r),n.markParsingComplete(e),n.parseNext()};if(e.addEventListener("load",r),e.addEventListener("error",r),d&&"style"===e.localName){var o=!1;if(-1==e.textContent.indexOf("@import"))o=!0;else if(e.sheet){o=!0;for(var i,a=e.sheet.cssRules,s=a?a.length:0,c=0;s>c&&(i=a[c]);c++)i.type===CSSRule.IMPORT_RULE&&(o=o&&Boolean(i.styleSheet))}o&&setTimeout(function(){e.dispatchEvent(new CustomEvent("load",{bubbles:!1}))})}},parseScript:function(t){var r=document.createElement("script");r.__importElement=t,r.src=t.src?t.src:n(t),e.currentScript=t,this.trackElement(r,function(t){r.parentNode.removeChild(r),e.currentScript=null}),this.addElementToDocument(r)},nextToParse:function(){return this._mayParse=[],!this.parsingElement&&(this.nextToParseInDoc(s)||this.nextToParseDynamic())},nextToParseInDoc:function(e,n){if(e&&this._mayParse.indexOf(e)<0){this._mayParse.push(e);for(var r,o=e.querySelectorAll(this.parseSelectorsForNode(e)),i=0,a=o.length;a>i&&(r=o[i]);i++)if(!this.isParsed(r))return this.hasResource(r)?t(r)?this.nextToParseInDoc(r["import"],r):r:void 0}return n},nextToParseDynamic:function(){return this.dynamicElements[0]},parseSelectorsForNode:function(e){var t=e.ownerDocument||e;return t===s?this.documentSelectors:this.importsSelectors},isParsed:function(e){return e.__importParsed},needsDynamicParsing:function(e){return this.dynamicElements.indexOf(e)>=0},hasResource:function(e){return t(e)&&void 0===e["import"]?!1:!0}};e.parser=h,e.IMPORT_SELECTOR=l}),window.HTMLImports.addModule(function(e){function t(e){return n(e,a)}function n(e,t){return"link"===e.localName&&e.getAttribute("rel")===t}function r(e){return!!Object.getOwnPropertyDescriptor(e,"baseURI")}function o(e,t){var n=document.implementation.createHTMLDocument(a);n._URL=t;var o=n.createElement("base");o.setAttribute("href",t),n.baseURI||r(n)||Object.defineProperty(n,"baseURI",{value:t});var i=n.createElement("meta");return i.setAttribute("charset","utf-8"),n.head.appendChild(i),n.head.appendChild(o),n.body.innerHTML=e,window.HTMLTemplateElement&&HTMLTemplateElement.bootstrap&&HTMLTemplateElement.bootstrap(n),n}var i=e.flags,a=e.IMPORT_LINK_TYPE,s=e.IMPORT_SELECTOR,c=e.rootDocument,d=e.Loader,u=e.Observer,l=e.parser,h={documents:{},documentPreloadSelectors:s,importsPreloadSelectors:[s].join(","),loadNode:function(e){p.addNode(e)},loadSubtree:function(e){var t=this.marshalNodes(e);p.addNodes(t)},marshalNodes:function(e){return e.querySelectorAll(this.loadSelectorsForNode(e))},loadSelectorsForNode:function(e){var t=e.ownerDocument||e;return t===c?this.documentPreloadSelectors:this.importsPreloadSelectors},loaded:function(e,n,r,a,s){if(i.load&&console.log("loaded",e,n),n.__resource=r,n.__error=a,t(n)){var c=this.documents[e];void 0===c&&(c=a?null:o(r,s||e),c&&(c.__importLink=n,this.bootDocument(c)),this.documents[e]=c),n["import"]=c}l.parseNext()},bootDocument:function(e){this.loadSubtree(e),this.observer.observe(e),l.parseNext()},loadedAll:function(){l.parseNext()}},p=new d(h.loaded.bind(h),h.loadedAll.bind(h));if(h.observer=new u,!document.baseURI){var f={get:function(){var e=document.querySelector("base");return e?e.href:window.location.href},configurable:!0};Object.defineProperty(document,"baseURI",f),Object.defineProperty(c,"baseURI",f)}e.importer=h,e.importLoader=p}),window.HTMLImports.addModule(function(e){var t=e.parser,n=e.importer,r={added:function(e){for(var r,o,i,a,s=0,c=e.length;c>s&&(a=e[s]);s++)r||(r=a.ownerDocument,o=t.isParsed(r)),i=this.shouldLoadNode(a),i&&n.loadNode(a),this.shouldParseNode(a)&&o&&t.parseDynamic(a,i)},shouldLoadNode:function(e){return 1===e.nodeType&&o.call(e,n.loadSelectorsForNode(e))},shouldParseNode:function(e){return 1===e.nodeType&&o.call(e,t.parseSelectorsForNode(e))}};n.observer.addCallback=r.added.bind(r);var o=HTMLElement.prototype.matches||HTMLElement.prototype.matchesSelector||HTMLElement.prototype.webkitMatchesSelector||HTMLElement.prototype.mozMatchesSelector||HTMLElement.prototype.msMatchesSelector}),function(e){function t(){window.HTMLImports.importer.bootDocument(o)}var n=e.initializeModules,r=e.isIE;if(!e.useNative){r&&"function"!=typeof window.CustomEvent&&(window.CustomEvent=function(e,t){t=t||{};var n=document.createEvent("CustomEvent");return n.initCustomEvent(e,Boolean(t.bubbles),Boolean(t.cancelable),t.detail),n.preventDefault=function(){Object.defineProperty(this,"defaultPrevented",{get:function(){return!0}})},n},window.CustomEvent.prototype=window.Event.prototype),n();var o=e.rootDocument;"complete"===document.readyState||"interactive"===document.readyState&&!window.attachEvent?t():document.addEventListener("DOMContentLoaded",t)}}(window.HTMLImports),window.CustomElements=window.CustomElements||{flags:{}},function(e){var t=e.flags,n=[],r=function(e){n.push(e)},o=function(){n.forEach(function(t){t(e)})};e.addModule=r,e.initializeModules=o,e.hasNative=Boolean(document.registerElement),e.useNative=!t.register&&e.hasNative&&!window.ShadowDOMPolyfill&&(!window.HTMLImports||window.HTMLImports.useNative)}(window.CustomElements),window.CustomElements.addModule(function(e){function t(e,t){n(e,function(e){return t(e)?!0:void r(e,t)}),r(e,t)}function n(e,t,r){var o=e.firstElementChild;if(!o)for(o=e.firstChild;o&&o.nodeType!==Node.ELEMENT_NODE;)o=o.nextSibling;for(;o;)t(o,r)!==!0&&n(o,t,r),o=o.nextElementSibling;return null}function r(e,n){for(var r=e.shadowRoot;r;)t(r,n),r=r.olderShadowRoot}function o(e,t){i(e,t,[])}function i(e,t,n){if(e=window.wrap(e),!(n.indexOf(e)>=0)){n.push(e);for(var r,o=e.querySelectorAll("link[rel="+a+"]"),s=0,c=o.length;c>s&&(r=o[s]);s++)r["import"]&&i(r["import"],t,n);t(e)}}var a=window.HTMLImports?window.HTMLImports.IMPORT_LINK_TYPE:"none";e.forDocumentTree=o,e.forSubtree=t}),window.CustomElements.addModule(function(e){function t(e){return n(e)||r(e)}function n(t){return e.upgrade(t)?!0:void s(t)}function r(e){g(e,function(e){return n(e)?!0:void 0})}function o(e){s(e),h(e)&&g(e,function(e){s(e)})}function i(e){M.push(e),L||(L=!0,setTimeout(a))}function a(){L=!1;for(var e,t=M,n=0,r=t.length;r>n&&(e=t[n]);n++)e();M=[]}function s(e){E?i(function(){c(e)}):c(e)}function c(e){e.__upgraded__&&(e.attachedCallback||e.detachedCallback)&&!e.__attached&&h(e)&&(e.__attached=!0,e.attachedCallback&&e.attachedCallback())}function d(e){u(e),g(e,function(e){u(e)})}function u(e){E?i(function(){l(e)}):l(e)}function l(e){e.__upgraded__&&(e.attachedCallback||e.detachedCallback)&&e.__attached&&!h(e)&&(e.__attached=!1,e.detachedCallback&&e.detachedCallback())}function h(e){for(var t=e,n=wrap(document);t;){if(t==n)return!0;t=t.parentNode||t.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&t.host}}function p(e){if(e.shadowRoot&&!e.shadowRoot.__watched){b.dom&&console.log("watching shadow-root for: ",e.localName);for(var t=e.shadowRoot;t;)v(t),t=t.olderShadowRoot}}function f(e){if(b.dom){var n=e[0];if(n&&"childList"===n.type&&n.addedNodes&&n.addedNodes){for(var r=n.addedNodes[0];r&&r!==document&&!r.host;)r=r.parentNode;var o=r&&(r.URL||r._URL||r.host&&r.host.localName)||"";o=o.split("/?").shift().split("/").pop()}console.group("mutations (%d) [%s]",e.length,o||"")}e.forEach(function(e){"childList"===e.type&&(T(e.addedNodes,function(e){e.localName&&t(e)}),T(e.removedNodes,function(e){e.localName&&d(e)}))}),b.dom&&console.groupEnd()}function m(e){for(e=window.wrap(e),e||(e=window.wrap(document));e.parentNode;)e=e.parentNode;var t=e.__observer;t&&(f(t.takeRecords()),a())}function v(e){if(!e.__observer){var t=new MutationObserver(f);t.observe(e,{childList:!0,subtree:!0}),e.__observer=t}}function _(e){e=window.wrap(e),b.dom&&console.group("upgradeDocument: ",e.baseURI.split("/").pop()),t(e),v(e),b.dom&&console.groupEnd()}function w(e){y(e,_)}var b=e.flags,g=e.forSubtree,y=e.forDocumentTree,E=!window.MutationObserver||window.MutationObserver===window.JsMutationObserver;e.hasPolyfillMutations=E;var L=!1,M=[],T=Array.prototype.forEach.call.bind(Array.prototype.forEach),N=Element.prototype.createShadowRoot;N&&(Element.prototype.createShadowRoot=function(){var e=N.call(this);return window.CustomElements.watchShadow(this),e}),e.watchShadow=p,e.upgradeDocumentTree=w,e.upgradeSubtree=r,e.upgradeAll=t,e.attachedNode=o,e.takeRecords=m}),window.CustomElements.addModule(function(e){function t(t){if(!t.__upgraded__&&t.nodeType===Node.ELEMENT_NODE){var r=t.getAttribute("is"),o=e.getRegisteredDefinition(r||t.localName);if(o){if(r&&o.tag==t.localName)return n(t,o);if(!r&&!o["extends"])return n(t,o)}}}function n(t,n){return a.upgrade&&console.group("upgrade:",t.localName),n.is&&t.setAttribute("is",n.is),r(t,n),t.__upgraded__=!0,i(t),e.attachedNode(t),e.upgradeSubtree(t),a.upgrade&&console.groupEnd(),t}function r(e,t){Object.__proto__?e.__proto__=t.prototype:(o(e,t.prototype,t["native"]),e.__proto__=t.prototype)}function o(e,t,n){for(var r={},o=t;o!==n&&o!==HTMLElement.prototype;){for(var i,a=Object.getOwnPropertyNames(o),s=0;i=a[s];s++)r[i]||(Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(o,i)),r[i]=1);o=Object.getPrototypeOf(o)}}function i(e){e.createdCallback&&e.createdCallback()}var a=e.flags;e.upgrade=t,e.upgradeWithDefinition=n,e.implementPrototype=r}),window.CustomElements.addModule(function(e){function t(t,r){var c=r||{};if(!t)throw new Error("document.registerElement: first argument `name` must not be empty");if(t.indexOf("-")<0)throw new Error("document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '"+String(t)+"'.");if(o(t))throw new Error("Failed to execute 'registerElement' on 'Document': Registration failed for type '"+String(t)+"'. The type name is invalid.");if(d(t))throw new Error("DuplicateDefinitionError: a type with name '"+String(t)+"' is already registered");return c.prototype||(c.prototype=Object.create(HTMLElement.prototype)),c.__name=t.toLowerCase(),c.lifecycle=c.lifecycle||{},c.ancestry=i(c["extends"]),a(c),s(c),n(c.prototype),u(c.__name,c),c.ctor=l(c),c.ctor.prototype=c.prototype,c.prototype.constructor=c.ctor,e.ready&&_(document),c.ctor}function n(e){if(!e.setAttribute._polyfilled){var t=e.setAttribute;e.setAttribute=function(e,n){r.call(this,e,n,t)};var n=e.removeAttribute;e.removeAttribute=function(e){r.call(this,e,null,n); - -},e.setAttribute._polyfilled=!0}}function r(e,t,n){e=e.toLowerCase();var r=this.getAttribute(e);n.apply(this,arguments);var o=this.getAttribute(e);this.attributeChangedCallback&&o!==r&&this.attributeChangedCallback(e,r,o)}function o(e){for(var t=0;t=0&&g(r,HTMLElement),r)}function f(e,t){var n=e[t];e[t]=function(){var e=n.apply(this,arguments);return w(e),e}}var m,v=e.isIE11OrOlder,_=e.upgradeDocumentTree,w=e.upgradeAll,b=e.upgradeWithDefinition,g=e.implementPrototype,y=e.useNative,E=["annotation-xml","color-profile","font-face","font-face-src","font-face-uri","font-face-format","font-face-name","missing-glyph"],L={},M="http://www.w3.org/1999/xhtml",T=document.createElement.bind(document),N=document.createElementNS.bind(document);m=Object.__proto__||y?function(e,t){return e instanceof t}:function(e,t){for(var n=e;n;){if(n===t.prototype)return!0;n=n.__proto__}return!1},f(Node.prototype,"cloneNode"),f(document,"importNode"),v&&!function(){var e=document.importNode;document.importNode=function(){var t=e.apply(document,arguments);if(t.nodeType==t.DOCUMENT_FRAGMENT_NODE){var n=document.createDocumentFragment();return n.appendChild(t),n}return t}}(),document.registerElement=t,document.createElement=p,document.createElementNS=h,e.registry=L,e["instanceof"]=m,e.reservedTagList=E,e.getRegisteredDefinition=d,document.register=document.registerElement}),function(e){function t(){a(window.wrap(document)),window.HTMLImports&&(window.HTMLImports.__importsParsingHook=function(e){a(wrap(e["import"]))}),window.CustomElements.ready=!0,setTimeout(function(){window.CustomElements.readyTime=Date.now(),window.HTMLImports&&(window.CustomElements.elapsed=window.CustomElements.readyTime-window.HTMLImports.readyTime),document.dispatchEvent(new CustomEvent("WebComponentsReady",{bubbles:!0}))})}var n=e.useNative,r=e.initializeModules,o=/Trident/.test(navigator.userAgent);if(n){var i=function(){};e.watchShadow=i,e.upgrade=i,e.upgradeAll=i,e.upgradeDocumentTree=i,e.upgradeSubtree=i,e.takeRecords=i,e["instanceof"]=function(e,t){return e instanceof t}}else r();var a=e.upgradeDocumentTree;if(window.wrap||(window.ShadowDOMPolyfill?(window.wrap=window.ShadowDOMPolyfill.wrapIfNeeded,window.unwrap=window.ShadowDOMPolyfill.unwrapIfNeeded):window.wrap=window.unwrap=function(e){return e}),o&&"function"!=typeof window.CustomEvent&&(window.CustomEvent=function(e,t){t=t||{};var n=document.createEvent("CustomEvent");return n.initCustomEvent(e,Boolean(t.bubbles),Boolean(t.cancelable),t.detail),n.preventDefault=function(){Object.defineProperty(this,"defaultPrevented",{get:function(){return!0}})},n},window.CustomEvent.prototype=window.Event.prototype),"complete"===document.readyState||e.flags.eager)t();else if("interactive"!==document.readyState||window.attachEvent||window.HTMLImports&&!window.HTMLImports.ready){var s=window.HTMLImports&&!window.HTMLImports.ready?"HTMLImportsLoaded":"DOMContentLoaded";window.addEventListener(s,t)}else t();e.isIE11OrOlder=o}(window.CustomElements),"undefined"==typeof HTMLTemplateElement&&!function(){var e="template";HTMLTemplateElement=function(){},HTMLTemplateElement.prototype=Object.create(HTMLElement.prototype),HTMLTemplateElement.decorate=function(e){e.content||(e.content=e.ownerDocument.createDocumentFragment());for(var t;t=e.firstChild;)e.content.appendChild(t)},HTMLTemplateElement.bootstrap=function(t){for(var n,r=t.querySelectorAll(e),o=0,i=r.length;i>o&&(n=r[o]);o++)HTMLTemplateElement.decorate(n)},window.addEventListener("DOMContentLoaded",function(){HTMLTemplateElement.bootstrap(document)});var t=document.createElement;document.createElement=function(){"use strict";var e=t.apply(document,arguments);return"template"==e.localName&&HTMLTemplateElement.decorate(e),e}}(),function(e){var t=document.createElement("style");t.textContent="body {transition: opacity ease-in 0.2s; } \nbody[unresolved] {opacity: 0; display: block; overflow: hidden; position: relative; } \n";var n=document.querySelector("head");n.insertBefore(t,n.firstChild)}(window.WebComponents); \ No newline at end of file diff --git a/bower_components/webcomponentsjs/webcomponents.js b/bower_components/webcomponentsjs/webcomponents.js deleted file mode 100644 index 6d71541..0000000 --- a/bower_components/webcomponentsjs/webcomponents.js +++ /dev/null @@ -1,7126 +0,0 @@ -/** - * @license - * Copyright (c) 2014 The Polymer Project Authors. All rights reserved. - * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt - * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt - * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt - * Code distributed by Google as part of the polymer project is also - * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt - */ -// @version 0.7.5 -window.WebComponents = window.WebComponents || {}; - -(function(scope) { - var flags = scope.flags || {}; - var file = "webcomponents.js"; - var script = document.querySelector('script[src*="' + file + '"]'); - if (!flags.noOpts) { - location.search.slice(1).split("&").forEach(function(option) { - var parts = option.split("="); - var match; - if (parts[0] && (match = parts[0].match(/wc-(.+)/))) { - flags[match[1]] = parts[1] || true; - } - }); - if (script) { - for (var i = 0, a; a = script.attributes[i]; i++) { - if (a.name !== "src") { - flags[a.name] = a.value || true; - } - } - } - if (flags.log && flags.log.split) { - var parts = flags.log.split(","); - flags.log = {}; - parts.forEach(function(f) { - flags.log[f] = true; - }); - } else { - flags.log = {}; - } - } - flags.shadow = flags.shadow || flags.shadowdom || flags.polyfill; - if (flags.shadow === "native") { - flags.shadow = false; - } else { - flags.shadow = flags.shadow || !HTMLElement.prototype.createShadowRoot; - } - if (flags.register) { - window.CustomElements = window.CustomElements || { - flags: {} - }; - window.CustomElements.flags.register = flags.register; - } - scope.flags = flags; -})(WebComponents); - -if (WebComponents.flags.shadow) { - if (typeof WeakMap === "undefined") { - (function() { - var defineProperty = Object.defineProperty; - var counter = Date.now() % 1e9; - var WeakMap = function() { - this.name = "__st" + (Math.random() * 1e9 >>> 0) + (counter++ + "__"); - }; - WeakMap.prototype = { - set: function(key, value) { - var entry = key[this.name]; - if (entry && entry[0] === key) entry[1] = value; else defineProperty(key, this.name, { - value: [ key, value ], - writable: true - }); - return this; - }, - get: function(key) { - var entry; - return (entry = key[this.name]) && entry[0] === key ? entry[1] : undefined; - }, - "delete": function(key) { - var entry = key[this.name]; - if (!entry || entry[0] !== key) return false; - entry[0] = entry[1] = undefined; - return true; - }, - has: function(key) { - var entry = key[this.name]; - if (!entry) return false; - return entry[0] === key; - } - }; - window.WeakMap = WeakMap; - })(); - } - window.ShadowDOMPolyfill = {}; - (function(scope) { - "use strict"; - var constructorTable = new WeakMap(); - var nativePrototypeTable = new WeakMap(); - var wrappers = Object.create(null); - function detectEval() { - if (typeof chrome !== "undefined" && chrome.app && chrome.app.runtime) { - return false; - } - if (navigator.getDeviceStorage) { - return false; - } - try { - var f = new Function("return true;"); - return f(); - } catch (ex) { - return false; - } - } - var hasEval = detectEval(); - function assert(b) { - if (!b) throw new Error("Assertion failed"); - } - var defineProperty = Object.defineProperty; - var getOwnPropertyNames = Object.getOwnPropertyNames; - var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; - function mixin(to, from) { - var names = getOwnPropertyNames(from); - for (var i = 0; i < names.length; i++) { - var name = names[i]; - defineProperty(to, name, getOwnPropertyDescriptor(from, name)); - } - return to; - } - function mixinStatics(to, from) { - var names = getOwnPropertyNames(from); - for (var i = 0; i < names.length; i++) { - var name = names[i]; - switch (name) { - case "arguments": - case "caller": - case "length": - case "name": - case "prototype": - case "toString": - continue; - } - defineProperty(to, name, getOwnPropertyDescriptor(from, name)); - } - return to; - } - function oneOf(object, propertyNames) { - for (var i = 0; i < propertyNames.length; i++) { - if (propertyNames[i] in object) return propertyNames[i]; - } - } - var nonEnumerableDataDescriptor = { - value: undefined, - configurable: true, - enumerable: false, - writable: true - }; - function defineNonEnumerableDataProperty(object, name, value) { - nonEnumerableDataDescriptor.value = value; - defineProperty(object, name, nonEnumerableDataDescriptor); - } - getOwnPropertyNames(window); - function getWrapperConstructor(node, opt_instance) { - var nativePrototype = node.__proto__ || Object.getPrototypeOf(node); - if (isFirefox) { - try { - getOwnPropertyNames(nativePrototype); - } catch (error) { - nativePrototype = nativePrototype.__proto__; - } - } - var wrapperConstructor = constructorTable.get(nativePrototype); - if (wrapperConstructor) return wrapperConstructor; - var parentWrapperConstructor = getWrapperConstructor(nativePrototype); - var GeneratedWrapper = createWrapperConstructor(parentWrapperConstructor); - registerInternal(nativePrototype, GeneratedWrapper, opt_instance); - return GeneratedWrapper; - } - function addForwardingProperties(nativePrototype, wrapperPrototype) { - installProperty(nativePrototype, wrapperPrototype, true); - } - function registerInstanceProperties(wrapperPrototype, instanceObject) { - installProperty(instanceObject, wrapperPrototype, false); - } - var isFirefox = /Firefox/.test(navigator.userAgent); - var dummyDescriptor = { - get: function() {}, - set: function(v) {}, - configurable: true, - enumerable: true - }; - function isEventHandlerName(name) { - return /^on[a-z]+$/.test(name); - } - function isIdentifierName(name) { - return /^[a-zA-Z_$][a-zA-Z_$0-9]*$/.test(name); - } - function getGetter(name) { - return hasEval && isIdentifierName(name) ? new Function("return this.__impl4cf1e782hg__." + name) : function() { - return this.__impl4cf1e782hg__[name]; - }; - } - function getSetter(name) { - return hasEval && isIdentifierName(name) ? new Function("v", "this.__impl4cf1e782hg__." + name + " = v") : function(v) { - this.__impl4cf1e782hg__[name] = v; - }; - } - function getMethod(name) { - return hasEval && isIdentifierName(name) ? new Function("return this.__impl4cf1e782hg__." + name + ".apply(this.__impl4cf1e782hg__, arguments)") : function() { - return this.__impl4cf1e782hg__[name].apply(this.__impl4cf1e782hg__, arguments); - }; - } - function getDescriptor(source, name) { - try { - return Object.getOwnPropertyDescriptor(source, name); - } catch (ex) { - return dummyDescriptor; - } - } - var isBrokenSafari = function() { - var descr = Object.getOwnPropertyDescriptor(Node.prototype, "nodeType"); - return descr && !descr.get && !descr.set; - }(); - function installProperty(source, target, allowMethod, opt_blacklist) { - var names = getOwnPropertyNames(source); - for (var i = 0; i < names.length; i++) { - var name = names[i]; - if (name === "polymerBlackList_") continue; - if (name in target) continue; - if (source.polymerBlackList_ && source.polymerBlackList_[name]) continue; - if (isFirefox) { - source.__lookupGetter__(name); - } - var descriptor = getDescriptor(source, name); - var getter, setter; - if (typeof descriptor.value === "function") { - if (allowMethod) { - target[name] = getMethod(name); - } - continue; - } - var isEvent = isEventHandlerName(name); - if (isEvent) getter = scope.getEventHandlerGetter(name); else getter = getGetter(name); - if (descriptor.writable || descriptor.set || isBrokenSafari) { - if (isEvent) setter = scope.getEventHandlerSetter(name); else setter = getSetter(name); - } - var configurable = isBrokenSafari || descriptor.configurable; - defineProperty(target, name, { - get: getter, - set: setter, - configurable: configurable, - enumerable: descriptor.enumerable - }); - } - } - function register(nativeConstructor, wrapperConstructor, opt_instance) { - if (nativeConstructor == null) { - return; - } - var nativePrototype = nativeConstructor.prototype; - registerInternal(nativePrototype, wrapperConstructor, opt_instance); - mixinStatics(wrapperConstructor, nativeConstructor); - } - function registerInternal(nativePrototype, wrapperConstructor, opt_instance) { - var wrapperPrototype = wrapperConstructor.prototype; - assert(constructorTable.get(nativePrototype) === undefined); - constructorTable.set(nativePrototype, wrapperConstructor); - nativePrototypeTable.set(wrapperPrototype, nativePrototype); - addForwardingProperties(nativePrototype, wrapperPrototype); - if (opt_instance) registerInstanceProperties(wrapperPrototype, opt_instance); - defineNonEnumerableDataProperty(wrapperPrototype, "constructor", wrapperConstructor); - wrapperConstructor.prototype = wrapperPrototype; - } - function isWrapperFor(wrapperConstructor, nativeConstructor) { - return constructorTable.get(nativeConstructor.prototype) === wrapperConstructor; - } - function registerObject(object) { - var nativePrototype = Object.getPrototypeOf(object); - var superWrapperConstructor = getWrapperConstructor(nativePrototype); - var GeneratedWrapper = createWrapperConstructor(superWrapperConstructor); - registerInternal(nativePrototype, GeneratedWrapper, object); - return GeneratedWrapper; - } - function createWrapperConstructor(superWrapperConstructor) { - function GeneratedWrapper(node) { - superWrapperConstructor.call(this, node); - } - var p = Object.create(superWrapperConstructor.prototype); - p.constructor = GeneratedWrapper; - GeneratedWrapper.prototype = p; - return GeneratedWrapper; - } - function isWrapper(object) { - return object && object.__impl4cf1e782hg__; - } - function isNative(object) { - return !isWrapper(object); - } - function wrap(impl) { - if (impl === null) return null; - assert(isNative(impl)); - var wrapper = impl.__wrapper8e3dd93a60__; - if (wrapper != null) { - return wrapper; - } - return impl.__wrapper8e3dd93a60__ = new (getWrapperConstructor(impl, impl))(impl); - } - function unwrap(wrapper) { - if (wrapper === null) return null; - assert(isWrapper(wrapper)); - return wrapper.__impl4cf1e782hg__; - } - function unsafeUnwrap(wrapper) { - return wrapper.__impl4cf1e782hg__; - } - function setWrapper(impl, wrapper) { - wrapper.__impl4cf1e782hg__ = impl; - impl.__wrapper8e3dd93a60__ = wrapper; - } - function unwrapIfNeeded(object) { - return object && isWrapper(object) ? unwrap(object) : object; - } - function wrapIfNeeded(object) { - return object && !isWrapper(object) ? wrap(object) : object; - } - function rewrap(node, wrapper) { - if (wrapper === null) return; - assert(isNative(node)); - assert(wrapper === undefined || isWrapper(wrapper)); - node.__wrapper8e3dd93a60__ = wrapper; - } - var getterDescriptor = { - get: undefined, - configurable: true, - enumerable: true - }; - function defineGetter(constructor, name, getter) { - getterDescriptor.get = getter; - defineProperty(constructor.prototype, name, getterDescriptor); - } - function defineWrapGetter(constructor, name) { - defineGetter(constructor, name, function() { - return wrap(this.__impl4cf1e782hg__[name]); - }); - } - function forwardMethodsToWrapper(constructors, names) { - constructors.forEach(function(constructor) { - names.forEach(function(name) { - constructor.prototype[name] = function() { - var w = wrapIfNeeded(this); - return w[name].apply(w, arguments); - }; - }); - }); - } - scope.assert = assert; - scope.constructorTable = constructorTable; - scope.defineGetter = defineGetter; - scope.defineWrapGetter = defineWrapGetter; - scope.forwardMethodsToWrapper = forwardMethodsToWrapper; - scope.isIdentifierName = isIdentifierName; - scope.isWrapper = isWrapper; - scope.isWrapperFor = isWrapperFor; - scope.mixin = mixin; - scope.nativePrototypeTable = nativePrototypeTable; - scope.oneOf = oneOf; - scope.registerObject = registerObject; - scope.registerWrapper = register; - scope.rewrap = rewrap; - scope.setWrapper = setWrapper; - scope.unsafeUnwrap = unsafeUnwrap; - scope.unwrap = unwrap; - scope.unwrapIfNeeded = unwrapIfNeeded; - scope.wrap = wrap; - scope.wrapIfNeeded = wrapIfNeeded; - scope.wrappers = wrappers; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - function newSplice(index, removed, addedCount) { - return { - index: index, - removed: removed, - addedCount: addedCount - }; - } - var EDIT_LEAVE = 0; - var EDIT_UPDATE = 1; - var EDIT_ADD = 2; - var EDIT_DELETE = 3; - function ArraySplice() {} - ArraySplice.prototype = { - calcEditDistances: function(current, currentStart, currentEnd, old, oldStart, oldEnd) { - var rowCount = oldEnd - oldStart + 1; - var columnCount = currentEnd - currentStart + 1; - var distances = new Array(rowCount); - for (var i = 0; i < rowCount; i++) { - distances[i] = new Array(columnCount); - distances[i][0] = i; - } - for (var j = 0; j < columnCount; j++) distances[0][j] = j; - for (var i = 1; i < rowCount; i++) { - for (var j = 1; j < columnCount; j++) { - if (this.equals(current[currentStart + j - 1], old[oldStart + i - 1])) distances[i][j] = distances[i - 1][j - 1]; else { - var north = distances[i - 1][j] + 1; - var west = distances[i][j - 1] + 1; - distances[i][j] = north < west ? north : west; - } - } - } - return distances; - }, - spliceOperationsFromEditDistances: function(distances) { - var i = distances.length - 1; - var j = distances[0].length - 1; - var current = distances[i][j]; - var edits = []; - while (i > 0 || j > 0) { - if (i == 0) { - edits.push(EDIT_ADD); - j--; - continue; - } - if (j == 0) { - edits.push(EDIT_DELETE); - i--; - continue; - } - var northWest = distances[i - 1][j - 1]; - var west = distances[i - 1][j]; - var north = distances[i][j - 1]; - var min; - if (west < north) min = west < northWest ? west : northWest; else min = north < northWest ? north : northWest; - if (min == northWest) { - if (northWest == current) { - edits.push(EDIT_LEAVE); - } else { - edits.push(EDIT_UPDATE); - current = northWest; - } - i--; - j--; - } else if (min == west) { - edits.push(EDIT_DELETE); - i--; - current = west; - } else { - edits.push(EDIT_ADD); - j--; - current = north; - } - } - edits.reverse(); - return edits; - }, - calcSplices: function(current, currentStart, currentEnd, old, oldStart, oldEnd) { - var prefixCount = 0; - var suffixCount = 0; - var minLength = Math.min(currentEnd - currentStart, oldEnd - oldStart); - if (currentStart == 0 && oldStart == 0) prefixCount = this.sharedPrefix(current, old, minLength); - if (currentEnd == current.length && oldEnd == old.length) suffixCount = this.sharedSuffix(current, old, minLength - prefixCount); - currentStart += prefixCount; - oldStart += prefixCount; - currentEnd -= suffixCount; - oldEnd -= suffixCount; - if (currentEnd - currentStart == 0 && oldEnd - oldStart == 0) return []; - if (currentStart == currentEnd) { - var splice = newSplice(currentStart, [], 0); - while (oldStart < oldEnd) splice.removed.push(old[oldStart++]); - return [ splice ]; - } else if (oldStart == oldEnd) return [ newSplice(currentStart, [], currentEnd - currentStart) ]; - var ops = this.spliceOperationsFromEditDistances(this.calcEditDistances(current, currentStart, currentEnd, old, oldStart, oldEnd)); - var splice = undefined; - var splices = []; - var index = currentStart; - var oldIndex = oldStart; - for (var i = 0; i < ops.length; i++) { - switch (ops[i]) { - case EDIT_LEAVE: - if (splice) { - splices.push(splice); - splice = undefined; - } - index++; - oldIndex++; - break; - - case EDIT_UPDATE: - if (!splice) splice = newSplice(index, [], 0); - splice.addedCount++; - index++; - splice.removed.push(old[oldIndex]); - oldIndex++; - break; - - case EDIT_ADD: - if (!splice) splice = newSplice(index, [], 0); - splice.addedCount++; - index++; - break; - - case EDIT_DELETE: - if (!splice) splice = newSplice(index, [], 0); - splice.removed.push(old[oldIndex]); - oldIndex++; - break; - } - } - if (splice) { - splices.push(splice); - } - return splices; - }, - sharedPrefix: function(current, old, searchLength) { - for (var i = 0; i < searchLength; i++) if (!this.equals(current[i], old[i])) return i; - return searchLength; - }, - sharedSuffix: function(current, old, searchLength) { - var index1 = current.length; - var index2 = old.length; - var count = 0; - while (count < searchLength && this.equals(current[--index1], old[--index2])) count++; - return count; - }, - calculateSplices: function(current, previous) { - return this.calcSplices(current, 0, current.length, previous, 0, previous.length); - }, - equals: function(currentValue, previousValue) { - return currentValue === previousValue; - } - }; - scope.ArraySplice = ArraySplice; - })(window.ShadowDOMPolyfill); - (function(context) { - "use strict"; - var OriginalMutationObserver = window.MutationObserver; - var callbacks = []; - var pending = false; - var timerFunc; - function handle() { - pending = false; - var copies = callbacks.slice(0); - callbacks = []; - for (var i = 0; i < copies.length; i++) { - (0, copies[i])(); - } - } - if (OriginalMutationObserver) { - var counter = 1; - var observer = new OriginalMutationObserver(handle); - var textNode = document.createTextNode(counter); - observer.observe(textNode, { - characterData: true - }); - timerFunc = function() { - counter = (counter + 1) % 2; - textNode.data = counter; - }; - } else { - timerFunc = window.setTimeout; - } - function setEndOfMicrotask(func) { - callbacks.push(func); - if (pending) return; - pending = true; - timerFunc(handle, 0); - } - context.setEndOfMicrotask = setEndOfMicrotask; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var setEndOfMicrotask = scope.setEndOfMicrotask; - var wrapIfNeeded = scope.wrapIfNeeded; - var wrappers = scope.wrappers; - var registrationsTable = new WeakMap(); - var globalMutationObservers = []; - var isScheduled = false; - function scheduleCallback(observer) { - if (observer.scheduled_) return; - observer.scheduled_ = true; - globalMutationObservers.push(observer); - if (isScheduled) return; - setEndOfMicrotask(notifyObservers); - isScheduled = true; - } - function notifyObservers() { - isScheduled = false; - while (globalMutationObservers.length) { - var notifyList = globalMutationObservers; - globalMutationObservers = []; - notifyList.sort(function(x, y) { - return x.uid_ - y.uid_; - }); - for (var i = 0; i < notifyList.length; i++) { - var mo = notifyList[i]; - mo.scheduled_ = false; - var queue = mo.takeRecords(); - removeTransientObserversFor(mo); - if (queue.length) { - mo.callback_(queue, mo); - } - } - } - } - function MutationRecord(type, target) { - this.type = type; - this.target = target; - this.addedNodes = new wrappers.NodeList(); - this.removedNodes = new wrappers.NodeList(); - this.previousSibling = null; - this.nextSibling = null; - this.attributeName = null; - this.attributeNamespace = null; - this.oldValue = null; - } - function registerTransientObservers(ancestor, node) { - for (;ancestor; ancestor = ancestor.parentNode) { - var registrations = registrationsTable.get(ancestor); - if (!registrations) continue; - for (var i = 0; i < registrations.length; i++) { - var registration = registrations[i]; - if (registration.options.subtree) registration.addTransientObserver(node); - } - } - } - function removeTransientObserversFor(observer) { - for (var i = 0; i < observer.nodes_.length; i++) { - var node = observer.nodes_[i]; - var registrations = registrationsTable.get(node); - if (!registrations) return; - for (var j = 0; j < registrations.length; j++) { - var registration = registrations[j]; - if (registration.observer === observer) registration.removeTransientObservers(); - } - } - } - function enqueueMutation(target, type, data) { - var interestedObservers = Object.create(null); - var associatedStrings = Object.create(null); - for (var node = target; node; node = node.parentNode) { - var registrations = registrationsTable.get(node); - if (!registrations) continue; - for (var j = 0; j < registrations.length; j++) { - var registration = registrations[j]; - var options = registration.options; - if (node !== target && !options.subtree) continue; - if (type === "attributes" && !options.attributes) continue; - if (type === "attributes" && options.attributeFilter && (data.namespace !== null || options.attributeFilter.indexOf(data.name) === -1)) { - continue; - } - if (type === "characterData" && !options.characterData) continue; - if (type === "childList" && !options.childList) continue; - var observer = registration.observer; - interestedObservers[observer.uid_] = observer; - if (type === "attributes" && options.attributeOldValue || type === "characterData" && options.characterDataOldValue) { - associatedStrings[observer.uid_] = data.oldValue; - } - } - } - for (var uid in interestedObservers) { - var observer = interestedObservers[uid]; - var record = new MutationRecord(type, target); - if ("name" in data && "namespace" in data) { - record.attributeName = data.name; - record.attributeNamespace = data.namespace; - } - if (data.addedNodes) record.addedNodes = data.addedNodes; - if (data.removedNodes) record.removedNodes = data.removedNodes; - if (data.previousSibling) record.previousSibling = data.previousSibling; - if (data.nextSibling) record.nextSibling = data.nextSibling; - if (associatedStrings[uid] !== undefined) record.oldValue = associatedStrings[uid]; - scheduleCallback(observer); - observer.records_.push(record); - } - } - var slice = Array.prototype.slice; - function MutationObserverOptions(options) { - this.childList = !!options.childList; - this.subtree = !!options.subtree; - if (!("attributes" in options) && ("attributeOldValue" in options || "attributeFilter" in options)) { - this.attributes = true; - } else { - this.attributes = !!options.attributes; - } - if ("characterDataOldValue" in options && !("characterData" in options)) this.characterData = true; else this.characterData = !!options.characterData; - if (!this.attributes && (options.attributeOldValue || "attributeFilter" in options) || !this.characterData && options.characterDataOldValue) { - throw new TypeError(); - } - this.characterData = !!options.characterData; - this.attributeOldValue = !!options.attributeOldValue; - this.characterDataOldValue = !!options.characterDataOldValue; - if ("attributeFilter" in options) { - if (options.attributeFilter == null || typeof options.attributeFilter !== "object") { - throw new TypeError(); - } - this.attributeFilter = slice.call(options.attributeFilter); - } else { - this.attributeFilter = null; - } - } - var uidCounter = 0; - function MutationObserver(callback) { - this.callback_ = callback; - this.nodes_ = []; - this.records_ = []; - this.uid_ = ++uidCounter; - this.scheduled_ = false; - } - MutationObserver.prototype = { - constructor: MutationObserver, - observe: function(target, options) { - target = wrapIfNeeded(target); - var newOptions = new MutationObserverOptions(options); - var registration; - var registrations = registrationsTable.get(target); - if (!registrations) registrationsTable.set(target, registrations = []); - for (var i = 0; i < registrations.length; i++) { - if (registrations[i].observer === this) { - registration = registrations[i]; - registration.removeTransientObservers(); - registration.options = newOptions; - } - } - if (!registration) { - registration = new Registration(this, target, newOptions); - registrations.push(registration); - this.nodes_.push(target); - } - }, - disconnect: function() { - this.nodes_.forEach(function(node) { - var registrations = registrationsTable.get(node); - for (var i = 0; i < registrations.length; i++) { - var registration = registrations[i]; - if (registration.observer === this) { - registrations.splice(i, 1); - break; - } - } - }, this); - this.records_ = []; - }, - takeRecords: function() { - var copyOfRecords = this.records_; - this.records_ = []; - return copyOfRecords; - } - }; - function Registration(observer, target, options) { - this.observer = observer; - this.target = target; - this.options = options; - this.transientObservedNodes = []; - } - Registration.prototype = { - addTransientObserver: function(node) { - if (node === this.target) return; - scheduleCallback(this.observer); - this.transientObservedNodes.push(node); - var registrations = registrationsTable.get(node); - if (!registrations) registrationsTable.set(node, registrations = []); - registrations.push(this); - }, - removeTransientObservers: function() { - var transientObservedNodes = this.transientObservedNodes; - this.transientObservedNodes = []; - for (var i = 0; i < transientObservedNodes.length; i++) { - var node = transientObservedNodes[i]; - var registrations = registrationsTable.get(node); - for (var j = 0; j < registrations.length; j++) { - if (registrations[j] === this) { - registrations.splice(j, 1); - break; - } - } - } - } - }; - scope.enqueueMutation = enqueueMutation; - scope.registerTransientObservers = registerTransientObservers; - scope.wrappers.MutationObserver = MutationObserver; - scope.wrappers.MutationRecord = MutationRecord; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - function TreeScope(root, parent) { - this.root = root; - this.parent = parent; - } - TreeScope.prototype = { - get renderer() { - if (this.root instanceof scope.wrappers.ShadowRoot) { - return scope.getRendererForHost(this.root.host); - } - return null; - }, - contains: function(treeScope) { - for (;treeScope; treeScope = treeScope.parent) { - if (treeScope === this) return true; - } - return false; - } - }; - function setTreeScope(node, treeScope) { - if (node.treeScope_ !== treeScope) { - node.treeScope_ = treeScope; - for (var sr = node.shadowRoot; sr; sr = sr.olderShadowRoot) { - sr.treeScope_.parent = treeScope; - } - for (var child = node.firstChild; child; child = child.nextSibling) { - setTreeScope(child, treeScope); - } - } - } - function getTreeScope(node) { - if (node instanceof scope.wrappers.Window) { - debugger; - } - if (node.treeScope_) return node.treeScope_; - var parent = node.parentNode; - var treeScope; - if (parent) treeScope = getTreeScope(parent); else treeScope = new TreeScope(node, null); - return node.treeScope_ = treeScope; - } - scope.TreeScope = TreeScope; - scope.getTreeScope = getTreeScope; - scope.setTreeScope = setTreeScope; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var forwardMethodsToWrapper = scope.forwardMethodsToWrapper; - var getTreeScope = scope.getTreeScope; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var setWrapper = scope.setWrapper; - var unsafeUnwrap = scope.unsafeUnwrap; - var unwrap = scope.unwrap; - var wrap = scope.wrap; - var wrappers = scope.wrappers; - var wrappedFuns = new WeakMap(); - var listenersTable = new WeakMap(); - var handledEventsTable = new WeakMap(); - var currentlyDispatchingEvents = new WeakMap(); - var targetTable = new WeakMap(); - var currentTargetTable = new WeakMap(); - var relatedTargetTable = new WeakMap(); - var eventPhaseTable = new WeakMap(); - var stopPropagationTable = new WeakMap(); - var stopImmediatePropagationTable = new WeakMap(); - var eventHandlersTable = new WeakMap(); - var eventPathTable = new WeakMap(); - function isShadowRoot(node) { - return node instanceof wrappers.ShadowRoot; - } - function rootOfNode(node) { - return getTreeScope(node).root; - } - function getEventPath(node, event) { - var path = []; - var current = node; - path.push(current); - while (current) { - var destinationInsertionPoints = getDestinationInsertionPoints(current); - if (destinationInsertionPoints && destinationInsertionPoints.length > 0) { - for (var i = 0; i < destinationInsertionPoints.length; i++) { - var insertionPoint = destinationInsertionPoints[i]; - if (isShadowInsertionPoint(insertionPoint)) { - var shadowRoot = rootOfNode(insertionPoint); - var olderShadowRoot = shadowRoot.olderShadowRoot; - if (olderShadowRoot) path.push(olderShadowRoot); - } - path.push(insertionPoint); - } - current = destinationInsertionPoints[destinationInsertionPoints.length - 1]; - } else { - if (isShadowRoot(current)) { - if (inSameTree(node, current) && eventMustBeStopped(event)) { - break; - } - current = current.host; - path.push(current); - } else { - current = current.parentNode; - if (current) path.push(current); - } - } - } - return path; - } - function eventMustBeStopped(event) { - if (!event) return false; - switch (event.type) { - case "abort": - case "error": - case "select": - case "change": - case "load": - case "reset": - case "resize": - case "scroll": - case "selectstart": - return true; - } - return false; - } - function isShadowInsertionPoint(node) { - return node instanceof HTMLShadowElement; - } - function getDestinationInsertionPoints(node) { - return scope.getDestinationInsertionPoints(node); - } - function eventRetargetting(path, currentTarget) { - if (path.length === 0) return currentTarget; - if (currentTarget instanceof wrappers.Window) currentTarget = currentTarget.document; - var currentTargetTree = getTreeScope(currentTarget); - var originalTarget = path[0]; - var originalTargetTree = getTreeScope(originalTarget); - var relativeTargetTree = lowestCommonInclusiveAncestor(currentTargetTree, originalTargetTree); - for (var i = 0; i < path.length; i++) { - var node = path[i]; - if (getTreeScope(node) === relativeTargetTree) return node; - } - return path[path.length - 1]; - } - function getTreeScopeAncestors(treeScope) { - var ancestors = []; - for (;treeScope; treeScope = treeScope.parent) { - ancestors.push(treeScope); - } - return ancestors; - } - function lowestCommonInclusiveAncestor(tsA, tsB) { - var ancestorsA = getTreeScopeAncestors(tsA); - var ancestorsB = getTreeScopeAncestors(tsB); - var result = null; - while (ancestorsA.length > 0 && ancestorsB.length > 0) { - var a = ancestorsA.pop(); - var b = ancestorsB.pop(); - if (a === b) result = a; else break; - } - return result; - } - function getTreeScopeRoot(ts) { - if (!ts.parent) return ts; - return getTreeScopeRoot(ts.parent); - } - function relatedTargetResolution(event, currentTarget, relatedTarget) { - if (currentTarget instanceof wrappers.Window) currentTarget = currentTarget.document; - var currentTargetTree = getTreeScope(currentTarget); - var relatedTargetTree = getTreeScope(relatedTarget); - var relatedTargetEventPath = getEventPath(relatedTarget, event); - var lowestCommonAncestorTree; - var lowestCommonAncestorTree = lowestCommonInclusiveAncestor(currentTargetTree, relatedTargetTree); - if (!lowestCommonAncestorTree) lowestCommonAncestorTree = relatedTargetTree.root; - for (var commonAncestorTree = lowestCommonAncestorTree; commonAncestorTree; commonAncestorTree = commonAncestorTree.parent) { - var adjustedRelatedTarget; - for (var i = 0; i < relatedTargetEventPath.length; i++) { - var node = relatedTargetEventPath[i]; - if (getTreeScope(node) === commonAncestorTree) return node; - } - } - return null; - } - function inSameTree(a, b) { - return getTreeScope(a) === getTreeScope(b); - } - var NONE = 0; - var CAPTURING_PHASE = 1; - var AT_TARGET = 2; - var BUBBLING_PHASE = 3; - var pendingError; - function dispatchOriginalEvent(originalEvent) { - if (handledEventsTable.get(originalEvent)) return; - handledEventsTable.set(originalEvent, true); - dispatchEvent(wrap(originalEvent), wrap(originalEvent.target)); - if (pendingError) { - var err = pendingError; - pendingError = null; - throw err; - } - } - function isLoadLikeEvent(event) { - switch (event.type) { - case "load": - case "beforeunload": - case "unload": - return true; - } - return false; - } - function dispatchEvent(event, originalWrapperTarget) { - if (currentlyDispatchingEvents.get(event)) throw new Error("InvalidStateError"); - currentlyDispatchingEvents.set(event, true); - scope.renderAllPending(); - var eventPath; - var overrideTarget; - var win; - if (isLoadLikeEvent(event) && !event.bubbles) { - var doc = originalWrapperTarget; - if (doc instanceof wrappers.Document && (win = doc.defaultView)) { - overrideTarget = doc; - eventPath = []; - } - } - if (!eventPath) { - if (originalWrapperTarget instanceof wrappers.Window) { - win = originalWrapperTarget; - eventPath = []; - } else { - eventPath = getEventPath(originalWrapperTarget, event); - if (!isLoadLikeEvent(event)) { - var doc = eventPath[eventPath.length - 1]; - if (doc instanceof wrappers.Document) win = doc.defaultView; - } - } - } - eventPathTable.set(event, eventPath); - if (dispatchCapturing(event, eventPath, win, overrideTarget)) { - if (dispatchAtTarget(event, eventPath, win, overrideTarget)) { - dispatchBubbling(event, eventPath, win, overrideTarget); - } - } - eventPhaseTable.set(event, NONE); - currentTargetTable.delete(event, null); - currentlyDispatchingEvents.delete(event); - return event.defaultPrevented; - } - function dispatchCapturing(event, eventPath, win, overrideTarget) { - var phase = CAPTURING_PHASE; - if (win) { - if (!invoke(win, event, phase, eventPath, overrideTarget)) return false; - } - for (var i = eventPath.length - 1; i > 0; i--) { - if (!invoke(eventPath[i], event, phase, eventPath, overrideTarget)) return false; - } - return true; - } - function dispatchAtTarget(event, eventPath, win, overrideTarget) { - var phase = AT_TARGET; - var currentTarget = eventPath[0] || win; - return invoke(currentTarget, event, phase, eventPath, overrideTarget); - } - function dispatchBubbling(event, eventPath, win, overrideTarget) { - var phase = BUBBLING_PHASE; - for (var i = 1; i < eventPath.length; i++) { - if (!invoke(eventPath[i], event, phase, eventPath, overrideTarget)) return; - } - if (win && eventPath.length > 0) { - invoke(win, event, phase, eventPath, overrideTarget); - } - } - function invoke(currentTarget, event, phase, eventPath, overrideTarget) { - var listeners = listenersTable.get(currentTarget); - if (!listeners) return true; - var target = overrideTarget || eventRetargetting(eventPath, currentTarget); - if (target === currentTarget) { - if (phase === CAPTURING_PHASE) return true; - if (phase === BUBBLING_PHASE) phase = AT_TARGET; - } else if (phase === BUBBLING_PHASE && !event.bubbles) { - return true; - } - if ("relatedTarget" in event) { - var originalEvent = unwrap(event); - var unwrappedRelatedTarget = originalEvent.relatedTarget; - if (unwrappedRelatedTarget) { - if (unwrappedRelatedTarget instanceof Object && unwrappedRelatedTarget.addEventListener) { - var relatedTarget = wrap(unwrappedRelatedTarget); - var adjusted = relatedTargetResolution(event, currentTarget, relatedTarget); - if (adjusted === target) return true; - } else { - adjusted = null; - } - relatedTargetTable.set(event, adjusted); - } - } - eventPhaseTable.set(event, phase); - var type = event.type; - var anyRemoved = false; - targetTable.set(event, target); - currentTargetTable.set(event, currentTarget); - listeners.depth++; - for (var i = 0, len = listeners.length; i < len; i++) { - var listener = listeners[i]; - if (listener.removed) { - anyRemoved = true; - continue; - } - if (listener.type !== type || !listener.capture && phase === CAPTURING_PHASE || listener.capture && phase === BUBBLING_PHASE) { - continue; - } - try { - if (typeof listener.handler === "function") listener.handler.call(currentTarget, event); else listener.handler.handleEvent(event); - if (stopImmediatePropagationTable.get(event)) return false; - } catch (ex) { - if (!pendingError) pendingError = ex; - } - } - listeners.depth--; - if (anyRemoved && listeners.depth === 0) { - var copy = listeners.slice(); - listeners.length = 0; - for (var i = 0; i < copy.length; i++) { - if (!copy[i].removed) listeners.push(copy[i]); - } - } - return !stopPropagationTable.get(event); - } - function Listener(type, handler, capture) { - this.type = type; - this.handler = handler; - this.capture = Boolean(capture); - } - Listener.prototype = { - equals: function(that) { - return this.handler === that.handler && this.type === that.type && this.capture === that.capture; - }, - get removed() { - return this.handler === null; - }, - remove: function() { - this.handler = null; - } - }; - var OriginalEvent = window.Event; - OriginalEvent.prototype.polymerBlackList_ = { - returnValue: true, - keyLocation: true - }; - function Event(type, options) { - if (type instanceof OriginalEvent) { - var impl = type; - if (!OriginalBeforeUnloadEvent && impl.type === "beforeunload" && !(this instanceof BeforeUnloadEvent)) { - return new BeforeUnloadEvent(impl); - } - setWrapper(impl, this); - } else { - return wrap(constructEvent(OriginalEvent, "Event", type, options)); - } - } - Event.prototype = { - get target() { - return targetTable.get(this); - }, - get currentTarget() { - return currentTargetTable.get(this); - }, - get eventPhase() { - return eventPhaseTable.get(this); - }, - get path() { - var eventPath = eventPathTable.get(this); - if (!eventPath) return []; - return eventPath.slice(); - }, - stopPropagation: function() { - stopPropagationTable.set(this, true); - }, - stopImmediatePropagation: function() { - stopPropagationTable.set(this, true); - stopImmediatePropagationTable.set(this, true); - } - }; - registerWrapper(OriginalEvent, Event, document.createEvent("Event")); - function unwrapOptions(options) { - if (!options || !options.relatedTarget) return options; - return Object.create(options, { - relatedTarget: { - value: unwrap(options.relatedTarget) - } - }); - } - function registerGenericEvent(name, SuperEvent, prototype) { - var OriginalEvent = window[name]; - var GenericEvent = function(type, options) { - if (type instanceof OriginalEvent) setWrapper(type, this); else return wrap(constructEvent(OriginalEvent, name, type, options)); - }; - GenericEvent.prototype = Object.create(SuperEvent.prototype); - if (prototype) mixin(GenericEvent.prototype, prototype); - if (OriginalEvent) { - try { - registerWrapper(OriginalEvent, GenericEvent, new OriginalEvent("temp")); - } catch (ex) { - registerWrapper(OriginalEvent, GenericEvent, document.createEvent(name)); - } - } - return GenericEvent; - } - var UIEvent = registerGenericEvent("UIEvent", Event); - var CustomEvent = registerGenericEvent("CustomEvent", Event); - var relatedTargetProto = { - get relatedTarget() { - var relatedTarget = relatedTargetTable.get(this); - if (relatedTarget !== undefined) return relatedTarget; - return wrap(unwrap(this).relatedTarget); - } - }; - function getInitFunction(name, relatedTargetIndex) { - return function() { - arguments[relatedTargetIndex] = unwrap(arguments[relatedTargetIndex]); - var impl = unwrap(this); - impl[name].apply(impl, arguments); - }; - } - var mouseEventProto = mixin({ - initMouseEvent: getInitFunction("initMouseEvent", 14) - }, relatedTargetProto); - var focusEventProto = mixin({ - initFocusEvent: getInitFunction("initFocusEvent", 5) - }, relatedTargetProto); - var MouseEvent = registerGenericEvent("MouseEvent", UIEvent, mouseEventProto); - var FocusEvent = registerGenericEvent("FocusEvent", UIEvent, focusEventProto); - var defaultInitDicts = Object.create(null); - var supportsEventConstructors = function() { - try { - new window.FocusEvent("focus"); - } catch (ex) { - return false; - } - return true; - }(); - function constructEvent(OriginalEvent, name, type, options) { - if (supportsEventConstructors) return new OriginalEvent(type, unwrapOptions(options)); - var event = unwrap(document.createEvent(name)); - var defaultDict = defaultInitDicts[name]; - var args = [ type ]; - Object.keys(defaultDict).forEach(function(key) { - var v = options != null && key in options ? options[key] : defaultDict[key]; - if (key === "relatedTarget") v = unwrap(v); - args.push(v); - }); - event["init" + name].apply(event, args); - return event; - } - if (!supportsEventConstructors) { - var configureEventConstructor = function(name, initDict, superName) { - if (superName) { - var superDict = defaultInitDicts[superName]; - initDict = mixin(mixin({}, superDict), initDict); - } - defaultInitDicts[name] = initDict; - }; - configureEventConstructor("Event", { - bubbles: false, - cancelable: false - }); - configureEventConstructor("CustomEvent", { - detail: null - }, "Event"); - configureEventConstructor("UIEvent", { - view: null, - detail: 0 - }, "Event"); - configureEventConstructor("MouseEvent", { - screenX: 0, - screenY: 0, - clientX: 0, - clientY: 0, - ctrlKey: false, - altKey: false, - shiftKey: false, - metaKey: false, - button: 0, - relatedTarget: null - }, "UIEvent"); - configureEventConstructor("FocusEvent", { - relatedTarget: null - }, "UIEvent"); - } - var OriginalBeforeUnloadEvent = window.BeforeUnloadEvent; - function BeforeUnloadEvent(impl) { - Event.call(this, impl); - } - BeforeUnloadEvent.prototype = Object.create(Event.prototype); - mixin(BeforeUnloadEvent.prototype, { - get returnValue() { - return unsafeUnwrap(this).returnValue; - }, - set returnValue(v) { - unsafeUnwrap(this).returnValue = v; - } - }); - if (OriginalBeforeUnloadEvent) registerWrapper(OriginalBeforeUnloadEvent, BeforeUnloadEvent); - function isValidListener(fun) { - if (typeof fun === "function") return true; - return fun && fun.handleEvent; - } - function isMutationEvent(type) { - switch (type) { - case "DOMAttrModified": - case "DOMAttributeNameChanged": - case "DOMCharacterDataModified": - case "DOMElementNameChanged": - case "DOMNodeInserted": - case "DOMNodeInsertedIntoDocument": - case "DOMNodeRemoved": - case "DOMNodeRemovedFromDocument": - case "DOMSubtreeModified": - return true; - } - return false; - } - var OriginalEventTarget = window.EventTarget; - function EventTarget(impl) { - setWrapper(impl, this); - } - var methodNames = [ "addEventListener", "removeEventListener", "dispatchEvent" ]; - [ Node, Window ].forEach(function(constructor) { - var p = constructor.prototype; - methodNames.forEach(function(name) { - Object.defineProperty(p, name + "_", { - value: p[name] - }); - }); - }); - function getTargetToListenAt(wrapper) { - if (wrapper instanceof wrappers.ShadowRoot) wrapper = wrapper.host; - return unwrap(wrapper); - } - EventTarget.prototype = { - addEventListener: function(type, fun, capture) { - if (!isValidListener(fun) || isMutationEvent(type)) return; - var listener = new Listener(type, fun, capture); - var listeners = listenersTable.get(this); - if (!listeners) { - listeners = []; - listeners.depth = 0; - listenersTable.set(this, listeners); - } else { - for (var i = 0; i < listeners.length; i++) { - if (listener.equals(listeners[i])) return; - } - } - listeners.push(listener); - var target = getTargetToListenAt(this); - target.addEventListener_(type, dispatchOriginalEvent, true); - }, - removeEventListener: function(type, fun, capture) { - capture = Boolean(capture); - var listeners = listenersTable.get(this); - if (!listeners) return; - var count = 0, found = false; - for (var i = 0; i < listeners.length; i++) { - if (listeners[i].type === type && listeners[i].capture === capture) { - count++; - if (listeners[i].handler === fun) { - found = true; - listeners[i].remove(); - } - } - } - if (found && count === 1) { - var target = getTargetToListenAt(this); - target.removeEventListener_(type, dispatchOriginalEvent, true); - } - }, - dispatchEvent: function(event) { - var nativeEvent = unwrap(event); - var eventType = nativeEvent.type; - handledEventsTable.set(nativeEvent, false); - scope.renderAllPending(); - var tempListener; - if (!hasListenerInAncestors(this, eventType)) { - tempListener = function() {}; - this.addEventListener(eventType, tempListener, true); - } - try { - return unwrap(this).dispatchEvent_(nativeEvent); - } finally { - if (tempListener) this.removeEventListener(eventType, tempListener, true); - } - } - }; - function hasListener(node, type) { - var listeners = listenersTable.get(node); - if (listeners) { - for (var i = 0; i < listeners.length; i++) { - if (!listeners[i].removed && listeners[i].type === type) return true; - } - } - return false; - } - function hasListenerInAncestors(target, type) { - for (var node = unwrap(target); node; node = node.parentNode) { - if (hasListener(wrap(node), type)) return true; - } - return false; - } - if (OriginalEventTarget) registerWrapper(OriginalEventTarget, EventTarget); - function wrapEventTargetMethods(constructors) { - forwardMethodsToWrapper(constructors, methodNames); - } - var originalElementFromPoint = document.elementFromPoint; - function elementFromPoint(self, document, x, y) { - scope.renderAllPending(); - var element = wrap(originalElementFromPoint.call(unsafeUnwrap(document), x, y)); - if (!element) return null; - var path = getEventPath(element, null); - var idx = path.lastIndexOf(self); - if (idx == -1) return null; else path = path.slice(0, idx); - return eventRetargetting(path, self); - } - function getEventHandlerGetter(name) { - return function() { - var inlineEventHandlers = eventHandlersTable.get(this); - return inlineEventHandlers && inlineEventHandlers[name] && inlineEventHandlers[name].value || null; - }; - } - function getEventHandlerSetter(name) { - var eventType = name.slice(2); - return function(value) { - var inlineEventHandlers = eventHandlersTable.get(this); - if (!inlineEventHandlers) { - inlineEventHandlers = Object.create(null); - eventHandlersTable.set(this, inlineEventHandlers); - } - var old = inlineEventHandlers[name]; - if (old) this.removeEventListener(eventType, old.wrapped, false); - if (typeof value === "function") { - var wrapped = function(e) { - var rv = value.call(this, e); - if (rv === false) e.preventDefault(); else if (name === "onbeforeunload" && typeof rv === "string") e.returnValue = rv; - }; - this.addEventListener(eventType, wrapped, false); - inlineEventHandlers[name] = { - value: value, - wrapped: wrapped - }; - } - }; - } - scope.elementFromPoint = elementFromPoint; - scope.getEventHandlerGetter = getEventHandlerGetter; - scope.getEventHandlerSetter = getEventHandlerSetter; - scope.wrapEventTargetMethods = wrapEventTargetMethods; - scope.wrappers.BeforeUnloadEvent = BeforeUnloadEvent; - scope.wrappers.CustomEvent = CustomEvent; - scope.wrappers.Event = Event; - scope.wrappers.EventTarget = EventTarget; - scope.wrappers.FocusEvent = FocusEvent; - scope.wrappers.MouseEvent = MouseEvent; - scope.wrappers.UIEvent = UIEvent; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var UIEvent = scope.wrappers.UIEvent; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var setWrapper = scope.setWrapper; - var unsafeUnwrap = scope.unsafeUnwrap; - var wrap = scope.wrap; - var OriginalTouchEvent = window.TouchEvent; - if (!OriginalTouchEvent) return; - var nativeEvent; - try { - nativeEvent = document.createEvent("TouchEvent"); - } catch (ex) { - return; - } - var nonEnumDescriptor = { - enumerable: false - }; - function nonEnum(obj, prop) { - Object.defineProperty(obj, prop, nonEnumDescriptor); - } - function Touch(impl) { - setWrapper(impl, this); - } - Touch.prototype = { - get target() { - return wrap(unsafeUnwrap(this).target); - } - }; - var descr = { - configurable: true, - enumerable: true, - get: null - }; - [ "clientX", "clientY", "screenX", "screenY", "pageX", "pageY", "identifier", "webkitRadiusX", "webkitRadiusY", "webkitRotationAngle", "webkitForce" ].forEach(function(name) { - descr.get = function() { - return unsafeUnwrap(this)[name]; - }; - Object.defineProperty(Touch.prototype, name, descr); - }); - function TouchList() { - this.length = 0; - nonEnum(this, "length"); - } - TouchList.prototype = { - item: function(index) { - return this[index]; - } - }; - function wrapTouchList(nativeTouchList) { - var list = new TouchList(); - for (var i = 0; i < nativeTouchList.length; i++) { - list[i] = new Touch(nativeTouchList[i]); - } - list.length = i; - return list; - } - function TouchEvent(impl) { - UIEvent.call(this, impl); - } - TouchEvent.prototype = Object.create(UIEvent.prototype); - mixin(TouchEvent.prototype, { - get touches() { - return wrapTouchList(unsafeUnwrap(this).touches); - }, - get targetTouches() { - return wrapTouchList(unsafeUnwrap(this).targetTouches); - }, - get changedTouches() { - return wrapTouchList(unsafeUnwrap(this).changedTouches); - }, - initTouchEvent: function() { - throw new Error("Not implemented"); - } - }); - registerWrapper(OriginalTouchEvent, TouchEvent, nativeEvent); - scope.wrappers.Touch = Touch; - scope.wrappers.TouchEvent = TouchEvent; - scope.wrappers.TouchList = TouchList; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var unsafeUnwrap = scope.unsafeUnwrap; - var wrap = scope.wrap; - var nonEnumDescriptor = { - enumerable: false - }; - function nonEnum(obj, prop) { - Object.defineProperty(obj, prop, nonEnumDescriptor); - } - function NodeList() { - this.length = 0; - nonEnum(this, "length"); - } - NodeList.prototype = { - item: function(index) { - return this[index]; - } - }; - nonEnum(NodeList.prototype, "item"); - function wrapNodeList(list) { - if (list == null) return list; - var wrapperList = new NodeList(); - for (var i = 0, length = list.length; i < length; i++) { - wrapperList[i] = wrap(list[i]); - } - wrapperList.length = length; - return wrapperList; - } - function addWrapNodeListMethod(wrapperConstructor, name) { - wrapperConstructor.prototype[name] = function() { - return wrapNodeList(unsafeUnwrap(this)[name].apply(unsafeUnwrap(this), arguments)); - }; - } - scope.wrappers.NodeList = NodeList; - scope.addWrapNodeListMethod = addWrapNodeListMethod; - scope.wrapNodeList = wrapNodeList; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - scope.wrapHTMLCollection = scope.wrapNodeList; - scope.wrappers.HTMLCollection = scope.wrappers.NodeList; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var EventTarget = scope.wrappers.EventTarget; - var NodeList = scope.wrappers.NodeList; - var TreeScope = scope.TreeScope; - var assert = scope.assert; - var defineWrapGetter = scope.defineWrapGetter; - var enqueueMutation = scope.enqueueMutation; - var getTreeScope = scope.getTreeScope; - var isWrapper = scope.isWrapper; - var mixin = scope.mixin; - var registerTransientObservers = scope.registerTransientObservers; - var registerWrapper = scope.registerWrapper; - var setTreeScope = scope.setTreeScope; - var unsafeUnwrap = scope.unsafeUnwrap; - var unwrap = scope.unwrap; - var unwrapIfNeeded = scope.unwrapIfNeeded; - var wrap = scope.wrap; - var wrapIfNeeded = scope.wrapIfNeeded; - var wrappers = scope.wrappers; - function assertIsNodeWrapper(node) { - assert(node instanceof Node); - } - function createOneElementNodeList(node) { - var nodes = new NodeList(); - nodes[0] = node; - nodes.length = 1; - return nodes; - } - var surpressMutations = false; - function enqueueRemovalForInsertedNodes(node, parent, nodes) { - enqueueMutation(parent, "childList", { - removedNodes: nodes, - previousSibling: node.previousSibling, - nextSibling: node.nextSibling - }); - } - function enqueueRemovalForInsertedDocumentFragment(df, nodes) { - enqueueMutation(df, "childList", { - removedNodes: nodes - }); - } - function collectNodes(node, parentNode, previousNode, nextNode) { - if (node instanceof DocumentFragment) { - var nodes = collectNodesForDocumentFragment(node); - surpressMutations = true; - for (var i = nodes.length - 1; i >= 0; i--) { - node.removeChild(nodes[i]); - nodes[i].parentNode_ = parentNode; - } - surpressMutations = false; - for (var i = 0; i < nodes.length; i++) { - nodes[i].previousSibling_ = nodes[i - 1] || previousNode; - nodes[i].nextSibling_ = nodes[i + 1] || nextNode; - } - if (previousNode) previousNode.nextSibling_ = nodes[0]; - if (nextNode) nextNode.previousSibling_ = nodes[nodes.length - 1]; - return nodes; - } - var nodes = createOneElementNodeList(node); - var oldParent = node.parentNode; - if (oldParent) { - oldParent.removeChild(node); - } - node.parentNode_ = parentNode; - node.previousSibling_ = previousNode; - node.nextSibling_ = nextNode; - if (previousNode) previousNode.nextSibling_ = node; - if (nextNode) nextNode.previousSibling_ = node; - return nodes; - } - function collectNodesNative(node) { - if (node instanceof DocumentFragment) return collectNodesForDocumentFragment(node); - var nodes = createOneElementNodeList(node); - var oldParent = node.parentNode; - if (oldParent) enqueueRemovalForInsertedNodes(node, oldParent, nodes); - return nodes; - } - function collectNodesForDocumentFragment(node) { - var nodes = new NodeList(); - var i = 0; - for (var child = node.firstChild; child; child = child.nextSibling) { - nodes[i++] = child; - } - nodes.length = i; - enqueueRemovalForInsertedDocumentFragment(node, nodes); - return nodes; - } - function snapshotNodeList(nodeList) { - return nodeList; - } - function nodeWasAdded(node, treeScope) { - setTreeScope(node, treeScope); - node.nodeIsInserted_(); - } - function nodesWereAdded(nodes, parent) { - var treeScope = getTreeScope(parent); - for (var i = 0; i < nodes.length; i++) { - nodeWasAdded(nodes[i], treeScope); - } - } - function nodeWasRemoved(node) { - setTreeScope(node, new TreeScope(node, null)); - } - function nodesWereRemoved(nodes) { - for (var i = 0; i < nodes.length; i++) { - nodeWasRemoved(nodes[i]); - } - } - function ensureSameOwnerDocument(parent, child) { - var ownerDoc = parent.nodeType === Node.DOCUMENT_NODE ? parent : parent.ownerDocument; - if (ownerDoc !== child.ownerDocument) ownerDoc.adoptNode(child); - } - function adoptNodesIfNeeded(owner, nodes) { - if (!nodes.length) return; - var ownerDoc = owner.ownerDocument; - if (ownerDoc === nodes[0].ownerDocument) return; - for (var i = 0; i < nodes.length; i++) { - scope.adoptNodeNoRemove(nodes[i], ownerDoc); - } - } - function unwrapNodesForInsertion(owner, nodes) { - adoptNodesIfNeeded(owner, nodes); - var length = nodes.length; - if (length === 1) return unwrap(nodes[0]); - var df = unwrap(owner.ownerDocument.createDocumentFragment()); - for (var i = 0; i < length; i++) { - df.appendChild(unwrap(nodes[i])); - } - return df; - } - function clearChildNodes(wrapper) { - if (wrapper.firstChild_ !== undefined) { - var child = wrapper.firstChild_; - while (child) { - var tmp = child; - child = child.nextSibling_; - tmp.parentNode_ = tmp.previousSibling_ = tmp.nextSibling_ = undefined; - } - } - wrapper.firstChild_ = wrapper.lastChild_ = undefined; - } - function removeAllChildNodes(wrapper) { - if (wrapper.invalidateShadowRenderer()) { - var childWrapper = wrapper.firstChild; - while (childWrapper) { - assert(childWrapper.parentNode === wrapper); - var nextSibling = childWrapper.nextSibling; - var childNode = unwrap(childWrapper); - var parentNode = childNode.parentNode; - if (parentNode) originalRemoveChild.call(parentNode, childNode); - childWrapper.previousSibling_ = childWrapper.nextSibling_ = childWrapper.parentNode_ = null; - childWrapper = nextSibling; - } - wrapper.firstChild_ = wrapper.lastChild_ = null; - } else { - var node = unwrap(wrapper); - var child = node.firstChild; - var nextSibling; - while (child) { - nextSibling = child.nextSibling; - originalRemoveChild.call(node, child); - child = nextSibling; - } - } - } - function invalidateParent(node) { - var p = node.parentNode; - return p && p.invalidateShadowRenderer(); - } - function cleanupNodes(nodes) { - for (var i = 0, n; i < nodes.length; i++) { - n = nodes[i]; - n.parentNode.removeChild(n); - } - } - var originalImportNode = document.importNode; - var originalCloneNode = window.Node.prototype.cloneNode; - function cloneNode(node, deep, opt_doc) { - var clone; - if (opt_doc) clone = wrap(originalImportNode.call(opt_doc, unsafeUnwrap(node), false)); else clone = wrap(originalCloneNode.call(unsafeUnwrap(node), false)); - if (deep) { - for (var child = node.firstChild; child; child = child.nextSibling) { - clone.appendChild(cloneNode(child, true, opt_doc)); - } - if (node instanceof wrappers.HTMLTemplateElement) { - var cloneContent = clone.content; - for (var child = node.content.firstChild; child; child = child.nextSibling) { - cloneContent.appendChild(cloneNode(child, true, opt_doc)); - } - } - } - return clone; - } - function contains(self, child) { - if (!child || getTreeScope(self) !== getTreeScope(child)) return false; - for (var node = child; node; node = node.parentNode) { - if (node === self) return true; - } - return false; - } - var OriginalNode = window.Node; - function Node(original) { - assert(original instanceof OriginalNode); - EventTarget.call(this, original); - this.parentNode_ = undefined; - this.firstChild_ = undefined; - this.lastChild_ = undefined; - this.nextSibling_ = undefined; - this.previousSibling_ = undefined; - this.treeScope_ = undefined; - } - var OriginalDocumentFragment = window.DocumentFragment; - var originalAppendChild = OriginalNode.prototype.appendChild; - var originalCompareDocumentPosition = OriginalNode.prototype.compareDocumentPosition; - var originalIsEqualNode = OriginalNode.prototype.isEqualNode; - var originalInsertBefore = OriginalNode.prototype.insertBefore; - var originalRemoveChild = OriginalNode.prototype.removeChild; - var originalReplaceChild = OriginalNode.prototype.replaceChild; - var isIe = /Trident|Edge/.test(navigator.userAgent); - var removeChildOriginalHelper = isIe ? function(parent, child) { - try { - originalRemoveChild.call(parent, child); - } catch (ex) { - if (!(parent instanceof OriginalDocumentFragment)) throw ex; - } - } : function(parent, child) { - originalRemoveChild.call(parent, child); - }; - Node.prototype = Object.create(EventTarget.prototype); - mixin(Node.prototype, { - appendChild: function(childWrapper) { - return this.insertBefore(childWrapper, null); - }, - insertBefore: function(childWrapper, refWrapper) { - assertIsNodeWrapper(childWrapper); - var refNode; - if (refWrapper) { - if (isWrapper(refWrapper)) { - refNode = unwrap(refWrapper); - } else { - refNode = refWrapper; - refWrapper = wrap(refNode); - } - } else { - refWrapper = null; - refNode = null; - } - refWrapper && assert(refWrapper.parentNode === this); - var nodes; - var previousNode = refWrapper ? refWrapper.previousSibling : this.lastChild; - var useNative = !this.invalidateShadowRenderer() && !invalidateParent(childWrapper); - if (useNative) nodes = collectNodesNative(childWrapper); else nodes = collectNodes(childWrapper, this, previousNode, refWrapper); - if (useNative) { - ensureSameOwnerDocument(this, childWrapper); - clearChildNodes(this); - originalInsertBefore.call(unsafeUnwrap(this), unwrap(childWrapper), refNode); - } else { - if (!previousNode) this.firstChild_ = nodes[0]; - if (!refWrapper) { - this.lastChild_ = nodes[nodes.length - 1]; - if (this.firstChild_ === undefined) this.firstChild_ = this.firstChild; - } - var parentNode = refNode ? refNode.parentNode : unsafeUnwrap(this); - if (parentNode) { - originalInsertBefore.call(parentNode, unwrapNodesForInsertion(this, nodes), refNode); - } else { - adoptNodesIfNeeded(this, nodes); - } - } - enqueueMutation(this, "childList", { - addedNodes: nodes, - nextSibling: refWrapper, - previousSibling: previousNode - }); - nodesWereAdded(nodes, this); - return childWrapper; - }, - removeChild: function(childWrapper) { - assertIsNodeWrapper(childWrapper); - if (childWrapper.parentNode !== this) { - var found = false; - var childNodes = this.childNodes; - for (var ieChild = this.firstChild; ieChild; ieChild = ieChild.nextSibling) { - if (ieChild === childWrapper) { - found = true; - break; - } - } - if (!found) { - throw new Error("NotFoundError"); - } - } - var childNode = unwrap(childWrapper); - var childWrapperNextSibling = childWrapper.nextSibling; - var childWrapperPreviousSibling = childWrapper.previousSibling; - if (this.invalidateShadowRenderer()) { - var thisFirstChild = this.firstChild; - var thisLastChild = this.lastChild; - var parentNode = childNode.parentNode; - if (parentNode) removeChildOriginalHelper(parentNode, childNode); - if (thisFirstChild === childWrapper) this.firstChild_ = childWrapperNextSibling; - if (thisLastChild === childWrapper) this.lastChild_ = childWrapperPreviousSibling; - if (childWrapperPreviousSibling) childWrapperPreviousSibling.nextSibling_ = childWrapperNextSibling; - if (childWrapperNextSibling) { - childWrapperNextSibling.previousSibling_ = childWrapperPreviousSibling; - } - childWrapper.previousSibling_ = childWrapper.nextSibling_ = childWrapper.parentNode_ = undefined; - } else { - clearChildNodes(this); - removeChildOriginalHelper(unsafeUnwrap(this), childNode); - } - if (!surpressMutations) { - enqueueMutation(this, "childList", { - removedNodes: createOneElementNodeList(childWrapper), - nextSibling: childWrapperNextSibling, - previousSibling: childWrapperPreviousSibling - }); - } - registerTransientObservers(this, childWrapper); - return childWrapper; - }, - replaceChild: function(newChildWrapper, oldChildWrapper) { - assertIsNodeWrapper(newChildWrapper); - var oldChildNode; - if (isWrapper(oldChildWrapper)) { - oldChildNode = unwrap(oldChildWrapper); - } else { - oldChildNode = oldChildWrapper; - oldChildWrapper = wrap(oldChildNode); - } - if (oldChildWrapper.parentNode !== this) { - throw new Error("NotFoundError"); - } - var nextNode = oldChildWrapper.nextSibling; - var previousNode = oldChildWrapper.previousSibling; - var nodes; - var useNative = !this.invalidateShadowRenderer() && !invalidateParent(newChildWrapper); - if (useNative) { - nodes = collectNodesNative(newChildWrapper); - } else { - if (nextNode === newChildWrapper) nextNode = newChildWrapper.nextSibling; - nodes = collectNodes(newChildWrapper, this, previousNode, nextNode); - } - if (!useNative) { - if (this.firstChild === oldChildWrapper) this.firstChild_ = nodes[0]; - if (this.lastChild === oldChildWrapper) this.lastChild_ = nodes[nodes.length - 1]; - oldChildWrapper.previousSibling_ = oldChildWrapper.nextSibling_ = oldChildWrapper.parentNode_ = undefined; - if (oldChildNode.parentNode) { - originalReplaceChild.call(oldChildNode.parentNode, unwrapNodesForInsertion(this, nodes), oldChildNode); - } - } else { - ensureSameOwnerDocument(this, newChildWrapper); - clearChildNodes(this); - originalReplaceChild.call(unsafeUnwrap(this), unwrap(newChildWrapper), oldChildNode); - } - enqueueMutation(this, "childList", { - addedNodes: nodes, - removedNodes: createOneElementNodeList(oldChildWrapper), - nextSibling: nextNode, - previousSibling: previousNode - }); - nodeWasRemoved(oldChildWrapper); - nodesWereAdded(nodes, this); - return oldChildWrapper; - }, - nodeIsInserted_: function() { - for (var child = this.firstChild; child; child = child.nextSibling) { - child.nodeIsInserted_(); - } - }, - hasChildNodes: function() { - return this.firstChild !== null; - }, - get parentNode() { - return this.parentNode_ !== undefined ? this.parentNode_ : wrap(unsafeUnwrap(this).parentNode); - }, - get firstChild() { - return this.firstChild_ !== undefined ? this.firstChild_ : wrap(unsafeUnwrap(this).firstChild); - }, - get lastChild() { - return this.lastChild_ !== undefined ? this.lastChild_ : wrap(unsafeUnwrap(this).lastChild); - }, - get nextSibling() { - return this.nextSibling_ !== undefined ? this.nextSibling_ : wrap(unsafeUnwrap(this).nextSibling); - }, - get previousSibling() { - return this.previousSibling_ !== undefined ? this.previousSibling_ : wrap(unsafeUnwrap(this).previousSibling); - }, - get parentElement() { - var p = this.parentNode; - while (p && p.nodeType !== Node.ELEMENT_NODE) { - p = p.parentNode; - } - return p; - }, - get textContent() { - var s = ""; - for (var child = this.firstChild; child; child = child.nextSibling) { - if (child.nodeType != Node.COMMENT_NODE) { - s += child.textContent; - } - } - return s; - }, - set textContent(textContent) { - if (textContent == null) textContent = ""; - var removedNodes = snapshotNodeList(this.childNodes); - if (this.invalidateShadowRenderer()) { - removeAllChildNodes(this); - if (textContent !== "") { - var textNode = unsafeUnwrap(this).ownerDocument.createTextNode(textContent); - this.appendChild(textNode); - } - } else { - clearChildNodes(this); - unsafeUnwrap(this).textContent = textContent; - } - var addedNodes = snapshotNodeList(this.childNodes); - enqueueMutation(this, "childList", { - addedNodes: addedNodes, - removedNodes: removedNodes - }); - nodesWereRemoved(removedNodes); - nodesWereAdded(addedNodes, this); - }, - get childNodes() { - var wrapperList = new NodeList(); - var i = 0; - for (var child = this.firstChild; child; child = child.nextSibling) { - wrapperList[i++] = child; - } - wrapperList.length = i; - return wrapperList; - }, - cloneNode: function(deep) { - return cloneNode(this, deep); - }, - contains: function(child) { - return contains(this, wrapIfNeeded(child)); - }, - compareDocumentPosition: function(otherNode) { - return originalCompareDocumentPosition.call(unsafeUnwrap(this), unwrapIfNeeded(otherNode)); - }, - isEqualNode: function(otherNode) { - return originalIsEqualNode.call(unsafeUnwrap(this), unwrapIfNeeded(otherNode)); - }, - normalize: function() { - var nodes = snapshotNodeList(this.childNodes); - var remNodes = []; - var s = ""; - var modNode; - for (var i = 0, n; i < nodes.length; i++) { - n = nodes[i]; - if (n.nodeType === Node.TEXT_NODE) { - if (!modNode && !n.data.length) this.removeChild(n); else if (!modNode) modNode = n; else { - s += n.data; - remNodes.push(n); - } - } else { - if (modNode && remNodes.length) { - modNode.data += s; - cleanupNodes(remNodes); - } - remNodes = []; - s = ""; - modNode = null; - if (n.childNodes.length) n.normalize(); - } - } - if (modNode && remNodes.length) { - modNode.data += s; - cleanupNodes(remNodes); - } - } - }); - defineWrapGetter(Node, "ownerDocument"); - registerWrapper(OriginalNode, Node, document.createDocumentFragment()); - delete Node.prototype.querySelector; - delete Node.prototype.querySelectorAll; - Node.prototype = mixin(Object.create(EventTarget.prototype), Node.prototype); - scope.cloneNode = cloneNode; - scope.nodeWasAdded = nodeWasAdded; - scope.nodeWasRemoved = nodeWasRemoved; - scope.nodesWereAdded = nodesWereAdded; - scope.nodesWereRemoved = nodesWereRemoved; - scope.originalInsertBefore = originalInsertBefore; - scope.originalRemoveChild = originalRemoveChild; - scope.snapshotNodeList = snapshotNodeList; - scope.wrappers.Node = Node; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var HTMLCollection = scope.wrappers.HTMLCollection; - var NodeList = scope.wrappers.NodeList; - var getTreeScope = scope.getTreeScope; - var unsafeUnwrap = scope.unsafeUnwrap; - var wrap = scope.wrap; - var originalDocumentQuerySelector = document.querySelector; - var originalElementQuerySelector = document.documentElement.querySelector; - var originalDocumentQuerySelectorAll = document.querySelectorAll; - var originalElementQuerySelectorAll = document.documentElement.querySelectorAll; - var originalDocumentGetElementsByTagName = document.getElementsByTagName; - var originalElementGetElementsByTagName = document.documentElement.getElementsByTagName; - var originalDocumentGetElementsByTagNameNS = document.getElementsByTagNameNS; - var originalElementGetElementsByTagNameNS = document.documentElement.getElementsByTagNameNS; - var OriginalElement = window.Element; - var OriginalDocument = window.HTMLDocument || window.Document; - function filterNodeList(list, index, result, deep) { - var wrappedItem = null; - var root = null; - for (var i = 0, length = list.length; i < length; i++) { - wrappedItem = wrap(list[i]); - if (!deep && (root = getTreeScope(wrappedItem).root)) { - if (root instanceof scope.wrappers.ShadowRoot) { - continue; - } - } - result[index++] = wrappedItem; - } - return index; - } - function shimSelector(selector) { - return String(selector).replace(/\/deep\/|::shadow|>>>/g, " "); - } - function shimMatchesSelector(selector) { - return String(selector).replace(/:host\(([^\s]+)\)/g, "$1").replace(/([^\s]):host/g, "$1").replace(":host", "*").replace(/\^|\/shadow\/|\/shadow-deep\/|::shadow|\/deep\/|::content|>>>/g, " "); - } - function findOne(node, selector) { - var m, el = node.firstElementChild; - while (el) { - if (el.matches(selector)) return el; - m = findOne(el, selector); - if (m) return m; - el = el.nextElementSibling; - } - return null; - } - function matchesSelector(el, selector) { - return el.matches(selector); - } - var XHTML_NS = "http://www.w3.org/1999/xhtml"; - function matchesTagName(el, localName, localNameLowerCase) { - var ln = el.localName; - return ln === localName || ln === localNameLowerCase && el.namespaceURI === XHTML_NS; - } - function matchesEveryThing() { - return true; - } - function matchesLocalNameOnly(el, ns, localName) { - return el.localName === localName; - } - function matchesNameSpace(el, ns) { - return el.namespaceURI === ns; - } - function matchesLocalNameNS(el, ns, localName) { - return el.namespaceURI === ns && el.localName === localName; - } - function findElements(node, index, result, p, arg0, arg1) { - var el = node.firstElementChild; - while (el) { - if (p(el, arg0, arg1)) result[index++] = el; - index = findElements(el, index, result, p, arg0, arg1); - el = el.nextElementSibling; - } - return index; - } - function querySelectorAllFiltered(p, index, result, selector, deep) { - var target = unsafeUnwrap(this); - var list; - var root = getTreeScope(this).root; - if (root instanceof scope.wrappers.ShadowRoot) { - return findElements(this, index, result, p, selector, null); - } else if (target instanceof OriginalElement) { - list = originalElementQuerySelectorAll.call(target, selector); - } else if (target instanceof OriginalDocument) { - list = originalDocumentQuerySelectorAll.call(target, selector); - } else { - return findElements(this, index, result, p, selector, null); - } - return filterNodeList(list, index, result, deep); - } - var SelectorsInterface = { - querySelector: function(selector) { - var shimmed = shimSelector(selector); - var deep = shimmed !== selector; - selector = shimmed; - var target = unsafeUnwrap(this); - var wrappedItem; - var root = getTreeScope(this).root; - if (root instanceof scope.wrappers.ShadowRoot) { - return findOne(this, selector); - } else if (target instanceof OriginalElement) { - wrappedItem = wrap(originalElementQuerySelector.call(target, selector)); - } else if (target instanceof OriginalDocument) { - wrappedItem = wrap(originalDocumentQuerySelector.call(target, selector)); - } else { - return findOne(this, selector); - } - if (!wrappedItem) { - return wrappedItem; - } else if (!deep && (root = getTreeScope(wrappedItem).root)) { - if (root instanceof scope.wrappers.ShadowRoot) { - return findOne(this, selector); - } - } - return wrappedItem; - }, - querySelectorAll: function(selector) { - var shimmed = shimSelector(selector); - var deep = shimmed !== selector; - selector = shimmed; - var result = new NodeList(); - result.length = querySelectorAllFiltered.call(this, matchesSelector, 0, result, selector, deep); - return result; - } - }; - var MatchesInterface = { - matches: function(selector) { - selector = shimMatchesSelector(selector); - return scope.originalMatches.call(unsafeUnwrap(this), selector); - } - }; - function getElementsByTagNameFiltered(p, index, result, localName, lowercase) { - var target = unsafeUnwrap(this); - var list; - var root = getTreeScope(this).root; - if (root instanceof scope.wrappers.ShadowRoot) { - return findElements(this, index, result, p, localName, lowercase); - } else if (target instanceof OriginalElement) { - list = originalElementGetElementsByTagName.call(target, localName, lowercase); - } else if (target instanceof OriginalDocument) { - list = originalDocumentGetElementsByTagName.call(target, localName, lowercase); - } else { - return findElements(this, index, result, p, localName, lowercase); - } - return filterNodeList(list, index, result, false); - } - function getElementsByTagNameNSFiltered(p, index, result, ns, localName) { - var target = unsafeUnwrap(this); - var list; - var root = getTreeScope(this).root; - if (root instanceof scope.wrappers.ShadowRoot) { - return findElements(this, index, result, p, ns, localName); - } else if (target instanceof OriginalElement) { - list = originalElementGetElementsByTagNameNS.call(target, ns, localName); - } else if (target instanceof OriginalDocument) { - list = originalDocumentGetElementsByTagNameNS.call(target, ns, localName); - } else { - return findElements(this, index, result, p, ns, localName); - } - return filterNodeList(list, index, result, false); - } - var GetElementsByInterface = { - getElementsByTagName: function(localName) { - var result = new HTMLCollection(); - var match = localName === "*" ? matchesEveryThing : matchesTagName; - result.length = getElementsByTagNameFiltered.call(this, match, 0, result, localName, localName.toLowerCase()); - return result; - }, - getElementsByClassName: function(className) { - return this.querySelectorAll("." + className); - }, - getElementsByTagNameNS: function(ns, localName) { - var result = new HTMLCollection(); - var match = null; - if (ns === "*") { - match = localName === "*" ? matchesEveryThing : matchesLocalNameOnly; - } else { - match = localName === "*" ? matchesNameSpace : matchesLocalNameNS; - } - result.length = getElementsByTagNameNSFiltered.call(this, match, 0, result, ns || null, localName); - return result; - } - }; - scope.GetElementsByInterface = GetElementsByInterface; - scope.SelectorsInterface = SelectorsInterface; - scope.MatchesInterface = MatchesInterface; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var NodeList = scope.wrappers.NodeList; - function forwardElement(node) { - while (node && node.nodeType !== Node.ELEMENT_NODE) { - node = node.nextSibling; - } - return node; - } - function backwardsElement(node) { - while (node && node.nodeType !== Node.ELEMENT_NODE) { - node = node.previousSibling; - } - return node; - } - var ParentNodeInterface = { - get firstElementChild() { - return forwardElement(this.firstChild); - }, - get lastElementChild() { - return backwardsElement(this.lastChild); - }, - get childElementCount() { - var count = 0; - for (var child = this.firstElementChild; child; child = child.nextElementSibling) { - count++; - } - return count; - }, - get children() { - var wrapperList = new NodeList(); - var i = 0; - for (var child = this.firstElementChild; child; child = child.nextElementSibling) { - wrapperList[i++] = child; - } - wrapperList.length = i; - return wrapperList; - }, - remove: function() { - var p = this.parentNode; - if (p) p.removeChild(this); - } - }; - var ChildNodeInterface = { - get nextElementSibling() { - return forwardElement(this.nextSibling); - }, - get previousElementSibling() { - return backwardsElement(this.previousSibling); - } - }; - var NonElementParentNodeInterface = { - getElementById: function(id) { - if (/[ \t\n\r\f]/.test(id)) return null; - return this.querySelector('[id="' + id + '"]'); - } - }; - scope.ChildNodeInterface = ChildNodeInterface; - scope.NonElementParentNodeInterface = NonElementParentNodeInterface; - scope.ParentNodeInterface = ParentNodeInterface; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var ChildNodeInterface = scope.ChildNodeInterface; - var Node = scope.wrappers.Node; - var enqueueMutation = scope.enqueueMutation; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var unsafeUnwrap = scope.unsafeUnwrap; - var OriginalCharacterData = window.CharacterData; - function CharacterData(node) { - Node.call(this, node); - } - CharacterData.prototype = Object.create(Node.prototype); - mixin(CharacterData.prototype, { - get nodeValue() { - return this.data; - }, - set nodeValue(data) { - this.data = data; - }, - get textContent() { - return this.data; - }, - set textContent(value) { - this.data = value; - }, - get data() { - return unsafeUnwrap(this).data; - }, - set data(value) { - var oldValue = unsafeUnwrap(this).data; - enqueueMutation(this, "characterData", { - oldValue: oldValue - }); - unsafeUnwrap(this).data = value; - } - }); - mixin(CharacterData.prototype, ChildNodeInterface); - registerWrapper(OriginalCharacterData, CharacterData, document.createTextNode("")); - scope.wrappers.CharacterData = CharacterData; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var CharacterData = scope.wrappers.CharacterData; - var enqueueMutation = scope.enqueueMutation; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - function toUInt32(x) { - return x >>> 0; - } - var OriginalText = window.Text; - function Text(node) { - CharacterData.call(this, node); - } - Text.prototype = Object.create(CharacterData.prototype); - mixin(Text.prototype, { - splitText: function(offset) { - offset = toUInt32(offset); - var s = this.data; - if (offset > s.length) throw new Error("IndexSizeError"); - var head = s.slice(0, offset); - var tail = s.slice(offset); - this.data = head; - var newTextNode = this.ownerDocument.createTextNode(tail); - if (this.parentNode) this.parentNode.insertBefore(newTextNode, this.nextSibling); - return newTextNode; - } - }); - registerWrapper(OriginalText, Text, document.createTextNode("")); - scope.wrappers.Text = Text; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - if (!window.DOMTokenList) { - console.warn("Missing DOMTokenList prototype, please include a " + "compatible classList polyfill such as http://goo.gl/uTcepH."); - return; - } - var unsafeUnwrap = scope.unsafeUnwrap; - var enqueueMutation = scope.enqueueMutation; - function getClass(el) { - return unsafeUnwrap(el).getAttribute("class"); - } - function enqueueClassAttributeChange(el, oldValue) { - enqueueMutation(el, "attributes", { - name: "class", - namespace: null, - oldValue: oldValue - }); - } - function invalidateClass(el) { - scope.invalidateRendererBasedOnAttribute(el, "class"); - } - function changeClass(tokenList, method, args) { - var ownerElement = tokenList.ownerElement_; - if (ownerElement == null) { - return method.apply(tokenList, args); - } - var oldValue = getClass(ownerElement); - var retv = method.apply(tokenList, args); - if (getClass(ownerElement) !== oldValue) { - enqueueClassAttributeChange(ownerElement, oldValue); - invalidateClass(ownerElement); - } - return retv; - } - var oldAdd = DOMTokenList.prototype.add; - DOMTokenList.prototype.add = function() { - changeClass(this, oldAdd, arguments); - }; - var oldRemove = DOMTokenList.prototype.remove; - DOMTokenList.prototype.remove = function() { - changeClass(this, oldRemove, arguments); - }; - var oldToggle = DOMTokenList.prototype.toggle; - DOMTokenList.prototype.toggle = function() { - return changeClass(this, oldToggle, arguments); - }; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var ChildNodeInterface = scope.ChildNodeInterface; - var GetElementsByInterface = scope.GetElementsByInterface; - var Node = scope.wrappers.Node; - var ParentNodeInterface = scope.ParentNodeInterface; - var SelectorsInterface = scope.SelectorsInterface; - var MatchesInterface = scope.MatchesInterface; - var addWrapNodeListMethod = scope.addWrapNodeListMethod; - var enqueueMutation = scope.enqueueMutation; - var mixin = scope.mixin; - var oneOf = scope.oneOf; - var registerWrapper = scope.registerWrapper; - var unsafeUnwrap = scope.unsafeUnwrap; - var wrappers = scope.wrappers; - var OriginalElement = window.Element; - var matchesNames = [ "matches", "mozMatchesSelector", "msMatchesSelector", "webkitMatchesSelector" ].filter(function(name) { - return OriginalElement.prototype[name]; - }); - var matchesName = matchesNames[0]; - var originalMatches = OriginalElement.prototype[matchesName]; - function invalidateRendererBasedOnAttribute(element, name) { - var p = element.parentNode; - if (!p || !p.shadowRoot) return; - var renderer = scope.getRendererForHost(p); - if (renderer.dependsOnAttribute(name)) renderer.invalidate(); - } - function enqueAttributeChange(element, name, oldValue) { - enqueueMutation(element, "attributes", { - name: name, - namespace: null, - oldValue: oldValue - }); - } - var classListTable = new WeakMap(); - function Element(node) { - Node.call(this, node); - } - Element.prototype = Object.create(Node.prototype); - mixin(Element.prototype, { - createShadowRoot: function() { - var newShadowRoot = new wrappers.ShadowRoot(this); - unsafeUnwrap(this).polymerShadowRoot_ = newShadowRoot; - var renderer = scope.getRendererForHost(this); - renderer.invalidate(); - return newShadowRoot; - }, - get shadowRoot() { - return unsafeUnwrap(this).polymerShadowRoot_ || null; - }, - setAttribute: function(name, value) { - var oldValue = unsafeUnwrap(this).getAttribute(name); - unsafeUnwrap(this).setAttribute(name, value); - enqueAttributeChange(this, name, oldValue); - invalidateRendererBasedOnAttribute(this, name); - }, - removeAttribute: function(name) { - var oldValue = unsafeUnwrap(this).getAttribute(name); - unsafeUnwrap(this).removeAttribute(name); - enqueAttributeChange(this, name, oldValue); - invalidateRendererBasedOnAttribute(this, name); - }, - get classList() { - var list = classListTable.get(this); - if (!list) { - list = unsafeUnwrap(this).classList; - if (!list) return; - list.ownerElement_ = this; - classListTable.set(this, list); - } - return list; - }, - get className() { - return unsafeUnwrap(this).className; - }, - set className(v) { - this.setAttribute("class", v); - }, - get id() { - return unsafeUnwrap(this).id; - }, - set id(v) { - this.setAttribute("id", v); - } - }); - matchesNames.forEach(function(name) { - if (name !== "matches") { - Element.prototype[name] = function(selector) { - return this.matches(selector); - }; - } - }); - if (OriginalElement.prototype.webkitCreateShadowRoot) { - Element.prototype.webkitCreateShadowRoot = Element.prototype.createShadowRoot; - } - mixin(Element.prototype, ChildNodeInterface); - mixin(Element.prototype, GetElementsByInterface); - mixin(Element.prototype, ParentNodeInterface); - mixin(Element.prototype, SelectorsInterface); - mixin(Element.prototype, MatchesInterface); - registerWrapper(OriginalElement, Element, document.createElementNS(null, "x")); - scope.invalidateRendererBasedOnAttribute = invalidateRendererBasedOnAttribute; - scope.matchesNames = matchesNames; - scope.originalMatches = originalMatches; - scope.wrappers.Element = Element; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var Element = scope.wrappers.Element; - var defineGetter = scope.defineGetter; - var enqueueMutation = scope.enqueueMutation; - var mixin = scope.mixin; - var nodesWereAdded = scope.nodesWereAdded; - var nodesWereRemoved = scope.nodesWereRemoved; - var registerWrapper = scope.registerWrapper; - var snapshotNodeList = scope.snapshotNodeList; - var unsafeUnwrap = scope.unsafeUnwrap; - var unwrap = scope.unwrap; - var wrap = scope.wrap; - var wrappers = scope.wrappers; - var escapeAttrRegExp = /[&\u00A0"]/g; - var escapeDataRegExp = /[&\u00A0<>]/g; - function escapeReplace(c) { - switch (c) { - case "&": - return "&"; - - case "<": - return "<"; - - case ">": - return ">"; - - case '"': - return """; - - case " ": - return " "; - } - } - function escapeAttr(s) { - return s.replace(escapeAttrRegExp, escapeReplace); - } - function escapeData(s) { - return s.replace(escapeDataRegExp, escapeReplace); - } - function makeSet(arr) { - var set = {}; - for (var i = 0; i < arr.length; i++) { - set[arr[i]] = true; - } - return set; - } - var voidElements = makeSet([ "area", "base", "br", "col", "command", "embed", "hr", "img", "input", "keygen", "link", "meta", "param", "source", "track", "wbr" ]); - var plaintextParents = makeSet([ "style", "script", "xmp", "iframe", "noembed", "noframes", "plaintext", "noscript" ]); - var XHTML_NS = "http://www.w3.org/1999/xhtml"; - function needsSelfClosingSlash(node) { - if (node.namespaceURI !== XHTML_NS) return true; - var doctype = node.ownerDocument.doctype; - return doctype && doctype.publicId && doctype.systemId; - } - function getOuterHTML(node, parentNode) { - switch (node.nodeType) { - case Node.ELEMENT_NODE: - var tagName = node.tagName.toLowerCase(); - var s = "<" + tagName; - var attrs = node.attributes; - for (var i = 0, attr; attr = attrs[i]; i++) { - s += " " + attr.name + '="' + escapeAttr(attr.value) + '"'; - } - if (voidElements[tagName]) { - if (needsSelfClosingSlash(node)) s += "/"; - return s + ">"; - } - return s + ">" + getInnerHTML(node) + ""; - - case Node.TEXT_NODE: - var data = node.data; - if (parentNode && plaintextParents[parentNode.localName]) return data; - return escapeData(data); - - case Node.COMMENT_NODE: - return ""; - - default: - console.error(node); - throw new Error("not implemented"); - } - } - function getInnerHTML(node) { - if (node instanceof wrappers.HTMLTemplateElement) node = node.content; - var s = ""; - for (var child = node.firstChild; child; child = child.nextSibling) { - s += getOuterHTML(child, node); - } - return s; - } - function setInnerHTML(node, value, opt_tagName) { - var tagName = opt_tagName || "div"; - node.textContent = ""; - var tempElement = unwrap(node.ownerDocument.createElement(tagName)); - tempElement.innerHTML = value; - var firstChild; - while (firstChild = tempElement.firstChild) { - node.appendChild(wrap(firstChild)); - } - } - var oldIe = /MSIE/.test(navigator.userAgent); - var OriginalHTMLElement = window.HTMLElement; - var OriginalHTMLTemplateElement = window.HTMLTemplateElement; - function HTMLElement(node) { - Element.call(this, node); - } - HTMLElement.prototype = Object.create(Element.prototype); - mixin(HTMLElement.prototype, { - get innerHTML() { - return getInnerHTML(this); - }, - set innerHTML(value) { - if (oldIe && plaintextParents[this.localName]) { - this.textContent = value; - return; - } - var removedNodes = snapshotNodeList(this.childNodes); - if (this.invalidateShadowRenderer()) { - if (this instanceof wrappers.HTMLTemplateElement) setInnerHTML(this.content, value); else setInnerHTML(this, value, this.tagName); - } else if (!OriginalHTMLTemplateElement && this instanceof wrappers.HTMLTemplateElement) { - setInnerHTML(this.content, value); - } else { - unsafeUnwrap(this).innerHTML = value; - } - var addedNodes = snapshotNodeList(this.childNodes); - enqueueMutation(this, "childList", { - addedNodes: addedNodes, - removedNodes: removedNodes - }); - nodesWereRemoved(removedNodes); - nodesWereAdded(addedNodes, this); - }, - get outerHTML() { - return getOuterHTML(this, this.parentNode); - }, - set outerHTML(value) { - var p = this.parentNode; - if (p) { - p.invalidateShadowRenderer(); - var df = frag(p, value); - p.replaceChild(df, this); - } - }, - insertAdjacentHTML: function(position, text) { - var contextElement, refNode; - switch (String(position).toLowerCase()) { - case "beforebegin": - contextElement = this.parentNode; - refNode = this; - break; - - case "afterend": - contextElement = this.parentNode; - refNode = this.nextSibling; - break; - - case "afterbegin": - contextElement = this; - refNode = this.firstChild; - break; - - case "beforeend": - contextElement = this; - refNode = null; - break; - - default: - return; - } - var df = frag(contextElement, text); - contextElement.insertBefore(df, refNode); - }, - get hidden() { - return this.hasAttribute("hidden"); - }, - set hidden(v) { - if (v) { - this.setAttribute("hidden", ""); - } else { - this.removeAttribute("hidden"); - } - } - }); - function frag(contextElement, html) { - var p = unwrap(contextElement.cloneNode(false)); - p.innerHTML = html; - var df = unwrap(document.createDocumentFragment()); - var c; - while (c = p.firstChild) { - df.appendChild(c); - } - return wrap(df); - } - function getter(name) { - return function() { - scope.renderAllPending(); - return unsafeUnwrap(this)[name]; - }; - } - function getterRequiresRendering(name) { - defineGetter(HTMLElement, name, getter(name)); - } - [ "clientHeight", "clientLeft", "clientTop", "clientWidth", "offsetHeight", "offsetLeft", "offsetTop", "offsetWidth", "scrollHeight", "scrollWidth" ].forEach(getterRequiresRendering); - function getterAndSetterRequiresRendering(name) { - Object.defineProperty(HTMLElement.prototype, name, { - get: getter(name), - set: function(v) { - scope.renderAllPending(); - unsafeUnwrap(this)[name] = v; - }, - configurable: true, - enumerable: true - }); - } - [ "scrollLeft", "scrollTop" ].forEach(getterAndSetterRequiresRendering); - function methodRequiresRendering(name) { - Object.defineProperty(HTMLElement.prototype, name, { - value: function() { - scope.renderAllPending(); - return unsafeUnwrap(this)[name].apply(unsafeUnwrap(this), arguments); - }, - configurable: true, - enumerable: true - }); - } - [ "getBoundingClientRect", "getClientRects", "scrollIntoView" ].forEach(methodRequiresRendering); - registerWrapper(OriginalHTMLElement, HTMLElement, document.createElement("b")); - scope.wrappers.HTMLElement = HTMLElement; - scope.getInnerHTML = getInnerHTML; - scope.setInnerHTML = setInnerHTML; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var HTMLElement = scope.wrappers.HTMLElement; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var unsafeUnwrap = scope.unsafeUnwrap; - var wrap = scope.wrap; - var OriginalHTMLCanvasElement = window.HTMLCanvasElement; - function HTMLCanvasElement(node) { - HTMLElement.call(this, node); - } - HTMLCanvasElement.prototype = Object.create(HTMLElement.prototype); - mixin(HTMLCanvasElement.prototype, { - getContext: function() { - var context = unsafeUnwrap(this).getContext.apply(unsafeUnwrap(this), arguments); - return context && wrap(context); - } - }); - registerWrapper(OriginalHTMLCanvasElement, HTMLCanvasElement, document.createElement("canvas")); - scope.wrappers.HTMLCanvasElement = HTMLCanvasElement; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var HTMLElement = scope.wrappers.HTMLElement; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var OriginalHTMLContentElement = window.HTMLContentElement; - function HTMLContentElement(node) { - HTMLElement.call(this, node); - } - HTMLContentElement.prototype = Object.create(HTMLElement.prototype); - mixin(HTMLContentElement.prototype, { - constructor: HTMLContentElement, - get select() { - return this.getAttribute("select"); - }, - set select(value) { - this.setAttribute("select", value); - }, - setAttribute: function(n, v) { - HTMLElement.prototype.setAttribute.call(this, n, v); - if (String(n).toLowerCase() === "select") this.invalidateShadowRenderer(true); - } - }); - if (OriginalHTMLContentElement) registerWrapper(OriginalHTMLContentElement, HTMLContentElement); - scope.wrappers.HTMLContentElement = HTMLContentElement; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var HTMLElement = scope.wrappers.HTMLElement; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var wrapHTMLCollection = scope.wrapHTMLCollection; - var unwrap = scope.unwrap; - var OriginalHTMLFormElement = window.HTMLFormElement; - function HTMLFormElement(node) { - HTMLElement.call(this, node); - } - HTMLFormElement.prototype = Object.create(HTMLElement.prototype); - mixin(HTMLFormElement.prototype, { - get elements() { - return wrapHTMLCollection(unwrap(this).elements); - } - }); - registerWrapper(OriginalHTMLFormElement, HTMLFormElement, document.createElement("form")); - scope.wrappers.HTMLFormElement = HTMLFormElement; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var HTMLElement = scope.wrappers.HTMLElement; - var registerWrapper = scope.registerWrapper; - var unwrap = scope.unwrap; - var rewrap = scope.rewrap; - var OriginalHTMLImageElement = window.HTMLImageElement; - function HTMLImageElement(node) { - HTMLElement.call(this, node); - } - HTMLImageElement.prototype = Object.create(HTMLElement.prototype); - registerWrapper(OriginalHTMLImageElement, HTMLImageElement, document.createElement("img")); - function Image(width, height) { - if (!(this instanceof Image)) { - throw new TypeError("DOM object constructor cannot be called as a function."); - } - var node = unwrap(document.createElement("img")); - HTMLElement.call(this, node); - rewrap(node, this); - if (width !== undefined) node.width = width; - if (height !== undefined) node.height = height; - } - Image.prototype = HTMLImageElement.prototype; - scope.wrappers.HTMLImageElement = HTMLImageElement; - scope.wrappers.Image = Image; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var HTMLElement = scope.wrappers.HTMLElement; - var mixin = scope.mixin; - var NodeList = scope.wrappers.NodeList; - var registerWrapper = scope.registerWrapper; - var OriginalHTMLShadowElement = window.HTMLShadowElement; - function HTMLShadowElement(node) { - HTMLElement.call(this, node); - } - HTMLShadowElement.prototype = Object.create(HTMLElement.prototype); - HTMLShadowElement.prototype.constructor = HTMLShadowElement; - if (OriginalHTMLShadowElement) registerWrapper(OriginalHTMLShadowElement, HTMLShadowElement); - scope.wrappers.HTMLShadowElement = HTMLShadowElement; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var HTMLElement = scope.wrappers.HTMLElement; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var unsafeUnwrap = scope.unsafeUnwrap; - var unwrap = scope.unwrap; - var wrap = scope.wrap; - var contentTable = new WeakMap(); - var templateContentsOwnerTable = new WeakMap(); - function getTemplateContentsOwner(doc) { - if (!doc.defaultView) return doc; - var d = templateContentsOwnerTable.get(doc); - if (!d) { - d = doc.implementation.createHTMLDocument(""); - while (d.lastChild) { - d.removeChild(d.lastChild); - } - templateContentsOwnerTable.set(doc, d); - } - return d; - } - function extractContent(templateElement) { - var doc = getTemplateContentsOwner(templateElement.ownerDocument); - var df = unwrap(doc.createDocumentFragment()); - var child; - while (child = templateElement.firstChild) { - df.appendChild(child); - } - return df; - } - var OriginalHTMLTemplateElement = window.HTMLTemplateElement; - function HTMLTemplateElement(node) { - HTMLElement.call(this, node); - if (!OriginalHTMLTemplateElement) { - var content = extractContent(node); - contentTable.set(this, wrap(content)); - } - } - HTMLTemplateElement.prototype = Object.create(HTMLElement.prototype); - mixin(HTMLTemplateElement.prototype, { - constructor: HTMLTemplateElement, - get content() { - if (OriginalHTMLTemplateElement) return wrap(unsafeUnwrap(this).content); - return contentTable.get(this); - } - }); - if (OriginalHTMLTemplateElement) registerWrapper(OriginalHTMLTemplateElement, HTMLTemplateElement); - scope.wrappers.HTMLTemplateElement = HTMLTemplateElement; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var HTMLElement = scope.wrappers.HTMLElement; - var registerWrapper = scope.registerWrapper; - var OriginalHTMLMediaElement = window.HTMLMediaElement; - if (!OriginalHTMLMediaElement) return; - function HTMLMediaElement(node) { - HTMLElement.call(this, node); - } - HTMLMediaElement.prototype = Object.create(HTMLElement.prototype); - registerWrapper(OriginalHTMLMediaElement, HTMLMediaElement, document.createElement("audio")); - scope.wrappers.HTMLMediaElement = HTMLMediaElement; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var HTMLMediaElement = scope.wrappers.HTMLMediaElement; - var registerWrapper = scope.registerWrapper; - var unwrap = scope.unwrap; - var rewrap = scope.rewrap; - var OriginalHTMLAudioElement = window.HTMLAudioElement; - if (!OriginalHTMLAudioElement) return; - function HTMLAudioElement(node) { - HTMLMediaElement.call(this, node); - } - HTMLAudioElement.prototype = Object.create(HTMLMediaElement.prototype); - registerWrapper(OriginalHTMLAudioElement, HTMLAudioElement, document.createElement("audio")); - function Audio(src) { - if (!(this instanceof Audio)) { - throw new TypeError("DOM object constructor cannot be called as a function."); - } - var node = unwrap(document.createElement("audio")); - HTMLMediaElement.call(this, node); - rewrap(node, this); - node.setAttribute("preload", "auto"); - if (src !== undefined) node.setAttribute("src", src); - } - Audio.prototype = HTMLAudioElement.prototype; - scope.wrappers.HTMLAudioElement = HTMLAudioElement; - scope.wrappers.Audio = Audio; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var HTMLElement = scope.wrappers.HTMLElement; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var rewrap = scope.rewrap; - var unwrap = scope.unwrap; - var wrap = scope.wrap; - var OriginalHTMLOptionElement = window.HTMLOptionElement; - function trimText(s) { - return s.replace(/\s+/g, " ").trim(); - } - function HTMLOptionElement(node) { - HTMLElement.call(this, node); - } - HTMLOptionElement.prototype = Object.create(HTMLElement.prototype); - mixin(HTMLOptionElement.prototype, { - get text() { - return trimText(this.textContent); - }, - set text(value) { - this.textContent = trimText(String(value)); - }, - get form() { - return wrap(unwrap(this).form); - } - }); - registerWrapper(OriginalHTMLOptionElement, HTMLOptionElement, document.createElement("option")); - function Option(text, value, defaultSelected, selected) { - if (!(this instanceof Option)) { - throw new TypeError("DOM object constructor cannot be called as a function."); - } - var node = unwrap(document.createElement("option")); - HTMLElement.call(this, node); - rewrap(node, this); - if (text !== undefined) node.text = text; - if (value !== undefined) node.setAttribute("value", value); - if (defaultSelected === true) node.setAttribute("selected", ""); - node.selected = selected === true; - } - Option.prototype = HTMLOptionElement.prototype; - scope.wrappers.HTMLOptionElement = HTMLOptionElement; - scope.wrappers.Option = Option; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var HTMLElement = scope.wrappers.HTMLElement; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var unwrap = scope.unwrap; - var wrap = scope.wrap; - var OriginalHTMLSelectElement = window.HTMLSelectElement; - function HTMLSelectElement(node) { - HTMLElement.call(this, node); - } - HTMLSelectElement.prototype = Object.create(HTMLElement.prototype); - mixin(HTMLSelectElement.prototype, { - add: function(element, before) { - if (typeof before === "object") before = unwrap(before); - unwrap(this).add(unwrap(element), before); - }, - remove: function(indexOrNode) { - if (indexOrNode === undefined) { - HTMLElement.prototype.remove.call(this); - return; - } - if (typeof indexOrNode === "object") indexOrNode = unwrap(indexOrNode); - unwrap(this).remove(indexOrNode); - }, - get form() { - return wrap(unwrap(this).form); - } - }); - registerWrapper(OriginalHTMLSelectElement, HTMLSelectElement, document.createElement("select")); - scope.wrappers.HTMLSelectElement = HTMLSelectElement; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var HTMLElement = scope.wrappers.HTMLElement; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var unwrap = scope.unwrap; - var wrap = scope.wrap; - var wrapHTMLCollection = scope.wrapHTMLCollection; - var OriginalHTMLTableElement = window.HTMLTableElement; - function HTMLTableElement(node) { - HTMLElement.call(this, node); - } - HTMLTableElement.prototype = Object.create(HTMLElement.prototype); - mixin(HTMLTableElement.prototype, { - get caption() { - return wrap(unwrap(this).caption); - }, - createCaption: function() { - return wrap(unwrap(this).createCaption()); - }, - get tHead() { - return wrap(unwrap(this).tHead); - }, - createTHead: function() { - return wrap(unwrap(this).createTHead()); - }, - createTFoot: function() { - return wrap(unwrap(this).createTFoot()); - }, - get tFoot() { - return wrap(unwrap(this).tFoot); - }, - get tBodies() { - return wrapHTMLCollection(unwrap(this).tBodies); - }, - createTBody: function() { - return wrap(unwrap(this).createTBody()); - }, - get rows() { - return wrapHTMLCollection(unwrap(this).rows); - }, - insertRow: function(index) { - return wrap(unwrap(this).insertRow(index)); - } - }); - registerWrapper(OriginalHTMLTableElement, HTMLTableElement, document.createElement("table")); - scope.wrappers.HTMLTableElement = HTMLTableElement; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var HTMLElement = scope.wrappers.HTMLElement; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var wrapHTMLCollection = scope.wrapHTMLCollection; - var unwrap = scope.unwrap; - var wrap = scope.wrap; - var OriginalHTMLTableSectionElement = window.HTMLTableSectionElement; - function HTMLTableSectionElement(node) { - HTMLElement.call(this, node); - } - HTMLTableSectionElement.prototype = Object.create(HTMLElement.prototype); - mixin(HTMLTableSectionElement.prototype, { - constructor: HTMLTableSectionElement, - get rows() { - return wrapHTMLCollection(unwrap(this).rows); - }, - insertRow: function(index) { - return wrap(unwrap(this).insertRow(index)); - } - }); - registerWrapper(OriginalHTMLTableSectionElement, HTMLTableSectionElement, document.createElement("thead")); - scope.wrappers.HTMLTableSectionElement = HTMLTableSectionElement; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var HTMLElement = scope.wrappers.HTMLElement; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var wrapHTMLCollection = scope.wrapHTMLCollection; - var unwrap = scope.unwrap; - var wrap = scope.wrap; - var OriginalHTMLTableRowElement = window.HTMLTableRowElement; - function HTMLTableRowElement(node) { - HTMLElement.call(this, node); - } - HTMLTableRowElement.prototype = Object.create(HTMLElement.prototype); - mixin(HTMLTableRowElement.prototype, { - get cells() { - return wrapHTMLCollection(unwrap(this).cells); - }, - insertCell: function(index) { - return wrap(unwrap(this).insertCell(index)); - } - }); - registerWrapper(OriginalHTMLTableRowElement, HTMLTableRowElement, document.createElement("tr")); - scope.wrappers.HTMLTableRowElement = HTMLTableRowElement; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var HTMLContentElement = scope.wrappers.HTMLContentElement; - var HTMLElement = scope.wrappers.HTMLElement; - var HTMLShadowElement = scope.wrappers.HTMLShadowElement; - var HTMLTemplateElement = scope.wrappers.HTMLTemplateElement; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var OriginalHTMLUnknownElement = window.HTMLUnknownElement; - function HTMLUnknownElement(node) { - switch (node.localName) { - case "content": - return new HTMLContentElement(node); - - case "shadow": - return new HTMLShadowElement(node); - - case "template": - return new HTMLTemplateElement(node); - } - HTMLElement.call(this, node); - } - HTMLUnknownElement.prototype = Object.create(HTMLElement.prototype); - registerWrapper(OriginalHTMLUnknownElement, HTMLUnknownElement); - scope.wrappers.HTMLUnknownElement = HTMLUnknownElement; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var Element = scope.wrappers.Element; - var HTMLElement = scope.wrappers.HTMLElement; - var registerObject = scope.registerObject; - var defineWrapGetter = scope.defineWrapGetter; - var SVG_NS = "http://www.w3.org/2000/svg"; - var svgTitleElement = document.createElementNS(SVG_NS, "title"); - var SVGTitleElement = registerObject(svgTitleElement); - var SVGElement = Object.getPrototypeOf(SVGTitleElement.prototype).constructor; - if (!("classList" in svgTitleElement)) { - var descr = Object.getOwnPropertyDescriptor(Element.prototype, "classList"); - Object.defineProperty(HTMLElement.prototype, "classList", descr); - delete Element.prototype.classList; - } - defineWrapGetter(SVGElement, "ownerSVGElement"); - scope.wrappers.SVGElement = SVGElement; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var unwrap = scope.unwrap; - var wrap = scope.wrap; - var OriginalSVGUseElement = window.SVGUseElement; - var SVG_NS = "http://www.w3.org/2000/svg"; - var gWrapper = wrap(document.createElementNS(SVG_NS, "g")); - var useElement = document.createElementNS(SVG_NS, "use"); - var SVGGElement = gWrapper.constructor; - var parentInterfacePrototype = Object.getPrototypeOf(SVGGElement.prototype); - var parentInterface = parentInterfacePrototype.constructor; - function SVGUseElement(impl) { - parentInterface.call(this, impl); - } - SVGUseElement.prototype = Object.create(parentInterfacePrototype); - if ("instanceRoot" in useElement) { - mixin(SVGUseElement.prototype, { - get instanceRoot() { - return wrap(unwrap(this).instanceRoot); - }, - get animatedInstanceRoot() { - return wrap(unwrap(this).animatedInstanceRoot); - } - }); - } - registerWrapper(OriginalSVGUseElement, SVGUseElement, useElement); - scope.wrappers.SVGUseElement = SVGUseElement; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var EventTarget = scope.wrappers.EventTarget; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var unsafeUnwrap = scope.unsafeUnwrap; - var wrap = scope.wrap; - var OriginalSVGElementInstance = window.SVGElementInstance; - if (!OriginalSVGElementInstance) return; - function SVGElementInstance(impl) { - EventTarget.call(this, impl); - } - SVGElementInstance.prototype = Object.create(EventTarget.prototype); - mixin(SVGElementInstance.prototype, { - get correspondingElement() { - return wrap(unsafeUnwrap(this).correspondingElement); - }, - get correspondingUseElement() { - return wrap(unsafeUnwrap(this).correspondingUseElement); - }, - get parentNode() { - return wrap(unsafeUnwrap(this).parentNode); - }, - get childNodes() { - throw new Error("Not implemented"); - }, - get firstChild() { - return wrap(unsafeUnwrap(this).firstChild); - }, - get lastChild() { - return wrap(unsafeUnwrap(this).lastChild); - }, - get previousSibling() { - return wrap(unsafeUnwrap(this).previousSibling); - }, - get nextSibling() { - return wrap(unsafeUnwrap(this).nextSibling); - } - }); - registerWrapper(OriginalSVGElementInstance, SVGElementInstance); - scope.wrappers.SVGElementInstance = SVGElementInstance; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var setWrapper = scope.setWrapper; - var unsafeUnwrap = scope.unsafeUnwrap; - var unwrap = scope.unwrap; - var unwrapIfNeeded = scope.unwrapIfNeeded; - var wrap = scope.wrap; - var OriginalCanvasRenderingContext2D = window.CanvasRenderingContext2D; - function CanvasRenderingContext2D(impl) { - setWrapper(impl, this); - } - mixin(CanvasRenderingContext2D.prototype, { - get canvas() { - return wrap(unsafeUnwrap(this).canvas); - }, - drawImage: function() { - arguments[0] = unwrapIfNeeded(arguments[0]); - unsafeUnwrap(this).drawImage.apply(unsafeUnwrap(this), arguments); - }, - createPattern: function() { - arguments[0] = unwrap(arguments[0]); - return unsafeUnwrap(this).createPattern.apply(unsafeUnwrap(this), arguments); - } - }); - registerWrapper(OriginalCanvasRenderingContext2D, CanvasRenderingContext2D, document.createElement("canvas").getContext("2d")); - scope.wrappers.CanvasRenderingContext2D = CanvasRenderingContext2D; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var setWrapper = scope.setWrapper; - var unsafeUnwrap = scope.unsafeUnwrap; - var unwrapIfNeeded = scope.unwrapIfNeeded; - var wrap = scope.wrap; - var OriginalWebGLRenderingContext = window.WebGLRenderingContext; - if (!OriginalWebGLRenderingContext) return; - function WebGLRenderingContext(impl) { - setWrapper(impl, this); - } - mixin(WebGLRenderingContext.prototype, { - get canvas() { - return wrap(unsafeUnwrap(this).canvas); - }, - texImage2D: function() { - arguments[5] = unwrapIfNeeded(arguments[5]); - unsafeUnwrap(this).texImage2D.apply(unsafeUnwrap(this), arguments); - }, - texSubImage2D: function() { - arguments[6] = unwrapIfNeeded(arguments[6]); - unsafeUnwrap(this).texSubImage2D.apply(unsafeUnwrap(this), arguments); - } - }); - var instanceProperties = /WebKit/.test(navigator.userAgent) ? { - drawingBufferHeight: null, - drawingBufferWidth: null - } : {}; - registerWrapper(OriginalWebGLRenderingContext, WebGLRenderingContext, instanceProperties); - scope.wrappers.WebGLRenderingContext = WebGLRenderingContext; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var GetElementsByInterface = scope.GetElementsByInterface; - var NonElementParentNodeInterface = scope.NonElementParentNodeInterface; - var ParentNodeInterface = scope.ParentNodeInterface; - var SelectorsInterface = scope.SelectorsInterface; - var mixin = scope.mixin; - var registerObject = scope.registerObject; - var DocumentFragment = registerObject(document.createDocumentFragment()); - mixin(DocumentFragment.prototype, ParentNodeInterface); - mixin(DocumentFragment.prototype, SelectorsInterface); - mixin(DocumentFragment.prototype, GetElementsByInterface); - mixin(DocumentFragment.prototype, NonElementParentNodeInterface); - var Comment = registerObject(document.createComment("")); - scope.wrappers.Comment = Comment; - scope.wrappers.DocumentFragment = DocumentFragment; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var DocumentFragment = scope.wrappers.DocumentFragment; - var TreeScope = scope.TreeScope; - var elementFromPoint = scope.elementFromPoint; - var getInnerHTML = scope.getInnerHTML; - var getTreeScope = scope.getTreeScope; - var mixin = scope.mixin; - var rewrap = scope.rewrap; - var setInnerHTML = scope.setInnerHTML; - var unsafeUnwrap = scope.unsafeUnwrap; - var unwrap = scope.unwrap; - var shadowHostTable = new WeakMap(); - var nextOlderShadowTreeTable = new WeakMap(); - function ShadowRoot(hostWrapper) { - var node = unwrap(unsafeUnwrap(hostWrapper).ownerDocument.createDocumentFragment()); - DocumentFragment.call(this, node); - rewrap(node, this); - var oldShadowRoot = hostWrapper.shadowRoot; - nextOlderShadowTreeTable.set(this, oldShadowRoot); - this.treeScope_ = new TreeScope(this, getTreeScope(oldShadowRoot || hostWrapper)); - shadowHostTable.set(this, hostWrapper); - } - ShadowRoot.prototype = Object.create(DocumentFragment.prototype); - mixin(ShadowRoot.prototype, { - constructor: ShadowRoot, - get innerHTML() { - return getInnerHTML(this); - }, - set innerHTML(value) { - setInnerHTML(this, value); - this.invalidateShadowRenderer(); - }, - get olderShadowRoot() { - return nextOlderShadowTreeTable.get(this) || null; - }, - get host() { - return shadowHostTable.get(this) || null; - }, - invalidateShadowRenderer: function() { - return shadowHostTable.get(this).invalidateShadowRenderer(); - }, - elementFromPoint: function(x, y) { - return elementFromPoint(this, this.ownerDocument, x, y); - } - }); - scope.wrappers.ShadowRoot = ShadowRoot; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var registerWrapper = scope.registerWrapper; - var setWrapper = scope.setWrapper; - var unsafeUnwrap = scope.unsafeUnwrap; - var unwrap = scope.unwrap; - var unwrapIfNeeded = scope.unwrapIfNeeded; - var wrap = scope.wrap; - var getTreeScope = scope.getTreeScope; - var OriginalRange = window.Range; - var ShadowRoot = scope.wrappers.ShadowRoot; - function getHost(node) { - var root = getTreeScope(node).root; - if (root instanceof ShadowRoot) { - return root.host; - } - return null; - } - function hostNodeToShadowNode(refNode, offset) { - if (refNode.shadowRoot) { - offset = Math.min(refNode.childNodes.length - 1, offset); - var child = refNode.childNodes[offset]; - if (child) { - var insertionPoint = scope.getDestinationInsertionPoints(child); - if (insertionPoint.length > 0) { - var parentNode = insertionPoint[0].parentNode; - if (parentNode.nodeType == Node.ELEMENT_NODE) { - refNode = parentNode; - } - } - } - } - return refNode; - } - function shadowNodeToHostNode(node) { - node = wrap(node); - return getHost(node) || node; - } - function Range(impl) { - setWrapper(impl, this); - } - Range.prototype = { - get startContainer() { - return shadowNodeToHostNode(unsafeUnwrap(this).startContainer); - }, - get endContainer() { - return shadowNodeToHostNode(unsafeUnwrap(this).endContainer); - }, - get commonAncestorContainer() { - return shadowNodeToHostNode(unsafeUnwrap(this).commonAncestorContainer); - }, - setStart: function(refNode, offset) { - refNode = hostNodeToShadowNode(refNode, offset); - unsafeUnwrap(this).setStart(unwrapIfNeeded(refNode), offset); - }, - setEnd: function(refNode, offset) { - refNode = hostNodeToShadowNode(refNode, offset); - unsafeUnwrap(this).setEnd(unwrapIfNeeded(refNode), offset); - }, - setStartBefore: function(refNode) { - unsafeUnwrap(this).setStartBefore(unwrapIfNeeded(refNode)); - }, - setStartAfter: function(refNode) { - unsafeUnwrap(this).setStartAfter(unwrapIfNeeded(refNode)); - }, - setEndBefore: function(refNode) { - unsafeUnwrap(this).setEndBefore(unwrapIfNeeded(refNode)); - }, - setEndAfter: function(refNode) { - unsafeUnwrap(this).setEndAfter(unwrapIfNeeded(refNode)); - }, - selectNode: function(refNode) { - unsafeUnwrap(this).selectNode(unwrapIfNeeded(refNode)); - }, - selectNodeContents: function(refNode) { - unsafeUnwrap(this).selectNodeContents(unwrapIfNeeded(refNode)); - }, - compareBoundaryPoints: function(how, sourceRange) { - return unsafeUnwrap(this).compareBoundaryPoints(how, unwrap(sourceRange)); - }, - extractContents: function() { - return wrap(unsafeUnwrap(this).extractContents()); - }, - cloneContents: function() { - return wrap(unsafeUnwrap(this).cloneContents()); - }, - insertNode: function(node) { - unsafeUnwrap(this).insertNode(unwrapIfNeeded(node)); - }, - surroundContents: function(newParent) { - unsafeUnwrap(this).surroundContents(unwrapIfNeeded(newParent)); - }, - cloneRange: function() { - return wrap(unsafeUnwrap(this).cloneRange()); - }, - isPointInRange: function(node, offset) { - return unsafeUnwrap(this).isPointInRange(unwrapIfNeeded(node), offset); - }, - comparePoint: function(node, offset) { - return unsafeUnwrap(this).comparePoint(unwrapIfNeeded(node), offset); - }, - intersectsNode: function(node) { - return unsafeUnwrap(this).intersectsNode(unwrapIfNeeded(node)); - }, - toString: function() { - return unsafeUnwrap(this).toString(); - } - }; - if (OriginalRange.prototype.createContextualFragment) { - Range.prototype.createContextualFragment = function(html) { - return wrap(unsafeUnwrap(this).createContextualFragment(html)); - }; - } - registerWrapper(window.Range, Range, document.createRange()); - scope.wrappers.Range = Range; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var Element = scope.wrappers.Element; - var HTMLContentElement = scope.wrappers.HTMLContentElement; - var HTMLShadowElement = scope.wrappers.HTMLShadowElement; - var Node = scope.wrappers.Node; - var ShadowRoot = scope.wrappers.ShadowRoot; - var assert = scope.assert; - var getTreeScope = scope.getTreeScope; - var mixin = scope.mixin; - var oneOf = scope.oneOf; - var unsafeUnwrap = scope.unsafeUnwrap; - var unwrap = scope.unwrap; - var wrap = scope.wrap; - var ArraySplice = scope.ArraySplice; - function updateWrapperUpAndSideways(wrapper) { - wrapper.previousSibling_ = wrapper.previousSibling; - wrapper.nextSibling_ = wrapper.nextSibling; - wrapper.parentNode_ = wrapper.parentNode; - } - function updateWrapperDown(wrapper) { - wrapper.firstChild_ = wrapper.firstChild; - wrapper.lastChild_ = wrapper.lastChild; - } - function updateAllChildNodes(parentNodeWrapper) { - assert(parentNodeWrapper instanceof Node); - for (var childWrapper = parentNodeWrapper.firstChild; childWrapper; childWrapper = childWrapper.nextSibling) { - updateWrapperUpAndSideways(childWrapper); - } - updateWrapperDown(parentNodeWrapper); - } - function insertBefore(parentNodeWrapper, newChildWrapper, refChildWrapper) { - var parentNode = unwrap(parentNodeWrapper); - var newChild = unwrap(newChildWrapper); - var refChild = refChildWrapper ? unwrap(refChildWrapper) : null; - remove(newChildWrapper); - updateWrapperUpAndSideways(newChildWrapper); - if (!refChildWrapper) { - parentNodeWrapper.lastChild_ = parentNodeWrapper.lastChild; - if (parentNodeWrapper.lastChild === parentNodeWrapper.firstChild) parentNodeWrapper.firstChild_ = parentNodeWrapper.firstChild; - var lastChildWrapper = wrap(parentNode.lastChild); - if (lastChildWrapper) lastChildWrapper.nextSibling_ = lastChildWrapper.nextSibling; - } else { - if (parentNodeWrapper.firstChild === refChildWrapper) parentNodeWrapper.firstChild_ = refChildWrapper; - refChildWrapper.previousSibling_ = refChildWrapper.previousSibling; - } - scope.originalInsertBefore.call(parentNode, newChild, refChild); - } - function remove(nodeWrapper) { - var node = unwrap(nodeWrapper); - var parentNode = node.parentNode; - if (!parentNode) return; - var parentNodeWrapper = wrap(parentNode); - updateWrapperUpAndSideways(nodeWrapper); - if (nodeWrapper.previousSibling) nodeWrapper.previousSibling.nextSibling_ = nodeWrapper; - if (nodeWrapper.nextSibling) nodeWrapper.nextSibling.previousSibling_ = nodeWrapper; - if (parentNodeWrapper.lastChild === nodeWrapper) parentNodeWrapper.lastChild_ = nodeWrapper; - if (parentNodeWrapper.firstChild === nodeWrapper) parentNodeWrapper.firstChild_ = nodeWrapper; - scope.originalRemoveChild.call(parentNode, node); - } - var distributedNodesTable = new WeakMap(); - var destinationInsertionPointsTable = new WeakMap(); - var rendererForHostTable = new WeakMap(); - function resetDistributedNodes(insertionPoint) { - distributedNodesTable.set(insertionPoint, []); - } - function getDistributedNodes(insertionPoint) { - var rv = distributedNodesTable.get(insertionPoint); - if (!rv) distributedNodesTable.set(insertionPoint, rv = []); - return rv; - } - function getChildNodesSnapshot(node) { - var result = [], i = 0; - for (var child = node.firstChild; child; child = child.nextSibling) { - result[i++] = child; - } - return result; - } - var request = oneOf(window, [ "requestAnimationFrame", "mozRequestAnimationFrame", "webkitRequestAnimationFrame", "setTimeout" ]); - var pendingDirtyRenderers = []; - var renderTimer; - function renderAllPending() { - for (var i = 0; i < pendingDirtyRenderers.length; i++) { - var renderer = pendingDirtyRenderers[i]; - var parentRenderer = renderer.parentRenderer; - if (parentRenderer && parentRenderer.dirty) continue; - renderer.render(); - } - pendingDirtyRenderers = []; - } - function handleRequestAnimationFrame() { - renderTimer = null; - renderAllPending(); - } - function getRendererForHost(host) { - var renderer = rendererForHostTable.get(host); - if (!renderer) { - renderer = new ShadowRenderer(host); - rendererForHostTable.set(host, renderer); - } - return renderer; - } - function getShadowRootAncestor(node) { - var root = getTreeScope(node).root; - if (root instanceof ShadowRoot) return root; - return null; - } - function getRendererForShadowRoot(shadowRoot) { - return getRendererForHost(shadowRoot.host); - } - var spliceDiff = new ArraySplice(); - spliceDiff.equals = function(renderNode, rawNode) { - return unwrap(renderNode.node) === rawNode; - }; - function RenderNode(node) { - this.skip = false; - this.node = node; - this.childNodes = []; - } - RenderNode.prototype = { - append: function(node) { - var rv = new RenderNode(node); - this.childNodes.push(rv); - return rv; - }, - sync: function(opt_added) { - if (this.skip) return; - var nodeWrapper = this.node; - var newChildren = this.childNodes; - var oldChildren = getChildNodesSnapshot(unwrap(nodeWrapper)); - var added = opt_added || new WeakMap(); - var splices = spliceDiff.calculateSplices(newChildren, oldChildren); - var newIndex = 0, oldIndex = 0; - var lastIndex = 0; - for (var i = 0; i < splices.length; i++) { - var splice = splices[i]; - for (;lastIndex < splice.index; lastIndex++) { - oldIndex++; - newChildren[newIndex++].sync(added); - } - var removedCount = splice.removed.length; - for (var j = 0; j < removedCount; j++) { - var wrapper = wrap(oldChildren[oldIndex++]); - if (!added.get(wrapper)) remove(wrapper); - } - var addedCount = splice.addedCount; - var refNode = oldChildren[oldIndex] && wrap(oldChildren[oldIndex]); - for (var j = 0; j < addedCount; j++) { - var newChildRenderNode = newChildren[newIndex++]; - var newChildWrapper = newChildRenderNode.node; - insertBefore(nodeWrapper, newChildWrapper, refNode); - added.set(newChildWrapper, true); - newChildRenderNode.sync(added); - } - lastIndex += addedCount; - } - for (var i = lastIndex; i < newChildren.length; i++) { - newChildren[i].sync(added); - } - } - }; - function ShadowRenderer(host) { - this.host = host; - this.dirty = false; - this.invalidateAttributes(); - this.associateNode(host); - } - ShadowRenderer.prototype = { - render: function(opt_renderNode) { - if (!this.dirty) return; - this.invalidateAttributes(); - var host = this.host; - this.distribution(host); - var renderNode = opt_renderNode || new RenderNode(host); - this.buildRenderTree(renderNode, host); - var topMostRenderer = !opt_renderNode; - if (topMostRenderer) renderNode.sync(); - this.dirty = false; - }, - get parentRenderer() { - return getTreeScope(this.host).renderer; - }, - invalidate: function() { - if (!this.dirty) { - this.dirty = true; - var parentRenderer = this.parentRenderer; - if (parentRenderer) parentRenderer.invalidate(); - pendingDirtyRenderers.push(this); - if (renderTimer) return; - renderTimer = window[request](handleRequestAnimationFrame, 0); - } - }, - distribution: function(root) { - this.resetAllSubtrees(root); - this.distributionResolution(root); - }, - resetAll: function(node) { - if (isInsertionPoint(node)) resetDistributedNodes(node); else resetDestinationInsertionPoints(node); - this.resetAllSubtrees(node); - }, - resetAllSubtrees: function(node) { - for (var child = node.firstChild; child; child = child.nextSibling) { - this.resetAll(child); - } - if (node.shadowRoot) this.resetAll(node.shadowRoot); - if (node.olderShadowRoot) this.resetAll(node.olderShadowRoot); - }, - distributionResolution: function(node) { - if (isShadowHost(node)) { - var shadowHost = node; - var pool = poolPopulation(shadowHost); - var shadowTrees = getShadowTrees(shadowHost); - for (var i = 0; i < shadowTrees.length; i++) { - this.poolDistribution(shadowTrees[i], pool); - } - for (var i = shadowTrees.length - 1; i >= 0; i--) { - var shadowTree = shadowTrees[i]; - var shadow = getShadowInsertionPoint(shadowTree); - if (shadow) { - var olderShadowRoot = shadowTree.olderShadowRoot; - if (olderShadowRoot) { - pool = poolPopulation(olderShadowRoot); - } - for (var j = 0; j < pool.length; j++) { - destributeNodeInto(pool[j], shadow); - } - } - this.distributionResolution(shadowTree); - } - } - for (var child = node.firstChild; child; child = child.nextSibling) { - this.distributionResolution(child); - } - }, - poolDistribution: function(node, pool) { - if (node instanceof HTMLShadowElement) return; - if (node instanceof HTMLContentElement) { - var content = node; - this.updateDependentAttributes(content.getAttribute("select")); - var anyDistributed = false; - for (var i = 0; i < pool.length; i++) { - var node = pool[i]; - if (!node) continue; - if (matches(node, content)) { - destributeNodeInto(node, content); - pool[i] = undefined; - anyDistributed = true; - } - } - if (!anyDistributed) { - for (var child = content.firstChild; child; child = child.nextSibling) { - destributeNodeInto(child, content); - } - } - return; - } - for (var child = node.firstChild; child; child = child.nextSibling) { - this.poolDistribution(child, pool); - } - }, - buildRenderTree: function(renderNode, node) { - var children = this.compose(node); - for (var i = 0; i < children.length; i++) { - var child = children[i]; - var childRenderNode = renderNode.append(child); - this.buildRenderTree(childRenderNode, child); - } - if (isShadowHost(node)) { - var renderer = getRendererForHost(node); - renderer.dirty = false; - } - }, - compose: function(node) { - var children = []; - var p = node.shadowRoot || node; - for (var child = p.firstChild; child; child = child.nextSibling) { - if (isInsertionPoint(child)) { - this.associateNode(p); - var distributedNodes = getDistributedNodes(child); - for (var j = 0; j < distributedNodes.length; j++) { - var distributedNode = distributedNodes[j]; - if (isFinalDestination(child, distributedNode)) children.push(distributedNode); - } - } else { - children.push(child); - } - } - return children; - }, - invalidateAttributes: function() { - this.attributes = Object.create(null); - }, - updateDependentAttributes: function(selector) { - if (!selector) return; - var attributes = this.attributes; - if (/\.\w+/.test(selector)) attributes["class"] = true; - if (/#\w+/.test(selector)) attributes["id"] = true; - selector.replace(/\[\s*([^\s=\|~\]]+)/g, function(_, name) { - attributes[name] = true; - }); - }, - dependsOnAttribute: function(name) { - return this.attributes[name]; - }, - associateNode: function(node) { - unsafeUnwrap(node).polymerShadowRenderer_ = this; - } - }; - function poolPopulation(node) { - var pool = []; - for (var child = node.firstChild; child; child = child.nextSibling) { - if (isInsertionPoint(child)) { - pool.push.apply(pool, getDistributedNodes(child)); - } else { - pool.push(child); - } - } - return pool; - } - function getShadowInsertionPoint(node) { - if (node instanceof HTMLShadowElement) return node; - if (node instanceof HTMLContentElement) return null; - for (var child = node.firstChild; child; child = child.nextSibling) { - var res = getShadowInsertionPoint(child); - if (res) return res; - } - return null; - } - function destributeNodeInto(child, insertionPoint) { - getDistributedNodes(insertionPoint).push(child); - var points = destinationInsertionPointsTable.get(child); - if (!points) destinationInsertionPointsTable.set(child, [ insertionPoint ]); else points.push(insertionPoint); - } - function getDestinationInsertionPoints(node) { - return destinationInsertionPointsTable.get(node); - } - function resetDestinationInsertionPoints(node) { - destinationInsertionPointsTable.set(node, undefined); - } - var selectorStartCharRe = /^(:not\()?[*.#[a-zA-Z_|]/; - function matches(node, contentElement) { - var select = contentElement.getAttribute("select"); - if (!select) return true; - select = select.trim(); - if (!select) return true; - if (!(node instanceof Element)) return false; - if (!selectorStartCharRe.test(select)) return false; - try { - return node.matches(select); - } catch (ex) { - return false; - } - } - function isFinalDestination(insertionPoint, node) { - var points = getDestinationInsertionPoints(node); - return points && points[points.length - 1] === insertionPoint; - } - function isInsertionPoint(node) { - return node instanceof HTMLContentElement || node instanceof HTMLShadowElement; - } - function isShadowHost(shadowHost) { - return shadowHost.shadowRoot; - } - function getShadowTrees(host) { - var trees = []; - for (var tree = host.shadowRoot; tree; tree = tree.olderShadowRoot) { - trees.push(tree); - } - return trees; - } - function render(host) { - new ShadowRenderer(host).render(); - } - Node.prototype.invalidateShadowRenderer = function(force) { - var renderer = unsafeUnwrap(this).polymerShadowRenderer_; - if (renderer) { - renderer.invalidate(); - return true; - } - return false; - }; - HTMLContentElement.prototype.getDistributedNodes = HTMLShadowElement.prototype.getDistributedNodes = function() { - renderAllPending(); - return getDistributedNodes(this); - }; - Element.prototype.getDestinationInsertionPoints = function() { - renderAllPending(); - return getDestinationInsertionPoints(this) || []; - }; - HTMLContentElement.prototype.nodeIsInserted_ = HTMLShadowElement.prototype.nodeIsInserted_ = function() { - this.invalidateShadowRenderer(); - var shadowRoot = getShadowRootAncestor(this); - var renderer; - if (shadowRoot) renderer = getRendererForShadowRoot(shadowRoot); - unsafeUnwrap(this).polymerShadowRenderer_ = renderer; - if (renderer) renderer.invalidate(); - }; - scope.getRendererForHost = getRendererForHost; - scope.getShadowTrees = getShadowTrees; - scope.renderAllPending = renderAllPending; - scope.getDestinationInsertionPoints = getDestinationInsertionPoints; - scope.visual = { - insertBefore: insertBefore, - remove: remove - }; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var HTMLElement = scope.wrappers.HTMLElement; - var assert = scope.assert; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var unwrap = scope.unwrap; - var wrap = scope.wrap; - var elementsWithFormProperty = [ "HTMLButtonElement", "HTMLFieldSetElement", "HTMLInputElement", "HTMLKeygenElement", "HTMLLabelElement", "HTMLLegendElement", "HTMLObjectElement", "HTMLOutputElement", "HTMLTextAreaElement" ]; - function createWrapperConstructor(name) { - if (!window[name]) return; - assert(!scope.wrappers[name]); - var GeneratedWrapper = function(node) { - HTMLElement.call(this, node); - }; - GeneratedWrapper.prototype = Object.create(HTMLElement.prototype); - mixin(GeneratedWrapper.prototype, { - get form() { - return wrap(unwrap(this).form); - } - }); - registerWrapper(window[name], GeneratedWrapper, document.createElement(name.slice(4, -7))); - scope.wrappers[name] = GeneratedWrapper; - } - elementsWithFormProperty.forEach(createWrapperConstructor); - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var registerWrapper = scope.registerWrapper; - var setWrapper = scope.setWrapper; - var unsafeUnwrap = scope.unsafeUnwrap; - var unwrap = scope.unwrap; - var unwrapIfNeeded = scope.unwrapIfNeeded; - var wrap = scope.wrap; - var OriginalSelection = window.Selection; - function Selection(impl) { - setWrapper(impl, this); - } - Selection.prototype = { - get anchorNode() { - return wrap(unsafeUnwrap(this).anchorNode); - }, - get focusNode() { - return wrap(unsafeUnwrap(this).focusNode); - }, - addRange: function(range) { - unsafeUnwrap(this).addRange(unwrapIfNeeded(range)); - }, - collapse: function(node, index) { - unsafeUnwrap(this).collapse(unwrapIfNeeded(node), index); - }, - containsNode: function(node, allowPartial) { - return unsafeUnwrap(this).containsNode(unwrapIfNeeded(node), allowPartial); - }, - getRangeAt: function(index) { - return wrap(unsafeUnwrap(this).getRangeAt(index)); - }, - removeRange: function(range) { - unsafeUnwrap(this).removeRange(unwrap(range)); - }, - selectAllChildren: function(node) { - unsafeUnwrap(this).selectAllChildren(unwrapIfNeeded(node)); - }, - toString: function() { - return unsafeUnwrap(this).toString(); - } - }; - if (OriginalSelection.prototype.extend) { - Selection.prototype.extend = function(node, offset) { - unsafeUnwrap(this).extend(unwrapIfNeeded(node), offset); - }; - } - registerWrapper(window.Selection, Selection, window.getSelection()); - scope.wrappers.Selection = Selection; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var registerWrapper = scope.registerWrapper; - var setWrapper = scope.setWrapper; - var unsafeUnwrap = scope.unsafeUnwrap; - var unwrapIfNeeded = scope.unwrapIfNeeded; - var wrap = scope.wrap; - var OriginalTreeWalker = window.TreeWalker; - function TreeWalker(impl) { - setWrapper(impl, this); - } - TreeWalker.prototype = { - get root() { - return wrap(unsafeUnwrap(this).root); - }, - get currentNode() { - return wrap(unsafeUnwrap(this).currentNode); - }, - set currentNode(node) { - unsafeUnwrap(this).currentNode = unwrapIfNeeded(node); - }, - get filter() { - return unsafeUnwrap(this).filter; - }, - parentNode: function() { - return wrap(unsafeUnwrap(this).parentNode()); - }, - firstChild: function() { - return wrap(unsafeUnwrap(this).firstChild()); - }, - lastChild: function() { - return wrap(unsafeUnwrap(this).lastChild()); - }, - previousSibling: function() { - return wrap(unsafeUnwrap(this).previousSibling()); - }, - previousNode: function() { - return wrap(unsafeUnwrap(this).previousNode()); - }, - nextNode: function() { - return wrap(unsafeUnwrap(this).nextNode()); - } - }; - registerWrapper(OriginalTreeWalker, TreeWalker); - scope.wrappers.TreeWalker = TreeWalker; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var GetElementsByInterface = scope.GetElementsByInterface; - var Node = scope.wrappers.Node; - var ParentNodeInterface = scope.ParentNodeInterface; - var NonElementParentNodeInterface = scope.NonElementParentNodeInterface; - var Selection = scope.wrappers.Selection; - var SelectorsInterface = scope.SelectorsInterface; - var ShadowRoot = scope.wrappers.ShadowRoot; - var TreeScope = scope.TreeScope; - var cloneNode = scope.cloneNode; - var defineWrapGetter = scope.defineWrapGetter; - var elementFromPoint = scope.elementFromPoint; - var forwardMethodsToWrapper = scope.forwardMethodsToWrapper; - var matchesNames = scope.matchesNames; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var renderAllPending = scope.renderAllPending; - var rewrap = scope.rewrap; - var setWrapper = scope.setWrapper; - var unsafeUnwrap = scope.unsafeUnwrap; - var unwrap = scope.unwrap; - var wrap = scope.wrap; - var wrapEventTargetMethods = scope.wrapEventTargetMethods; - var wrapNodeList = scope.wrapNodeList; - var implementationTable = new WeakMap(); - function Document(node) { - Node.call(this, node); - this.treeScope_ = new TreeScope(this, null); - } - Document.prototype = Object.create(Node.prototype); - defineWrapGetter(Document, "documentElement"); - defineWrapGetter(Document, "body"); - defineWrapGetter(Document, "head"); - function wrapMethod(name) { - var original = document[name]; - Document.prototype[name] = function() { - return wrap(original.apply(unsafeUnwrap(this), arguments)); - }; - } - [ "createComment", "createDocumentFragment", "createElement", "createElementNS", "createEvent", "createEventNS", "createRange", "createTextNode" ].forEach(wrapMethod); - var originalAdoptNode = document.adoptNode; - function adoptNodeNoRemove(node, doc) { - originalAdoptNode.call(unsafeUnwrap(doc), unwrap(node)); - adoptSubtree(node, doc); - } - function adoptSubtree(node, doc) { - if (node.shadowRoot) doc.adoptNode(node.shadowRoot); - if (node instanceof ShadowRoot) adoptOlderShadowRoots(node, doc); - for (var child = node.firstChild; child; child = child.nextSibling) { - adoptSubtree(child, doc); - } - } - function adoptOlderShadowRoots(shadowRoot, doc) { - var oldShadowRoot = shadowRoot.olderShadowRoot; - if (oldShadowRoot) doc.adoptNode(oldShadowRoot); - } - var originalGetSelection = document.getSelection; - mixin(Document.prototype, { - adoptNode: function(node) { - if (node.parentNode) node.parentNode.removeChild(node); - adoptNodeNoRemove(node, this); - return node; - }, - elementFromPoint: function(x, y) { - return elementFromPoint(this, this, x, y); - }, - importNode: function(node, deep) { - return cloneNode(node, deep, unsafeUnwrap(this)); - }, - getSelection: function() { - renderAllPending(); - return new Selection(originalGetSelection.call(unwrap(this))); - }, - getElementsByName: function(name) { - return SelectorsInterface.querySelectorAll.call(this, "[name=" + JSON.stringify(String(name)) + "]"); - } - }); - var originalCreateTreeWalker = document.createTreeWalker; - var TreeWalkerWrapper = scope.wrappers.TreeWalker; - Document.prototype.createTreeWalker = function(root, whatToShow, filter, expandEntityReferences) { - var newFilter = null; - if (filter) { - if (filter.acceptNode && typeof filter.acceptNode === "function") { - newFilter = { - acceptNode: function(node) { - return filter.acceptNode(wrap(node)); - } - }; - } else if (typeof filter === "function") { - newFilter = function(node) { - return filter(wrap(node)); - }; - } - } - return new TreeWalkerWrapper(originalCreateTreeWalker.call(unwrap(this), unwrap(root), whatToShow, newFilter, expandEntityReferences)); - }; - if (document.registerElement) { - var originalRegisterElement = document.registerElement; - Document.prototype.registerElement = function(tagName, object) { - var prototype, extendsOption; - if (object !== undefined) { - prototype = object.prototype; - extendsOption = object.extends; - } - if (!prototype) prototype = Object.create(HTMLElement.prototype); - if (scope.nativePrototypeTable.get(prototype)) { - throw new Error("NotSupportedError"); - } - var proto = Object.getPrototypeOf(prototype); - var nativePrototype; - var prototypes = []; - while (proto) { - nativePrototype = scope.nativePrototypeTable.get(proto); - if (nativePrototype) break; - prototypes.push(proto); - proto = Object.getPrototypeOf(proto); - } - if (!nativePrototype) { - throw new Error("NotSupportedError"); - } - var newPrototype = Object.create(nativePrototype); - for (var i = prototypes.length - 1; i >= 0; i--) { - newPrototype = Object.create(newPrototype); - } - [ "createdCallback", "attachedCallback", "detachedCallback", "attributeChangedCallback" ].forEach(function(name) { - var f = prototype[name]; - if (!f) return; - newPrototype[name] = function() { - if (!(wrap(this) instanceof CustomElementConstructor)) { - rewrap(this); - } - f.apply(wrap(this), arguments); - }; - }); - var p = { - prototype: newPrototype - }; - if (extendsOption) p.extends = extendsOption; - function CustomElementConstructor(node) { - if (!node) { - if (extendsOption) { - return document.createElement(extendsOption, tagName); - } else { - return document.createElement(tagName); - } - } - setWrapper(node, this); - } - CustomElementConstructor.prototype = prototype; - CustomElementConstructor.prototype.constructor = CustomElementConstructor; - scope.constructorTable.set(newPrototype, CustomElementConstructor); - scope.nativePrototypeTable.set(prototype, newPrototype); - var nativeConstructor = originalRegisterElement.call(unwrap(this), tagName, p); - return CustomElementConstructor; - }; - forwardMethodsToWrapper([ window.HTMLDocument || window.Document ], [ "registerElement" ]); - } - forwardMethodsToWrapper([ window.HTMLBodyElement, window.HTMLDocument || window.Document, window.HTMLHeadElement, window.HTMLHtmlElement ], [ "appendChild", "compareDocumentPosition", "contains", "getElementsByClassName", "getElementsByTagName", "getElementsByTagNameNS", "insertBefore", "querySelector", "querySelectorAll", "removeChild", "replaceChild" ]); - forwardMethodsToWrapper([ window.HTMLBodyElement, window.HTMLHeadElement, window.HTMLHtmlElement ], matchesNames); - forwardMethodsToWrapper([ window.HTMLDocument || window.Document ], [ "adoptNode", "importNode", "contains", "createComment", "createDocumentFragment", "createElement", "createElementNS", "createEvent", "createEventNS", "createRange", "createTextNode", "createTreeWalker", "elementFromPoint", "getElementById", "getElementsByName", "getSelection" ]); - mixin(Document.prototype, GetElementsByInterface); - mixin(Document.prototype, ParentNodeInterface); - mixin(Document.prototype, SelectorsInterface); - mixin(Document.prototype, NonElementParentNodeInterface); - mixin(Document.prototype, { - get implementation() { - var implementation = implementationTable.get(this); - if (implementation) return implementation; - implementation = new DOMImplementation(unwrap(this).implementation); - implementationTable.set(this, implementation); - return implementation; - }, - get defaultView() { - return wrap(unwrap(this).defaultView); - } - }); - registerWrapper(window.Document, Document, document.implementation.createHTMLDocument("")); - if (window.HTMLDocument) registerWrapper(window.HTMLDocument, Document); - wrapEventTargetMethods([ window.HTMLBodyElement, window.HTMLDocument || window.Document, window.HTMLHeadElement ]); - function DOMImplementation(impl) { - setWrapper(impl, this); - } - var originalCreateDocument = document.implementation.createDocument; - DOMImplementation.prototype.createDocument = function() { - arguments[2] = unwrap(arguments[2]); - return wrap(originalCreateDocument.apply(unsafeUnwrap(this), arguments)); - }; - function wrapImplMethod(constructor, name) { - var original = document.implementation[name]; - constructor.prototype[name] = function() { - return wrap(original.apply(unsafeUnwrap(this), arguments)); - }; - } - function forwardImplMethod(constructor, name) { - var original = document.implementation[name]; - constructor.prototype[name] = function() { - return original.apply(unsafeUnwrap(this), arguments); - }; - } - wrapImplMethod(DOMImplementation, "createDocumentType"); - wrapImplMethod(DOMImplementation, "createHTMLDocument"); - forwardImplMethod(DOMImplementation, "hasFeature"); - registerWrapper(window.DOMImplementation, DOMImplementation); - forwardMethodsToWrapper([ window.DOMImplementation ], [ "createDocument", "createDocumentType", "createHTMLDocument", "hasFeature" ]); - scope.adoptNodeNoRemove = adoptNodeNoRemove; - scope.wrappers.DOMImplementation = DOMImplementation; - scope.wrappers.Document = Document; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var EventTarget = scope.wrappers.EventTarget; - var Selection = scope.wrappers.Selection; - var mixin = scope.mixin; - var registerWrapper = scope.registerWrapper; - var renderAllPending = scope.renderAllPending; - var unwrap = scope.unwrap; - var unwrapIfNeeded = scope.unwrapIfNeeded; - var wrap = scope.wrap; - var OriginalWindow = window.Window; - var originalGetComputedStyle = window.getComputedStyle; - var originalGetDefaultComputedStyle = window.getDefaultComputedStyle; - var originalGetSelection = window.getSelection; - function Window(impl) { - EventTarget.call(this, impl); - } - Window.prototype = Object.create(EventTarget.prototype); - OriginalWindow.prototype.getComputedStyle = function(el, pseudo) { - return wrap(this || window).getComputedStyle(unwrapIfNeeded(el), pseudo); - }; - if (originalGetDefaultComputedStyle) { - OriginalWindow.prototype.getDefaultComputedStyle = function(el, pseudo) { - return wrap(this || window).getDefaultComputedStyle(unwrapIfNeeded(el), pseudo); - }; - } - OriginalWindow.prototype.getSelection = function() { - return wrap(this || window).getSelection(); - }; - delete window.getComputedStyle; - delete window.getDefaultComputedStyle; - delete window.getSelection; - [ "addEventListener", "removeEventListener", "dispatchEvent" ].forEach(function(name) { - OriginalWindow.prototype[name] = function() { - var w = wrap(this || window); - return w[name].apply(w, arguments); - }; - delete window[name]; - }); - mixin(Window.prototype, { - getComputedStyle: function(el, pseudo) { - renderAllPending(); - return originalGetComputedStyle.call(unwrap(this), unwrapIfNeeded(el), pseudo); - }, - getSelection: function() { - renderAllPending(); - return new Selection(originalGetSelection.call(unwrap(this))); - }, - get document() { - return wrap(unwrap(this).document); - } - }); - if (originalGetDefaultComputedStyle) { - Window.prototype.getDefaultComputedStyle = function(el, pseudo) { - renderAllPending(); - return originalGetDefaultComputedStyle.call(unwrap(this), unwrapIfNeeded(el), pseudo); - }; - } - registerWrapper(OriginalWindow, Window, window); - scope.wrappers.Window = Window; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var unwrap = scope.unwrap; - var OriginalDataTransfer = window.DataTransfer || window.Clipboard; - var OriginalDataTransferSetDragImage = OriginalDataTransfer.prototype.setDragImage; - if (OriginalDataTransferSetDragImage) { - OriginalDataTransfer.prototype.setDragImage = function(image, x, y) { - OriginalDataTransferSetDragImage.call(this, unwrap(image), x, y); - }; - } - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var registerWrapper = scope.registerWrapper; - var setWrapper = scope.setWrapper; - var unwrap = scope.unwrap; - var OriginalFormData = window.FormData; - if (!OriginalFormData) return; - function FormData(formElement) { - var impl; - if (formElement instanceof OriginalFormData) { - impl = formElement; - } else { - impl = new OriginalFormData(formElement && unwrap(formElement)); - } - setWrapper(impl, this); - } - registerWrapper(OriginalFormData, FormData, new OriginalFormData()); - scope.wrappers.FormData = FormData; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var unwrapIfNeeded = scope.unwrapIfNeeded; - var originalSend = XMLHttpRequest.prototype.send; - XMLHttpRequest.prototype.send = function(obj) { - return originalSend.call(this, unwrapIfNeeded(obj)); - }; - })(window.ShadowDOMPolyfill); - (function(scope) { - "use strict"; - var isWrapperFor = scope.isWrapperFor; - var elements = { - a: "HTMLAnchorElement", - area: "HTMLAreaElement", - audio: "HTMLAudioElement", - base: "HTMLBaseElement", - body: "HTMLBodyElement", - br: "HTMLBRElement", - button: "HTMLButtonElement", - canvas: "HTMLCanvasElement", - caption: "HTMLTableCaptionElement", - col: "HTMLTableColElement", - content: "HTMLContentElement", - data: "HTMLDataElement", - datalist: "HTMLDataListElement", - del: "HTMLModElement", - dir: "HTMLDirectoryElement", - div: "HTMLDivElement", - dl: "HTMLDListElement", - embed: "HTMLEmbedElement", - fieldset: "HTMLFieldSetElement", - font: "HTMLFontElement", - form: "HTMLFormElement", - frame: "HTMLFrameElement", - frameset: "HTMLFrameSetElement", - h1: "HTMLHeadingElement", - head: "HTMLHeadElement", - hr: "HTMLHRElement", - html: "HTMLHtmlElement", - iframe: "HTMLIFrameElement", - img: "HTMLImageElement", - input: "HTMLInputElement", - keygen: "HTMLKeygenElement", - label: "HTMLLabelElement", - legend: "HTMLLegendElement", - li: "HTMLLIElement", - link: "HTMLLinkElement", - map: "HTMLMapElement", - marquee: "HTMLMarqueeElement", - menu: "HTMLMenuElement", - menuitem: "HTMLMenuItemElement", - meta: "HTMLMetaElement", - meter: "HTMLMeterElement", - object: "HTMLObjectElement", - ol: "HTMLOListElement", - optgroup: "HTMLOptGroupElement", - option: "HTMLOptionElement", - output: "HTMLOutputElement", - p: "HTMLParagraphElement", - param: "HTMLParamElement", - pre: "HTMLPreElement", - progress: "HTMLProgressElement", - q: "HTMLQuoteElement", - script: "HTMLScriptElement", - select: "HTMLSelectElement", - shadow: "HTMLShadowElement", - source: "HTMLSourceElement", - span: "HTMLSpanElement", - style: "HTMLStyleElement", - table: "HTMLTableElement", - tbody: "HTMLTableSectionElement", - template: "HTMLTemplateElement", - textarea: "HTMLTextAreaElement", - thead: "HTMLTableSectionElement", - time: "HTMLTimeElement", - title: "HTMLTitleElement", - tr: "HTMLTableRowElement", - track: "HTMLTrackElement", - ul: "HTMLUListElement", - video: "HTMLVideoElement" - }; - function overrideConstructor(tagName) { - var nativeConstructorName = elements[tagName]; - var nativeConstructor = window[nativeConstructorName]; - if (!nativeConstructor) return; - var element = document.createElement(tagName); - var wrapperConstructor = element.constructor; - window[nativeConstructorName] = wrapperConstructor; - } - Object.keys(elements).forEach(overrideConstructor); - Object.getOwnPropertyNames(scope.wrappers).forEach(function(name) { - window[name] = scope.wrappers[name]; - }); - })(window.ShadowDOMPolyfill); - (function(scope) { - var ShadowCSS = { - strictStyling: false, - registry: {}, - shimStyling: function(root, name, extendsName) { - var scopeStyles = this.prepareRoot(root, name, extendsName); - var typeExtension = this.isTypeExtension(extendsName); - var scopeSelector = this.makeScopeSelector(name, typeExtension); - var cssText = stylesToCssText(scopeStyles, true); - cssText = this.scopeCssText(cssText, scopeSelector); - if (root) { - root.shimmedStyle = cssText; - } - this.addCssToDocument(cssText, name); - }, - shimStyle: function(style, selector) { - return this.shimCssText(style.textContent, selector); - }, - shimCssText: function(cssText, selector) { - cssText = this.insertDirectives(cssText); - return this.scopeCssText(cssText, selector); - }, - makeScopeSelector: function(name, typeExtension) { - if (name) { - return typeExtension ? "[is=" + name + "]" : name; - } - return ""; - }, - isTypeExtension: function(extendsName) { - return extendsName && extendsName.indexOf("-") < 0; - }, - prepareRoot: function(root, name, extendsName) { - var def = this.registerRoot(root, name, extendsName); - this.replaceTextInStyles(def.rootStyles, this.insertDirectives); - this.removeStyles(root, def.rootStyles); - if (this.strictStyling) { - this.applyScopeToContent(root, name); - } - return def.scopeStyles; - }, - removeStyles: function(root, styles) { - for (var i = 0, l = styles.length, s; i < l && (s = styles[i]); i++) { - s.parentNode.removeChild(s); - } - }, - registerRoot: function(root, name, extendsName) { - var def = this.registry[name] = { - root: root, - name: name, - extendsName: extendsName - }; - var styles = this.findStyles(root); - def.rootStyles = styles; - def.scopeStyles = def.rootStyles; - var extendee = this.registry[def.extendsName]; - if (extendee) { - def.scopeStyles = extendee.scopeStyles.concat(def.scopeStyles); - } - return def; - }, - findStyles: function(root) { - if (!root) { - return []; - } - var styles = root.querySelectorAll("style"); - return Array.prototype.filter.call(styles, function(s) { - return !s.hasAttribute(NO_SHIM_ATTRIBUTE); - }); - }, - applyScopeToContent: function(root, name) { - if (root) { - Array.prototype.forEach.call(root.querySelectorAll("*"), function(node) { - node.setAttribute(name, ""); - }); - Array.prototype.forEach.call(root.querySelectorAll("template"), function(template) { - this.applyScopeToContent(template.content, name); - }, this); - } - }, - insertDirectives: function(cssText) { - cssText = this.insertPolyfillDirectivesInCssText(cssText); - return this.insertPolyfillRulesInCssText(cssText); - }, - insertPolyfillDirectivesInCssText: function(cssText) { - cssText = cssText.replace(cssCommentNextSelectorRe, function(match, p1) { - return p1.slice(0, -2) + "{"; - }); - return cssText.replace(cssContentNextSelectorRe, function(match, p1) { - return p1 + " {"; - }); - }, - insertPolyfillRulesInCssText: function(cssText) { - cssText = cssText.replace(cssCommentRuleRe, function(match, p1) { - return p1.slice(0, -1); - }); - return cssText.replace(cssContentRuleRe, function(match, p1, p2, p3) { - var rule = match.replace(p1, "").replace(p2, ""); - return p3 + rule; - }); - }, - scopeCssText: function(cssText, scopeSelector) { - var unscoped = this.extractUnscopedRulesFromCssText(cssText); - cssText = this.insertPolyfillHostInCssText(cssText); - cssText = this.convertColonHost(cssText); - cssText = this.convertColonHostContext(cssText); - cssText = this.convertShadowDOMSelectors(cssText); - if (scopeSelector) { - var self = this, cssText; - withCssRules(cssText, function(rules) { - cssText = self.scopeRules(rules, scopeSelector); - }); - } - cssText = cssText + "\n" + unscoped; - return cssText.trim(); - }, - extractUnscopedRulesFromCssText: function(cssText) { - var r = "", m; - while (m = cssCommentUnscopedRuleRe.exec(cssText)) { - r += m[1].slice(0, -1) + "\n\n"; - } - while (m = cssContentUnscopedRuleRe.exec(cssText)) { - r += m[0].replace(m[2], "").replace(m[1], m[3]) + "\n\n"; - } - return r; - }, - convertColonHost: function(cssText) { - return this.convertColonRule(cssText, cssColonHostRe, this.colonHostPartReplacer); - }, - convertColonHostContext: function(cssText) { - return this.convertColonRule(cssText, cssColonHostContextRe, this.colonHostContextPartReplacer); - }, - convertColonRule: function(cssText, regExp, partReplacer) { - return cssText.replace(regExp, function(m, p1, p2, p3) { - p1 = polyfillHostNoCombinator; - if (p2) { - var parts = p2.split(","), r = []; - for (var i = 0, l = parts.length, p; i < l && (p = parts[i]); i++) { - p = p.trim(); - r.push(partReplacer(p1, p, p3)); - } - return r.join(","); - } else { - return p1 + p3; - } - }); - }, - colonHostContextPartReplacer: function(host, part, suffix) { - if (part.match(polyfillHost)) { - return this.colonHostPartReplacer(host, part, suffix); - } else { - return host + part + suffix + ", " + part + " " + host + suffix; - } - }, - colonHostPartReplacer: function(host, part, suffix) { - return host + part.replace(polyfillHost, "") + suffix; - }, - convertShadowDOMSelectors: function(cssText) { - for (var i = 0; i < shadowDOMSelectorsRe.length; i++) { - cssText = cssText.replace(shadowDOMSelectorsRe[i], " "); - } - return cssText; - }, - scopeRules: function(cssRules, scopeSelector) { - var cssText = ""; - if (cssRules) { - Array.prototype.forEach.call(cssRules, function(rule) { - if (rule.selectorText && (rule.style && rule.style.cssText !== undefined)) { - cssText += this.scopeSelector(rule.selectorText, scopeSelector, this.strictStyling) + " {\n "; - cssText += this.propertiesFromRule(rule) + "\n}\n\n"; - } else if (rule.type === CSSRule.MEDIA_RULE) { - cssText += "@media " + rule.media.mediaText + " {\n"; - cssText += this.scopeRules(rule.cssRules, scopeSelector); - cssText += "\n}\n\n"; - } else { - try { - if (rule.cssText) { - cssText += rule.cssText + "\n\n"; - } - } catch (x) { - if (rule.type === CSSRule.KEYFRAMES_RULE && rule.cssRules) { - cssText += this.ieSafeCssTextFromKeyFrameRule(rule); - } - } - } - }, this); - } - return cssText; - }, - ieSafeCssTextFromKeyFrameRule: function(rule) { - var cssText = "@keyframes " + rule.name + " {"; - Array.prototype.forEach.call(rule.cssRules, function(rule) { - cssText += " " + rule.keyText + " {" + rule.style.cssText + "}"; - }); - cssText += " }"; - return cssText; - }, - scopeSelector: function(selector, scopeSelector, strict) { - var r = [], parts = selector.split(","); - parts.forEach(function(p) { - p = p.trim(); - if (this.selectorNeedsScoping(p, scopeSelector)) { - p = strict && !p.match(polyfillHostNoCombinator) ? this.applyStrictSelectorScope(p, scopeSelector) : this.applySelectorScope(p, scopeSelector); - } - r.push(p); - }, this); - return r.join(", "); - }, - selectorNeedsScoping: function(selector, scopeSelector) { - if (Array.isArray(scopeSelector)) { - return true; - } - var re = this.makeScopeMatcher(scopeSelector); - return !selector.match(re); - }, - makeScopeMatcher: function(scopeSelector) { - scopeSelector = scopeSelector.replace(/\[/g, "\\[").replace(/\]/g, "\\]"); - return new RegExp("^(" + scopeSelector + ")" + selectorReSuffix, "m"); - }, - applySelectorScope: function(selector, selectorScope) { - return Array.isArray(selectorScope) ? this.applySelectorScopeList(selector, selectorScope) : this.applySimpleSelectorScope(selector, selectorScope); - }, - applySelectorScopeList: function(selector, scopeSelectorList) { - var r = []; - for (var i = 0, s; s = scopeSelectorList[i]; i++) { - r.push(this.applySimpleSelectorScope(selector, s)); - } - return r.join(", "); - }, - applySimpleSelectorScope: function(selector, scopeSelector) { - if (selector.match(polyfillHostRe)) { - selector = selector.replace(polyfillHostNoCombinator, scopeSelector); - return selector.replace(polyfillHostRe, scopeSelector + " "); - } else { - return scopeSelector + " " + selector; - } - }, - applyStrictSelectorScope: function(selector, scopeSelector) { - scopeSelector = scopeSelector.replace(/\[is=([^\]]*)\]/g, "$1"); - var splits = [ " ", ">", "+", "~" ], scoped = selector, attrName = "[" + scopeSelector + "]"; - splits.forEach(function(sep) { - var parts = scoped.split(sep); - scoped = parts.map(function(p) { - var t = p.trim().replace(polyfillHostRe, ""); - if (t && splits.indexOf(t) < 0 && t.indexOf(attrName) < 0) { - p = t.replace(/([^:]*)(:*)(.*)/, "$1" + attrName + "$2$3"); - } - return p; - }).join(sep); - }); - return scoped; - }, - insertPolyfillHostInCssText: function(selector) { - return selector.replace(colonHostContextRe, polyfillHostContext).replace(colonHostRe, polyfillHost); - }, - propertiesFromRule: function(rule) { - var cssText = rule.style.cssText; - if (rule.style.content && !rule.style.content.match(/['"]+|attr/)) { - cssText = cssText.replace(/content:[^;]*;/g, "content: '" + rule.style.content + "';"); - } - var style = rule.style; - for (var i in style) { - if (style[i] === "initial") { - cssText += i + ": initial; "; - } - } - return cssText; - }, - replaceTextInStyles: function(styles, action) { - if (styles && action) { - if (!(styles instanceof Array)) { - styles = [ styles ]; - } - Array.prototype.forEach.call(styles, function(s) { - s.textContent = action.call(this, s.textContent); - }, this); - } - }, - addCssToDocument: function(cssText, name) { - if (cssText.match("@import")) { - addOwnSheet(cssText, name); - } else { - addCssToDocument(cssText); - } - } - }; - var selectorRe = /([^{]*)({[\s\S]*?})/gim, cssCommentRe = /\/\*[^*]*\*+([^\/*][^*]*\*+)*\//gim, cssCommentNextSelectorRe = /\/\*\s*@polyfill ([^*]*\*+([^\/*][^*]*\*+)*\/)([^{]*?){/gim, cssContentNextSelectorRe = /polyfill-next-selector[^}]*content\:[\s]*?['"](.*?)['"][;\s]*}([^{]*?){/gim, cssCommentRuleRe = /\/\*\s@polyfill-rule([^*]*\*+([^\/*][^*]*\*+)*)\//gim, cssContentRuleRe = /(polyfill-rule)[^}]*(content\:[\s]*['"](.*?)['"])[;\s]*[^}]*}/gim, cssCommentUnscopedRuleRe = /\/\*\s@polyfill-unscoped-rule([^*]*\*+([^\/*][^*]*\*+)*)\//gim, cssContentUnscopedRuleRe = /(polyfill-unscoped-rule)[^}]*(content\:[\s]*['"](.*?)['"])[;\s]*[^}]*}/gim, cssPseudoRe = /::(x-[^\s{,(]*)/gim, cssPartRe = /::part\(([^)]*)\)/gim, polyfillHost = "-shadowcsshost", polyfillHostContext = "-shadowcsscontext", parenSuffix = ")(?:\\((" + "(?:\\([^)(]*\\)|[^)(]*)+?" + ")\\))?([^,{]*)"; - var cssColonHostRe = new RegExp("(" + polyfillHost + parenSuffix, "gim"), cssColonHostContextRe = new RegExp("(" + polyfillHostContext + parenSuffix, "gim"), selectorReSuffix = "([>\\s~+[.,{:][\\s\\S]*)?$", colonHostRe = /\:host/gim, colonHostContextRe = /\:host-context/gim, polyfillHostNoCombinator = polyfillHost + "-no-combinator", polyfillHostRe = new RegExp(polyfillHost, "gim"), polyfillHostContextRe = new RegExp(polyfillHostContext, "gim"), shadowDOMSelectorsRe = [ />>>/g, /::shadow/g, /::content/g, /\/deep\//g, /\/shadow\//g, /\/shadow-deep\//g, /\^\^/g, /\^/g ]; - function stylesToCssText(styles, preserveComments) { - var cssText = ""; - Array.prototype.forEach.call(styles, function(s) { - cssText += s.textContent + "\n\n"; - }); - if (!preserveComments) { - cssText = cssText.replace(cssCommentRe, ""); - } - return cssText; - } - function cssTextToStyle(cssText) { - var style = document.createElement("style"); - style.textContent = cssText; - return style; - } - function cssToRules(cssText) { - var style = cssTextToStyle(cssText); - document.head.appendChild(style); - var rules = []; - if (style.sheet) { - try { - rules = style.sheet.cssRules; - } catch (e) {} - } else { - console.warn("sheet not found", style); - } - style.parentNode.removeChild(style); - return rules; - } - var frame = document.createElement("iframe"); - frame.style.display = "none"; - function initFrame() { - frame.initialized = true; - document.body.appendChild(frame); - var doc = frame.contentDocument; - var base = doc.createElement("base"); - base.href = document.baseURI; - doc.head.appendChild(base); - } - function inFrame(fn) { - if (!frame.initialized) { - initFrame(); - } - document.body.appendChild(frame); - fn(frame.contentDocument); - document.body.removeChild(frame); - } - var isChrome = navigator.userAgent.match("Chrome"); - function withCssRules(cssText, callback) { - if (!callback) { - return; - } - var rules; - if (cssText.match("@import") && isChrome) { - var style = cssTextToStyle(cssText); - inFrame(function(doc) { - doc.head.appendChild(style.impl); - rules = Array.prototype.slice.call(style.sheet.cssRules, 0); - callback(rules); - }); - } else { - rules = cssToRules(cssText); - callback(rules); - } - } - function rulesToCss(cssRules) { - for (var i = 0, css = []; i < cssRules.length; i++) { - css.push(cssRules[i].cssText); - } - return css.join("\n\n"); - } - function addCssToDocument(cssText) { - if (cssText) { - getSheet().appendChild(document.createTextNode(cssText)); - } - } - function addOwnSheet(cssText, name) { - var style = cssTextToStyle(cssText); - style.setAttribute(name, ""); - style.setAttribute(SHIMMED_ATTRIBUTE, ""); - document.head.appendChild(style); - } - var SHIM_ATTRIBUTE = "shim-shadowdom"; - var SHIMMED_ATTRIBUTE = "shim-shadowdom-css"; - var NO_SHIM_ATTRIBUTE = "no-shim"; - var sheet; - function getSheet() { - if (!sheet) { - sheet = document.createElement("style"); - sheet.setAttribute(SHIMMED_ATTRIBUTE, ""); - sheet[SHIMMED_ATTRIBUTE] = true; - } - return sheet; - } - if (window.ShadowDOMPolyfill) { - addCssToDocument("style { display: none !important; }\n"); - var doc = ShadowDOMPolyfill.wrap(document); - var head = doc.querySelector("head"); - head.insertBefore(getSheet(), head.childNodes[0]); - document.addEventListener("DOMContentLoaded", function() { - var urlResolver = scope.urlResolver; - if (window.HTMLImports && !HTMLImports.useNative) { - var SHIM_SHEET_SELECTOR = "link[rel=stylesheet]" + "[" + SHIM_ATTRIBUTE + "]"; - var SHIM_STYLE_SELECTOR = "style[" + SHIM_ATTRIBUTE + "]"; - HTMLImports.importer.documentPreloadSelectors += "," + SHIM_SHEET_SELECTOR; - HTMLImports.importer.importsPreloadSelectors += "," + SHIM_SHEET_SELECTOR; - HTMLImports.parser.documentSelectors = [ HTMLImports.parser.documentSelectors, SHIM_SHEET_SELECTOR, SHIM_STYLE_SELECTOR ].join(","); - var originalParseGeneric = HTMLImports.parser.parseGeneric; - HTMLImports.parser.parseGeneric = function(elt) { - if (elt[SHIMMED_ATTRIBUTE]) { - return; - } - var style = elt.__importElement || elt; - if (!style.hasAttribute(SHIM_ATTRIBUTE)) { - originalParseGeneric.call(this, elt); - return; - } - if (elt.__resource) { - style = elt.ownerDocument.createElement("style"); - style.textContent = elt.__resource; - } - HTMLImports.path.resolveUrlsInStyle(style, elt.href); - style.textContent = ShadowCSS.shimStyle(style); - style.removeAttribute(SHIM_ATTRIBUTE, ""); - style.setAttribute(SHIMMED_ATTRIBUTE, ""); - style[SHIMMED_ATTRIBUTE] = true; - if (style.parentNode !== head) { - if (elt.parentNode === head) { - head.replaceChild(style, elt); - } else { - this.addElementToDocument(style); - } - } - style.__importParsed = true; - this.markParsingComplete(elt); - this.parseNext(); - }; - var hasResource = HTMLImports.parser.hasResource; - HTMLImports.parser.hasResource = function(node) { - if (node.localName === "link" && node.rel === "stylesheet" && node.hasAttribute(SHIM_ATTRIBUTE)) { - return node.__resource; - } else { - return hasResource.call(this, node); - } - }; - } - }); - } - scope.ShadowCSS = ShadowCSS; - })(window.WebComponents); -} - -(function(scope) { - if (window.ShadowDOMPolyfill) { - window.wrap = ShadowDOMPolyfill.wrapIfNeeded; - window.unwrap = ShadowDOMPolyfill.unwrapIfNeeded; - } else { - window.wrap = window.unwrap = function(n) { - return n; - }; - } -})(window.WebComponents); - -(function(scope) { - "use strict"; - var hasWorkingUrl = false; - if (!scope.forceJURL) { - try { - var u = new URL("b", "http://a"); - u.pathname = "c%20d"; - hasWorkingUrl = u.href === "http://a/c%20d"; - } catch (e) {} - } - if (hasWorkingUrl) return; - var relative = Object.create(null); - relative["ftp"] = 21; - relative["file"] = 0; - relative["gopher"] = 70; - relative["http"] = 80; - relative["https"] = 443; - relative["ws"] = 80; - relative["wss"] = 443; - var relativePathDotMapping = Object.create(null); - relativePathDotMapping["%2e"] = "."; - relativePathDotMapping[".%2e"] = ".."; - relativePathDotMapping["%2e."] = ".."; - relativePathDotMapping["%2e%2e"] = ".."; - function isRelativeScheme(scheme) { - return relative[scheme] !== undefined; - } - function invalid() { - clear.call(this); - this._isInvalid = true; - } - function IDNAToASCII(h) { - if ("" == h) { - invalid.call(this); - } - return h.toLowerCase(); - } - function percentEscape(c) { - var unicode = c.charCodeAt(0); - if (unicode > 32 && unicode < 127 && [ 34, 35, 60, 62, 63, 96 ].indexOf(unicode) == -1) { - return c; - } - return encodeURIComponent(c); - } - function percentEscapeQuery(c) { - var unicode = c.charCodeAt(0); - if (unicode > 32 && unicode < 127 && [ 34, 35, 60, 62, 96 ].indexOf(unicode) == -1) { - return c; - } - return encodeURIComponent(c); - } - var EOF = undefined, ALPHA = /[a-zA-Z]/, ALPHANUMERIC = /[a-zA-Z0-9\+\-\.]/; - function parse(input, stateOverride, base) { - function err(message) { - errors.push(message); - } - var state = stateOverride || "scheme start", cursor = 0, buffer = "", seenAt = false, seenBracket = false, errors = []; - loop: while ((input[cursor - 1] != EOF || cursor == 0) && !this._isInvalid) { - var c = input[cursor]; - switch (state) { - case "scheme start": - if (c && ALPHA.test(c)) { - buffer += c.toLowerCase(); - state = "scheme"; - } else if (!stateOverride) { - buffer = ""; - state = "no scheme"; - continue; - } else { - err("Invalid scheme."); - break loop; - } - break; - - case "scheme": - if (c && ALPHANUMERIC.test(c)) { - buffer += c.toLowerCase(); - } else if (":" == c) { - this._scheme = buffer; - buffer = ""; - if (stateOverride) { - break loop; - } - if (isRelativeScheme(this._scheme)) { - this._isRelative = true; - } - if ("file" == this._scheme) { - state = "relative"; - } else if (this._isRelative && base && base._scheme == this._scheme) { - state = "relative or authority"; - } else if (this._isRelative) { - state = "authority first slash"; - } else { - state = "scheme data"; - } - } else if (!stateOverride) { - buffer = ""; - cursor = 0; - state = "no scheme"; - continue; - } else if (EOF == c) { - break loop; - } else { - err("Code point not allowed in scheme: " + c); - break loop; - } - break; - - case "scheme data": - if ("?" == c) { - this._query = "?"; - state = "query"; - } else if ("#" == c) { - this._fragment = "#"; - state = "fragment"; - } else { - if (EOF != c && " " != c && "\n" != c && "\r" != c) { - this._schemeData += percentEscape(c); - } - } - break; - - case "no scheme": - if (!base || !isRelativeScheme(base._scheme)) { - err("Missing scheme."); - invalid.call(this); - } else { - state = "relative"; - continue; - } - break; - - case "relative or authority": - if ("/" == c && "/" == input[cursor + 1]) { - state = "authority ignore slashes"; - } else { - err("Expected /, got: " + c); - state = "relative"; - continue; - } - break; - - case "relative": - this._isRelative = true; - if ("file" != this._scheme) this._scheme = base._scheme; - if (EOF == c) { - this._host = base._host; - this._port = base._port; - this._path = base._path.slice(); - this._query = base._query; - this._username = base._username; - this._password = base._password; - break loop; - } else if ("/" == c || "\\" == c) { - if ("\\" == c) err("\\ is an invalid code point."); - state = "relative slash"; - } else if ("?" == c) { - this._host = base._host; - this._port = base._port; - this._path = base._path.slice(); - this._query = "?"; - this._username = base._username; - this._password = base._password; - state = "query"; - } else if ("#" == c) { - this._host = base._host; - this._port = base._port; - this._path = base._path.slice(); - this._query = base._query; - this._fragment = "#"; - this._username = base._username; - this._password = base._password; - state = "fragment"; - } else { - var nextC = input[cursor + 1]; - var nextNextC = input[cursor + 2]; - if ("file" != this._scheme || !ALPHA.test(c) || nextC != ":" && nextC != "|" || EOF != nextNextC && "/" != nextNextC && "\\" != nextNextC && "?" != nextNextC && "#" != nextNextC) { - this._host = base._host; - this._port = base._port; - this._username = base._username; - this._password = base._password; - this._path = base._path.slice(); - this._path.pop(); - } - state = "relative path"; - continue; - } - break; - - case "relative slash": - if ("/" == c || "\\" == c) { - if ("\\" == c) { - err("\\ is an invalid code point."); - } - if ("file" == this._scheme) { - state = "file host"; - } else { - state = "authority ignore slashes"; - } - } else { - if ("file" != this._scheme) { - this._host = base._host; - this._port = base._port; - this._username = base._username; - this._password = base._password; - } - state = "relative path"; - continue; - } - break; - - case "authority first slash": - if ("/" == c) { - state = "authority second slash"; - } else { - err("Expected '/', got: " + c); - state = "authority ignore slashes"; - continue; - } - break; - - case "authority second slash": - state = "authority ignore slashes"; - if ("/" != c) { - err("Expected '/', got: " + c); - continue; - } - break; - - case "authority ignore slashes": - if ("/" != c && "\\" != c) { - state = "authority"; - continue; - } else { - err("Expected authority, got: " + c); - } - break; - - case "authority": - if ("@" == c) { - if (seenAt) { - err("@ already seen."); - buffer += "%40"; - } - seenAt = true; - for (var i = 0; i < buffer.length; i++) { - var cp = buffer[i]; - if (" " == cp || "\n" == cp || "\r" == cp) { - err("Invalid whitespace in authority."); - continue; - } - if (":" == cp && null === this._password) { - this._password = ""; - continue; - } - var tempC = percentEscape(cp); - null !== this._password ? this._password += tempC : this._username += tempC; - } - buffer = ""; - } else if (EOF == c || "/" == c || "\\" == c || "?" == c || "#" == c) { - cursor -= buffer.length; - buffer = ""; - state = "host"; - continue; - } else { - buffer += c; - } - break; - - case "file host": - if (EOF == c || "/" == c || "\\" == c || "?" == c || "#" == c) { - if (buffer.length == 2 && ALPHA.test(buffer[0]) && (buffer[1] == ":" || buffer[1] == "|")) { - state = "relative path"; - } else if (buffer.length == 0) { - state = "relative path start"; - } else { - this._host = IDNAToASCII.call(this, buffer); - buffer = ""; - state = "relative path start"; - } - continue; - } else if (" " == c || "\n" == c || "\r" == c) { - err("Invalid whitespace in file host."); - } else { - buffer += c; - } - break; - - case "host": - case "hostname": - if (":" == c && !seenBracket) { - this._host = IDNAToASCII.call(this, buffer); - buffer = ""; - state = "port"; - if ("hostname" == stateOverride) { - break loop; - } - } else if (EOF == c || "/" == c || "\\" == c || "?" == c || "#" == c) { - this._host = IDNAToASCII.call(this, buffer); - buffer = ""; - state = "relative path start"; - if (stateOverride) { - break loop; - } - continue; - } else if (" " != c && "\n" != c && "\r" != c) { - if ("[" == c) { - seenBracket = true; - } else if ("]" == c) { - seenBracket = false; - } - buffer += c; - } else { - err("Invalid code point in host/hostname: " + c); - } - break; - - case "port": - if (/[0-9]/.test(c)) { - buffer += c; - } else if (EOF == c || "/" == c || "\\" == c || "?" == c || "#" == c || stateOverride) { - if ("" != buffer) { - var temp = parseInt(buffer, 10); - if (temp != relative[this._scheme]) { - this._port = temp + ""; - } - buffer = ""; - } - if (stateOverride) { - break loop; - } - state = "relative path start"; - continue; - } else if (" " == c || "\n" == c || "\r" == c) { - err("Invalid code point in port: " + c); - } else { - invalid.call(this); - } - break; - - case "relative path start": - if ("\\" == c) err("'\\' not allowed in path."); - state = "relative path"; - if ("/" != c && "\\" != c) { - continue; - } - break; - - case "relative path": - if (EOF == c || "/" == c || "\\" == c || !stateOverride && ("?" == c || "#" == c)) { - if ("\\" == c) { - err("\\ not allowed in relative path."); - } - var tmp; - if (tmp = relativePathDotMapping[buffer.toLowerCase()]) { - buffer = tmp; - } - if (".." == buffer) { - this._path.pop(); - if ("/" != c && "\\" != c) { - this._path.push(""); - } - } else if ("." == buffer && "/" != c && "\\" != c) { - this._path.push(""); - } else if ("." != buffer) { - if ("file" == this._scheme && this._path.length == 0 && buffer.length == 2 && ALPHA.test(buffer[0]) && buffer[1] == "|") { - buffer = buffer[0] + ":"; - } - this._path.push(buffer); - } - buffer = ""; - if ("?" == c) { - this._query = "?"; - state = "query"; - } else if ("#" == c) { - this._fragment = "#"; - state = "fragment"; - } - } else if (" " != c && "\n" != c && "\r" != c) { - buffer += percentEscape(c); - } - break; - - case "query": - if (!stateOverride && "#" == c) { - this._fragment = "#"; - state = "fragment"; - } else if (EOF != c && " " != c && "\n" != c && "\r" != c) { - this._query += percentEscapeQuery(c); - } - break; - - case "fragment": - if (EOF != c && " " != c && "\n" != c && "\r" != c) { - this._fragment += c; - } - break; - } - cursor++; - } - } - function clear() { - this._scheme = ""; - this._schemeData = ""; - this._username = ""; - this._password = null; - this._host = ""; - this._port = ""; - this._path = []; - this._query = ""; - this._fragment = ""; - this._isInvalid = false; - this._isRelative = false; - } - function jURL(url, base) { - if (base !== undefined && !(base instanceof jURL)) base = new jURL(String(base)); - this._url = url; - clear.call(this); - var input = url.replace(/^[ \t\r\n\f]+|[ \t\r\n\f]+$/g, ""); - parse.call(this, input, null, base); - } - jURL.prototype = { - toString: function() { - return this.href; - }, - get href() { - if (this._isInvalid) return this._url; - var authority = ""; - if ("" != this._username || null != this._password) { - authority = this._username + (null != this._password ? ":" + this._password : "") + "@"; - } - return this.protocol + (this._isRelative ? "//" + authority + this.host : "") + this.pathname + this._query + this._fragment; - }, - set href(href) { - clear.call(this); - parse.call(this, href); - }, - get protocol() { - return this._scheme + ":"; - }, - set protocol(protocol) { - if (this._isInvalid) return; - parse.call(this, protocol + ":", "scheme start"); - }, - get host() { - return this._isInvalid ? "" : this._port ? this._host + ":" + this._port : this._host; - }, - set host(host) { - if (this._isInvalid || !this._isRelative) return; - parse.call(this, host, "host"); - }, - get hostname() { - return this._host; - }, - set hostname(hostname) { - if (this._isInvalid || !this._isRelative) return; - parse.call(this, hostname, "hostname"); - }, - get port() { - return this._port; - }, - set port(port) { - if (this._isInvalid || !this._isRelative) return; - parse.call(this, port, "port"); - }, - get pathname() { - return this._isInvalid ? "" : this._isRelative ? "/" + this._path.join("/") : this._schemeData; - }, - set pathname(pathname) { - if (this._isInvalid || !this._isRelative) return; - this._path = []; - parse.call(this, pathname, "relative path start"); - }, - get search() { - return this._isInvalid || !this._query || "?" == this._query ? "" : this._query; - }, - set search(search) { - if (this._isInvalid || !this._isRelative) return; - this._query = "?"; - if ("?" == search[0]) search = search.slice(1); - parse.call(this, search, "query"); - }, - get hash() { - return this._isInvalid || !this._fragment || "#" == this._fragment ? "" : this._fragment; - }, - set hash(hash) { - if (this._isInvalid) return; - this._fragment = "#"; - if ("#" == hash[0]) hash = hash.slice(1); - parse.call(this, hash, "fragment"); - }, - get origin() { - var host; - if (this._isInvalid || !this._scheme) { - return ""; - } - switch (this._scheme) { - case "data": - case "file": - case "javascript": - case "mailto": - return "null"; - } - host = this.host; - if (!host) { - return ""; - } - return this._scheme + "://" + host; - } - }; - var OriginalURL = scope.URL; - if (OriginalURL) { - jURL.createObjectURL = function(blob) { - return OriginalURL.createObjectURL.apply(OriginalURL, arguments); - }; - jURL.revokeObjectURL = function(url) { - OriginalURL.revokeObjectURL(url); - }; - } - scope.URL = jURL; -})(this); - -(function(global) { - var registrationsTable = new WeakMap(); - var setImmediate; - if (/Trident|Edge/.test(navigator.userAgent)) { - setImmediate = setTimeout; - } else if (window.setImmediate) { - setImmediate = window.setImmediate; - } else { - var setImmediateQueue = []; - var sentinel = String(Math.random()); - window.addEventListener("message", function(e) { - if (e.data === sentinel) { - var queue = setImmediateQueue; - setImmediateQueue = []; - queue.forEach(function(func) { - func(); - }); - } - }); - setImmediate = function(func) { - setImmediateQueue.push(func); - window.postMessage(sentinel, "*"); - }; - } - var isScheduled = false; - var scheduledObservers = []; - function scheduleCallback(observer) { - scheduledObservers.push(observer); - if (!isScheduled) { - isScheduled = true; - setImmediate(dispatchCallbacks); - } - } - function wrapIfNeeded(node) { - return window.ShadowDOMPolyfill && window.ShadowDOMPolyfill.wrapIfNeeded(node) || node; - } - function dispatchCallbacks() { - isScheduled = false; - var observers = scheduledObservers; - scheduledObservers = []; - observers.sort(function(o1, o2) { - return o1.uid_ - o2.uid_; - }); - var anyNonEmpty = false; - observers.forEach(function(observer) { - var queue = observer.takeRecords(); - removeTransientObserversFor(observer); - if (queue.length) { - observer.callback_(queue, observer); - anyNonEmpty = true; - } - }); - if (anyNonEmpty) dispatchCallbacks(); - } - function removeTransientObserversFor(observer) { - observer.nodes_.forEach(function(node) { - var registrations = registrationsTable.get(node); - if (!registrations) return; - registrations.forEach(function(registration) { - if (registration.observer === observer) registration.removeTransientObservers(); - }); - }); - } - function forEachAncestorAndObserverEnqueueRecord(target, callback) { - for (var node = target; node; node = node.parentNode) { - var registrations = registrationsTable.get(node); - if (registrations) { - for (var j = 0; j < registrations.length; j++) { - var registration = registrations[j]; - var options = registration.options; - if (node !== target && !options.subtree) continue; - var record = callback(options); - if (record) registration.enqueue(record); - } - } - } - } - var uidCounter = 0; - function JsMutationObserver(callback) { - this.callback_ = callback; - this.nodes_ = []; - this.records_ = []; - this.uid_ = ++uidCounter; - } - JsMutationObserver.prototype = { - observe: function(target, options) { - target = wrapIfNeeded(target); - if (!options.childList && !options.attributes && !options.characterData || options.attributeOldValue && !options.attributes || options.attributeFilter && options.attributeFilter.length && !options.attributes || options.characterDataOldValue && !options.characterData) { - throw new SyntaxError(); - } - var registrations = registrationsTable.get(target); - if (!registrations) registrationsTable.set(target, registrations = []); - var registration; - for (var i = 0; i < registrations.length; i++) { - if (registrations[i].observer === this) { - registration = registrations[i]; - registration.removeListeners(); - registration.options = options; - break; - } - } - if (!registration) { - registration = new Registration(this, target, options); - registrations.push(registration); - this.nodes_.push(target); - } - registration.addListeners(); - }, - disconnect: function() { - this.nodes_.forEach(function(node) { - var registrations = registrationsTable.get(node); - for (var i = 0; i < registrations.length; i++) { - var registration = registrations[i]; - if (registration.observer === this) { - registration.removeListeners(); - registrations.splice(i, 1); - break; - } - } - }, this); - this.records_ = []; - }, - takeRecords: function() { - var copyOfRecords = this.records_; - this.records_ = []; - return copyOfRecords; - } - }; - function MutationRecord(type, target) { - this.type = type; - this.target = target; - this.addedNodes = []; - this.removedNodes = []; - this.previousSibling = null; - this.nextSibling = null; - this.attributeName = null; - this.attributeNamespace = null; - this.oldValue = null; - } - function copyMutationRecord(original) { - var record = new MutationRecord(original.type, original.target); - record.addedNodes = original.addedNodes.slice(); - record.removedNodes = original.removedNodes.slice(); - record.previousSibling = original.previousSibling; - record.nextSibling = original.nextSibling; - record.attributeName = original.attributeName; - record.attributeNamespace = original.attributeNamespace; - record.oldValue = original.oldValue; - return record; - } - var currentRecord, recordWithOldValue; - function getRecord(type, target) { - return currentRecord = new MutationRecord(type, target); - } - function getRecordWithOldValue(oldValue) { - if (recordWithOldValue) return recordWithOldValue; - recordWithOldValue = copyMutationRecord(currentRecord); - recordWithOldValue.oldValue = oldValue; - return recordWithOldValue; - } - function clearRecords() { - currentRecord = recordWithOldValue = undefined; - } - function recordRepresentsCurrentMutation(record) { - return record === recordWithOldValue || record === currentRecord; - } - function selectRecord(lastRecord, newRecord) { - if (lastRecord === newRecord) return lastRecord; - if (recordWithOldValue && recordRepresentsCurrentMutation(lastRecord)) return recordWithOldValue; - return null; - } - function Registration(observer, target, options) { - this.observer = observer; - this.target = target; - this.options = options; - this.transientObservedNodes = []; - } - Registration.prototype = { - enqueue: function(record) { - var records = this.observer.records_; - var length = records.length; - if (records.length > 0) { - var lastRecord = records[length - 1]; - var recordToReplaceLast = selectRecord(lastRecord, record); - if (recordToReplaceLast) { - records[length - 1] = recordToReplaceLast; - return; - } - } else { - scheduleCallback(this.observer); - } - records[length] = record; - }, - addListeners: function() { - this.addListeners_(this.target); - }, - addListeners_: function(node) { - var options = this.options; - if (options.attributes) node.addEventListener("DOMAttrModified", this, true); - if (options.characterData) node.addEventListener("DOMCharacterDataModified", this, true); - if (options.childList) node.addEventListener("DOMNodeInserted", this, true); - if (options.childList || options.subtree) node.addEventListener("DOMNodeRemoved", this, true); - }, - removeListeners: function() { - this.removeListeners_(this.target); - }, - removeListeners_: function(node) { - var options = this.options; - if (options.attributes) node.removeEventListener("DOMAttrModified", this, true); - if (options.characterData) node.removeEventListener("DOMCharacterDataModified", this, true); - if (options.childList) node.removeEventListener("DOMNodeInserted", this, true); - if (options.childList || options.subtree) node.removeEventListener("DOMNodeRemoved", this, true); - }, - addTransientObserver: function(node) { - if (node === this.target) return; - this.addListeners_(node); - this.transientObservedNodes.push(node); - var registrations = registrationsTable.get(node); - if (!registrations) registrationsTable.set(node, registrations = []); - registrations.push(this); - }, - removeTransientObservers: function() { - var transientObservedNodes = this.transientObservedNodes; - this.transientObservedNodes = []; - transientObservedNodes.forEach(function(node) { - this.removeListeners_(node); - var registrations = registrationsTable.get(node); - for (var i = 0; i < registrations.length; i++) { - if (registrations[i] === this) { - registrations.splice(i, 1); - break; - } - } - }, this); - }, - handleEvent: function(e) { - e.stopImmediatePropagation(); - switch (e.type) { - case "DOMAttrModified": - var name = e.attrName; - var namespace = e.relatedNode.namespaceURI; - var target = e.target; - var record = new getRecord("attributes", target); - record.attributeName = name; - record.attributeNamespace = namespace; - var oldValue = e.attrChange === MutationEvent.ADDITION ? null : e.prevValue; - forEachAncestorAndObserverEnqueueRecord(target, function(options) { - if (!options.attributes) return; - if (options.attributeFilter && options.attributeFilter.length && options.attributeFilter.indexOf(name) === -1 && options.attributeFilter.indexOf(namespace) === -1) { - return; - } - if (options.attributeOldValue) return getRecordWithOldValue(oldValue); - return record; - }); - break; - - case "DOMCharacterDataModified": - var target = e.target; - var record = getRecord("characterData", target); - var oldValue = e.prevValue; - forEachAncestorAndObserverEnqueueRecord(target, function(options) { - if (!options.characterData) return; - if (options.characterDataOldValue) return getRecordWithOldValue(oldValue); - return record; - }); - break; - - case "DOMNodeRemoved": - this.addTransientObserver(e.target); - - case "DOMNodeInserted": - var changedNode = e.target; - var addedNodes, removedNodes; - if (e.type === "DOMNodeInserted") { - addedNodes = [ changedNode ]; - removedNodes = []; - } else { - addedNodes = []; - removedNodes = [ changedNode ]; - } - var previousSibling = changedNode.previousSibling; - var nextSibling = changedNode.nextSibling; - var record = getRecord("childList", e.target.parentNode); - record.addedNodes = addedNodes; - record.removedNodes = removedNodes; - record.previousSibling = previousSibling; - record.nextSibling = nextSibling; - forEachAncestorAndObserverEnqueueRecord(e.relatedNode, function(options) { - if (!options.childList) return; - return record; - }); - } - clearRecords(); - } - }; - global.JsMutationObserver = JsMutationObserver; - if (!global.MutationObserver) global.MutationObserver = JsMutationObserver; -})(this); - -window.HTMLImports = window.HTMLImports || { - flags: {} -}; - -(function(scope) { - var IMPORT_LINK_TYPE = "import"; - var useNative = Boolean(IMPORT_LINK_TYPE in document.createElement("link")); - var hasShadowDOMPolyfill = Boolean(window.ShadowDOMPolyfill); - var wrap = function(node) { - return hasShadowDOMPolyfill ? window.ShadowDOMPolyfill.wrapIfNeeded(node) : node; - }; - var rootDocument = wrap(document); - var currentScriptDescriptor = { - get: function() { - var script = window.HTMLImports.currentScript || document.currentScript || (document.readyState !== "complete" ? document.scripts[document.scripts.length - 1] : null); - return wrap(script); - }, - configurable: true - }; - Object.defineProperty(document, "_currentScript", currentScriptDescriptor); - Object.defineProperty(rootDocument, "_currentScript", currentScriptDescriptor); - var isIE = /Trident/.test(navigator.userAgent); - function whenReady(callback, doc) { - doc = doc || rootDocument; - whenDocumentReady(function() { - watchImportsLoad(callback, doc); - }, doc); - } - var requiredReadyState = isIE ? "complete" : "interactive"; - var READY_EVENT = "readystatechange"; - function isDocumentReady(doc) { - return doc.readyState === "complete" || doc.readyState === requiredReadyState; - } - function whenDocumentReady(callback, doc) { - if (!isDocumentReady(doc)) { - var checkReady = function() { - if (doc.readyState === "complete" || doc.readyState === requiredReadyState) { - doc.removeEventListener(READY_EVENT, checkReady); - whenDocumentReady(callback, doc); - } - }; - doc.addEventListener(READY_EVENT, checkReady); - } else if (callback) { - callback(); - } - } - function markTargetLoaded(event) { - event.target.__loaded = true; - } - function watchImportsLoad(callback, doc) { - var imports = doc.querySelectorAll("link[rel=import]"); - var parsedCount = 0, importCount = imports.length, newImports = [], errorImports = []; - function checkDone() { - if (parsedCount == importCount && callback) { - callback({ - allImports: imports, - loadedImports: newImports, - errorImports: errorImports - }); - } - } - function loadedImport(e) { - markTargetLoaded(e); - newImports.push(this); - parsedCount++; - checkDone(); - } - function errorLoadingImport(e) { - errorImports.push(this); - parsedCount++; - checkDone(); - } - if (importCount) { - for (var i = 0, imp; i < importCount && (imp = imports[i]); i++) { - if (isImportLoaded(imp)) { - parsedCount++; - checkDone(); - } else { - imp.addEventListener("load", loadedImport); - imp.addEventListener("error", errorLoadingImport); - } - } - } else { - checkDone(); - } - } - function isImportLoaded(link) { - return useNative ? link.__loaded || link.import && link.import.readyState !== "loading" : link.__importParsed; - } - if (useNative) { - new MutationObserver(function(mxns) { - for (var i = 0, l = mxns.length, m; i < l && (m = mxns[i]); i++) { - if (m.addedNodes) { - handleImports(m.addedNodes); - } - } - }).observe(document.head, { - childList: true - }); - function handleImports(nodes) { - for (var i = 0, l = nodes.length, n; i < l && (n = nodes[i]); i++) { - if (isImport(n)) { - handleImport(n); - } - } - } - function isImport(element) { - return element.localName === "link" && element.rel === "import"; - } - function handleImport(element) { - var loaded = element.import; - if (loaded) { - markTargetLoaded({ - target: element - }); - } else { - element.addEventListener("load", markTargetLoaded); - element.addEventListener("error", markTargetLoaded); - } - } - (function() { - if (document.readyState === "loading") { - var imports = document.querySelectorAll("link[rel=import]"); - for (var i = 0, l = imports.length, imp; i < l && (imp = imports[i]); i++) { - handleImport(imp); - } - } - })(); - } - whenReady(function(detail) { - window.HTMLImports.ready = true; - window.HTMLImports.readyTime = new Date().getTime(); - var evt = rootDocument.createEvent("CustomEvent"); - evt.initCustomEvent("HTMLImportsLoaded", true, true, detail); - rootDocument.dispatchEvent(evt); - }); - scope.IMPORT_LINK_TYPE = IMPORT_LINK_TYPE; - scope.useNative = useNative; - scope.rootDocument = rootDocument; - scope.whenReady = whenReady; - scope.isIE = isIE; -})(window.HTMLImports); - -(function(scope) { - var modules = []; - var addModule = function(module) { - modules.push(module); - }; - var initializeModules = function() { - modules.forEach(function(module) { - module(scope); - }); - }; - scope.addModule = addModule; - scope.initializeModules = initializeModules; -})(window.HTMLImports); - -window.HTMLImports.addModule(function(scope) { - var CSS_URL_REGEXP = /(url\()([^)]*)(\))/g; - var CSS_IMPORT_REGEXP = /(@import[\s]+(?!url\())([^;]*)(;)/g; - var path = { - resolveUrlsInStyle: function(style, linkUrl) { - var doc = style.ownerDocument; - var resolver = doc.createElement("a"); - style.textContent = this.resolveUrlsInCssText(style.textContent, linkUrl, resolver); - return style; - }, - resolveUrlsInCssText: function(cssText, linkUrl, urlObj) { - var r = this.replaceUrls(cssText, urlObj, linkUrl, CSS_URL_REGEXP); - r = this.replaceUrls(r, urlObj, linkUrl, CSS_IMPORT_REGEXP); - return r; - }, - replaceUrls: function(text, urlObj, linkUrl, regexp) { - return text.replace(regexp, function(m, pre, url, post) { - var urlPath = url.replace(/["']/g, ""); - if (linkUrl) { - urlPath = new URL(urlPath, linkUrl).href; - } - urlObj.href = urlPath; - urlPath = urlObj.href; - return pre + "'" + urlPath + "'" + post; - }); - } - }; - scope.path = path; -}); - -window.HTMLImports.addModule(function(scope) { - var xhr = { - async: true, - ok: function(request) { - return request.status >= 200 && request.status < 300 || request.status === 304 || request.status === 0; - }, - load: function(url, next, nextContext) { - var request = new XMLHttpRequest(); - if (scope.flags.debug || scope.flags.bust) { - url += "?" + Math.random(); - } - request.open("GET", url, xhr.async); - request.addEventListener("readystatechange", function(e) { - if (request.readyState === 4) { - var locationHeader = request.getResponseHeader("Location"); - var redirectedUrl = null; - if (locationHeader) { - var redirectedUrl = locationHeader.substr(0, 1) === "/" ? location.origin + locationHeader : locationHeader; - } - next.call(nextContext, !xhr.ok(request) && request, request.response || request.responseText, redirectedUrl); - } - }); - request.send(); - return request; - }, - loadDocument: function(url, next, nextContext) { - this.load(url, next, nextContext).responseType = "document"; - } - }; - scope.xhr = xhr; -}); - -window.HTMLImports.addModule(function(scope) { - var xhr = scope.xhr; - var flags = scope.flags; - var Loader = function(onLoad, onComplete) { - this.cache = {}; - this.onload = onLoad; - this.oncomplete = onComplete; - this.inflight = 0; - this.pending = {}; - }; - Loader.prototype = { - addNodes: function(nodes) { - this.inflight += nodes.length; - for (var i = 0, l = nodes.length, n; i < l && (n = nodes[i]); i++) { - this.require(n); - } - this.checkDone(); - }, - addNode: function(node) { - this.inflight++; - this.require(node); - this.checkDone(); - }, - require: function(elt) { - var url = elt.src || elt.href; - elt.__nodeUrl = url; - if (!this.dedupe(url, elt)) { - this.fetch(url, elt); - } - }, - dedupe: function(url, elt) { - if (this.pending[url]) { - this.pending[url].push(elt); - return true; - } - var resource; - if (this.cache[url]) { - this.onload(url, elt, this.cache[url]); - this.tail(); - return true; - } - this.pending[url] = [ elt ]; - return false; - }, - fetch: function(url, elt) { - flags.load && console.log("fetch", url, elt); - if (!url) { - setTimeout(function() { - this.receive(url, elt, { - error: "href must be specified" - }, null); - }.bind(this), 0); - } else if (url.match(/^data:/)) { - var pieces = url.split(","); - var header = pieces[0]; - var body = pieces[1]; - if (header.indexOf(";base64") > -1) { - body = atob(body); - } else { - body = decodeURIComponent(body); - } - setTimeout(function() { - this.receive(url, elt, null, body); - }.bind(this), 0); - } else { - var receiveXhr = function(err, resource, redirectedUrl) { - this.receive(url, elt, err, resource, redirectedUrl); - }.bind(this); - xhr.load(url, receiveXhr); - } - }, - receive: function(url, elt, err, resource, redirectedUrl) { - this.cache[url] = resource; - var $p = this.pending[url]; - for (var i = 0, l = $p.length, p; i < l && (p = $p[i]); i++) { - this.onload(url, p, resource, err, redirectedUrl); - this.tail(); - } - this.pending[url] = null; - }, - tail: function() { - --this.inflight; - this.checkDone(); - }, - checkDone: function() { - if (!this.inflight) { - this.oncomplete(); - } - } - }; - scope.Loader = Loader; -}); - -window.HTMLImports.addModule(function(scope) { - var Observer = function(addCallback) { - this.addCallback = addCallback; - this.mo = new MutationObserver(this.handler.bind(this)); - }; - Observer.prototype = { - handler: function(mutations) { - for (var i = 0, l = mutations.length, m; i < l && (m = mutations[i]); i++) { - if (m.type === "childList" && m.addedNodes.length) { - this.addedNodes(m.addedNodes); - } - } - }, - addedNodes: function(nodes) { - if (this.addCallback) { - this.addCallback(nodes); - } - for (var i = 0, l = nodes.length, n, loading; i < l && (n = nodes[i]); i++) { - if (n.children && n.children.length) { - this.addedNodes(n.children); - } - } - }, - observe: function(root) { - this.mo.observe(root, { - childList: true, - subtree: true - }); - } - }; - scope.Observer = Observer; -}); - -window.HTMLImports.addModule(function(scope) { - var path = scope.path; - var rootDocument = scope.rootDocument; - var flags = scope.flags; - var isIE = scope.isIE; - var IMPORT_LINK_TYPE = scope.IMPORT_LINK_TYPE; - var IMPORT_SELECTOR = "link[rel=" + IMPORT_LINK_TYPE + "]"; - var importParser = { - documentSelectors: IMPORT_SELECTOR, - importsSelectors: [ IMPORT_SELECTOR, "link[rel=stylesheet]", "style", "script:not([type])", 'script[type="application/javascript"]', 'script[type="text/javascript"]' ].join(","), - map: { - link: "parseLink", - script: "parseScript", - style: "parseStyle" - }, - dynamicElements: [], - parseNext: function() { - var next = this.nextToParse(); - if (next) { - this.parse(next); - } - }, - parse: function(elt) { - if (this.isParsed(elt)) { - flags.parse && console.log("[%s] is already parsed", elt.localName); - return; - } - var fn = this[this.map[elt.localName]]; - if (fn) { - this.markParsing(elt); - fn.call(this, elt); - } - }, - parseDynamic: function(elt, quiet) { - this.dynamicElements.push(elt); - if (!quiet) { - this.parseNext(); - } - }, - markParsing: function(elt) { - flags.parse && console.log("parsing", elt); - this.parsingElement = elt; - }, - markParsingComplete: function(elt) { - elt.__importParsed = true; - this.markDynamicParsingComplete(elt); - if (elt.__importElement) { - elt.__importElement.__importParsed = true; - this.markDynamicParsingComplete(elt.__importElement); - } - this.parsingElement = null; - flags.parse && console.log("completed", elt); - }, - markDynamicParsingComplete: function(elt) { - var i = this.dynamicElements.indexOf(elt); - if (i >= 0) { - this.dynamicElements.splice(i, 1); - } - }, - parseImport: function(elt) { - if (window.HTMLImports.__importsParsingHook) { - window.HTMLImports.__importsParsingHook(elt); - } - if (elt.import) { - elt.import.__importParsed = true; - } - this.markParsingComplete(elt); - if (elt.__resource && !elt.__error) { - elt.dispatchEvent(new CustomEvent("load", { - bubbles: false - })); - } else { - elt.dispatchEvent(new CustomEvent("error", { - bubbles: false - })); - } - if (elt.__pending) { - var fn; - while (elt.__pending.length) { - fn = elt.__pending.shift(); - if (fn) { - fn({ - target: elt - }); - } - } - } - this.parseNext(); - }, - parseLink: function(linkElt) { - if (nodeIsImport(linkElt)) { - this.parseImport(linkElt); - } else { - linkElt.href = linkElt.href; - this.parseGeneric(linkElt); - } - }, - parseStyle: function(elt) { - var src = elt; - elt = cloneStyle(elt); - src.__appliedElement = elt; - elt.__importElement = src; - this.parseGeneric(elt); - }, - parseGeneric: function(elt) { - this.trackElement(elt); - this.addElementToDocument(elt); - }, - rootImportForElement: function(elt) { - var n = elt; - while (n.ownerDocument.__importLink) { - n = n.ownerDocument.__importLink; - } - return n; - }, - addElementToDocument: function(elt) { - var port = this.rootImportForElement(elt.__importElement || elt); - port.parentNode.insertBefore(elt, port); - }, - trackElement: function(elt, callback) { - var self = this; - var done = function(e) { - if (callback) { - callback(e); - } - self.markParsingComplete(elt); - self.parseNext(); - }; - elt.addEventListener("load", done); - elt.addEventListener("error", done); - if (isIE && elt.localName === "style") { - var fakeLoad = false; - if (elt.textContent.indexOf("@import") == -1) { - fakeLoad = true; - } else if (elt.sheet) { - fakeLoad = true; - var csr = elt.sheet.cssRules; - var len = csr ? csr.length : 0; - for (var i = 0, r; i < len && (r = csr[i]); i++) { - if (r.type === CSSRule.IMPORT_RULE) { - fakeLoad = fakeLoad && Boolean(r.styleSheet); - } - } - } - if (fakeLoad) { - setTimeout(function() { - elt.dispatchEvent(new CustomEvent("load", { - bubbles: false - })); - }); - } - } - }, - parseScript: function(scriptElt) { - var script = document.createElement("script"); - script.__importElement = scriptElt; - script.src = scriptElt.src ? scriptElt.src : generateScriptDataUrl(scriptElt); - scope.currentScript = scriptElt; - this.trackElement(script, function(e) { - script.parentNode.removeChild(script); - scope.currentScript = null; - }); - this.addElementToDocument(script); - }, - nextToParse: function() { - this._mayParse = []; - return !this.parsingElement && (this.nextToParseInDoc(rootDocument) || this.nextToParseDynamic()); - }, - nextToParseInDoc: function(doc, link) { - if (doc && this._mayParse.indexOf(doc) < 0) { - this._mayParse.push(doc); - var nodes = doc.querySelectorAll(this.parseSelectorsForNode(doc)); - for (var i = 0, l = nodes.length, p = 0, n; i < l && (n = nodes[i]); i++) { - if (!this.isParsed(n)) { - if (this.hasResource(n)) { - return nodeIsImport(n) ? this.nextToParseInDoc(n.import, n) : n; - } else { - return; - } - } - } - } - return link; - }, - nextToParseDynamic: function() { - return this.dynamicElements[0]; - }, - parseSelectorsForNode: function(node) { - var doc = node.ownerDocument || node; - return doc === rootDocument ? this.documentSelectors : this.importsSelectors; - }, - isParsed: function(node) { - return node.__importParsed; - }, - needsDynamicParsing: function(elt) { - return this.dynamicElements.indexOf(elt) >= 0; - }, - hasResource: function(node) { - if (nodeIsImport(node) && node.import === undefined) { - return false; - } - return true; - } - }; - function nodeIsImport(elt) { - return elt.localName === "link" && elt.rel === IMPORT_LINK_TYPE; - } - function generateScriptDataUrl(script) { - var scriptContent = generateScriptContent(script); - return "data:text/javascript;charset=utf-8," + encodeURIComponent(scriptContent); - } - function generateScriptContent(script) { - return script.textContent + generateSourceMapHint(script); - } - function generateSourceMapHint(script) { - var owner = script.ownerDocument; - owner.__importedScripts = owner.__importedScripts || 0; - var moniker = script.ownerDocument.baseURI; - var num = owner.__importedScripts ? "-" + owner.__importedScripts : ""; - owner.__importedScripts++; - return "\n//# sourceURL=" + moniker + num + ".js\n"; - } - function cloneStyle(style) { - var clone = style.ownerDocument.createElement("style"); - clone.textContent = style.textContent; - path.resolveUrlsInStyle(clone); - return clone; - } - scope.parser = importParser; - scope.IMPORT_SELECTOR = IMPORT_SELECTOR; -}); - -window.HTMLImports.addModule(function(scope) { - var flags = scope.flags; - var IMPORT_LINK_TYPE = scope.IMPORT_LINK_TYPE; - var IMPORT_SELECTOR = scope.IMPORT_SELECTOR; - var rootDocument = scope.rootDocument; - var Loader = scope.Loader; - var Observer = scope.Observer; - var parser = scope.parser; - var importer = { - documents: {}, - documentPreloadSelectors: IMPORT_SELECTOR, - importsPreloadSelectors: [ IMPORT_SELECTOR ].join(","), - loadNode: function(node) { - importLoader.addNode(node); - }, - loadSubtree: function(parent) { - var nodes = this.marshalNodes(parent); - importLoader.addNodes(nodes); - }, - marshalNodes: function(parent) { - return parent.querySelectorAll(this.loadSelectorsForNode(parent)); - }, - loadSelectorsForNode: function(node) { - var doc = node.ownerDocument || node; - return doc === rootDocument ? this.documentPreloadSelectors : this.importsPreloadSelectors; - }, - loaded: function(url, elt, resource, err, redirectedUrl) { - flags.load && console.log("loaded", url, elt); - elt.__resource = resource; - elt.__error = err; - if (isImportLink(elt)) { - var doc = this.documents[url]; - if (doc === undefined) { - doc = err ? null : makeDocument(resource, redirectedUrl || url); - if (doc) { - doc.__importLink = elt; - this.bootDocument(doc); - } - this.documents[url] = doc; - } - elt.import = doc; - } - parser.parseNext(); - }, - bootDocument: function(doc) { - this.loadSubtree(doc); - this.observer.observe(doc); - parser.parseNext(); - }, - loadedAll: function() { - parser.parseNext(); - } - }; - var importLoader = new Loader(importer.loaded.bind(importer), importer.loadedAll.bind(importer)); - importer.observer = new Observer(); - function isImportLink(elt) { - return isLinkRel(elt, IMPORT_LINK_TYPE); - } - function isLinkRel(elt, rel) { - return elt.localName === "link" && elt.getAttribute("rel") === rel; - } - function hasBaseURIAccessor(doc) { - return !!Object.getOwnPropertyDescriptor(doc, "baseURI"); - } - function makeDocument(resource, url) { - var doc = document.implementation.createHTMLDocument(IMPORT_LINK_TYPE); - doc._URL = url; - var base = doc.createElement("base"); - base.setAttribute("href", url); - if (!doc.baseURI && !hasBaseURIAccessor(doc)) { - Object.defineProperty(doc, "baseURI", { - value: url - }); - } - var meta = doc.createElement("meta"); - meta.setAttribute("charset", "utf-8"); - doc.head.appendChild(meta); - doc.head.appendChild(base); - doc.body.innerHTML = resource; - if (window.HTMLTemplateElement && HTMLTemplateElement.bootstrap) { - HTMLTemplateElement.bootstrap(doc); - } - return doc; - } - if (!document.baseURI) { - var baseURIDescriptor = { - get: function() { - var base = document.querySelector("base"); - return base ? base.href : window.location.href; - }, - configurable: true - }; - Object.defineProperty(document, "baseURI", baseURIDescriptor); - Object.defineProperty(rootDocument, "baseURI", baseURIDescriptor); - } - scope.importer = importer; - scope.importLoader = importLoader; -}); - -window.HTMLImports.addModule(function(scope) { - var parser = scope.parser; - var importer = scope.importer; - var dynamic = { - added: function(nodes) { - var owner, parsed, loading; - for (var i = 0, l = nodes.length, n; i < l && (n = nodes[i]); i++) { - if (!owner) { - owner = n.ownerDocument; - parsed = parser.isParsed(owner); - } - loading = this.shouldLoadNode(n); - if (loading) { - importer.loadNode(n); - } - if (this.shouldParseNode(n) && parsed) { - parser.parseDynamic(n, loading); - } - } - }, - shouldLoadNode: function(node) { - return node.nodeType === 1 && matches.call(node, importer.loadSelectorsForNode(node)); - }, - shouldParseNode: function(node) { - return node.nodeType === 1 && matches.call(node, parser.parseSelectorsForNode(node)); - } - }; - importer.observer.addCallback = dynamic.added.bind(dynamic); - var matches = HTMLElement.prototype.matches || HTMLElement.prototype.matchesSelector || HTMLElement.prototype.webkitMatchesSelector || HTMLElement.prototype.mozMatchesSelector || HTMLElement.prototype.msMatchesSelector; -}); - -(function(scope) { - var initializeModules = scope.initializeModules; - var isIE = scope.isIE; - if (scope.useNative) { - return; - } - if (isIE && typeof window.CustomEvent !== "function") { - window.CustomEvent = function(inType, params) { - params = params || {}; - var e = document.createEvent("CustomEvent"); - e.initCustomEvent(inType, Boolean(params.bubbles), Boolean(params.cancelable), params.detail); - e.preventDefault = function() { - Object.defineProperty(this, "defaultPrevented", { - get: function() { - return true; - } - }); - }; - return e; - }; - window.CustomEvent.prototype = window.Event.prototype; - } - initializeModules(); - var rootDocument = scope.rootDocument; - function bootstrap() { - window.HTMLImports.importer.bootDocument(rootDocument); - } - if (document.readyState === "complete" || document.readyState === "interactive" && !window.attachEvent) { - bootstrap(); - } else { - document.addEventListener("DOMContentLoaded", bootstrap); - } -})(window.HTMLImports); - -window.CustomElements = window.CustomElements || { - flags: {} -}; - -(function(scope) { - var flags = scope.flags; - var modules = []; - var addModule = function(module) { - modules.push(module); - }; - var initializeModules = function() { - modules.forEach(function(module) { - module(scope); - }); - }; - scope.addModule = addModule; - scope.initializeModules = initializeModules; - scope.hasNative = Boolean(document.registerElement); - scope.useNative = !flags.register && scope.hasNative && !window.ShadowDOMPolyfill && (!window.HTMLImports || window.HTMLImports.useNative); -})(window.CustomElements); - -window.CustomElements.addModule(function(scope) { - var IMPORT_LINK_TYPE = window.HTMLImports ? window.HTMLImports.IMPORT_LINK_TYPE : "none"; - function forSubtree(node, cb) { - findAllElements(node, function(e) { - if (cb(e)) { - return true; - } - forRoots(e, cb); - }); - forRoots(node, cb); - } - function findAllElements(node, find, data) { - var e = node.firstElementChild; - if (!e) { - e = node.firstChild; - while (e && e.nodeType !== Node.ELEMENT_NODE) { - e = e.nextSibling; - } - } - while (e) { - if (find(e, data) !== true) { - findAllElements(e, find, data); - } - e = e.nextElementSibling; - } - return null; - } - function forRoots(node, cb) { - var root = node.shadowRoot; - while (root) { - forSubtree(root, cb); - root = root.olderShadowRoot; - } - } - function forDocumentTree(doc, cb) { - _forDocumentTree(doc, cb, []); - } - function _forDocumentTree(doc, cb, processingDocuments) { - doc = window.wrap(doc); - if (processingDocuments.indexOf(doc) >= 0) { - return; - } - processingDocuments.push(doc); - var imports = doc.querySelectorAll("link[rel=" + IMPORT_LINK_TYPE + "]"); - for (var i = 0, l = imports.length, n; i < l && (n = imports[i]); i++) { - if (n.import) { - _forDocumentTree(n.import, cb, processingDocuments); - } - } - cb(doc); - } - scope.forDocumentTree = forDocumentTree; - scope.forSubtree = forSubtree; -}); - -window.CustomElements.addModule(function(scope) { - var flags = scope.flags; - var forSubtree = scope.forSubtree; - var forDocumentTree = scope.forDocumentTree; - function addedNode(node) { - return added(node) || addedSubtree(node); - } - function added(node) { - if (scope.upgrade(node)) { - return true; - } - attached(node); - } - function addedSubtree(node) { - forSubtree(node, function(e) { - if (added(e)) { - return true; - } - }); - } - function attachedNode(node) { - attached(node); - if (inDocument(node)) { - forSubtree(node, function(e) { - attached(e); - }); - } - } - var hasPolyfillMutations = !window.MutationObserver || window.MutationObserver === window.JsMutationObserver; - scope.hasPolyfillMutations = hasPolyfillMutations; - var isPendingMutations = false; - var pendingMutations = []; - function deferMutation(fn) { - pendingMutations.push(fn); - if (!isPendingMutations) { - isPendingMutations = true; - setTimeout(takeMutations); - } - } - function takeMutations() { - isPendingMutations = false; - var $p = pendingMutations; - for (var i = 0, l = $p.length, p; i < l && (p = $p[i]); i++) { - p(); - } - pendingMutations = []; - } - function attached(element) { - if (hasPolyfillMutations) { - deferMutation(function() { - _attached(element); - }); - } else { - _attached(element); - } - } - function _attached(element) { - if (element.__upgraded__ && (element.attachedCallback || element.detachedCallback)) { - if (!element.__attached && inDocument(element)) { - element.__attached = true; - if (element.attachedCallback) { - element.attachedCallback(); - } - } - } - } - function detachedNode(node) { - detached(node); - forSubtree(node, function(e) { - detached(e); - }); - } - function detached(element) { - if (hasPolyfillMutations) { - deferMutation(function() { - _detached(element); - }); - } else { - _detached(element); - } - } - function _detached(element) { - if (element.__upgraded__ && (element.attachedCallback || element.detachedCallback)) { - if (element.__attached && !inDocument(element)) { - element.__attached = false; - if (element.detachedCallback) { - element.detachedCallback(); - } - } - } - } - function inDocument(element) { - var p = element; - var doc = wrap(document); - while (p) { - if (p == doc) { - return true; - } - p = p.parentNode || p.nodeType === Node.DOCUMENT_FRAGMENT_NODE && p.host; - } - } - function watchShadow(node) { - if (node.shadowRoot && !node.shadowRoot.__watched) { - flags.dom && console.log("watching shadow-root for: ", node.localName); - var root = node.shadowRoot; - while (root) { - observe(root); - root = root.olderShadowRoot; - } - } - } - function handler(mutations) { - if (flags.dom) { - var mx = mutations[0]; - if (mx && mx.type === "childList" && mx.addedNodes) { - if (mx.addedNodes) { - var d = mx.addedNodes[0]; - while (d && d !== document && !d.host) { - d = d.parentNode; - } - var u = d && (d.URL || d._URL || d.host && d.host.localName) || ""; - u = u.split("/?").shift().split("/").pop(); - } - } - console.group("mutations (%d) [%s]", mutations.length, u || ""); - } - mutations.forEach(function(mx) { - if (mx.type === "childList") { - forEach(mx.addedNodes, function(n) { - if (!n.localName) { - return; - } - addedNode(n); - }); - forEach(mx.removedNodes, function(n) { - if (!n.localName) { - return; - } - detachedNode(n); - }); - } - }); - flags.dom && console.groupEnd(); - } - function takeRecords(node) { - node = window.wrap(node); - if (!node) { - node = window.wrap(document); - } - while (node.parentNode) { - node = node.parentNode; - } - var observer = node.__observer; - if (observer) { - handler(observer.takeRecords()); - takeMutations(); - } - } - var forEach = Array.prototype.forEach.call.bind(Array.prototype.forEach); - function observe(inRoot) { - if (inRoot.__observer) { - return; - } - var observer = new MutationObserver(handler); - observer.observe(inRoot, { - childList: true, - subtree: true - }); - inRoot.__observer = observer; - } - function upgradeDocument(doc) { - doc = window.wrap(doc); - flags.dom && console.group("upgradeDocument: ", doc.baseURI.split("/").pop()); - addedNode(doc); - observe(doc); - flags.dom && console.groupEnd(); - } - function upgradeDocumentTree(doc) { - forDocumentTree(doc, upgradeDocument); - } - var originalCreateShadowRoot = Element.prototype.createShadowRoot; - if (originalCreateShadowRoot) { - Element.prototype.createShadowRoot = function() { - var root = originalCreateShadowRoot.call(this); - window.CustomElements.watchShadow(this); - return root; - }; - } - scope.watchShadow = watchShadow; - scope.upgradeDocumentTree = upgradeDocumentTree; - scope.upgradeSubtree = addedSubtree; - scope.upgradeAll = addedNode; - scope.attachedNode = attachedNode; - scope.takeRecords = takeRecords; -}); - -window.CustomElements.addModule(function(scope) { - var flags = scope.flags; - function upgrade(node) { - if (!node.__upgraded__ && node.nodeType === Node.ELEMENT_NODE) { - var is = node.getAttribute("is"); - var definition = scope.getRegisteredDefinition(is || node.localName); - if (definition) { - if (is && definition.tag == node.localName) { - return upgradeWithDefinition(node, definition); - } else if (!is && !definition.extends) { - return upgradeWithDefinition(node, definition); - } - } - } - } - function upgradeWithDefinition(element, definition) { - flags.upgrade && console.group("upgrade:", element.localName); - if (definition.is) { - element.setAttribute("is", definition.is); - } - implementPrototype(element, definition); - element.__upgraded__ = true; - created(element); - scope.attachedNode(element); - scope.upgradeSubtree(element); - flags.upgrade && console.groupEnd(); - return element; - } - function implementPrototype(element, definition) { - if (Object.__proto__) { - element.__proto__ = definition.prototype; - } else { - customMixin(element, definition.prototype, definition.native); - element.__proto__ = definition.prototype; - } - } - function customMixin(inTarget, inSrc, inNative) { - var used = {}; - var p = inSrc; - while (p !== inNative && p !== HTMLElement.prototype) { - var keys = Object.getOwnPropertyNames(p); - for (var i = 0, k; k = keys[i]; i++) { - if (!used[k]) { - Object.defineProperty(inTarget, k, Object.getOwnPropertyDescriptor(p, k)); - used[k] = 1; - } - } - p = Object.getPrototypeOf(p); - } - } - function created(element) { - if (element.createdCallback) { - element.createdCallback(); - } - } - scope.upgrade = upgrade; - scope.upgradeWithDefinition = upgradeWithDefinition; - scope.implementPrototype = implementPrototype; -}); - -window.CustomElements.addModule(function(scope) { - var isIE11OrOlder = scope.isIE11OrOlder; - var upgradeDocumentTree = scope.upgradeDocumentTree; - var upgradeAll = scope.upgradeAll; - var upgradeWithDefinition = scope.upgradeWithDefinition; - var implementPrototype = scope.implementPrototype; - var useNative = scope.useNative; - function register(name, options) { - var definition = options || {}; - if (!name) { - throw new Error("document.registerElement: first argument `name` must not be empty"); - } - if (name.indexOf("-") < 0) { - throw new Error("document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '" + String(name) + "'."); - } - if (isReservedTag(name)) { - throw new Error("Failed to execute 'registerElement' on 'Document': Registration failed for type '" + String(name) + "'. The type name is invalid."); - } - if (getRegisteredDefinition(name)) { - throw new Error("DuplicateDefinitionError: a type with name '" + String(name) + "' is already registered"); - } - if (!definition.prototype) { - definition.prototype = Object.create(HTMLElement.prototype); - } - definition.__name = name.toLowerCase(); - definition.lifecycle = definition.lifecycle || {}; - definition.ancestry = ancestry(definition.extends); - resolveTagName(definition); - resolvePrototypeChain(definition); - overrideAttributeApi(definition.prototype); - registerDefinition(definition.__name, definition); - definition.ctor = generateConstructor(definition); - definition.ctor.prototype = definition.prototype; - definition.prototype.constructor = definition.ctor; - if (scope.ready) { - upgradeDocumentTree(document); - } - return definition.ctor; - } - function overrideAttributeApi(prototype) { - if (prototype.setAttribute._polyfilled) { - return; - } - var setAttribute = prototype.setAttribute; - prototype.setAttribute = function(name, value) { - changeAttribute.call(this, name, value, setAttribute); - }; - var removeAttribute = prototype.removeAttribute; - prototype.removeAttribute = function(name) { - changeAttribute.call(this, name, null, removeAttribute); - }; - prototype.setAttribute._polyfilled = true; - } - function changeAttribute(name, value, operation) { - name = name.toLowerCase(); - var oldValue = this.getAttribute(name); - operation.apply(this, arguments); - var newValue = this.getAttribute(name); - if (this.attributeChangedCallback && newValue !== oldValue) { - this.attributeChangedCallback(name, oldValue, newValue); - } - } - function isReservedTag(name) { - for (var i = 0; i < reservedTagList.length; i++) { - if (name === reservedTagList[i]) { - return true; - } - } - } - var reservedTagList = [ "annotation-xml", "color-profile", "font-face", "font-face-src", "font-face-uri", "font-face-format", "font-face-name", "missing-glyph" ]; - function ancestry(extnds) { - var extendee = getRegisteredDefinition(extnds); - if (extendee) { - return ancestry(extendee.extends).concat([ extendee ]); - } - return []; - } - function resolveTagName(definition) { - var baseTag = definition.extends; - for (var i = 0, a; a = definition.ancestry[i]; i++) { - baseTag = a.is && a.tag; - } - definition.tag = baseTag || definition.__name; - if (baseTag) { - definition.is = definition.__name; - } - } - function resolvePrototypeChain(definition) { - if (!Object.__proto__) { - var nativePrototype = HTMLElement.prototype; - if (definition.is) { - var inst = document.createElement(definition.tag); - var expectedPrototype = Object.getPrototypeOf(inst); - if (expectedPrototype === definition.prototype) { - nativePrototype = expectedPrototype; - } - } - var proto = definition.prototype, ancestor; - while (proto && proto !== nativePrototype) { - ancestor = Object.getPrototypeOf(proto); - proto.__proto__ = ancestor; - proto = ancestor; - } - definition.native = nativePrototype; - } - } - function instantiate(definition) { - return upgradeWithDefinition(domCreateElement(definition.tag), definition); - } - var registry = {}; - function getRegisteredDefinition(name) { - if (name) { - return registry[name.toLowerCase()]; - } - } - function registerDefinition(name, definition) { - registry[name] = definition; - } - function generateConstructor(definition) { - return function() { - return instantiate(definition); - }; - } - var HTML_NAMESPACE = "http://www.w3.org/1999/xhtml"; - function createElementNS(namespace, tag, typeExtension) { - if (namespace === HTML_NAMESPACE) { - return createElement(tag, typeExtension); - } else { - return domCreateElementNS(namespace, tag); - } - } - function createElement(tag, typeExtension) { - if (tag) { - tag = tag.toLowerCase(); - } - if (typeExtension) { - typeExtension = typeExtension.toLowerCase(); - } - var definition = getRegisteredDefinition(typeExtension || tag); - if (definition) { - if (tag == definition.tag && typeExtension == definition.is) { - return new definition.ctor(); - } - if (!typeExtension && !definition.is) { - return new definition.ctor(); - } - } - var element; - if (typeExtension) { - element = createElement(tag); - element.setAttribute("is", typeExtension); - return element; - } - element = domCreateElement(tag); - if (tag.indexOf("-") >= 0) { - implementPrototype(element, HTMLElement); - } - return element; - } - var domCreateElement = document.createElement.bind(document); - var domCreateElementNS = document.createElementNS.bind(document); - var isInstance; - if (!Object.__proto__ && !useNative) { - isInstance = function(obj, ctor) { - var p = obj; - while (p) { - if (p === ctor.prototype) { - return true; - } - p = p.__proto__; - } - return false; - }; - } else { - isInstance = function(obj, base) { - return obj instanceof base; - }; - } - function wrapDomMethodToForceUpgrade(obj, methodName) { - var orig = obj[methodName]; - obj[methodName] = function() { - var n = orig.apply(this, arguments); - upgradeAll(n); - return n; - }; - } - wrapDomMethodToForceUpgrade(Node.prototype, "cloneNode"); - wrapDomMethodToForceUpgrade(document, "importNode"); - if (isIE11OrOlder) { - (function() { - var importNode = document.importNode; - document.importNode = function() { - var n = importNode.apply(document, arguments); - if (n.nodeType == n.DOCUMENT_FRAGMENT_NODE) { - var f = document.createDocumentFragment(); - f.appendChild(n); - return f; - } else { - return n; - } - }; - })(); - } - document.registerElement = register; - document.createElement = createElement; - document.createElementNS = createElementNS; - scope.registry = registry; - scope.instanceof = isInstance; - scope.reservedTagList = reservedTagList; - scope.getRegisteredDefinition = getRegisteredDefinition; - document.register = document.registerElement; -}); - -(function(scope) { - var useNative = scope.useNative; - var initializeModules = scope.initializeModules; - var isIE11OrOlder = /Trident/.test(navigator.userAgent); - if (useNative) { - var nop = function() {}; - scope.watchShadow = nop; - scope.upgrade = nop; - scope.upgradeAll = nop; - scope.upgradeDocumentTree = nop; - scope.upgradeSubtree = nop; - scope.takeRecords = nop; - scope.instanceof = function(obj, base) { - return obj instanceof base; - }; - } else { - initializeModules(); - } - var upgradeDocumentTree = scope.upgradeDocumentTree; - if (!window.wrap) { - if (window.ShadowDOMPolyfill) { - window.wrap = window.ShadowDOMPolyfill.wrapIfNeeded; - window.unwrap = window.ShadowDOMPolyfill.unwrapIfNeeded; - } else { - window.wrap = window.unwrap = function(node) { - return node; - }; - } - } - function bootstrap() { - upgradeDocumentTree(window.wrap(document)); - if (window.HTMLImports) { - window.HTMLImports.__importsParsingHook = function(elt) { - upgradeDocumentTree(wrap(elt.import)); - }; - } - window.CustomElements.ready = true; - setTimeout(function() { - window.CustomElements.readyTime = Date.now(); - if (window.HTMLImports) { - window.CustomElements.elapsed = window.CustomElements.readyTime - window.HTMLImports.readyTime; - } - document.dispatchEvent(new CustomEvent("WebComponentsReady", { - bubbles: true - })); - }); - } - if (isIE11OrOlder && typeof window.CustomEvent !== "function") { - window.CustomEvent = function(inType, params) { - params = params || {}; - var e = document.createEvent("CustomEvent"); - e.initCustomEvent(inType, Boolean(params.bubbles), Boolean(params.cancelable), params.detail); - e.preventDefault = function() { - Object.defineProperty(this, "defaultPrevented", { - get: function() { - return true; - } - }); - }; - return e; - }; - window.CustomEvent.prototype = window.Event.prototype; - } - if (document.readyState === "complete" || scope.flags.eager) { - bootstrap(); - } else if (document.readyState === "interactive" && !window.attachEvent && (!window.HTMLImports || window.HTMLImports.ready)) { - bootstrap(); - } else { - var loadEvent = window.HTMLImports && !window.HTMLImports.ready ? "HTMLImportsLoaded" : "DOMContentLoaded"; - window.addEventListener(loadEvent, bootstrap); - } - scope.isIE11OrOlder = isIE11OrOlder; -})(window.CustomElements); - -(function(scope) { - if (!Function.prototype.bind) { - Function.prototype.bind = function(scope) { - var self = this; - var args = Array.prototype.slice.call(arguments, 1); - return function() { - var args2 = args.slice(); - args2.push.apply(args2, arguments); - return self.apply(scope, args2); - }; - }; - } -})(window.WebComponents); - -(function(scope) { - "use strict"; - if (!window.performance) { - var start = Date.now(); - window.performance = { - now: function() { - return Date.now() - start; - } - }; - } - if (!window.requestAnimationFrame) { - window.requestAnimationFrame = function() { - var nativeRaf = window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame; - return nativeRaf ? function(callback) { - return nativeRaf(function() { - callback(performance.now()); - }); - } : function(callback) { - return window.setTimeout(callback, 1e3 / 60); - }; - }(); - } - if (!window.cancelAnimationFrame) { - window.cancelAnimationFrame = function() { - return window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || function(id) { - clearTimeout(id); - }; - }(); - } - var elementDeclarations = []; - var polymerStub = function(name, dictionary) { - if (typeof name !== "string" && arguments.length === 1) { - Array.prototype.push.call(arguments, document._currentScript); - } - elementDeclarations.push(arguments); - }; - window.Polymer = polymerStub; - scope.consumeDeclarations = function(callback) { - scope.consumeDeclarations = function() { - throw "Possible attempt to load Polymer twice"; - }; - if (callback) { - callback(elementDeclarations); - } - elementDeclarations = null; - }; - function installPolymerWarning() { - if (window.Polymer === polymerStub) { - window.Polymer = function() { - throw new Error("You tried to use polymer without loading it first. To " + 'load polymer, '); - }; - } - } - if (HTMLImports.useNative) { - installPolymerWarning(); - } else { - window.addEventListener("DOMContentLoaded", installPolymerWarning); - } -})(window.WebComponents); - -(function(scope) { - var style = document.createElement("style"); - style.textContent = "" + "body {" + "transition: opacity ease-in 0.2s;" + " } \n" + "body[unresolved] {" + "opacity: 0; display: block; overflow: hidden; position: relative;" + " } \n"; - var head = document.querySelector("head"); - head.insertBefore(style, head.firstChild); -})(window.WebComponents); - -(function(scope) { - window.Platform = scope; -})(window.WebComponents); \ No newline at end of file diff --git a/bower_components/webcomponentsjs/webcomponents.min.js b/bower_components/webcomponentsjs/webcomponents.min.js deleted file mode 100644 index 4870c72..0000000 --- a/bower_components/webcomponentsjs/webcomponents.min.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * @license - * Copyright (c) 2014 The Polymer Project Authors. All rights reserved. - * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt - * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt - * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt - * Code distributed by Google as part of the polymer project is also - * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt - */ -// @version 0.7.5 -window.WebComponents=window.WebComponents||{},function(e){var t=e.flags||{},n="webcomponents.js",r=document.querySelector('script[src*="'+n+'"]');if(!t.noOpts){if(location.search.slice(1).split("&").forEach(function(e){var n,r=e.split("=");r[0]&&(n=r[0].match(/wc-(.+)/))&&(t[n[1]]=r[1]||!0)}),r)for(var o,i=0;o=r.attributes[i];i++)"src"!==o.name&&(t[o.name]=o.value||!0);if(t.log&&t.log.split){var a=t.log.split(",");t.log={},a.forEach(function(e){t.log[e]=!0})}else t.log={}}t.shadow=t.shadow||t.shadowdom||t.polyfill,t.shadow="native"===t.shadow?!1:t.shadow||!HTMLElement.prototype.createShadowRoot,t.register&&(window.CustomElements=window.CustomElements||{flags:{}},window.CustomElements.flags.register=t.register),e.flags=t}(WebComponents),WebComponents.flags.shadow&&("undefined"==typeof WeakMap&&!function(){var e=Object.defineProperty,t=Date.now()%1e9,n=function(){this.name="__st"+(1e9*Math.random()>>>0)+(t++ +"__")};n.prototype={set:function(t,n){var r=t[this.name];return r&&r[0]===t?r[1]=n:e(t,this.name,{value:[t,n],writable:!0}),this},get:function(e){var t;return(t=e[this.name])&&t[0]===e?t[1]:void 0},"delete":function(e){var t=e[this.name];return t&&t[0]===e?(t[0]=t[1]=void 0,!0):!1},has:function(e){var t=e[this.name];return t?t[0]===e:!1}},window.WeakMap=n}(),window.ShadowDOMPolyfill={},function(e){"use strict";function t(){if("undefined"!=typeof chrome&&chrome.app&&chrome.app.runtime)return!1;if(navigator.getDeviceStorage)return!1;try{var e=new Function("return true;");return e()}catch(t){return!1}}function n(e){if(!e)throw new Error("Assertion failed")}function r(e,t){for(var n=W(t),r=0;rl;l++)c[l]=new Array(s),c[l][0]=l;for(var u=0;s>u;u++)c[0][u]=u;for(var l=1;a>l;l++)for(var u=1;s>u;u++)if(this.equals(e[t+u-1],r[o+l-1]))c[l][u]=c[l-1][u-1];else{var d=c[l-1][u]+1,p=c[l][u-1]+1;c[l][u]=p>d?d:p}return c},spliceOperationsFromEditDistances:function(e){for(var t=e.length-1,n=e[0].length-1,s=e[t][n],c=[];t>0||n>0;)if(0!=t)if(0!=n){var l,u=e[t-1][n-1],d=e[t-1][n],p=e[t][n-1];l=p>d?u>d?d:u:u>p?p:u,l==u?(u==s?c.push(r):(c.push(o),s=u),t--,n--):l==d?(c.push(a),t--,s=d):(c.push(i),n--,s=p)}else c.push(a),t--;else c.push(i),n--;return c.reverse(),c},calcSplices:function(e,n,s,c,l,u){var d=0,p=0,h=Math.min(s-n,u-l);if(0==n&&0==l&&(d=this.sharedPrefix(e,c,h)),s==e.length&&u==c.length&&(p=this.sharedSuffix(e,c,h-d)),n+=d,l+=d,s-=p,u-=p,s-n==0&&u-l==0)return[];if(n==s){for(var f=t(n,[],0);u>l;)f.removed.push(c[l++]);return[f]}if(l==u)return[t(n,[],s-n)];for(var m=this.spliceOperationsFromEditDistances(this.calcEditDistances(e,n,s,c,l,u)),f=void 0,w=[],v=n,g=l,b=0;br;r++)if(!this.equals(e[r],t[r]))return r;return n},sharedSuffix:function(e,t,n){for(var r=e.length,o=t.length,i=0;n>i&&this.equals(e[--r],t[--o]);)i++;return i},calculateSplices:function(e,t){return this.calcSplices(e,0,e.length,t,0,t.length)},equals:function(e,t){return e===t}},e.ArraySplice=n}(window.ShadowDOMPolyfill),function(e){"use strict";function t(){a=!1;var e=i.slice(0);i=[];for(var t=0;t0){for(var u=0;u0&&r.length>0;){var i=n.pop(),a=r.pop();if(i!==a)break;o=i}return o}function u(e,t,n){t instanceof G.Window&&(t=t.document);var o,i=A(t),a=A(n),s=r(n,e),o=l(i,a);o||(o=a.root);for(var c=o;c;c=c.parent)for(var u=0;u0;i--)if(!g(t[i],e,o,t,r))return!1;return!0}function w(e,t,n,r){var o=ie,i=t[0]||n;return g(i,e,o,t,r)}function v(e,t,n,r){for(var o=ae,i=1;i0&&g(n,e,o,t,r)}function g(e,t,n,r,o){var i=z.get(e);if(!i)return!0;var a=o||s(r,e);if(a===e){if(n===oe)return!0;n===ae&&(n=ie)}else if(n===ae&&!t.bubbles)return!0;if("relatedTarget"in t){var c=B(t),l=c.relatedTarget;if(l){if(l instanceof Object&&l.addEventListener){var d=V(l),p=u(t,e,d);if(p===a)return!0}else p=null;Z.set(t,p)}}J.set(t,n);var h=t.type,f=!1;$.set(t,a),X.set(t,e),i.depth++;for(var m=0,w=i.length;w>m;m++){var v=i[m];if(v.removed)f=!0;else if(!(v.type!==h||!v.capture&&n===oe||v.capture&&n===ae))try{if("function"==typeof v.handler?v.handler.call(e,t):v.handler.handleEvent(t),ee.get(t))return!1}catch(g){P||(P=g)}}if(i.depth--,f&&0===i.depth){var b=i.slice();i.length=0;for(var m=0;mr;r++)t[r]=a(e[r]);return t.length=o,t}function o(e,t){e.prototype[t]=function(){return r(i(this)[t].apply(i(this),arguments))}}var i=e.unsafeUnwrap,a=e.wrap,s={enumerable:!1};n.prototype={item:function(e){return this[e]}},t(n.prototype,"item"),e.wrappers.NodeList=n,e.addWrapNodeListMethod=o,e.wrapNodeList=r}(window.ShadowDOMPolyfill),function(e){"use strict";e.wrapHTMLCollection=e.wrapNodeList,e.wrappers.HTMLCollection=e.wrappers.NodeList}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){O(e instanceof _)}function n(e){var t=new T;return t[0]=e,t.length=1,t}function r(e,t,n){N(t,"childList",{removedNodes:n,previousSibling:e.previousSibling,nextSibling:e.nextSibling})}function o(e,t){N(e,"childList",{removedNodes:t})}function i(e,t,r,o){if(e instanceof DocumentFragment){var i=s(e);U=!0;for(var a=i.length-1;a>=0;a--)e.removeChild(i[a]),i[a].parentNode_=t;U=!1;for(var a=0;ao;o++)r.appendChild(P(t[o]));return r}function w(e){if(void 0!==e.firstChild_)for(var t=e.firstChild_;t;){var n=t;t=t.nextSibling_,n.parentNode_=n.previousSibling_=n.nextSibling_=void 0}e.firstChild_=e.lastChild_=void 0}function v(e){if(e.invalidateShadowRenderer()){for(var t=e.firstChild;t;){O(t.parentNode===e);var n=t.nextSibling,r=P(t),o=r.parentNode;o&&$.call(o,r),t.previousSibling_=t.nextSibling_=t.parentNode_=null,t=n}e.firstChild_=e.lastChild_=null}else for(var n,i=P(e),a=i.firstChild;a;)n=a.nextSibling,$.call(i,a),a=n}function g(e){var t=e.parentNode;return t&&t.invalidateShadowRenderer()}function b(e){for(var t,n=0;ns;s++)i=b(t[s]),!o&&(a=v(i).root)&&a instanceof e.wrappers.ShadowRoot||(r[n++]=i);return n}function n(e){return String(e).replace(/\/deep\/|::shadow|>>>/g," ")}function r(e){return String(e).replace(/:host\(([^\s]+)\)/g,"$1").replace(/([^\s]):host/g,"$1").replace(":host","*").replace(/\^|\/shadow\/|\/shadow-deep\/|::shadow|\/deep\/|::content|>>>/g," ")}function o(e,t){for(var n,r=e.firstElementChild;r;){if(r.matches(t))return r;if(n=o(r,t))return n;r=r.nextElementSibling}return null}function i(e,t){return e.matches(t)}function a(e,t,n){var r=e.localName;return r===t||r===n&&e.namespaceURI===j}function s(){return!0}function c(e,t,n){return e.localName===n}function l(e,t){return e.namespaceURI===t}function u(e,t,n){return e.namespaceURI===t&&e.localName===n}function d(e,t,n,r,o,i){for(var a=e.firstElementChild;a;)r(a,o,i)&&(n[t++]=a),t=d(a,t,n,r,o,i),a=a.nextElementSibling;return t}function p(n,r,o,i,a){var s,c=g(this),l=v(this).root;if(l instanceof e.wrappers.ShadowRoot)return d(this,r,o,n,i,null);if(c instanceof N)s=S.call(c,i);else{if(!(c instanceof C))return d(this,r,o,n,i,null);s=_.call(c,i)}return t(s,r,o,a)}function h(n,r,o,i,a){var s,c=g(this),l=v(this).root;if(l instanceof e.wrappers.ShadowRoot)return d(this,r,o,n,i,a);if(c instanceof N)s=M.call(c,i,a);else{if(!(c instanceof C))return d(this,r,o,n,i,a);s=T.call(c,i,a)}return t(s,r,o,!1)}function f(n,r,o,i,a){var s,c=g(this),l=v(this).root;if(l instanceof e.wrappers.ShadowRoot)return d(this,r,o,n,i,a);if(c instanceof N)s=L.call(c,i,a);else{if(!(c instanceof C))return d(this,r,o,n,i,a);s=O.call(c,i,a)}return t(s,r,o,!1)}var m=e.wrappers.HTMLCollection,w=e.wrappers.NodeList,v=e.getTreeScope,g=e.unsafeUnwrap,b=e.wrap,y=document.querySelector,E=document.documentElement.querySelector,_=document.querySelectorAll,S=document.documentElement.querySelectorAll,T=document.getElementsByTagName,M=document.documentElement.getElementsByTagName,O=document.getElementsByTagNameNS,L=document.documentElement.getElementsByTagNameNS,N=window.Element,C=window.HTMLDocument||window.Document,j="http://www.w3.org/1999/xhtml",D={querySelector:function(t){var r=n(t),i=r!==t;t=r;var a,s=g(this),c=v(this).root;if(c instanceof e.wrappers.ShadowRoot)return o(this,t);if(s instanceof N)a=b(E.call(s,t));else{if(!(s instanceof C))return o(this,t); - -a=b(y.call(s,t))}return a&&!i&&(c=v(a).root)&&c instanceof e.wrappers.ShadowRoot?o(this,t):a},querySelectorAll:function(e){var t=n(e),r=t!==e;e=t;var o=new w;return o.length=p.call(this,i,0,o,e,r),o}},H={matches:function(t){return t=r(t),e.originalMatches.call(g(this),t)}},x={getElementsByTagName:function(e){var t=new m,n="*"===e?s:a;return t.length=h.call(this,n,0,t,e,e.toLowerCase()),t},getElementsByClassName:function(e){return this.querySelectorAll("."+e)},getElementsByTagNameNS:function(e,t){var n=new m,r=null;return r="*"===e?"*"===t?s:c:"*"===t?l:u,n.length=f.call(this,r,0,n,e||null,t),n}};e.GetElementsByInterface=x,e.SelectorsInterface=D,e.MatchesInterface=H}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){for(;e&&e.nodeType!==Node.ELEMENT_NODE;)e=e.nextSibling;return e}function n(e){for(;e&&e.nodeType!==Node.ELEMENT_NODE;)e=e.previousSibling;return e}var r=e.wrappers.NodeList,o={get firstElementChild(){return t(this.firstChild)},get lastElementChild(){return n(this.lastChild)},get childElementCount(){for(var e=0,t=this.firstElementChild;t;t=t.nextElementSibling)e++;return e},get children(){for(var e=new r,t=0,n=this.firstElementChild;n;n=n.nextElementSibling)e[t++]=n;return e.length=t,e},remove:function(){var e=this.parentNode;e&&e.removeChild(this)}},i={get nextElementSibling(){return t(this.nextSibling)},get previousElementSibling(){return n(this.previousSibling)}},a={getElementById:function(e){return/[ \t\n\r\f]/.test(e)?null:this.querySelector('[id="'+e+'"]')}};e.ChildNodeInterface=i,e.NonElementParentNodeInterface=a,e.ParentNodeInterface=o}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){r.call(this,e)}var n=e.ChildNodeInterface,r=e.wrappers.Node,o=e.enqueueMutation,i=e.mixin,a=e.registerWrapper,s=e.unsafeUnwrap,c=window.CharacterData;t.prototype=Object.create(r.prototype),i(t.prototype,{get nodeValue(){return this.data},set nodeValue(e){this.data=e},get textContent(){return this.data},set textContent(e){this.data=e},get data(){return s(this).data},set data(e){var t=s(this).data;o(this,"characterData",{oldValue:t}),s(this).data=e}}),i(t.prototype,n),a(c,t,document.createTextNode("")),e.wrappers.CharacterData=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){return e>>>0}function n(e){r.call(this,e)}var r=e.wrappers.CharacterData,o=(e.enqueueMutation,e.mixin),i=e.registerWrapper,a=window.Text;n.prototype=Object.create(r.prototype),o(n.prototype,{splitText:function(e){e=t(e);var n=this.data;if(e>n.length)throw new Error("IndexSizeError");var r=n.slice(0,e),o=n.slice(e);this.data=r;var i=this.ownerDocument.createTextNode(o);return this.parentNode&&this.parentNode.insertBefore(i,this.nextSibling),i}}),i(a,n,document.createTextNode("")),e.wrappers.Text=n}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){return i(e).getAttribute("class")}function n(e,t){a(e,"attributes",{name:"class",namespace:null,oldValue:t})}function r(t){e.invalidateRendererBasedOnAttribute(t,"class")}function o(e,o,i){var a=e.ownerElement_;if(null==a)return o.apply(e,i);var s=t(a),c=o.apply(e,i);return t(a)!==s&&(n(a,s),r(a)),c}if(!window.DOMTokenList)return void console.warn("Missing DOMTokenList prototype, please include a compatible classList polyfill such as http://goo.gl/uTcepH.");var i=e.unsafeUnwrap,a=e.enqueueMutation,s=DOMTokenList.prototype.add;DOMTokenList.prototype.add=function(){o(this,s,arguments)};var c=DOMTokenList.prototype.remove;DOMTokenList.prototype.remove=function(){o(this,c,arguments)};var l=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(){return o(this,l,arguments)}}(window.ShadowDOMPolyfill),function(e){"use strict";function t(t,n){var r=t.parentNode;if(r&&r.shadowRoot){var o=e.getRendererForHost(r);o.dependsOnAttribute(n)&&o.invalidate()}}function n(e,t,n){u(e,"attributes",{name:t,namespace:null,oldValue:n})}function r(e){a.call(this,e)}var o=e.ChildNodeInterface,i=e.GetElementsByInterface,a=e.wrappers.Node,s=e.ParentNodeInterface,c=e.SelectorsInterface,l=e.MatchesInterface,u=(e.addWrapNodeListMethod,e.enqueueMutation),d=e.mixin,p=(e.oneOf,e.registerWrapper),h=e.unsafeUnwrap,f=e.wrappers,m=window.Element,w=["matches","mozMatchesSelector","msMatchesSelector","webkitMatchesSelector"].filter(function(e){return m.prototype[e]}),v=w[0],g=m.prototype[v],b=new WeakMap;r.prototype=Object.create(a.prototype),d(r.prototype,{createShadowRoot:function(){var t=new f.ShadowRoot(this);h(this).polymerShadowRoot_=t;var n=e.getRendererForHost(this);return n.invalidate(),t},get shadowRoot(){return h(this).polymerShadowRoot_||null},setAttribute:function(e,r){var o=h(this).getAttribute(e);h(this).setAttribute(e,r),n(this,e,o),t(this,e)},removeAttribute:function(e){var r=h(this).getAttribute(e);h(this).removeAttribute(e),n(this,e,r),t(this,e)},get classList(){var e=b.get(this);if(!e){if(e=h(this).classList,!e)return;e.ownerElement_=this,b.set(this,e)}return e},get className(){return h(this).className},set className(e){this.setAttribute("class",e)},get id(){return h(this).id},set id(e){this.setAttribute("id",e)}}),w.forEach(function(e){"matches"!==e&&(r.prototype[e]=function(e){return this.matches(e)})}),m.prototype.webkitCreateShadowRoot&&(r.prototype.webkitCreateShadowRoot=r.prototype.createShadowRoot),d(r.prototype,o),d(r.prototype,i),d(r.prototype,s),d(r.prototype,c),d(r.prototype,l),p(m,r,document.createElementNS(null,"x")),e.invalidateRendererBasedOnAttribute=t,e.matchesNames=w,e.originalMatches=g,e.wrappers.Element=r}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){switch(e){case"&":return"&";case"<":return"<";case">":return">";case'"':return""";case" ":return" "}}function n(e){return e.replace(L,t)}function r(e){return e.replace(N,t)}function o(e){for(var t={},n=0;n"):c+">"+s(e)+"";case Node.TEXT_NODE:var d=e.data;return t&&j[t.localName]?d:r(d);case Node.COMMENT_NODE:return"";default:throw console.error(e),new Error("not implemented")}}function s(e){e instanceof O.HTMLTemplateElement&&(e=e.content);for(var t="",n=e.firstChild;n;n=n.nextSibling)t+=a(n,e);return t}function c(e,t,n){var r=n||"div";e.textContent="";var o=T(e.ownerDocument.createElement(r));o.innerHTML=t;for(var i;i=o.firstChild;)e.appendChild(M(i))}function l(e){m.call(this,e)}function u(e,t){var n=T(e.cloneNode(!1));n.innerHTML=t;for(var r,o=T(document.createDocumentFragment());r=n.firstChild;)o.appendChild(r);return M(o)}function d(t){return function(){return e.renderAllPending(),S(this)[t]}}function p(e){w(l,e,d(e))}function h(t){Object.defineProperty(l.prototype,t,{get:d(t),set:function(n){e.renderAllPending(),S(this)[t]=n},configurable:!0,enumerable:!0})}function f(t){Object.defineProperty(l.prototype,t,{value:function(){return e.renderAllPending(),S(this)[t].apply(S(this),arguments)},configurable:!0,enumerable:!0})}var m=e.wrappers.Element,w=e.defineGetter,v=e.enqueueMutation,g=e.mixin,b=e.nodesWereAdded,y=e.nodesWereRemoved,E=e.registerWrapper,_=e.snapshotNodeList,S=e.unsafeUnwrap,T=e.unwrap,M=e.wrap,O=e.wrappers,L=/[&\u00A0"]/g,N=/[&\u00A0<>]/g,C=o(["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"]),j=o(["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"]),D="http://www.w3.org/1999/xhtml",H=/MSIE/.test(navigator.userAgent),x=window.HTMLElement,R=window.HTMLTemplateElement;l.prototype=Object.create(m.prototype),g(l.prototype,{get innerHTML(){return s(this)},set innerHTML(e){if(H&&j[this.localName])return void(this.textContent=e);var t=_(this.childNodes);this.invalidateShadowRenderer()?this instanceof O.HTMLTemplateElement?c(this.content,e):c(this,e,this.tagName):!R&&this instanceof O.HTMLTemplateElement?c(this.content,e):S(this).innerHTML=e;var n=_(this.childNodes);v(this,"childList",{addedNodes:n,removedNodes:t}),y(t),b(n,this)},get outerHTML(){return a(this,this.parentNode)},set outerHTML(e){var t=this.parentNode;if(t){t.invalidateShadowRenderer();var n=u(t,e);t.replaceChild(n,this)}},insertAdjacentHTML:function(e,t){var n,r;switch(String(e).toLowerCase()){case"beforebegin":n=this.parentNode,r=this;break;case"afterend":n=this.parentNode,r=this.nextSibling;break;case"afterbegin":n=this,r=this.firstChild;break;case"beforeend":n=this,r=null;break;default:return}var o=u(n,t);n.insertBefore(o,r)},get hidden(){return this.hasAttribute("hidden")},set hidden(e){e?this.setAttribute("hidden",""):this.removeAttribute("hidden")}}),["clientHeight","clientLeft","clientTop","clientWidth","offsetHeight","offsetLeft","offsetTop","offsetWidth","scrollHeight","scrollWidth"].forEach(p),["scrollLeft","scrollTop"].forEach(h),["getBoundingClientRect","getClientRects","scrollIntoView"].forEach(f),E(x,l,document.createElement("b")),e.wrappers.HTMLElement=l,e.getInnerHTML=s,e.setInnerHTML=c}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.mixin,o=e.registerWrapper,i=e.unsafeUnwrap,a=e.wrap,s=window.HTMLCanvasElement;t.prototype=Object.create(n.prototype),r(t.prototype,{getContext:function(){var e=i(this).getContext.apply(i(this),arguments);return e&&a(e)}}),o(s,t,document.createElement("canvas")),e.wrappers.HTMLCanvasElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.mixin,o=e.registerWrapper,i=window.HTMLContentElement;t.prototype=Object.create(n.prototype),r(t.prototype,{constructor:t,get select(){return this.getAttribute("select")},set select(e){this.setAttribute("select",e)},setAttribute:function(e,t){n.prototype.setAttribute.call(this,e,t),"select"===String(e).toLowerCase()&&this.invalidateShadowRenderer(!0)}}),i&&o(i,t),e.wrappers.HTMLContentElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.mixin,o=e.registerWrapper,i=e.wrapHTMLCollection,a=e.unwrap,s=window.HTMLFormElement;t.prototype=Object.create(n.prototype),r(t.prototype,{get elements(){return i(a(this).elements)}}),o(s,t,document.createElement("form")),e.wrappers.HTMLFormElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){r.call(this,e)}function n(e,t){if(!(this instanceof n))throw new TypeError("DOM object constructor cannot be called as a function.");var o=i(document.createElement("img"));r.call(this,o),a(o,this),void 0!==e&&(o.width=e),void 0!==t&&(o.height=t)}var r=e.wrappers.HTMLElement,o=e.registerWrapper,i=e.unwrap,a=e.rewrap,s=window.HTMLImageElement;t.prototype=Object.create(r.prototype),o(s,t,document.createElement("img")),n.prototype=t.prototype,e.wrappers.HTMLImageElement=t,e.wrappers.Image=n}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=(e.mixin,e.wrappers.NodeList,e.registerWrapper),o=window.HTMLShadowElement;t.prototype=Object.create(n.prototype),t.prototype.constructor=t,o&&r(o,t),e.wrappers.HTMLShadowElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){if(!e.defaultView)return e;var t=d.get(e);if(!t){for(t=e.implementation.createHTMLDocument("");t.lastChild;)t.removeChild(t.lastChild);d.set(e,t)}return t}function n(e){for(var n,r=t(e.ownerDocument),o=c(r.createDocumentFragment());n=e.firstChild;)o.appendChild(n);return o}function r(e){if(o.call(this,e),!p){var t=n(e);u.set(this,l(t))}}var o=e.wrappers.HTMLElement,i=e.mixin,a=e.registerWrapper,s=e.unsafeUnwrap,c=e.unwrap,l=e.wrap,u=new WeakMap,d=new WeakMap,p=window.HTMLTemplateElement;r.prototype=Object.create(o.prototype),i(r.prototype,{constructor:r,get content(){return p?l(s(this).content):u.get(this)}}),p&&a(p,r),e.wrappers.HTMLTemplateElement=r}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.registerWrapper,o=window.HTMLMediaElement;o&&(t.prototype=Object.create(n.prototype),r(o,t,document.createElement("audio")),e.wrappers.HTMLMediaElement=t)}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){r.call(this,e)}function n(e){if(!(this instanceof n))throw new TypeError("DOM object constructor cannot be called as a function.");var t=i(document.createElement("audio"));r.call(this,t),a(t,this),t.setAttribute("preload","auto"),void 0!==e&&t.setAttribute("src",e)}var r=e.wrappers.HTMLMediaElement,o=e.registerWrapper,i=e.unwrap,a=e.rewrap,s=window.HTMLAudioElement;s&&(t.prototype=Object.create(r.prototype),o(s,t,document.createElement("audio")),n.prototype=t.prototype,e.wrappers.HTMLAudioElement=t,e.wrappers.Audio=n)}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){return e.replace(/\s+/g," ").trim()}function n(e){o.call(this,e)}function r(e,t,n,i){if(!(this instanceof r))throw new TypeError("DOM object constructor cannot be called as a function.");var a=c(document.createElement("option"));o.call(this,a),s(a,this),void 0!==e&&(a.text=e),void 0!==t&&a.setAttribute("value",t),n===!0&&a.setAttribute("selected",""),a.selected=i===!0}var o=e.wrappers.HTMLElement,i=e.mixin,a=e.registerWrapper,s=e.rewrap,c=e.unwrap,l=e.wrap,u=window.HTMLOptionElement;n.prototype=Object.create(o.prototype),i(n.prototype,{get text(){return t(this.textContent)},set text(e){this.textContent=t(String(e))},get form(){return l(c(this).form)}}),a(u,n,document.createElement("option")),r.prototype=n.prototype,e.wrappers.HTMLOptionElement=n,e.wrappers.Option=r}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.mixin,o=e.registerWrapper,i=e.unwrap,a=e.wrap,s=window.HTMLSelectElement;t.prototype=Object.create(n.prototype),r(t.prototype,{add:function(e,t){"object"==typeof t&&(t=i(t)),i(this).add(i(e),t)},remove:function(e){return void 0===e?void n.prototype.remove.call(this):("object"==typeof e&&(e=i(e)),void i(this).remove(e))},get form(){return a(i(this).form)}}),o(s,t,document.createElement("select")),e.wrappers.HTMLSelectElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.mixin,o=e.registerWrapper,i=e.unwrap,a=e.wrap,s=e.wrapHTMLCollection,c=window.HTMLTableElement;t.prototype=Object.create(n.prototype),r(t.prototype,{get caption(){return a(i(this).caption)},createCaption:function(){return a(i(this).createCaption())},get tHead(){return a(i(this).tHead)},createTHead:function(){return a(i(this).createTHead())},createTFoot:function(){return a(i(this).createTFoot())},get tFoot(){return a(i(this).tFoot)},get tBodies(){return s(i(this).tBodies)},createTBody:function(){return a(i(this).createTBody())},get rows(){return s(i(this).rows)},insertRow:function(e){return a(i(this).insertRow(e))}}),o(c,t,document.createElement("table")),e.wrappers.HTMLTableElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.mixin,o=e.registerWrapper,i=e.wrapHTMLCollection,a=e.unwrap,s=e.wrap,c=window.HTMLTableSectionElement;t.prototype=Object.create(n.prototype),r(t.prototype,{constructor:t,get rows(){return i(a(this).rows)},insertRow:function(e){return s(a(this).insertRow(e))}}),o(c,t,document.createElement("thead")),e.wrappers.HTMLTableSectionElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.mixin,o=e.registerWrapper,i=e.wrapHTMLCollection,a=e.unwrap,s=e.wrap,c=window.HTMLTableRowElement;t.prototype=Object.create(n.prototype),r(t.prototype,{get cells(){return i(a(this).cells)},insertCell:function(e){return s(a(this).insertCell(e))}}),o(c,t,document.createElement("tr")),e.wrappers.HTMLTableRowElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){switch(e.localName){case"content":return new n(e);case"shadow":return new o(e);case"template":return new i(e)}r.call(this,e)}var n=e.wrappers.HTMLContentElement,r=e.wrappers.HTMLElement,o=e.wrappers.HTMLShadowElement,i=e.wrappers.HTMLTemplateElement,a=(e.mixin,e.registerWrapper),s=window.HTMLUnknownElement;t.prototype=Object.create(r.prototype),a(s,t),e.wrappers.HTMLUnknownElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";var t=e.wrappers.Element,n=e.wrappers.HTMLElement,r=e.registerObject,o=e.defineWrapGetter,i="http://www.w3.org/2000/svg",a=document.createElementNS(i,"title"),s=r(a),c=Object.getPrototypeOf(s.prototype).constructor;if(!("classList"in a)){var l=Object.getOwnPropertyDescriptor(t.prototype,"classList");Object.defineProperty(n.prototype,"classList",l),delete t.prototype.classList}o(c,"ownerSVGElement"),e.wrappers.SVGElement=c}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){p.call(this,e)}var n=e.mixin,r=e.registerWrapper,o=e.unwrap,i=e.wrap,a=window.SVGUseElement,s="http://www.w3.org/2000/svg",c=i(document.createElementNS(s,"g")),l=document.createElementNS(s,"use"),u=c.constructor,d=Object.getPrototypeOf(u.prototype),p=d.constructor;t.prototype=Object.create(d),"instanceRoot"in l&&n(t.prototype,{get instanceRoot(){return i(o(this).instanceRoot)},get animatedInstanceRoot(){return i(o(this).animatedInstanceRoot)}}),r(a,t,l),e.wrappers.SVGUseElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.EventTarget,r=e.mixin,o=e.registerWrapper,i=e.unsafeUnwrap,a=e.wrap,s=window.SVGElementInstance;s&&(t.prototype=Object.create(n.prototype),r(t.prototype,{get correspondingElement(){return a(i(this).correspondingElement)},get correspondingUseElement(){return a(i(this).correspondingUseElement)},get parentNode(){return a(i(this).parentNode)},get childNodes(){throw new Error("Not implemented")},get firstChild(){return a(i(this).firstChild)},get lastChild(){return a(i(this).lastChild)},get previousSibling(){return a(i(this).previousSibling)},get nextSibling(){return a(i(this).nextSibling)}}),o(s,t),e.wrappers.SVGElementInstance=t)}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){o(e,this)}var n=e.mixin,r=e.registerWrapper,o=e.setWrapper,i=e.unsafeUnwrap,a=e.unwrap,s=e.unwrapIfNeeded,c=e.wrap,l=window.CanvasRenderingContext2D;n(t.prototype,{get canvas(){return c(i(this).canvas)},drawImage:function(){arguments[0]=s(arguments[0]),i(this).drawImage.apply(i(this),arguments)},createPattern:function(){return arguments[0]=a(arguments[0]),i(this).createPattern.apply(i(this),arguments)}}),r(l,t,document.createElement("canvas").getContext("2d")),e.wrappers.CanvasRenderingContext2D=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){o(e,this)}var n=e.mixin,r=e.registerWrapper,o=e.setWrapper,i=e.unsafeUnwrap,a=e.unwrapIfNeeded,s=e.wrap,c=window.WebGLRenderingContext;if(c){n(t.prototype,{get canvas(){return s(i(this).canvas)},texImage2D:function(){arguments[5]=a(arguments[5]),i(this).texImage2D.apply(i(this),arguments)},texSubImage2D:function(){arguments[6]=a(arguments[6]),i(this).texSubImage2D.apply(i(this),arguments)}});var l=/WebKit/.test(navigator.userAgent)?{drawingBufferHeight:null,drawingBufferWidth:null}:{};r(c,t,l),e.wrappers.WebGLRenderingContext=t}}(window.ShadowDOMPolyfill),function(e){"use strict";var t=e.GetElementsByInterface,n=e.NonElementParentNodeInterface,r=e.ParentNodeInterface,o=e.SelectorsInterface,i=e.mixin,a=e.registerObject,s=a(document.createDocumentFragment());i(s.prototype,r),i(s.prototype,o),i(s.prototype,t),i(s.prototype,n);var c=a(document.createComment(""));e.wrappers.Comment=c,e.wrappers.DocumentFragment=s}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){var t=d(u(e).ownerDocument.createDocumentFragment());n.call(this,t),c(t,this);var o=e.shadowRoot;h.set(this,o),this.treeScope_=new r(this,a(o||e)),p.set(this,e)}var n=e.wrappers.DocumentFragment,r=e.TreeScope,o=e.elementFromPoint,i=e.getInnerHTML,a=e.getTreeScope,s=e.mixin,c=e.rewrap,l=e.setInnerHTML,u=e.unsafeUnwrap,d=e.unwrap,p=new WeakMap,h=new WeakMap;t.prototype=Object.create(n.prototype),s(t.prototype,{constructor:t,get innerHTML(){return i(this)},set innerHTML(e){l(this,e),this.invalidateShadowRenderer()},get olderShadowRoot(){return h.get(this)||null},get host(){return p.get(this)||null},invalidateShadowRenderer:function(){return p.get(this).invalidateShadowRenderer()},elementFromPoint:function(e,t){return o(this,this.ownerDocument,e,t)}}),e.wrappers.ShadowRoot=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){var t=d(e).root;return t instanceof h?t.host:null}function n(t,n){if(t.shadowRoot){n=Math.min(t.childNodes.length-1,n);var r=t.childNodes[n];if(r){var o=e.getDestinationInsertionPoints(r);if(o.length>0){var i=o[0].parentNode;i.nodeType==Node.ELEMENT_NODE&&(t=i)}}}return t}function r(e){return e=u(e),t(e)||e}function o(e){a(e,this)}var i=e.registerWrapper,a=e.setWrapper,s=e.unsafeUnwrap,c=e.unwrap,l=e.unwrapIfNeeded,u=e.wrap,d=e.getTreeScope,p=window.Range,h=e.wrappers.ShadowRoot;o.prototype={get startContainer(){return r(s(this).startContainer)},get endContainer(){return r(s(this).endContainer)},get commonAncestorContainer(){return r(s(this).commonAncestorContainer)},setStart:function(e,t){e=n(e,t),s(this).setStart(l(e),t)},setEnd:function(e,t){e=n(e,t),s(this).setEnd(l(e),t)},setStartBefore:function(e){s(this).setStartBefore(l(e))},setStartAfter:function(e){s(this).setStartAfter(l(e))},setEndBefore:function(e){s(this).setEndBefore(l(e))},setEndAfter:function(e){s(this).setEndAfter(l(e))},selectNode:function(e){s(this).selectNode(l(e))},selectNodeContents:function(e){s(this).selectNodeContents(l(e))},compareBoundaryPoints:function(e,t){return s(this).compareBoundaryPoints(e,c(t))},extractContents:function(){return u(s(this).extractContents())},cloneContents:function(){return u(s(this).cloneContents())},insertNode:function(e){s(this).insertNode(l(e))},surroundContents:function(e){s(this).surroundContents(l(e))},cloneRange:function(){return u(s(this).cloneRange())},isPointInRange:function(e,t){return s(this).isPointInRange(l(e),t)},comparePoint:function(e,t){return s(this).comparePoint(l(e),t)},intersectsNode:function(e){return s(this).intersectsNode(l(e))},toString:function(){return s(this).toString()}},p.prototype.createContextualFragment&&(o.prototype.createContextualFragment=function(e){return u(s(this).createContextualFragment(e))}),i(window.Range,o,document.createRange()),e.wrappers.Range=o}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){e.previousSibling_=e.previousSibling,e.nextSibling_=e.nextSibling,e.parentNode_=e.parentNode}function n(n,o,i){var a=x(n),s=x(o),c=i?x(i):null;if(r(o),t(o),i)n.firstChild===i&&(n.firstChild_=i),i.previousSibling_=i.previousSibling;else{n.lastChild_=n.lastChild,n.lastChild===n.firstChild&&(n.firstChild_=n.firstChild);var l=R(a.lastChild);l&&(l.nextSibling_=l.nextSibling)}e.originalInsertBefore.call(a,s,c)}function r(n){var r=x(n),o=r.parentNode;if(o){var i=R(o);t(n),n.previousSibling&&(n.previousSibling.nextSibling_=n),n.nextSibling&&(n.nextSibling.previousSibling_=n),i.lastChild===n&&(i.lastChild_=n),i.firstChild===n&&(i.firstChild_=n),e.originalRemoveChild.call(o,r)}}function o(e){P.set(e,[])}function i(e){var t=P.get(e);return t||P.set(e,t=[]),t}function a(e){for(var t=[],n=0,r=e.firstChild;r;r=r.nextSibling)t[n++]=r;return t}function s(){for(var e=0;em;m++){var w=R(i[u++]);s.get(w)||r(w)}for(var v=h.addedCount,g=i[u]&&R(i[u]),m=0;v>m;m++){var b=o[l++],y=b.node;n(t,y,g),s.set(y,!0),b.sync(s)}d+=v}for(var p=d;p=0;o--){var i=r[o],a=m(i);if(a){var s=i.olderShadowRoot;s&&(n=f(s));for(var c=0;c=0;u--)l=Object.create(l);["createdCallback","attachedCallback","detachedCallback","attributeChangedCallback"].forEach(function(e){var t=o[e];t&&(l[e]=function(){C(this)instanceof r||M(this),t.apply(C(this),arguments)})});var d={prototype:l};i&&(d["extends"]=i),r.prototype=o,r.prototype.constructor=r,e.constructorTable.set(l,r),e.nativePrototypeTable.set(o,l);P.call(N(this),t,d);return r},y([window.HTMLDocument||window.Document],["registerElement"])}y([window.HTMLBodyElement,window.HTMLDocument||window.Document,window.HTMLHeadElement,window.HTMLHtmlElement],["appendChild","compareDocumentPosition","contains","getElementsByClassName","getElementsByTagName","getElementsByTagNameNS","insertBefore","querySelector","querySelectorAll","removeChild","replaceChild"]),y([window.HTMLBodyElement,window.HTMLHeadElement,window.HTMLHtmlElement],E),y([window.HTMLDocument||window.Document],["adoptNode","importNode","contains","createComment","createDocumentFragment","createElement","createElementNS","createEvent","createEventNS","createRange","createTextNode","createTreeWalker","elementFromPoint","getElementById","getElementsByName","getSelection"]),_(t.prototype,l),_(t.prototype,d),_(t.prototype,f),_(t.prototype,p),_(t.prototype,{get implementation(){var e=D.get(this);return e?e:(e=new a(N(this).implementation),D.set(this,e),e)},get defaultView(){return C(N(this).defaultView)}}),S(window.Document,t,document.implementation.createHTMLDocument("")),window.HTMLDocument&&S(window.HTMLDocument,t),j([window.HTMLBodyElement,window.HTMLDocument||window.Document,window.HTMLHeadElement]);var k=document.implementation.createDocument;a.prototype.createDocument=function(){return arguments[2]=N(arguments[2]),C(k.apply(L(this),arguments))},s(a,"createDocumentType"),s(a,"createHTMLDocument"),c(a,"hasFeature"),S(window.DOMImplementation,a),y([window.DOMImplementation],["createDocument","createDocumentType","createHTMLDocument","hasFeature"]),e.adoptNodeNoRemove=r,e.wrappers.DOMImplementation=a,e.wrappers.Document=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.EventTarget,r=e.wrappers.Selection,o=e.mixin,i=e.registerWrapper,a=e.renderAllPending,s=e.unwrap,c=e.unwrapIfNeeded,l=e.wrap,u=window.Window,d=window.getComputedStyle,p=window.getDefaultComputedStyle,h=window.getSelection;t.prototype=Object.create(n.prototype),u.prototype.getComputedStyle=function(e,t){return l(this||window).getComputedStyle(c(e),t)},p&&(u.prototype.getDefaultComputedStyle=function(e,t){return l(this||window).getDefaultComputedStyle(c(e),t)}),u.prototype.getSelection=function(){return l(this||window).getSelection()},delete window.getComputedStyle,delete window.getDefaultComputedStyle,delete window.getSelection,["addEventListener","removeEventListener","dispatchEvent"].forEach(function(e){u.prototype[e]=function(){var t=l(this||window);return t[e].apply(t,arguments)},delete window[e]}),o(t.prototype,{getComputedStyle:function(e,t){return a(),d.call(s(this),c(e),t)},getSelection:function(){return a(),new r(h.call(s(this)))},get document(){return l(s(this).document)}}),p&&(t.prototype.getDefaultComputedStyle=function(e,t){return a(),p.call(s(this),c(e),t)}),i(u,t,window),e.wrappers.Window=t}(window.ShadowDOMPolyfill),function(e){"use strict";var t=e.unwrap,n=window.DataTransfer||window.Clipboard,r=n.prototype.setDragImage;r&&(n.prototype.setDragImage=function(e,n,o){r.call(this,t(e),n,o)})}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){var t;t=e instanceof i?e:new i(e&&o(e)),r(t,this)}var n=e.registerWrapper,r=e.setWrapper,o=e.unwrap,i=window.FormData;i&&(n(i,t,new i),e.wrappers.FormData=t)}(window.ShadowDOMPolyfill),function(e){"use strict";var t=e.unwrapIfNeeded,n=XMLHttpRequest.prototype.send;XMLHttpRequest.prototype.send=function(e){return n.call(this,t(e))}}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){var t=n[e],r=window[t];if(r){var o=document.createElement(e),i=o.constructor;window[t]=i}}var n=(e.isWrapperFor,{a:"HTMLAnchorElement",area:"HTMLAreaElement",audio:"HTMLAudioElement",base:"HTMLBaseElement",body:"HTMLBodyElement",br:"HTMLBRElement",button:"HTMLButtonElement",canvas:"HTMLCanvasElement",caption:"HTMLTableCaptionElement",col:"HTMLTableColElement",content:"HTMLContentElement",data:"HTMLDataElement",datalist:"HTMLDataListElement",del:"HTMLModElement",dir:"HTMLDirectoryElement",div:"HTMLDivElement",dl:"HTMLDListElement",embed:"HTMLEmbedElement",fieldset:"HTMLFieldSetElement",font:"HTMLFontElement",form:"HTMLFormElement",frame:"HTMLFrameElement",frameset:"HTMLFrameSetElement",h1:"HTMLHeadingElement",head:"HTMLHeadElement",hr:"HTMLHRElement",html:"HTMLHtmlElement",iframe:"HTMLIFrameElement",img:"HTMLImageElement",input:"HTMLInputElement",keygen:"HTMLKeygenElement",label:"HTMLLabelElement",legend:"HTMLLegendElement",li:"HTMLLIElement",link:"HTMLLinkElement",map:"HTMLMapElement",marquee:"HTMLMarqueeElement",menu:"HTMLMenuElement",menuitem:"HTMLMenuItemElement",meta:"HTMLMetaElement",meter:"HTMLMeterElement",object:"HTMLObjectElement",ol:"HTMLOListElement",optgroup:"HTMLOptGroupElement",option:"HTMLOptionElement",output:"HTMLOutputElement",p:"HTMLParagraphElement",param:"HTMLParamElement",pre:"HTMLPreElement",progress:"HTMLProgressElement",q:"HTMLQuoteElement",script:"HTMLScriptElement",select:"HTMLSelectElement",shadow:"HTMLShadowElement",source:"HTMLSourceElement",span:"HTMLSpanElement",style:"HTMLStyleElement",table:"HTMLTableElement",tbody:"HTMLTableSectionElement",template:"HTMLTemplateElement",textarea:"HTMLTextAreaElement",thead:"HTMLTableSectionElement",time:"HTMLTimeElement",title:"HTMLTitleElement",tr:"HTMLTableRowElement",track:"HTMLTrackElement",ul:"HTMLUListElement",video:"HTMLVideoElement"});Object.keys(n).forEach(t),Object.getOwnPropertyNames(e.wrappers).forEach(function(t){window[t]=e.wrappers[t]})}(window.ShadowDOMPolyfill),function(e){function t(e,t){var n="";return Array.prototype.forEach.call(e,function(e){n+=e.textContent+"\n\n"}),t||(n=n.replace(d,"")),n}function n(e){var t=document.createElement("style");return t.textContent=e,t}function r(e){var t=n(e);document.head.appendChild(t);var r=[];if(t.sheet)try{r=t.sheet.cssRules}catch(o){}else console.warn("sheet not found",t);return t.parentNode.removeChild(t),r}function o(){C.initialized=!0,document.body.appendChild(C);var e=C.contentDocument,t=e.createElement("base");t.href=document.baseURI,e.head.appendChild(t)}function i(e){C.initialized||o(),document.body.appendChild(C),e(C.contentDocument),document.body.removeChild(C)}function a(e,t){if(t){var o;if(e.match("@import")&&D){var a=n(e);i(function(e){e.head.appendChild(a.impl),o=Array.prototype.slice.call(a.sheet.cssRules,0),t(o)})}else o=r(e),t(o)}}function s(e){e&&l().appendChild(document.createTextNode(e))}function c(e,t){var r=n(e);r.setAttribute(t,""),r.setAttribute(x,""),document.head.appendChild(r)}function l(){return j||(j=document.createElement("style"),j.setAttribute(x,""),j[x]=!0),j}var u={strictStyling:!1,registry:{},shimStyling:function(e,n,r){var o=this.prepareRoot(e,n,r),i=this.isTypeExtension(r),a=this.makeScopeSelector(n,i),s=t(o,!0);s=this.scopeCssText(s,a),e&&(e.shimmedStyle=s),this.addCssToDocument(s,n)},shimStyle:function(e,t){return this.shimCssText(e.textContent,t)},shimCssText:function(e,t){return e=this.insertDirectives(e),this.scopeCssText(e,t)},makeScopeSelector:function(e,t){return e?t?"[is="+e+"]":e:""},isTypeExtension:function(e){return e&&e.indexOf("-")<0},prepareRoot:function(e,t,n){var r=this.registerRoot(e,t,n);return this.replaceTextInStyles(r.rootStyles,this.insertDirectives),this.removeStyles(e,r.rootStyles),this.strictStyling&&this.applyScopeToContent(e,t),r.scopeStyles},removeStyles:function(e,t){for(var n,r=0,o=t.length;o>r&&(n=t[r]);r++)n.parentNode.removeChild(n)},registerRoot:function(e,t,n){var r=this.registry[t]={root:e,name:t,extendsName:n},o=this.findStyles(e);r.rootStyles=o,r.scopeStyles=r.rootStyles;var i=this.registry[r.extendsName];return i&&(r.scopeStyles=i.scopeStyles.concat(r.scopeStyles)),r},findStyles:function(e){if(!e)return[];var t=e.querySelectorAll("style");return Array.prototype.filter.call(t,function(e){return!e.hasAttribute(R)})},applyScopeToContent:function(e,t){e&&(Array.prototype.forEach.call(e.querySelectorAll("*"),function(e){e.setAttribute(t,"")}),Array.prototype.forEach.call(e.querySelectorAll("template"),function(e){this.applyScopeToContent(e.content,t)},this))},insertDirectives:function(e){return e=this.insertPolyfillDirectivesInCssText(e),this.insertPolyfillRulesInCssText(e)},insertPolyfillDirectivesInCssText:function(e){return e=e.replace(p,function(e,t){return t.slice(0,-2)+"{"}),e.replace(h,function(e,t){return t+" {"})},insertPolyfillRulesInCssText:function(e){return e=e.replace(f,function(e,t){return t.slice(0,-1)}),e.replace(m,function(e,t,n,r){var o=e.replace(t,"").replace(n,"");return r+o})},scopeCssText:function(e,t){var n=this.extractUnscopedRulesFromCssText(e);if(e=this.insertPolyfillHostInCssText(e),e=this.convertColonHost(e),e=this.convertColonHostContext(e),e=this.convertShadowDOMSelectors(e),t){var e,r=this;a(e,function(n){e=r.scopeRules(n,t)})}return e=e+"\n"+n,e.trim()},extractUnscopedRulesFromCssText:function(e){for(var t,n="";t=w.exec(e);)n+=t[1].slice(0,-1)+"\n\n";for(;t=v.exec(e);)n+=t[0].replace(t[2],"").replace(t[1],t[3])+"\n\n";return n},convertColonHost:function(e){return this.convertColonRule(e,E,this.colonHostPartReplacer)},convertColonHostContext:function(e){return this.convertColonRule(e,_,this.colonHostContextPartReplacer)},convertColonRule:function(e,t,n){return e.replace(t,function(e,t,r,o){if(t=O,r){for(var i,a=r.split(","),s=[],c=0,l=a.length;l>c&&(i=a[c]);c++)i=i.trim(),s.push(n(t,i,o));return s.join(",")}return t+o})},colonHostContextPartReplacer:function(e,t,n){return t.match(g)?this.colonHostPartReplacer(e,t,n):e+t+n+", "+t+" "+e+n},colonHostPartReplacer:function(e,t,n){return e+t.replace(g,"")+n},convertShadowDOMSelectors:function(e){for(var t=0;t","+","~"],r=e,o="["+t+"]";return n.forEach(function(e){var t=r.split(e);r=t.map(function(e){var t=e.trim().replace(L,"");return t&&n.indexOf(t)<0&&t.indexOf(o)<0&&(e=t.replace(/([^:]*)(:*)(.*)/,"$1"+o+"$2$3")),e}).join(e)}),r},insertPolyfillHostInCssText:function(e){return e.replace(M,b).replace(T,g)},propertiesFromRule:function(e){var t=e.style.cssText;e.style.content&&!e.style.content.match(/['"]+|attr/)&&(t=t.replace(/content:[^;]*;/g,"content: '"+e.style.content+"';"));var n=e.style;for(var r in n)"initial"===n[r]&&(t+=r+": initial; ");return t},replaceTextInStyles:function(e,t){e&&t&&(e instanceof Array||(e=[e]),Array.prototype.forEach.call(e,function(e){e.textContent=t.call(this,e.textContent)},this))},addCssToDocument:function(e,t){e.match("@import")?c(e,t):s(e)}},d=/\/\*[^*]*\*+([^\/*][^*]*\*+)*\//gim,p=/\/\*\s*@polyfill ([^*]*\*+([^\/*][^*]*\*+)*\/)([^{]*?){/gim,h=/polyfill-next-selector[^}]*content\:[\s]*?['"](.*?)['"][;\s]*}([^{]*?){/gim,f=/\/\*\s@polyfill-rule([^*]*\*+([^\/*][^*]*\*+)*)\//gim,m=/(polyfill-rule)[^}]*(content\:[\s]*['"](.*?)['"])[;\s]*[^}]*}/gim,w=/\/\*\s@polyfill-unscoped-rule([^*]*\*+([^\/*][^*]*\*+)*)\//gim,v=/(polyfill-unscoped-rule)[^}]*(content\:[\s]*['"](.*?)['"])[;\s]*[^}]*}/gim,g="-shadowcsshost",b="-shadowcsscontext",y=")(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))?([^,{]*)",E=new RegExp("("+g+y,"gim"),_=new RegExp("("+b+y,"gim"),S="([>\\s~+[.,{:][\\s\\S]*)?$",T=/\:host/gim,M=/\:host-context/gim,O=g+"-no-combinator",L=new RegExp(g,"gim"),N=(new RegExp(b,"gim"),[/>>>/g,/::shadow/g,/::content/g,/\/deep\//g,/\/shadow\//g,/\/shadow-deep\//g,/\^\^/g,/\^/g]),C=document.createElement("iframe");C.style.display="none";var j,D=navigator.userAgent.match("Chrome"),H="shim-shadowdom",x="shim-shadowdom-css",R="no-shim";if(window.ShadowDOMPolyfill){s("style { display: none !important; }\n");var I=ShadowDOMPolyfill.wrap(document),P=I.querySelector("head");P.insertBefore(l(),P.childNodes[0]),document.addEventListener("DOMContentLoaded",function(){e.urlResolver;if(window.HTMLImports&&!HTMLImports.useNative){var t="link[rel=stylesheet]["+H+"]",n="style["+H+"]";HTMLImports.importer.documentPreloadSelectors+=","+t,HTMLImports.importer.importsPreloadSelectors+=","+t,HTMLImports.parser.documentSelectors=[HTMLImports.parser.documentSelectors,t,n].join(",");var r=HTMLImports.parser.parseGeneric;HTMLImports.parser.parseGeneric=function(e){if(!e[x]){var t=e.__importElement||e;if(!t.hasAttribute(H))return void r.call(this,e);e.__resource&&(t=e.ownerDocument.createElement("style"),t.textContent=e.__resource),HTMLImports.path.resolveUrlsInStyle(t,e.href),t.textContent=u.shimStyle(t),t.removeAttribute(H,""),t.setAttribute(x,""),t[x]=!0,t.parentNode!==P&&(e.parentNode===P?P.replaceChild(t,e):this.addElementToDocument(t)),t.__importParsed=!0,this.markParsingComplete(e),this.parseNext()}};var o=HTMLImports.parser.hasResource;HTMLImports.parser.hasResource=function(e){return"link"===e.localName&&"stylesheet"===e.rel&&e.hasAttribute(H)?e.__resource:o.call(this,e)}}})}e.ShadowCSS=u}(window.WebComponents)),function(e){window.ShadowDOMPolyfill?(window.wrap=ShadowDOMPolyfill.wrapIfNeeded,window.unwrap=ShadowDOMPolyfill.unwrapIfNeeded):window.wrap=window.unwrap=function(e){return e}}(window.WebComponents),function(e){"use strict";function t(e){return void 0!==p[e]}function n(){s.call(this),this._isInvalid=!0}function r(e){return""==e&&n.call(this),e.toLowerCase()}function o(e){var t=e.charCodeAt(0);return t>32&&127>t&&-1==[34,35,60,62,63,96].indexOf(t)?e:encodeURIComponent(e)}function i(e){var t=e.charCodeAt(0);return t>32&&127>t&&-1==[34,35,60,62,96].indexOf(t)?e:encodeURIComponent(e)}function a(e,a,s){function c(e){b.push(e)}var l=a||"scheme start",u=0,d="",v=!1,g=!1,b=[];e:for(;(e[u-1]!=f||0==u)&&!this._isInvalid;){var y=e[u];switch(l){case"scheme start":if(!y||!m.test(y)){if(a){c("Invalid scheme.");break e}d="",l="no scheme";continue}d+=y.toLowerCase(),l="scheme";break;case"scheme":if(y&&w.test(y))d+=y.toLowerCase();else{if(":"!=y){if(a){if(f==y)break e;c("Code point not allowed in scheme: "+y);break e}d="",u=0,l="no scheme";continue}if(this._scheme=d,d="",a)break e;t(this._scheme)&&(this._isRelative=!0),l="file"==this._scheme?"relative":this._isRelative&&s&&s._scheme==this._scheme?"relative or authority":this._isRelative?"authority first slash":"scheme data"}break;case"scheme data":"?"==y?(this._query="?",l="query"):"#"==y?(this._fragment="#",l="fragment"):f!=y&&" "!=y&&"\n"!=y&&"\r"!=y&&(this._schemeData+=o(y));break;case"no scheme":if(s&&t(s._scheme)){l="relative";continue}c("Missing scheme."),n.call(this);break;case"relative or authority":if("/"!=y||"/"!=e[u+1]){c("Expected /, got: "+y),l="relative";continue}l="authority ignore slashes";break;case"relative":if(this._isRelative=!0,"file"!=this._scheme&&(this._scheme=s._scheme),f==y){this._host=s._host,this._port=s._port,this._path=s._path.slice(),this._query=s._query,this._username=s._username,this._password=s._password;break e}if("/"==y||"\\"==y)"\\"==y&&c("\\ is an invalid code point."),l="relative slash";else if("?"==y)this._host=s._host,this._port=s._port,this._path=s._path.slice(),this._query="?",this._username=s._username,this._password=s._password,l="query";else{if("#"!=y){var E=e[u+1],_=e[u+2];("file"!=this._scheme||!m.test(y)||":"!=E&&"|"!=E||f!=_&&"/"!=_&&"\\"!=_&&"?"!=_&&"#"!=_)&&(this._host=s._host,this._port=s._port,this._username=s._username,this._password=s._password,this._path=s._path.slice(),this._path.pop()),l="relative path";continue}this._host=s._host,this._port=s._port,this._path=s._path.slice(),this._query=s._query,this._fragment="#",this._username=s._username,this._password=s._password,l="fragment"}break;case"relative slash":if("/"!=y&&"\\"!=y){"file"!=this._scheme&&(this._host=s._host,this._port=s._port,this._username=s._username,this._password=s._password),l="relative path";continue}"\\"==y&&c("\\ is an invalid code point."),l="file"==this._scheme?"file host":"authority ignore slashes";break;case"authority first slash":if("/"!=y){c("Expected '/', got: "+y),l="authority ignore slashes";continue}l="authority second slash";break;case"authority second slash":if(l="authority ignore slashes","/"!=y){c("Expected '/', got: "+y);continue}break;case"authority ignore slashes":if("/"!=y&&"\\"!=y){l="authority";continue}c("Expected authority, got: "+y);break;case"authority":if("@"==y){v&&(c("@ already seen."),d+="%40"),v=!0;for(var S=0;S0){var o=n[r-1],i=h(o,e);if(i)return void(n[r-1]=i)}else t(this.observer);n[r]=e},addListeners:function(){this.addListeners_(this.target)},addListeners_:function(e){var t=this.options;t.attributes&&e.addEventListener("DOMAttrModified",this,!0),t.characterData&&e.addEventListener("DOMCharacterDataModified",this,!0),t.childList&&e.addEventListener("DOMNodeInserted",this,!0),(t.childList||t.subtree)&&e.addEventListener("DOMNodeRemoved",this,!0)},removeListeners:function(){this.removeListeners_(this.target)},removeListeners_:function(e){var t=this.options;t.attributes&&e.removeEventListener("DOMAttrModified",this,!0),t.characterData&&e.removeEventListener("DOMCharacterDataModified",this,!0),t.childList&&e.removeEventListener("DOMNodeInserted",this,!0),(t.childList||t.subtree)&&e.removeEventListener("DOMNodeRemoved",this,!0)},addTransientObserver:function(e){if(e!==this.target){this.addListeners_(e),this.transientObservedNodes.push(e);var t=w.get(e);t||w.set(e,t=[]),t.push(this)}},removeTransientObservers:function(){var e=this.transientObservedNodes;this.transientObservedNodes=[],e.forEach(function(e){this.removeListeners_(e);for(var t=w.get(e),n=0;nh&&(p=s[h]);h++)a(p)?(c++,n()):(p.addEventListener("load",r),p.addEventListener("error",i));else n()}function a(e){return d?e.__loaded||e["import"]&&"loading"!==e["import"].readyState:e.__importParsed}function s(e){for(var t,n=0,r=e.length;r>n&&(t=e[n]);n++)c(t)&&l(t)}function c(e){return"link"===e.localName&&"import"===e.rel}function l(e){var t=e["import"];t?o({target:e}):(e.addEventListener("load",o),e.addEventListener("error",o))}var u="import",d=Boolean(u in document.createElement("link")),p=Boolean(window.ShadowDOMPolyfill),h=function(e){return p?window.ShadowDOMPolyfill.wrapIfNeeded(e):e},f=h(document),m={get:function(){var e=window.HTMLImports.currentScript||document.currentScript||("complete"!==document.readyState?document.scripts[document.scripts.length-1]:null);return h(e)},configurable:!0};Object.defineProperty(document,"_currentScript",m),Object.defineProperty(f,"_currentScript",m);var w=/Trident/.test(navigator.userAgent),v=w?"complete":"interactive",g="readystatechange";d&&(new MutationObserver(function(e){for(var t,n=0,r=e.length;r>n&&(t=e[n]);n++)t.addedNodes&&s(t.addedNodes)}).observe(document.head,{childList:!0}),function(){if("loading"===document.readyState)for(var e,t=document.querySelectorAll("link[rel=import]"),n=0,r=t.length;r>n&&(e=t[n]);n++)l(e)}()),t(function(e){window.HTMLImports.ready=!0,window.HTMLImports.readyTime=(new Date).getTime();var t=f.createEvent("CustomEvent");t.initCustomEvent("HTMLImportsLoaded",!0,!0,e),f.dispatchEvent(t)}),e.IMPORT_LINK_TYPE=u,e.useNative=d,e.rootDocument=f,e.whenReady=t,e.isIE=w}(window.HTMLImports),function(e){var t=[],n=function(e){t.push(e)},r=function(){t.forEach(function(t){t(e)})};e.addModule=n,e.initializeModules=r}(window.HTMLImports),window.HTMLImports.addModule(function(e){var t=/(url\()([^)]*)(\))/g,n=/(@import[\s]+(?!url\())([^;]*)(;)/g,r={resolveUrlsInStyle:function(e,t){var n=e.ownerDocument,r=n.createElement("a");return e.textContent=this.resolveUrlsInCssText(e.textContent,t,r),e},resolveUrlsInCssText:function(e,r,o){var i=this.replaceUrls(e,o,r,t);return i=this.replaceUrls(i,o,r,n)},replaceUrls:function(e,t,n,r){return e.replace(r,function(e,r,o,i){var a=o.replace(/["']/g,"");return n&&(a=new URL(a,n).href),t.href=a,a=t.href,r+"'"+a+"'"+i})}};e.path=r}),window.HTMLImports.addModule(function(e){var t={async:!0,ok:function(e){return e.status>=200&&e.status<300||304===e.status||0===e.status},load:function(n,r,o){var i=new XMLHttpRequest;return(e.flags.debug||e.flags.bust)&&(n+="?"+Math.random()),i.open("GET",n,t.async),i.addEventListener("readystatechange",function(e){ -if(4===i.readyState){var n=i.getResponseHeader("Location"),a=null;if(n)var a="/"===n.substr(0,1)?location.origin+n:n;r.call(o,!t.ok(i)&&i,i.response||i.responseText,a)}}),i.send(),i},loadDocument:function(e,t,n){this.load(e,t,n).responseType="document"}};e.xhr=t}),window.HTMLImports.addModule(function(e){var t=e.xhr,n=e.flags,r=function(e,t){this.cache={},this.onload=e,this.oncomplete=t,this.inflight=0,this.pending={}};r.prototype={addNodes:function(e){this.inflight+=e.length;for(var t,n=0,r=e.length;r>n&&(t=e[n]);n++)this.require(t);this.checkDone()},addNode:function(e){this.inflight++,this.require(e),this.checkDone()},require:function(e){var t=e.src||e.href;e.__nodeUrl=t,this.dedupe(t,e)||this.fetch(t,e)},dedupe:function(e,t){if(this.pending[e])return this.pending[e].push(t),!0;return this.cache[e]?(this.onload(e,t,this.cache[e]),this.tail(),!0):(this.pending[e]=[t],!1)},fetch:function(e,r){if(n.load&&console.log("fetch",e,r),e)if(e.match(/^data:/)){var o=e.split(","),i=o[0],a=o[1];a=i.indexOf(";base64")>-1?atob(a):decodeURIComponent(a),setTimeout(function(){this.receive(e,r,null,a)}.bind(this),0)}else{var s=function(t,n,o){this.receive(e,r,t,n,o)}.bind(this);t.load(e,s)}else setTimeout(function(){this.receive(e,r,{error:"href must be specified"},null)}.bind(this),0)},receive:function(e,t,n,r,o){this.cache[e]=r;for(var i,a=this.pending[e],s=0,c=a.length;c>s&&(i=a[s]);s++)this.onload(e,i,r,n,o),this.tail();this.pending[e]=null},tail:function(){--this.inflight,this.checkDone()},checkDone:function(){this.inflight||this.oncomplete()}},e.Loader=r}),window.HTMLImports.addModule(function(e){var t=function(e){this.addCallback=e,this.mo=new MutationObserver(this.handler.bind(this))};t.prototype={handler:function(e){for(var t,n=0,r=e.length;r>n&&(t=e[n]);n++)"childList"===t.type&&t.addedNodes.length&&this.addedNodes(t.addedNodes)},addedNodes:function(e){this.addCallback&&this.addCallback(e);for(var t,n=0,r=e.length;r>n&&(t=e[n]);n++)t.children&&t.children.length&&this.addedNodes(t.children)},observe:function(e){this.mo.observe(e,{childList:!0,subtree:!0})}},e.Observer=t}),window.HTMLImports.addModule(function(e){function t(e){return"link"===e.localName&&e.rel===u}function n(e){var t=r(e);return"data:text/javascript;charset=utf-8,"+encodeURIComponent(t)}function r(e){return e.textContent+o(e)}function o(e){var t=e.ownerDocument;t.__importedScripts=t.__importedScripts||0;var n=e.ownerDocument.baseURI,r=t.__importedScripts?"-"+t.__importedScripts:"";return t.__importedScripts++,"\n//# sourceURL="+n+r+".js\n"}function i(e){var t=e.ownerDocument.createElement("style");return t.textContent=e.textContent,a.resolveUrlsInStyle(t),t}var a=e.path,s=e.rootDocument,c=e.flags,l=e.isIE,u=e.IMPORT_LINK_TYPE,d="link[rel="+u+"]",p={documentSelectors:d,importsSelectors:[d,"link[rel=stylesheet]","style","script:not([type])",'script[type="application/javascript"]','script[type="text/javascript"]'].join(","),map:{link:"parseLink",script:"parseScript",style:"parseStyle"},dynamicElements:[],parseNext:function(){var e=this.nextToParse();e&&this.parse(e)},parse:function(e){if(this.isParsed(e))return void(c.parse&&console.log("[%s] is already parsed",e.localName));var t=this[this.map[e.localName]];t&&(this.markParsing(e),t.call(this,e))},parseDynamic:function(e,t){this.dynamicElements.push(e),t||this.parseNext()},markParsing:function(e){c.parse&&console.log("parsing",e),this.parsingElement=e},markParsingComplete:function(e){e.__importParsed=!0,this.markDynamicParsingComplete(e),e.__importElement&&(e.__importElement.__importParsed=!0,this.markDynamicParsingComplete(e.__importElement)),this.parsingElement=null,c.parse&&console.log("completed",e)},markDynamicParsingComplete:function(e){var t=this.dynamicElements.indexOf(e);t>=0&&this.dynamicElements.splice(t,1)},parseImport:function(e){if(window.HTMLImports.__importsParsingHook&&window.HTMLImports.__importsParsingHook(e),e["import"]&&(e["import"].__importParsed=!0),this.markParsingComplete(e),e.dispatchEvent(e.__resource&&!e.__error?new CustomEvent("load",{bubbles:!1}):new CustomEvent("error",{bubbles:!1})),e.__pending)for(var t;e.__pending.length;)t=e.__pending.shift(),t&&t({target:e});this.parseNext()},parseLink:function(e){t(e)?this.parseImport(e):(e.href=e.href,this.parseGeneric(e))},parseStyle:function(e){var t=e;e=i(e),t.__appliedElement=e,e.__importElement=t,this.parseGeneric(e)},parseGeneric:function(e){this.trackElement(e),this.addElementToDocument(e)},rootImportForElement:function(e){for(var t=e;t.ownerDocument.__importLink;)t=t.ownerDocument.__importLink;return t},addElementToDocument:function(e){var t=this.rootImportForElement(e.__importElement||e);t.parentNode.insertBefore(e,t)},trackElement:function(e,t){var n=this,r=function(r){t&&t(r),n.markParsingComplete(e),n.parseNext()};if(e.addEventListener("load",r),e.addEventListener("error",r),l&&"style"===e.localName){var o=!1;if(-1==e.textContent.indexOf("@import"))o=!0;else if(e.sheet){o=!0;for(var i,a=e.sheet.cssRules,s=a?a.length:0,c=0;s>c&&(i=a[c]);c++)i.type===CSSRule.IMPORT_RULE&&(o=o&&Boolean(i.styleSheet))}o&&setTimeout(function(){e.dispatchEvent(new CustomEvent("load",{bubbles:!1}))})}},parseScript:function(t){var r=document.createElement("script");r.__importElement=t,r.src=t.src?t.src:n(t),e.currentScript=t,this.trackElement(r,function(t){r.parentNode.removeChild(r),e.currentScript=null}),this.addElementToDocument(r)},nextToParse:function(){return this._mayParse=[],!this.parsingElement&&(this.nextToParseInDoc(s)||this.nextToParseDynamic())},nextToParseInDoc:function(e,n){if(e&&this._mayParse.indexOf(e)<0){this._mayParse.push(e);for(var r,o=e.querySelectorAll(this.parseSelectorsForNode(e)),i=0,a=o.length;a>i&&(r=o[i]);i++)if(!this.isParsed(r))return this.hasResource(r)?t(r)?this.nextToParseInDoc(r["import"],r):r:void 0}return n},nextToParseDynamic:function(){return this.dynamicElements[0]},parseSelectorsForNode:function(e){var t=e.ownerDocument||e;return t===s?this.documentSelectors:this.importsSelectors},isParsed:function(e){return e.__importParsed},needsDynamicParsing:function(e){return this.dynamicElements.indexOf(e)>=0},hasResource:function(e){return t(e)&&void 0===e["import"]?!1:!0}};e.parser=p,e.IMPORT_SELECTOR=d}),window.HTMLImports.addModule(function(e){function t(e){return n(e,a)}function n(e,t){return"link"===e.localName&&e.getAttribute("rel")===t}function r(e){return!!Object.getOwnPropertyDescriptor(e,"baseURI")}function o(e,t){var n=document.implementation.createHTMLDocument(a);n._URL=t;var o=n.createElement("base");o.setAttribute("href",t),n.baseURI||r(n)||Object.defineProperty(n,"baseURI",{value:t});var i=n.createElement("meta");return i.setAttribute("charset","utf-8"),n.head.appendChild(i),n.head.appendChild(o),n.body.innerHTML=e,window.HTMLTemplateElement&&HTMLTemplateElement.bootstrap&&HTMLTemplateElement.bootstrap(n),n}var i=e.flags,a=e.IMPORT_LINK_TYPE,s=e.IMPORT_SELECTOR,c=e.rootDocument,l=e.Loader,u=e.Observer,d=e.parser,p={documents:{},documentPreloadSelectors:s,importsPreloadSelectors:[s].join(","),loadNode:function(e){h.addNode(e)},loadSubtree:function(e){var t=this.marshalNodes(e);h.addNodes(t)},marshalNodes:function(e){return e.querySelectorAll(this.loadSelectorsForNode(e))},loadSelectorsForNode:function(e){var t=e.ownerDocument||e;return t===c?this.documentPreloadSelectors:this.importsPreloadSelectors},loaded:function(e,n,r,a,s){if(i.load&&console.log("loaded",e,n),n.__resource=r,n.__error=a,t(n)){var c=this.documents[e];void 0===c&&(c=a?null:o(r,s||e),c&&(c.__importLink=n,this.bootDocument(c)),this.documents[e]=c),n["import"]=c}d.parseNext()},bootDocument:function(e){this.loadSubtree(e),this.observer.observe(e),d.parseNext()},loadedAll:function(){d.parseNext()}},h=new l(p.loaded.bind(p),p.loadedAll.bind(p));if(p.observer=new u,!document.baseURI){var f={get:function(){var e=document.querySelector("base");return e?e.href:window.location.href},configurable:!0};Object.defineProperty(document,"baseURI",f),Object.defineProperty(c,"baseURI",f)}e.importer=p,e.importLoader=h}),window.HTMLImports.addModule(function(e){var t=e.parser,n=e.importer,r={added:function(e){for(var r,o,i,a,s=0,c=e.length;c>s&&(a=e[s]);s++)r||(r=a.ownerDocument,o=t.isParsed(r)),i=this.shouldLoadNode(a),i&&n.loadNode(a),this.shouldParseNode(a)&&o&&t.parseDynamic(a,i)},shouldLoadNode:function(e){return 1===e.nodeType&&o.call(e,n.loadSelectorsForNode(e))},shouldParseNode:function(e){return 1===e.nodeType&&o.call(e,t.parseSelectorsForNode(e))}};n.observer.addCallback=r.added.bind(r);var o=HTMLElement.prototype.matches||HTMLElement.prototype.matchesSelector||HTMLElement.prototype.webkitMatchesSelector||HTMLElement.prototype.mozMatchesSelector||HTMLElement.prototype.msMatchesSelector}),function(e){function t(){window.HTMLImports.importer.bootDocument(o)}var n=e.initializeModules,r=e.isIE;if(!e.useNative){r&&"function"!=typeof window.CustomEvent&&(window.CustomEvent=function(e,t){t=t||{};var n=document.createEvent("CustomEvent");return n.initCustomEvent(e,Boolean(t.bubbles),Boolean(t.cancelable),t.detail),n.preventDefault=function(){Object.defineProperty(this,"defaultPrevented",{get:function(){return!0}})},n},window.CustomEvent.prototype=window.Event.prototype),n();var o=e.rootDocument;"complete"===document.readyState||"interactive"===document.readyState&&!window.attachEvent?t():document.addEventListener("DOMContentLoaded",t)}}(window.HTMLImports),window.CustomElements=window.CustomElements||{flags:{}},function(e){var t=e.flags,n=[],r=function(e){n.push(e)},o=function(){n.forEach(function(t){t(e)})};e.addModule=r,e.initializeModules=o,e.hasNative=Boolean(document.registerElement),e.useNative=!t.register&&e.hasNative&&!window.ShadowDOMPolyfill&&(!window.HTMLImports||window.HTMLImports.useNative)}(window.CustomElements),window.CustomElements.addModule(function(e){function t(e,t){n(e,function(e){return t(e)?!0:void r(e,t)}),r(e,t)}function n(e,t,r){var o=e.firstElementChild;if(!o)for(o=e.firstChild;o&&o.nodeType!==Node.ELEMENT_NODE;)o=o.nextSibling;for(;o;)t(o,r)!==!0&&n(o,t,r),o=o.nextElementSibling;return null}function r(e,n){for(var r=e.shadowRoot;r;)t(r,n),r=r.olderShadowRoot}function o(e,t){i(e,t,[])}function i(e,t,n){if(e=window.wrap(e),!(n.indexOf(e)>=0)){n.push(e);for(var r,o=e.querySelectorAll("link[rel="+a+"]"),s=0,c=o.length;c>s&&(r=o[s]);s++)r["import"]&&i(r["import"],t,n);t(e)}}var a=window.HTMLImports?window.HTMLImports.IMPORT_LINK_TYPE:"none";e.forDocumentTree=o,e.forSubtree=t}),window.CustomElements.addModule(function(e){function t(e){return n(e)||r(e)}function n(t){return e.upgrade(t)?!0:void s(t)}function r(e){y(e,function(e){return n(e)?!0:void 0})}function o(e){s(e),p(e)&&y(e,function(e){s(e)})}function i(e){T.push(e),S||(S=!0,setTimeout(a))}function a(){S=!1;for(var e,t=T,n=0,r=t.length;r>n&&(e=t[n]);n++)e();T=[]}function s(e){_?i(function(){c(e)}):c(e)}function c(e){e.__upgraded__&&(e.attachedCallback||e.detachedCallback)&&!e.__attached&&p(e)&&(e.__attached=!0,e.attachedCallback&&e.attachedCallback())}function l(e){u(e),y(e,function(e){u(e)})}function u(e){_?i(function(){d(e)}):d(e)}function d(e){e.__upgraded__&&(e.attachedCallback||e.detachedCallback)&&e.__attached&&!p(e)&&(e.__attached=!1,e.detachedCallback&&e.detachedCallback())}function p(e){for(var t=e,n=wrap(document);t;){if(t==n)return!0;t=t.parentNode||t.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&t.host}}function h(e){if(e.shadowRoot&&!e.shadowRoot.__watched){b.dom&&console.log("watching shadow-root for: ",e.localName);for(var t=e.shadowRoot;t;)w(t),t=t.olderShadowRoot}}function f(e){if(b.dom){var n=e[0];if(n&&"childList"===n.type&&n.addedNodes&&n.addedNodes){for(var r=n.addedNodes[0];r&&r!==document&&!r.host;)r=r.parentNode;var o=r&&(r.URL||r._URL||r.host&&r.host.localName)||"";o=o.split("/?").shift().split("/").pop()}console.group("mutations (%d) [%s]",e.length,o||"")}e.forEach(function(e){"childList"===e.type&&(M(e.addedNodes,function(e){e.localName&&t(e)}),M(e.removedNodes,function(e){e.localName&&l(e)}))}),b.dom&&console.groupEnd()}function m(e){for(e=window.wrap(e),e||(e=window.wrap(document));e.parentNode;)e=e.parentNode;var t=e.__observer;t&&(f(t.takeRecords()),a())}function w(e){if(!e.__observer){var t=new MutationObserver(f);t.observe(e,{childList:!0,subtree:!0}),e.__observer=t}}function v(e){e=window.wrap(e),b.dom&&console.group("upgradeDocument: ",e.baseURI.split("/").pop()),t(e),w(e),b.dom&&console.groupEnd()}function g(e){E(e,v)}var b=e.flags,y=e.forSubtree,E=e.forDocumentTree,_=!window.MutationObserver||window.MutationObserver===window.JsMutationObserver;e.hasPolyfillMutations=_;var S=!1,T=[],M=Array.prototype.forEach.call.bind(Array.prototype.forEach),O=Element.prototype.createShadowRoot;O&&(Element.prototype.createShadowRoot=function(){var e=O.call(this);return window.CustomElements.watchShadow(this),e}),e.watchShadow=h,e.upgradeDocumentTree=g,e.upgradeSubtree=r,e.upgradeAll=t,e.attachedNode=o,e.takeRecords=m}),window.CustomElements.addModule(function(e){function t(t){if(!t.__upgraded__&&t.nodeType===Node.ELEMENT_NODE){var r=t.getAttribute("is"),o=e.getRegisteredDefinition(r||t.localName);if(o){if(r&&o.tag==t.localName)return n(t,o);if(!r&&!o["extends"])return n(t,o)}}}function n(t,n){return a.upgrade&&console.group("upgrade:",t.localName),n.is&&t.setAttribute("is",n.is),r(t,n),t.__upgraded__=!0,i(t),e.attachedNode(t),e.upgradeSubtree(t),a.upgrade&&console.groupEnd(),t}function r(e,t){Object.__proto__?e.__proto__=t.prototype:(o(e,t.prototype,t["native"]),e.__proto__=t.prototype)}function o(e,t,n){for(var r={},o=t;o!==n&&o!==HTMLElement.prototype;){for(var i,a=Object.getOwnPropertyNames(o),s=0;i=a[s];s++)r[i]||(Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(o,i)),r[i]=1);o=Object.getPrototypeOf(o)}}function i(e){e.createdCallback&&e.createdCallback()}var a=e.flags;e.upgrade=t,e.upgradeWithDefinition=n,e.implementPrototype=r}),window.CustomElements.addModule(function(e){function t(t,r){var c=r||{};if(!t)throw new Error("document.registerElement: first argument `name` must not be empty");if(t.indexOf("-")<0)throw new Error("document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '"+String(t)+"'.");if(o(t))throw new Error("Failed to execute 'registerElement' on 'Document': Registration failed for type '"+String(t)+"'. The type name is invalid.");if(l(t))throw new Error("DuplicateDefinitionError: a type with name '"+String(t)+"' is already registered");return c.prototype||(c.prototype=Object.create(HTMLElement.prototype)),c.__name=t.toLowerCase(),c.lifecycle=c.lifecycle||{},c.ancestry=i(c["extends"]),a(c),s(c),n(c.prototype),u(c.__name,c),c.ctor=d(c),c.ctor.prototype=c.prototype,c.prototype.constructor=c.ctor,e.ready&&v(document),c.ctor}function n(e){if(!e.setAttribute._polyfilled){var t=e.setAttribute;e.setAttribute=function(e,n){r.call(this,e,n,t)};var n=e.removeAttribute;e.removeAttribute=function(e){r.call(this,e,null,n)},e.setAttribute._polyfilled=!0}}function r(e,t,n){e=e.toLowerCase();var r=this.getAttribute(e);n.apply(this,arguments);var o=this.getAttribute(e);this.attributeChangedCallback&&o!==r&&this.attributeChangedCallback(e,r,o)}function o(e){for(var t=0;t<_.length;t++)if(e===_[t])return!0}function i(e){var t=l(e);return t?i(t["extends"]).concat([t]):[]}function a(e){for(var t,n=e["extends"],r=0;t=e.ancestry[r];r++)n=t.is&&t.tag;e.tag=n||e.__name,n&&(e.is=e.__name)}function s(e){if(!Object.__proto__){var t=HTMLElement.prototype;if(e.is){var n=document.createElement(e.tag),r=Object.getPrototypeOf(n);r===e.prototype&&(t=r)}for(var o,i=e.prototype;i&&i!==t;)o=Object.getPrototypeOf(i),i.__proto__=o,i=o;e["native"]=t}}function c(e){return b(M(e.tag),e)}function l(e){return e?S[e.toLowerCase()]:void 0}function u(e,t){S[e]=t}function d(e){return function(){return c(e)}}function p(e,t,n){return e===T?h(t,n):O(e,t)}function h(e,t){e&&(e=e.toLowerCase()),t&&(t=t.toLowerCase());var n=l(t||e);if(n){if(e==n.tag&&t==n.is)return new n.ctor;if(!t&&!n.is)return new n.ctor}var r;return t?(r=h(e),r.setAttribute("is",t),r):(r=M(e),e.indexOf("-")>=0&&y(r,HTMLElement),r)}function f(e,t){var n=e[t];e[t]=function(){var e=n.apply(this,arguments);return g(e),e}}var m,w=e.isIE11OrOlder,v=e.upgradeDocumentTree,g=e.upgradeAll,b=e.upgradeWithDefinition,y=e.implementPrototype,E=e.useNative,_=["annotation-xml","color-profile","font-face","font-face-src","font-face-uri","font-face-format","font-face-name","missing-glyph"],S={},T="http://www.w3.org/1999/xhtml",M=document.createElement.bind(document),O=document.createElementNS.bind(document);m=Object.__proto__||E?function(e,t){return e instanceof t}:function(e,t){for(var n=e;n;){if(n===t.prototype)return!0;n=n.__proto__}return!1},f(Node.prototype,"cloneNode"),f(document,"importNode"),w&&!function(){var e=document.importNode;document.importNode=function(){var t=e.apply(document,arguments);if(t.nodeType==t.DOCUMENT_FRAGMENT_NODE){var n=document.createDocumentFragment();return n.appendChild(t),n}return t}}(),document.registerElement=t,document.createElement=h,document.createElementNS=p,e.registry=S,e["instanceof"]=m,e.reservedTagList=_,e.getRegisteredDefinition=l,document.register=document.registerElement}),function(e){function t(){a(window.wrap(document)),window.HTMLImports&&(window.HTMLImports.__importsParsingHook=function(e){a(wrap(e["import"]))}),window.CustomElements.ready=!0,setTimeout(function(){window.CustomElements.readyTime=Date.now(),window.HTMLImports&&(window.CustomElements.elapsed=window.CustomElements.readyTime-window.HTMLImports.readyTime),document.dispatchEvent(new CustomEvent("WebComponentsReady",{bubbles:!0}))})}var n=e.useNative,r=e.initializeModules,o=/Trident/.test(navigator.userAgent);if(n){var i=function(){};e.watchShadow=i,e.upgrade=i,e.upgradeAll=i,e.upgradeDocumentTree=i,e.upgradeSubtree=i,e.takeRecords=i,e["instanceof"]=function(e,t){return e instanceof t}}else r();var a=e.upgradeDocumentTree;if(window.wrap||(window.ShadowDOMPolyfill?(window.wrap=window.ShadowDOMPolyfill.wrapIfNeeded,window.unwrap=window.ShadowDOMPolyfill.unwrapIfNeeded):window.wrap=window.unwrap=function(e){return e}),o&&"function"!=typeof window.CustomEvent&&(window.CustomEvent=function(e,t){t=t||{};var n=document.createEvent("CustomEvent");return n.initCustomEvent(e,Boolean(t.bubbles),Boolean(t.cancelable),t.detail),n.preventDefault=function(){Object.defineProperty(this,"defaultPrevented",{get:function(){return!0}})},n},window.CustomEvent.prototype=window.Event.prototype),"complete"===document.readyState||e.flags.eager)t();else if("interactive"!==document.readyState||window.attachEvent||window.HTMLImports&&!window.HTMLImports.ready){var s=window.HTMLImports&&!window.HTMLImports.ready?"HTMLImportsLoaded":"DOMContentLoaded";window.addEventListener(s,t)}else t();e.isIE11OrOlder=o}(window.CustomElements),function(e){Function.prototype.bind||(Function.prototype.bind=function(e){var t=this,n=Array.prototype.slice.call(arguments,1);return function(){var r=n.slice();return r.push.apply(r,arguments),t.apply(e,r)}})}(window.WebComponents),function(e){"use strict";function t(){window.Polymer===o&&(window.Polymer=function(){throw new Error('You tried to use polymer without loading it first. To load polymer, ')})}if(!window.performance){var n=Date.now();window.performance={now:function(){return Date.now()-n}}}window.requestAnimationFrame||(window.requestAnimationFrame=function(){var e=window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame;return e?function(t){return e(function(){t(performance.now())})}:function(e){return window.setTimeout(e,1e3/60)}}()),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(){return window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||function(e){clearTimeout(e)}}());var r=[],o=function(e,t){"string"!=typeof e&&1===arguments.length&&Array.prototype.push.call(arguments,document._currentScript),r.push(arguments)};window.Polymer=o,e.consumeDeclarations=function(t){e.consumeDeclarations=function(){throw"Possible attempt to load Polymer twice"},t&&t(r),r=null},HTMLImports.useNative?t():window.addEventListener("DOMContentLoaded",t)}(window.WebComponents),function(e){var t=document.createElement("style");t.textContent="body {transition: opacity ease-in 0.2s; } \nbody[unresolved] {opacity: 0; display: block; overflow: hidden; position: relative; } \n";var n=document.querySelector("head");n.insertBefore(t,n.firstChild)}(window.WebComponents),function(e){window.Platform=e}(window.WebComponents); \ No newline at end of file diff --git a/categories/2016-07/page/1/index.html b/categories/2016-07/page/1/index.html deleted file mode 100644 index ad47862..0000000 --- a/categories/2016-07/page/1/index.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/categories/2016-08/page/1/index.html b/categories/2016-08/page/1/index.html deleted file mode 100644 index 0fcdde6..0000000 --- a/categories/2016-08/page/1/index.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/categories/index.html b/categories/index.html deleted file mode 100644 index 3d28074..0000000 --- a/categories/index.html +++ /dev/null @@ -1,172 +0,0 @@ - - - - - - - - - Categories - - - - - - - - - - - - - - - - - - - - - - - -
    Mil años de solitario
    -
    - - - - - - - - - - - -
    - - - - - - -  
    2016-07
    2
    - -  
    2016-08
    1
    - -
    - - - -
    -
    Design pdevty
    -
    -
    -
    - - - - - - - \ No newline at end of file diff --git a/css/all.min.css b/css/all.min.css deleted file mode 100644 index 3897eba..0000000 --- a/css/all.min.css +++ /dev/null @@ -1 +0,0 @@ -#layout,.nav-list{padding:0}.brand-title,.content-subhead{text-transform:uppercase}.footer,.header,.post-share-links{text-align:center}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.pure-g [class*=pure-u],button,html,input,select,textarea{font-family:"Source Sans Pro",serif}.brand-title,.nav-item a,.post-title{font-family:Oxygen,sans-serif}a{text-decoration:none;color:#3d92c9}.brand-title a,.sidebar{color:#fff}a:focus,a:hover{text-decoration:underline}.brand-title a:hover,.post-share-links a:hover,.post-title:hover{text-decoration:none}h3{font-weight:100}.pure-img-responsive{max-width:100%;height:auto}.header{top:auto;margin:3em auto}.sidebar{background:#3d4f5d}.brand-tagline,.brand-title{margin:0}.brand-tagline{font-weight:300;color:#b0cadb}.nav-list{margin:0;list-style:none}.nav-item{display:inline-block;zoom:1}.nav-item a{background:0 0;border:2px solid #b0cadb;color:#fff;margin-top:1em;font-weight:700}.nav-item a:focus,.nav-item a:hover{border:2px solid #3d92c9;text-decoration:none}.post-share-links,pre{border:1px solid #ccc}.content-subhead{color:#aaa;border-bottom:1px solid #eee;padding:.4em 0;font-size:80%;font-weight:500;letter-spacing:.1em}.hugo,.post-title,pre .class,pre .css-property,pre .css-value,pre .entity.function,pre .id,pre .keyword,pre .sass,pre .storage.function,pre .vendor-prefix{font-weight:700}.content{padding:2em 1em 0}.post{padding-bottom:2em}.post-title{font-size:2em;color:#222;margin:.4em 0}.post-avatar{border-radius:50px;float:right;margin-left:1em}.post-description{font-family:"Source Sans Pro",serif;color:#333;line-height:1.35em}.post-meta{color:#999;font-size:90%;margin:5px 0}.post-category{margin:0 .1em;padding:.3em 1em;color:#fff;background:#999;font-size:80%}.post-category-design{background:#5aba59}.post-category-pure{background:#4d85d1}.post-category-yui{background:#8156a7}.post-category-javascript{background:#df2d4f}.post-images{margin:1em 0}.post-image-meta{margin-top:-3.5em;margin-left:1em;color:#fff;text-shadow:0 1px 1px #333}.footer{padding:1em 0;color:#555;font-size:80%}.footer ul li a{display:inline;padding:0}.hugo{color:#333}.footer .pure-menu a:focus,.footer .pure-menu a:hover{background:0 0}.footer li{list-style-type:none}.post-share-links{margin:15px 15px 0 0;float:left;padding:10px}.post-share-links a{color:#aaa;font-size:28px;line-height:36px;margin:0 auto;display:block;transition:all .3s ease-in}.post-share-links a:hover{color:#3d92c9}.post-share-links h4{font-family:Oxygen,sans-serif;margin:0 0 5px;color:#aaa}@media (min-width:48em){.content{padding:2em 3em 0;margin-left:25%}.header{margin:80% 2em 0;text-align:right}.sidebar{position:fixed;top:0;bottom:0}}pre{word-wrap:break-word;padding:6px 10px;line-height:19px;margin-bottom:20px}code{border:1px solid #eaeaea;margin:0 2px;padding:0 5px;font-size:12px}pre code{border:0;padding:0;margin:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}code,pre{font-family:Consolas,'Liberation Mono',Courier,monospace;color:#333;background:#f8f8f8;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}pre,pre code{font-size:13px}pre .comment{color:#998}pre .support{color:#0086B3}pre .tag,pre .tag-name{color:navy}pre .css-property,pre .css-value,pre .support.namespace,pre .vendor-prefix{color:#333}pre .constant.numeric,pre .hex-color,pre .keyword.unit{font-weight:400;color:#099}pre .entity.class{color:#458}pre .entity.function,pre .entity.id{color:#900}pre .attribute,pre .variable{color:teal}pre .string,pre .support.value{font-weight:400;color:#d14}pre .regexp{color:#009926} \ No newline at end of file diff --git a/images/cover.png b/images/cover.png deleted file mode 100644 index 004414f38cb0ade1f1dd8d7120d3c882fd817707..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17970 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 diff --git a/images/github2-dreamstale35.png b/images/github2-dreamstale35.png deleted file mode 100644 index 21216ec5f2365bebaf57b8b7574474a6a20a870f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1121 zcmV-n1fKheP)al^B>v2NpIEOSAB^g^5BYBqW3~Wg%2q7?9eqAO_TQBHa=eI)Exr1RWTTg@p`c zfQ6<0jGZ2ryUW?<3qSp&r#mI~-TUnKp5L=CL^L3oOn#&nNPuSNH&lvL3aVs6ii)rD5!VS2Sd%3Zl29CGk>evCBrqe3l!&2?0977J zfAwK1DyB6@NfcW(jCfEUqrO4qEomR{u1^C41JP==`cs(zRUV_BB2R}AN+M24{E#NV zm7gU~k0Cb_5f`&bk>`UUCvyrpIP7=wJTYl??2t{U{Ou*$jE;_yR4PTTudm6`(Ge+? zO6=Y%(0_becuzm{*3tpqs2XlyhV`-4{8Y=ty``I-Xi!ntKi3Hi--zS%smrSXS zjt&x!|H~*0!ytEecT8EKxB#93@h|{UuH$4A0lva|UZn6sGobL))RbfUzP`Se&+|Bg z6VO$x*kRKjt50d%x3{-4%^SLgE!m`Jz$A1+#($tI*SRqRGcvtlF2lpaS_!1nY1u9_ zW&%ctiLMll^6bS-|WDjn@J=S3xVX4rISb_EWXJ=<@^pR38EiJLDHB)Vs2x`n^%aLleYS3BuOeA*RFv>{kU^-)C zW2C#go83=OPqTY#+s@9;N535(AM034ZfIFKFQQOUC2EM`2KJAUHy7$+QL5Eyjo;ui zqK^g?&0(}4+Z)O(FE86Vq0{J!Fli?0$Nn3;5~%QLaZr}64L}0^V6GKbR#qO3dO#@K z?Mke*D*;oxBd6tVd5x+v{{)_=Bx%dOITXw z_Q>GiAam%=%}o}iu;TXi_Of=_Y?ieH8LZ$E*r3XPvHs|IMi#^Yhs6G;72l}xwwB>| zLW2_#oQ%-hA)PtDPUT$*m`F&QlSaU7=G_{+{$o~?WAF01;eF6?o;(~S{qoZI|M}Fw nfym4I*u#Ykr0t*E{1spTMM=#O<%M7D00000NkvXXu0mjfaA^!| diff --git a/images/google+-dreamstale37.png b/images/google+-dreamstale37.png deleted file mode 100644 index 17f985bb2d73b1e1a0cd9544a07c249ca9819446..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1158 zcmV;11bO?3P)SSSG|)z_E-LjD=9bh}0NMEs{W@m)cN-Bw z=U_dA)gAIN+px;8iea5GLIR&+JFe5vfmcBtF#-TbTFkN?kJB(B&%u$ZHU|Jaf?kY3 zl`z!GgA--hg{A^{-1X8Kf+y@Iw z8J&zK30oqqX&EuG4G*bYQ%zXo+6|KE8zRP)F6p(6KQ(grv8Y3x(!9i4!UeM`;LYT1 z(lJ>e=AB;UHy>?o=y0H$Va&K9z$)yr> zC-IcZ&UY4OPQc@??mf$r-H~1j(8~@N-;({Af==)btVWRCzxZK^^4>NCf3)_^5gl~U z!TsM`WcTr490^UMU`HUQvim%E8UYTxO_loUk}J{0`!rdOr;xNkGt+7bTmS4oI^wjUacROeQ?2gEhfSrX1k+C$lHi!{TS&OgT3ImCddx>(1P1)ZqS?Pvv?~I@w z&?@Lc%4zzb9;lm^jFl32gI0W+f&`kA60s%#j&9MS6`!S`Me0B#m>K~9kD%KbTqTWb z)qsRIZlIk2Jg$0IA$Ugj>e9W_TL31&Ro`OyN(U@ao0xzm;K!1%C2pe&c$BR;cd}vv zw#%Pytu3>=H!ls3AHDp<>O1dM6Itg2+Y+S8H+;bI;BzE_*{KvwvAhelMA=3JUUq)Q z*{LOr0jjVgMXGrIjC97r*?H9@s)TjK0u9mVw?{vuvjyLN<`LA569gjNq)^b;CpoV` zDxnoZ3pldT7^pnhoU%|XI??ftRoJ1j%Cir_87%FDo?K(si|o@|zqPF=8dbZoSSb3GYhTi58U zE-xh-H>VQR&bu$H`Rv2Mzj2itt5<{p9lD)X7C`XpoqxfJzjz!Ri+ibs)2H+z(1G+Q z?5AFQ&NMF)2vk`>BnL;|vrHQ(BQPTw5a=09poau}g9-RHy-e*J2p-#MKg>d&fdss0 z8g&gM;0_6p8<`Xf!`+=|A!`~$pgB^BiIEAh;6-c}D6JMsY7h?;L9y6R7c9 zPs05HdX;@oGw|C0zCMCAZnP;I9L8@kNuLMkkJ~xBjWj0z|7}*X1Wr^^R3`@aN&-Hy v1vqO|n2Dbn#1Jv>V-E=#ROO%B{1spTL-rDtnAimH00000NkvXXu0mjfSe9+a diff --git a/images/photo.png b/images/photo.png deleted file mode 100644 index 72c861cebe429282c57aea22b8da8e71815c034f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1293 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 T3O4b{00000NkvXXu0mjfW@*nH diff --git a/js/all.min.js b/js/all.min.js deleted file mode 100644 index 8b42d64..0000000 --- a/js/all.min.js +++ /dev/null @@ -1,4 +0,0 @@ -!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){function n(e){var t=e.length,n=K.type(e);return"function"===n||K.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e}function r(e,t,n){if(K.isFunction(t))return K.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return K.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return K.filter(t,e,n);t=K.filter(t,e)}return K.grep(e,function(e){return U.call(t,e)>=0!==n})}function i(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}function o(e){var t=ht[e]={};return K.each(e.match(dt)||[],function(e,n){t[n]=!0}),t}function a(){Q.removeEventListener("DOMContentLoaded",a,!1),e.removeEventListener("load",a,!1),K.ready()}function s(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=K.expando+s.uid++}function c(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(wt,"-$1").toLowerCase(),n=e.getAttribute(r),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:bt.test(n)?K.parseJSON(n):n}catch(i){}vt.set(e,t,n)}else n=void 0;return n}function u(){return!0}function l(){return!1}function p(){try{return Q.activeElement}catch(e){}}function f(e,t){return K.nodeName(e,"table")&&K.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function d(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function h(e){var t=Ot.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function g(e,t){for(var n=0,r=e.length;r>n;n++)yt.set(e[n],"globalEval",!t||yt.get(t[n],"globalEval"))}function m(e,t){var n,r,i,o,a,s,c,u;if(1===t.nodeType){if(yt.hasData(e)&&(o=yt.access(e),a=yt.set(t,o),u=o.events)){delete a.handle,a.events={};for(i in u)for(n=0,r=u[i].length;r>n;n++)K.event.add(t,i,u[i][n])}vt.hasData(e)&&(s=vt.access(e),c=K.extend({},s),vt.set(t,c))}}function y(e,t){var n=e.getElementsByTagName?e.getElementsByTagName(t||"*"):e.querySelectorAll?e.querySelectorAll(t||"*"):[];return void 0===t||t&&K.nodeName(e,t)?K.merge([e],n):n}function v(e,t){var n=t.nodeName.toLowerCase();"input"===n&&Ct.test(e.type)?t.checked=e.checked:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}function b(t,n){var r,i=K(n.createElement(t)).appendTo(n.body),o=e.getDefaultComputedStyle&&(r=e.getDefaultComputedStyle(i[0]))?r.display:K.css(i[0],"display");return i.detach(),o}function w(e){var t=Q,n=Mt[e];return n||(n=b(e,t),"none"!==n&&n||(Pt=(Pt||K("