# DO NOT EDIT
# generated with the following command:
#
#   tools/js/bower2bazel.py -w lib/js/bower_archives.bzl -b lib/js/bower_components.bzl
#

load("//tools/bzl:js.bzl", "bower_archive")

def load_bower_archives():
  bower_archive(
    name = "accessibility-developer-tools",
    package = "accessibility-developer-tools",
    version = "2.12.0",
    sha1 = "88ae82dcdeb6c658f76eff509d0ee425cae14d49")
  bower_archive(
    name = "async",
    package = "async",
    version = "1.5.2",
    sha1 = "1ec975d3b3834646a7e3d4b7e68118b90ed72508")
  bower_archive(
    name = "chai",
    package = "chai",
    version = "3.5.0",
    sha1 = "849ad3ee7c77506548b7b5db603a4e150b9431aa")
  bower_archive(
    name = "font-roboto",
    package = "PolymerElements/font-roboto",
    version = "1.0.3",
    sha1 = "edf478d20ae2fc0704d7c155e20162caaabdd5ae")
  bower_archive(
    name = "iron-a11y-announcer",
    package = "PolymerElements/iron-a11y-announcer",
    version = "1.0.6",
    sha1 = "14aed1e1b300ea344e80362e875919ea3d104dcc")
  bower_archive(
    name = "iron-a11y-keys-behavior",
    package = "PolymerElements/iron-a11y-keys-behavior",
    version = "1.1.9",
    sha1 = "f58358ee652c67e6e721364ba50fb77a2ece1465")
  bower_archive(
    name = "iron-behaviors",
    package = "polymerelements/iron-behaviors",
    version = "1.0.18",
    sha1 = "e231a1a02b090f5183db917639fdb96cdd0dca18")
  bower_archive(
    name = "iron-checked-element-behavior",
    package = "PolymerElements/iron-checked-element-behavior",
    version = "1.0.6",
    sha1 = "93ad3554cec119d8c5732d1c722ad113e1866370")
  bower_archive(
    name = "iron-fit-behavior",
    package = "PolymerElements/iron-fit-behavior",
    version = "1.2.7",
    sha1 = "01c485fbf898307029bbb72ac7e132db1570a842")
  bower_archive(
    name = "iron-flex-layout",
    package = "PolymerElements/iron-flex-layout",
    version = "1.3.7",
    sha1 = "4d4cf3232cf750a17a7df0a37476117f831ac633")
  bower_archive(
    name = "iron-form-element-behavior",
    package = "PolymerElements/iron-form-element-behavior",
    version = "1.0.7",
    sha1 = "7b5a79e02cc32f0918725dd26925d0df1e03ed12")
  bower_archive(
    name = "iron-menu-behavior",
    package = "PolymerElements/iron-menu-behavior",
    version = "2.0.1",
    sha1 = "139528ee1e8d86257e2aa445de7761b8ec70ae91")
  bower_archive(
    name = "iron-meta",
    package = "PolymerElements/iron-meta",
    version = "1.1.3",
    sha1 = "f77eba3f6f6817f10bda33918bde8f963d450041")
  bower_archive(
    name = "iron-resizable-behavior",
    package = "polymerelements/iron-resizable-behavior",
    version = "1.0.6",
    sha1 = "719c2a8a1a784f8aefcdeef41fcc2e5a03518d9e")
  bower_archive(
    name = "iron-validatable-behavior",
    package = "PolymerElements/iron-validatable-behavior",
    version = "1.1.2",
    sha1 = "7111f34ff32e1510131dfbdb1eaa51bfa291e8be")
  bower_archive(
    name = "lodash",
    package = "lodash",
    version = "3.10.1",
    sha1 = "2f207a8293c4c554bf6cf071241f7a00dc513d3a")
  bower_archive(
    name = "mocha",
    package = "mocha",
    version = "3.5.3",
    sha1 = "c14f149821e4e96241b20f85134aa757b73038f1")
  bower_archive(
    name = "neon-animation",
    package = "polymerelements/neon-animation",
    version = "1.2.5",
    sha1 = "588d289f779d02b21ce5b676e257bbd6155649e8")
  bower_archive(
    name = "paper-behaviors",
    package = "PolymerElements/paper-behaviors",
    version = "1.0.13",
    sha1 = "a81eab28a952e124c208430e17508d9a1aae4ee7")
  bower_archive(
    name = "paper-ripple",
    package = "PolymerElements/paper-ripple",
    version = "1.0.10",
    sha1 = "21199db50d02b842da54bd6f4f1d1b10b474e893")
  bower_archive(
    name = "paper-styles",
    package = "PolymerElements/paper-styles",
    version = "1.3.1",
    sha1 = "4ee9c692366949a754e0e39f8031aa60ce66f24d")
  bower_archive(
    name = "sinon-chai",
    package = "sinon-chai",
    version = "2.14.0",
    sha1 = "78f0dc184efe47012a2b1b9a16a4289acf8300dc")
  bower_archive(
    name = "sinonjs",
    package = "sinonjs",
    version = "1.17.1",
    sha1 = "a26a6aab7358807de52ba738770f6ac709afd240")
  bower_archive(
    name = "stacky",
    package = "stacky",
    version = "1.3.2",
    sha1 = "d6c07a0112ab2e9677fe085933744466a89232fb")
  bower_archive(
    name = "web-animations-js",
    package = "web-animations/web-animations-js",
    version = "2.3.1",
    sha1 = "2ba5548d36188fe54555eaad0a576de4b027661e")
  bower_archive(
    name = "webcomponentsjs",
    package = "webcomponents/webcomponentsjs",
    version = "0.7.24",
    sha1 = "559227f8ee9db9bfbd81989f24510cc0c1bfc65c")
