PKz F'<<materialdjango/tests.pyfrom django.test import TestCase # Create your tests here. PKz Fmaterialdjango/__init__.pyPKz F ѿ  materialdjango/widgets.pyfrom django.forms.widgets import TextInput, PasswordInput, EmailInput from django.utils.html import format_html # ref https://github.com/django/django/blob/stable/1.8.x/django/forms/widgets.py class PaperTextInput(TextInput): def render(self, name, value, attrs=None): # Unlike inputs using paper-input-container directly, # paper-input does not work out of the box with the native form # element. if value is None: html = """ """ return format_html(html, name) else: html = """ """ return format_html(html, name, value) class PaperPasswordInput(PasswordInput): def render(self, name, value, attrs=None): if value is None: html = """ """ return format_html(html, name) else: html = """ """ return format_html(html, name, value) class PaperEmailInput(EmailInput): def __init__(self, attrs=None): if attrs is not None: self.attrs = attrs.copy() else: self.attrs = {} def render(self, name, value, attrs=None): if value is None: html = """ """ if 'label' in self.attrs: return html.format(self.attrs['label'], name) else: return format_html(html, name, name) else: html = """ """ return format_html(html, name, value)PKz F7Voomaterialdjango/forms.pyfrom django import forms from django.contrib.auth.forms import AuthenticationForm from widgets import PaperTextInput, PaperPasswordInput class PaperLoginForm(AuthenticationForm): username = forms.CharField(max_length=254, label='', widget=PaperTextInput) password = forms.CharField(label='', widget=PaperPasswordInput) def __init__(self, request, *args, **kwargs): super(PaperLoginForm, self).__init__(*args, **kwargs) def mangle_form(form): "Utility to monkeypatch forms into paperinputs, untested" for field, widget in form.fields.iteritems(): if type(widget) is forms.widgets.TextInput: form.fields[field].widget = PaperTextInput() form.fields[field].label = '' if type(widget) is forms.widgets.PasswordInput: field.widget = PaperPasswordInput() field.label = '' return formPKz F'materialdjango/templatetags/__init__.pyPKz Fzz)materialdjango/templatetags/polymerdep.pyfrom django import template from django.conf import settings from django.templatetags.static import static register = template.Library() @register.filter(is_safe=True) def dep(value="polymer/polymer.html"): # should you really be able to do this over reverse_lazy??? static_url = static( "materialdjango/components/bower_components/%s" % value) return ''.format(static_url) @register.simple_tag def polymer_shim(): static_url = static('materialdjango/components/bower_components/webcomponentsjs/webcomponents.js') return "".format(static_url) PKz F%materialdjango/management/__init__.pyPKz F.materialdjango/management/commands/__init__.pyPKz F /materialdjango/management/commands/vulcanize.pyfrom django.core.management.base import BaseCommand, CommandError from django.template.loader import get_template from django.template import Context, Template #https://docs.djangoproject.com/en/1.7/howto/custom-management-commands/ def vulcanize_prep(templatename): "make html!" return get_template(templatename).render(Context()) class Command(BaseCommand): # args = help = "Combine html imports into one import"PKz Fd6,materialdjango/management/commands/phower.pyfrom django.core.management.base import BaseCommand, CommandError class Command(BaseCommand): # args = help = "Replaces Bower for installing webcompnents"PKz F{{=materialdjango/static/materialdjango/paper-button-submit.html PK7,Hts dmaterialdjango/static/materialdjango/components/bower_components/iron-component-page/CONTRIBUTING.md # Polymer Elements ## Guide for Contributors Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: ### Filing Issues **If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: 1. **Who will use the feature?** _“As someone filling out a form…”_ 2. **When will they use the feature?** _“When I enter an invalid value…”_ 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ **If you are filing an issue to report a bug**, please provide: 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: ```markdown The `paper-foo` element causes the page to turn pink when clicked. ## Expected outcome The page stays the same color. ## Actual outcome The page turns pink. ## Steps to reproduce 1. Put a `paper-foo` element in the page. 2. Open the page in a web browser. 3. Click the `paper-foo` element. ``` 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [http://jsbin.com/cagaye](http://jsbin.com/cagaye/edit?html,output). 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. ### Submitting Pull Requests **Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. When submitting pull requests, please provide: 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues using the following syntax: ```markdown (For a single issue) Fixes #20 (For multiple issues) Fixes #32, #40 ``` 2. **A succinct description of the design** used to fix any related issues. For example: ```markdown This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. ``` 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! PK?H@U ss`materialdjango/static/materialdjango/components/bower_components/iron-component-page/.bower.json{ "name": "iron-component-page", "description": "Turns a raw element definition into beautiful documentation", "authors": [ "The Polymer Authors" ], "keywords": [ "web-components", "polymer", "docs" ], "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-component-page.git" }, "version": "1.1.4", "private": true, "license": "http://polymer.github.io/LICENSE.txt", "dependencies": { "hydrolysis": "Polymer/hydrolysis#^1.18", "iron-ajax": "PolymerElements/iron-ajax#^1.0.0", "iron-doc-viewer": "PolymerElements/iron-doc-viewer#^1.0.1", "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", "iron-icons": "PolymerElements/iron-icons#^1.0.0", "iron-selector": "PolymerElements/iron-selector#^1.0.0", "paper-header-panel": "PolymerElements/paper-header-panel#^1.0.0", "paper-styles": "PolymerElements/paper-styles#^1.0.0", "paper-toolbar": "PolymerElements/paper-toolbar#^1.0.0", "polymer": "Polymer/polymer#^1.1.0" }, "devDependencies": { "test-fixture": "PolymerElements/test-fixture#^1.0.0", "web-component-tester": "*", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" }, "main": "iron-component-page.html", "ignore": [], "homepage": "https://github.com/PolymerElements/iron-component-page", "_release": "1.1.4", "_resolution": { "type": "version", "tag": "v1.1.4", "commit": "2c769a7053338420fcf647b38f75e43452945973" }, "_source": "git://github.com/PolymerElements/iron-component-page.git", "_target": "^1.0.0", "_originalSource": "PolymerElements/iron-component-page" }PK7,HS,RR_materialdjango/static/materialdjango/components/bower_components/iron-component-page/index.html PK7,HI1#W#Wmmaterialdjango/static/materialdjango/components/bower_components/iron-component-page/iron-component-page.html PK7,HJh[`materialdjango/static/materialdjango/components/bower_components/iron-component-page/.travis.ymllanguage: node_js sudo: false before_script: - npm install web-component-tester - npm install bower - 'export PATH=$PWD/node_modules/.bin:$PATH' - bower install env: global: - secure: TFRxlioK3ZZiei0mBDkGWUqqsIHh03i+y46bmMarnrbinH0AtN+fYKt+VUkkFKMr34lSU42togi4h0MsxM++wn058zbU+tnHhBP70aofEFIKgJaeP2IgCuO9TIWbK5umZhqKS37wBlKor7UrGnjRGjk7CJlrwYfzWmYLtYQ1iTI= - secure: BsHkstf+C2resrUoPg03ok//KVkUzeWMVV4eorzFdvKl48to9lEIuiWYICsc+5uKekK/OfkM7wF8rNiuc4qbRf7heVKAsG2W+/P0NS/KrKLGDu0ZSnhMUpY7Kng8Y9I6LnW3dJrr6YqZk61A2LwhZIC+IpnXicymmtDpfbsIF6M= node_js: 4 addons: firefox: latest apt: sources: - google-chrome packages: - google-chrome-stable script: - xvfb-run wct - "if [ \"${TRAVIS_PULL_REQUEST}\" = \"false\" ]; then wct -s 'default'; fi" PK7,HGͽ^materialdjango/static/materialdjango/components/bower_components/iron-component-page/README.md [![Build Status](https://travis-ci.org/PolymerElements/iron-component-page.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-component-page) _[Demo and API Docs](https://elements.polymer-project.org/elements/iron-component-page)_ ##<iron-component-page> Loads Polymer element and behavior documentation using [Hydrolysis](https://github.com/PolymerLabs/hydrolysis) and renders a complete documentation page including demos (if available). PK7,HKB_materialdjango/static/materialdjango/components/bower_components/iron-component-page/.gitignorebower_components PKz F@9 lmaterialdjango/static/materialdjango/components/bower_components/iron-component-page/iron-component-page.css/** @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 { font-family: 'Roboto', 'Noto', sans-serif; @apply(--layout-fit); @apply(--layout); @apply(--layout-vertical); overflow: hidden; background: var(--paper-grey-50); } p { max-width: 20em; } paper-header-panel { @apply(--layout-flex); background: var(--paper-grey-50); } paper-toolbar { --paper-toolbar-background: var(--paper-grey-50); --paper-toolbar-color: var(--paper-grey-800); flex-shrink: 0; } :host > paper-header-panel { opacity: 0; transition: opacity 0.5s; } :host(.loaded) > paper-header-panel { opacity: 1.0; } #content { display: block; background: var(--paper-grey-50); } paper-toolbar a { margin: 0 10px; cursor: pointer; } paper-toolbar a:last-child { margin-right: 0; } paper-toolbar a, paper-toolbar a iron-icon { font-weight: normal; color: var(--paper-grey-500); } paper-toolbar iron-icon { margin: -2px 5px 0 0; } paper-toolbar a:hover, paper-toolbar a:hover iron-icon, paper-toolbar a.iron-selected, paper-toolbar a.iron-selected iron-icon { color: var(--paper-grey-800); } #demo { @apply(--layout-fit); } #nodocs { background: var(--paper-grey-50); font-size: 24px; font-weight: 400; color: var(--paper-grey-400); } #demo { border: 0; background: transparent; width: 100%; height: 100%; overflow-x: none; overflow-y: auto; } #view > * { display: none; } #view > .iron-selected { display: block; } #docs { padding: 20px; max-width: 48em; margin: 0 auto; } #active { font-size: 20px; font-family: Roboto, Noto; border: 0; background: transparent; } paper-toolbar a { font-size: 14px; text-transform: uppercase; cursor: pointer; } #cart-icon { margin-left: 10px; cursor: pointer; } #catalog-heading { margin: 4px 0 18px; } #catalog-heading h2 { color: var(--paper-grey-800); @apply(--paper-font-title); margin: 0; } #catalog-heading .version { color: var(--paper-grey-500); font-size: 18px; line-height: 24px; font-weight: 400; } #catalog-heading .version:before { content: "("; } #catalog-heading .version:after { content: ")"; } [catalog-only] { display: none; } :host([_catalog]) [catalog-only] { display: block; } :host([_catalog]) [catalog-hidden] { display: none; }PK7,H_materialdjango/static/materialdjango/components/bower_components/iron-component-page/bower.json{ "name": "iron-component-page", "description": "Turns a raw element definition into beautiful documentation", "authors": [ "The Polymer Authors" ], "keywords": [ "web-components", "polymer", "docs" ], "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-component-page.git" }, "version": "1.1.4", "private": true, "license": "http://polymer.github.io/LICENSE.txt", "dependencies": { "hydrolysis": "Polymer/hydrolysis#^1.18", "iron-ajax": "PolymerElements/iron-ajax#^1.0.0", "iron-doc-viewer": "PolymerElements/iron-doc-viewer#^1.0.1", "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", "iron-icons": "PolymerElements/iron-icons#^1.0.0", "iron-selector": "PolymerElements/iron-selector#^1.0.0", "paper-header-panel": "PolymerElements/paper-header-panel#^1.0.0", "paper-styles": "PolymerElements/paper-styles#^1.0.0", "paper-toolbar": "PolymerElements/paper-toolbar#^1.0.0", "polymer": "Polymer/polymer#^1.1.0" }, "devDependencies": { "test-fixture": "PolymerElements/test-fixture#^1.0.0", "web-component-tester": "*", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" }, "main": "iron-component-page.html", "ignore": [] } PK7,Hpdmaterialdjango/static/materialdjango/components/bower_components/iron-component-page/test/index.html Tests PK7,Hlq__kmaterialdjango/static/materialdjango/components/bower_components/iron-component-page/test/test-element.html PK7,HskBrmaterialdjango/static/materialdjango/components/bower_components/iron-component-page/test/iron-component-page.html iron-component-page PK7,HB${'{'nmaterialdjango/static/materialdjango/components/bower_components/iron-component-page/demo/json-descriptor.json{"elements":[{"type":"element","desc":"Renders documentation describing an element's API.\n\n`iron-doc-viewer` renders element and behavior descriptions as extracted by\n[Hydrolysis](https://github.com/PolymerLabs/hydrolysis). You can provide them\neither via binding...\n\n \n\n...or by placing the element descriptor in JSON as the text content of an\n`iron-doc-viewer`:\n\n \n {\n \"is\": \"awesome-sauce\",\n \"properties\": [\n {\"name\": \"isAwesome\", \"type\": \"boolean\", \"desc\": \"Is it awesome?\"},\n ]\n }\n \n\nHowever, be aware that due to current limitations in Polymer 0.8, _changes_ to\nthe text content will not be respected, only the initial value will be loaded.\nIf you wish to update the documented element, please set it via the `descriptor`\nproperty.\n","events":[],"properties":[{"name":"descriptor","type":"hydrolysis.ElementDescriptor","desc":"The [Hydrolysis](https://github.com/PolymerLabs/hydrolysis)-generated\nelement descriptor to display details for.\n\nAlternatively, the element descriptor can be provided as JSON via the text content\nof this element.\n","published":true},{"name":"_collapsedChanged","type":"Function","params":[],"private":true,"function":true},{"name":"_descriptorChanged","type":"Function","desc":"Converts `descriptor` into our template-friendly `_model`. ","params":[],"private":true,"function":true},{"name":"_loadJson","type":"Function","desc":"Loads a hydrolysis element descriptor (as JSON) from the text content of\nthis element, if present.\n","params":[],"private":true,"function":true,"return":{"type":"hydrolysis.ElementDescriptor","desc":"parsed descriptor, or `null`.\n "}},{"name":"_noneToShow","type":"Function","params":[{"name":"showPrivate"},{"name":"items"}],"private":true,"function":true},{"name":"_privateToggleLabel","type":"string","desc":"The label to show for the Private API toggle. ","published":true,"private":true},{"name":"_showPrivate","type":"Boolean","desc":"Whether private properties should be hidden or shown. ","published":true,"default":false,"private":true},{"name":"_showPrivateChanged","type":"Function","params":[],"private":true,"function":true},{"name":"_toggleCollapsed","type":"Function","params":[],"private":true,"function":true},{"name":"_togglePrivate","type":"Function","params":[],"private":true,"function":true},{"name":"ready","type":"Function","params":[],"private":true,"configuration":true,"function":true}],"is":"iron-doc-viewer","jsdoc":{"tags":[{"tag":"demo","type":null,"name":"demo/index.html","body":"Basic Demo\n"}]},"demos":[{"desc":"Basic Demo\n","path":"demo/index.html"}]},{"type":"element","desc":"Renders documentation describing a specific property of an element.\n\nGive it a hydrolysis `PropertyDescriptor` (via `descriptor`), and watch it go!\n","events":[],"properties":[{"name":"collapsed","type":"Boolean","desc":"Whether the property should show a one-liner, or full summary.\n\nNote that this property _is_ reflected as an attribute, but we perform\nthe reflection manually. In order to support the CSS transitions, we\nmust calculate the element height before setting the attribute.\n ","published":true,"default":false},{"name":"descriptor","type":"hydrolysis.PropertyDescriptor","desc":"The [Hydrolysis](https://github.com/PolymerLabs/hydrolysis)-generated\nelement descriptor to display details for.\n\nAlternatively, the element descriptor can be provided as JSON via the text content\nof this element.\n","published":true},{"name":"_collapsedChanged","type":"Function","desc":"Reflects `collapsed` as the `_collapsed` attribute.\n\n\"Why not use `reflectToAttribute: true`?\", you ask? A fine question!\n\nWe avoid simple reflection purely because there is no purely declarative\nway of transitioning to/from `height: auto`. This callback manages\nsetting explicit heights for the property so that CSS can interpolate it.\n","params":[],"jsdoc":{"tags":[{"tag":"see","type":null,"name":"#_onTransitionEnd","body":null}]},"private":true,"function":true},{"name":"_computeHideMeta","type":"Function","params":[{"name":"descriptor"}],"private":true,"function":true},{"name":"_computeHideParams","type":"Function","params":[{"name":"descriptor"}],"private":true,"function":true},{"name":"_descriptorChanged","type":"Function","params":[],"private":true,"function":true},{"name":"_onTransitionEnd","type":"Function","desc":"Resets any state that was set up for transitions.\n\nWe are careful to reset our explicit heights after a transition\ncompletes, so that the property doesn't clip values if the user resizes\ntheir viewport.\n ","params":[{"name":"event"}],"private":true,"function":true},{"name":"listeners","type":"Object","private":true,"configuration":true},{"name":"ready","type":"Function","params":[],"private":true,"configuration":true,"function":true}],"is":"iron-doc-property","demos":[]}],"elementsByTagName":{"iron-doc-viewer":{"type":"element","desc":"Renders documentation describing an element's API.\n\n`iron-doc-viewer` renders element and behavior descriptions as extracted by\n[Hydrolysis](https://github.com/PolymerLabs/hydrolysis). You can provide them\neither via binding...\n\n \n\n...or by placing the element descriptor in JSON as the text content of an\n`iron-doc-viewer`:\n\n \n {\n \"is\": \"awesome-sauce\",\n \"properties\": [\n {\"name\": \"isAwesome\", \"type\": \"boolean\", \"desc\": \"Is it awesome?\"},\n ]\n }\n \n\nHowever, be aware that due to current limitations in Polymer 0.8, _changes_ to\nthe text content will not be respected, only the initial value will be loaded.\nIf you wish to update the documented element, please set it via the `descriptor`\nproperty.\n","events":[],"properties":[{"name":"descriptor","type":"hydrolysis.ElementDescriptor","desc":"The [Hydrolysis](https://github.com/PolymerLabs/hydrolysis)-generated\nelement descriptor to display details for.\n\nAlternatively, the element descriptor can be provided as JSON via the text content\nof this element.\n","published":true},{"name":"_collapsedChanged","type":"Function","params":[],"private":true,"function":true},{"name":"_descriptorChanged","type":"Function","desc":"Converts `descriptor` into our template-friendly `_model`. ","params":[],"private":true,"function":true},{"name":"_loadJson","type":"Function","desc":"Loads a hydrolysis element descriptor (as JSON) from the text content of\nthis element, if present.\n","params":[],"private":true,"function":true,"return":{"type":"hydrolysis.ElementDescriptor","desc":"parsed descriptor, or `null`.\n "}},{"name":"_noneToShow","type":"Function","params":[{"name":"showPrivate"},{"name":"items"}],"private":true,"function":true},{"name":"_privateToggleLabel","type":"string","desc":"The label to show for the Private API toggle. ","published":true,"private":true},{"name":"_showPrivate","type":"Boolean","desc":"Whether private properties should be hidden or shown. ","published":true,"default":false,"private":true},{"name":"_showPrivateChanged","type":"Function","params":[],"private":true,"function":true},{"name":"_toggleCollapsed","type":"Function","params":[],"private":true,"function":true},{"name":"_togglePrivate","type":"Function","params":[],"private":true,"function":true},{"name":"ready","type":"Function","params":[],"private":true,"configuration":true,"function":true}],"is":"iron-doc-viewer","jsdoc":{"tags":[{"tag":"demo","type":null,"name":"demo/index.html","body":"Basic Demo\n"}]},"demos":[{"desc":"Basic Demo\n","path":"demo/index.html"}]},"iron-doc-property":{"type":"element","desc":"Renders documentation describing a specific property of an element.\n\nGive it a hydrolysis `PropertyDescriptor` (via `descriptor`), and watch it go!\n","events":[],"properties":[{"name":"collapsed","type":"Boolean","desc":"Whether the property should show a one-liner, or full summary.\n\nNote that this property _is_ reflected as an attribute, but we perform\nthe reflection manually. In order to support the CSS transitions, we\nmust calculate the element height before setting the attribute.\n ","published":true,"default":false},{"name":"descriptor","type":"hydrolysis.PropertyDescriptor","desc":"The [Hydrolysis](https://github.com/PolymerLabs/hydrolysis)-generated\nelement descriptor to display details for.\n\nAlternatively, the element descriptor can be provided as JSON via the text content\nof this element.\n","published":true},{"name":"_collapsedChanged","type":"Function","desc":"Reflects `collapsed` as the `_collapsed` attribute.\n\n\"Why not use `reflectToAttribute: true`?\", you ask? A fine question!\n\nWe avoid simple reflection purely because there is no purely declarative\nway of transitioning to/from `height: auto`. This callback manages\nsetting explicit heights for the property so that CSS can interpolate it.\n","params":[],"jsdoc":{"tags":[{"tag":"see","type":null,"name":"#_onTransitionEnd","body":null}]},"private":true,"function":true},{"name":"_computeHideMeta","type":"Function","params":[{"name":"descriptor"}],"private":true,"function":true},{"name":"_computeHideParams","type":"Function","params":[{"name":"descriptor"}],"private":true,"function":true},{"name":"_descriptorChanged","type":"Function","params":[],"private":true,"function":true},{"name":"_onTransitionEnd","type":"Function","desc":"Resets any state that was set up for transitions.\n\nWe are careful to reset our explicit heights after a transition\ncompletes, so that the property doesn't clip values if the user resizes\ntheir viewport.\n ","params":[{"name":"event"}],"private":true,"function":true},{"name":"listeners","type":"Object","private":true,"configuration":true},{"name":"ready","type":"Function","params":[],"private":true,"configuration":true,"function":true}],"is":"iron-doc-property","demos":[]}},"behaviors":[],"features":[]}PK7,H{Sɗdmaterialdjango/static/materialdjango/components/bower_components/iron-component-page/demo/index.html

iron-component-page

PK,Hts bmaterialdjango/static/materialdjango/components/bower_components/paper-radio-group/CONTRIBUTING.md # Polymer Elements ## Guide for Contributors Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: ### Filing Issues **If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: 1. **Who will use the feature?** _“As someone filling out a form…”_ 2. **When will they use the feature?** _“When I enter an invalid value…”_ 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ **If you are filing an issue to report a bug**, please provide: 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: ```markdown The `paper-foo` element causes the page to turn pink when clicked. ## Expected outcome The page stays the same color. ## Actual outcome The page turns pink. ## Steps to reproduce 1. Put a `paper-foo` element in the page. 2. Open the page in a web browser. 3. Click the `paper-foo` element. ``` 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [http://jsbin.com/cagaye](http://jsbin.com/cagaye/edit?html,output). 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. ### Submitting Pull Requests **Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. When submitting pull requests, please provide: 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues using the following syntax: ```markdown (For a single issue) Fixes #20 (For multiple issues) Fixes #32, #40 ``` 2. **A succinct description of the design** used to fix any related issues. For example: ```markdown This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. ``` 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! PK?H[^materialdjango/static/materialdjango/components/bower_components/paper-radio-group/.bower.json{ "name": "paper-radio-group", "version": "1.0.9", "description": "A group of material design radio buttons", "authors": [ "The Polymer Authors" ], "keywords": [ "web-components", "polymer", "radio", "control" ], "private": true, "repository": { "type": "git", "url": "git://github.com/PolymerElements/paper-radio-group.git" }, "license": "http://polymer.github.io/LICENSE.txt", "homepage": "https://github.com/PolymerElements/paper-radio-group", "ignore": [], "dependencies": { "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#^1.0.0", "iron-selector": "PolymerElements/iron-selector#^1.0.0", "polymer": "Polymer/polymer#^1.1.0" }, "devDependencies": { "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", "paper-radio-button": "PolymerElements/paper-radio-button#^1.0.0", "paper-styles": "PolymerElements/paper-styles#^1.0.0", "test-fixture": "PolymerElements/test-fixture#^1.0.0", "web-component-tester": "^4.0.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" }, "main": "paper-radio-group.html", "_release": "1.0.9", "_resolution": { "type": "version", "tag": "v1.0.9", "commit": "27a8447ed1709dd1a9bef514acd7dee218604077" }, "_source": "git://github.com/PolymerElements/paper-radio-group.git", "_target": "^1.0.0", "_originalSource": "PolymerElements/paper-radio-group" }PK,H&]materialdjango/static/materialdjango/components/bower_components/paper-radio-group/index.html paper-radio-group PK,HFF99[materialdjango/static/materialdjango/components/bower_components/paper-radio-group/hero.svg PK,H[iQQimaterialdjango/static/materialdjango/components/bower_components/paper-radio-group/paper-radio-group.html PK,HcGG^materialdjango/static/materialdjango/components/bower_components/paper-radio-group/.travis.ymllanguage: node_js sudo: false before_script: - npm install -g bower polylint web-component-tester - bower install - polylint env: global: - secure: fuljRoGGYqpPmvGA/f/nsqHWRmAFSu0BpeXS838DmXDZGe2l6liTQM3WOg/zsbQimo62bzyfaX7RI0LEPv3kcdIAjxF78/0y+Gb092YOlWjBDf8+Kwz4UuxwEHQ9FRv4T0CiZnp81oo/J9DgBNUIuIKNoycVfp/GQNM7VH8NvYM= - secure: ibwd66QS2gTWqIW57liwNiDZE1GHmS4lJ62T4cJ1lLUV41B6pONB62fzAVtvJhLfAyQeR3cX0+grCFJtc2v94r5DhVoTAdxuM3MrYQuM+p1XNpK/UUjEkRZkSP2GxHIztXDwePe96W5DqX/C9E/KC3G00NF5/rdtTkoEe6sn0wA= - CXX=g++-4.8 node_js: stable addons: firefox: latest apt: sources: - google-chrome - ubuntu-toolchain-r-test packages: - google-chrome-stable - g++-4.8 sauce_connect: true script: - xvfb-run wct - "if [ \"${TRAVIS_PULL_REQUEST}\" = \"false\" ]; then wct -s 'default'; fi" PK,HfOH\materialdjango/static/materialdjango/components/bower_components/paper-radio-group/README.md [![Build Status](https://travis-ci.org/PolymerElements/paper-radio-group.svg?branch=master)](https://travis-ci.org/PolymerElements/paper-radio-group) _[Demo and API Docs](https://elements.polymer-project.org/elements/paper-radio-group)_ ##<paper-radio-group> Material design: [Radio button](https://www.google.com/design/spec/components/selection-controls.html#selection-controls-radio-button) `paper-radio-group` allows user to select at most one radio button from a set. Checking one radio button that belongs to a radio group unchecks any previously checked radio button within the same group. Use `selected` to get or set the selected radio button. The inside the group must have the `name` attribute set. Example: Small Medium Large Radio-button-groups can be made optional, and allow zero buttons to be selected: Small Medium Large See paper-radio-button for more information about `paper-radio-button`. PK,HKB]materialdjango/static/materialdjango/components/bower_components/paper-radio-group/.gitignorebower_components PK,H4]materialdjango/static/materialdjango/components/bower_components/paper-radio-group/bower.json{ "name": "paper-radio-group", "version": "1.0.9", "description": "A group of material design radio buttons", "authors": [ "The Polymer Authors" ], "keywords": [ "web-components", "polymer", "radio", "control" ], "private": true, "repository": { "type": "git", "url": "git://github.com/PolymerElements/paper-radio-group.git" }, "license": "http://polymer.github.io/LICENSE.txt", "homepage": "https://github.com/PolymerElements/paper-radio-group", "ignore": [], "dependencies": { "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#^1.0.0", "iron-selector": "PolymerElements/iron-selector#^1.0.0", "polymer": "Polymer/polymer#^1.1.0" }, "devDependencies": { "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", "paper-radio-button": "PolymerElements/paper-radio-button#^1.0.0", "paper-styles": "PolymerElements/paper-styles#^1.0.0", "test-fixture": "PolymerElements/test-fixture#^1.0.0", "web-component-tester": "^4.0.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" }, "main": "paper-radio-group.html" } PK,H`bmaterialdjango/static/materialdjango/components/bower_components/paper-radio-group/test/index.html paper-radio-group tests PK,HB#""bmaterialdjango/static/materialdjango/components/bower_components/paper-radio-group/test/basic.html paper-radio-group basic tests PK,H{tbmaterialdjango/static/materialdjango/components/bower_components/paper-radio-group/demo/index.html paper-radio-group demo

Enabled

Oxygen Carbon Hydrogen Nitrogen Calcium

Disabled

Oxygen Carbon Hydrogen Nitrogen Calcium

Color

Oxygen Carbon Hydrogen Nitrogen Calcium
PKXHy [materialdjango/static/materialdjango/components/bower_components/paper-tabs/CONTRIBUTING.md # Polymer Elements ## Guide for Contributors Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: ### Filing Issues **If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: 1. **Who will use the feature?** _“As someone filling out a form…”_ 2. **When will they use the feature?** _“When I enter an invalid value…”_ 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ **If you are filing an issue to report a bug**, please provide: 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: ```markdown The `paper-foo` element causes the page to turn pink when clicked. ## Expected outcome The page stays the same color. ## Actual outcome The page turns pink. ## Steps to reproduce 1. Put a `paper-foo` element in the page. 2. Open the page in a web browser. 3. Click the `paper-foo` element. ``` 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. ### Submitting Pull Requests **Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. When submitting pull requests, please provide: 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: ```markdown (For a single issue) Fixes #20 (For multiple issues) Fixes #32, fixes #40 ``` 2. **A succinct description of the design** used to fix any related issues. For example: ```markdown This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. ``` 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! PK[Hp澪Wmaterialdjango/static/materialdjango/components/bower_components/paper-tabs/.bower.json{ "name": "paper-tabs", "version": "1.3.7", "license": "http://polymer.github.io/LICENSE.txt", "description": "Material design tabs", "private": true, "main": "paper-tabs.html", "authors": [ "The Polymer Authors" ], "keywords": [ "web-components", "polymer", "tabs", "control" ], "repository": { "type": "git", "url": "git://github.com/PolymerElements/paper-tabs.git" }, "dependencies": { "iron-behaviors": "PolymerElements/iron-behaviors#^1.0.0", "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", "iron-icon": "PolymerElements/iron-icon#^1.0.0", "iron-iconset-svg": "PolymerElements/iron-iconset-svg#^1.0.0", "iron-menu-behavior": "PolymerElements/iron-menu-behavior#^1.1.0", "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#^1.0.0", "paper-behaviors": "PolymerElements/paper-behaviors#^1.0.0", "paper-icon-button": "PolymerElements/paper-icon-button#^1.0.0", "paper-styles": "PolymerElements/paper-styles#^1.0.0", "polymer": "Polymer/polymer#^1.1.0" }, "devDependencies": { "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", "iron-pages": "PolymerElements/iron-pages#^1.0.0", "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", "paper-toolbar": "PolymerElements/paper-toolbar#^1.0.0", "test-fixture": "PolymerElements/test-fixture#^1.0.0", "web-component-tester": "^4.0.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" }, "ignore": [], "homepage": "https://github.com/PolymerElements/paper-tabs", "_release": "1.3.7", "_resolution": { "type": "version", "tag": "v1.3.7", "commit": "b8d689c7cdf926a69c91d2421aa6c2536608fad4" }, "_source": "git://github.com/PolymerElements/paper-tabs.git", "_target": "^1.0.0", "_originalSource": "PolymerElements/paper-tabs" }PKXHF;Vmaterialdjango/static/materialdjango/components/bower_components/paper-tabs/index.html paper-tabs PKXHYTmaterialdjango/static/materialdjango/components/bower_components/paper-tabs/hero.svg PKXHswʡZmaterialdjango/static/materialdjango/components/bower_components/paper-tabs/paper-tab.html PKXH*GGWmaterialdjango/static/materialdjango/components/bower_components/paper-tabs/.travis.ymllanguage: node_js sudo: false before_script: - npm install -g bower polylint web-component-tester - bower install - polylint env: global: - secure: ieKt2HWOdClqU7OyYA20DFlWduaM0IDk91lO7mWySQL6r55SSB4DnUCgVycQJf0L6S8vyY/fbC/vFP0notyz3MvMAz1NwpRzAI9mKkVWJuaBbm9Ql9PewjanX42chbz3XyqZofXVkfBywmj61NyPM7VRVwhEHmOeYgyFUyV9cls= - secure: g7yrxdFIVMIjkYBKZ29FHUX3noS6u1lvjUmaAaG28rGaEfXK4XR9fhZABR+6ydAjLjdo+WUMvTp4oi6HYrb6ToByprEli/fTexjeGuagDc5r5R84u3CusBuw9YYHDjstHCBFmIZndD+r4PRXkWvYatciF9c0NCHoVrjTH/woe9g= - CXX=g++-4.8 node_js: stable addons: firefox: latest apt: sources: - google-chrome - ubuntu-toolchain-r-test packages: - google-chrome-stable - g++-4.8 sauce_connect: true script: - xvfb-run wct - "if [ \"${TRAVIS_PULL_REQUEST}\" = \"false\" ]; then wct -s 'default'; fi" PKXHвl99[materialdjango/static/materialdjango/components/bower_components/paper-tabs/paper-tabs.html PKXHr* Umaterialdjango/static/materialdjango/components/bower_components/paper-tabs/README.md [![Build status](https://travis-ci.org/PolymerElements/paper-tabs.svg?branch=master)](https://travis-ci.org/PolymerElements/paper-tabs) _[Demo and API docs](https://elements.polymer-project.org/elements/paper-tabs)_ ##<paper-tabs> Material design: [Tabs](https://www.google.com/design/spec/components/tabs.html) `paper-tabs` makes it easy to explore and switch between different views or functional aspects of an app, or to browse categorized data sets. Use `selected` property to get or set the selected tab. Example: ```html TAB 1 TAB 2 TAB 3 ``` See paper-tab for more information about `paper-tab`. A common usage for `paper-tabs` is to use it along with `iron-pages` to switch between different views. ```html Tab 1 Tab 2 Tab 3
Page 1
Page 2
Page 3
``` To use links in tabs, add `link` attribute to `paper-tab` and put an `` element in `paper-tab`. Example:

<style is="custom-style">
  .link {
    @apply(--layout-horizontal);
    @apply(--layout-center-center);
  }
</style>

<paper-tabs selected="0">
  <paper-tab link>
    <a href="#link1" class="link">TAB ONE</a>
  </paper-tab>
  <paper-tab link>
    <a href="#link2" class="link">TAB TWO</a>
  </paper-tab>
  <paper-tab link>
    <a href="#link3" class="link">TAB THREE</a>
  </paper-tab>
</paper-tabs>
### Styling The following custom properties and mixins are available for styling: | Custom property | Description | Default | | --- | --- | --- | | `--paper-tabs-selection-bar-color` | Color for the selection bar | `--paper-yellow-a100` | | `--paper-tabs` | Mixin applied to the tabs | `{}` | ##<paper-tab> `paper-tab` is styled to look like a tab. It should be used in conjunction with `paper-tabs`. Example: ```html TAB 1 TAB 2 TAB 3 ``` ### Styling The following custom properties and mixins are available for styling: | Custom property | Description | Default | | --- | --- | --- | | `--paper-tab-ink` | Ink color | `--paper-yellow-a100` | | `--paper-tab` | Mixin applied to the tab | `{}` | | `--paper-tab-content` | Mixin applied to the tab content | `{}` | | `--paper-tab-content-unselected` | Mixin applied to the tab content when the tab is not selected | `{}` | This element applies the mixin `--paper-font-common-base` but does not import `paper-styles/typography.html`. In order to apply the `Roboto` font to this element, make sure you've imported `paper-styles/typography.html`. PKXH%_Vmaterialdjango/static/materialdjango/components/bower_components/paper-tabs/.gitignorebower_components/ PKXHk MMamaterialdjango/static/materialdjango/components/bower_components/paper-tabs/paper-tabs-icons.html PKXHR|{NNVmaterialdjango/static/materialdjango/components/bower_components/paper-tabs/bower.json{ "name": "paper-tabs", "version": "1.3.7", "license": "http://polymer.github.io/LICENSE.txt", "description": "Material design tabs", "private": true, "main": "paper-tabs.html", "authors": [ "The Polymer Authors" ], "keywords": [ "web-components", "polymer", "tabs", "control" ], "repository": { "type": "git", "url": "git://github.com/PolymerElements/paper-tabs.git" }, "dependencies": { "iron-behaviors": "PolymerElements/iron-behaviors#^1.0.0", "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", "iron-icon": "PolymerElements/iron-icon#^1.0.0", "iron-iconset-svg": "PolymerElements/iron-iconset-svg#^1.0.0", "iron-menu-behavior": "PolymerElements/iron-menu-behavior#^1.1.0", "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#^1.0.0", "paper-behaviors": "PolymerElements/paper-behaviors#^1.0.0", "paper-icon-button": "PolymerElements/paper-icon-button#^1.0.0", "paper-styles": "PolymerElements/paper-styles#^1.0.0", "polymer": "Polymer/polymer#^1.1.0" }, "devDependencies": { "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", "iron-pages": "PolymerElements/iron-pages#^1.0.0", "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", "paper-toolbar": "PolymerElements/paper-toolbar#^1.0.0", "test-fixture": "PolymerElements/test-fixture#^1.0.0", "web-component-tester": "^4.0.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" }, "ignore": [] } PKXHv}}[materialdjango/static/materialdjango/components/bower_components/paper-tabs/test/index.html Tests PKXH m[materialdjango/static/materialdjango/components/bower_components/paper-tabs/test/basic.html paper-tabs-basic PKXH9ܘ3 3 gmaterialdjango/static/materialdjango/components/bower_components/paper-tabs/test/attr-for-selected.html paper-tabs-attr-for-selected PKXHLP%#%#[materialdjango/static/materialdjango/components/bower_components/paper-tabs/demo/index.html paper-tabs demo

Plain paper-tabs.

The no-bar attribute disables the selection bar.

The no-slide attribute prevents the selection bar from animating when the selection changes.

The noink attribute disables the ink ripple animation seen when the user activates a tab (by clicking, tapping, etc.).

The scrollable attribute causes the tabs to scroll, rather than compress, when there is not enough space. Arrow buttons appear when any of the tabs are not completely visible.

Tab layout is effected by the writing direction of the surrounding area.

Use the align-bottom attribute when your tabs are positioned below the content they control. The selection bar will be shown at the top of the tabs.

Use the link attribute when a paper-tab contains a link. The link will fill the entire tab.

Tabs can be used in a paper-toolbar.

PK5Hts ^materialdjango/static/materialdjango/components/bower_components/iron-page-url/CONTRIBUTING.md # Polymer Elements ## Guide for Contributors Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: ### Filing Issues **If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: 1. **Who will use the feature?** _“As someone filling out a form…”_ 2. **When will they use the feature?** _“When I enter an invalid value…”_ 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ **If you are filing an issue to report a bug**, please provide: 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: ```markdown The `paper-foo` element causes the page to turn pink when clicked. ## Expected outcome The page stays the same color. ## Actual outcome The page turns pink. ## Steps to reproduce 1. Put a `paper-foo` element in the page. 2. Open the page in a web browser. 3. Click the `paper-foo` element. ``` 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [http://jsbin.com/cagaye](http://jsbin.com/cagaye/edit?html,output). 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. ### Submitting Pull Requests **Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. When submitting pull requests, please provide: 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues using the following syntax: ```markdown (For a single issue) Fixes #20 (For multiple issues) Fixes #32, #40 ``` 2. **A succinct description of the design** used to fix any related issues. For example: ```markdown This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. ``` 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! PK?HdDZmaterialdjango/static/materialdjango/components/bower_components/iron-page-url/.bower.json{ "name": "iron-page-url", "version": "0.7.1", "description": "Bidirectional data binding into the page's URL.", "private": true, "authors": [ "The Polymer Authors" ], "keywords": [ "web-components", "polymer", "routing" ], "main": "iron-page-url.html", "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-page-url.git" }, "license": "http://polymer.github.io/LICENSE.txt", "homepage": "https://github.com/PolymerElements/iron-page-url", "ignore": [], "dependencies": { "polymer": "Polymer/polymer#^1.0.0" }, "devDependencies": { "promise-polyfill": "polymerlabs/promise-polyfill#^1.0.0", "iron-component-page": "polymerelements/iron-component-page#^1.0.0", "iron-flex-layout": "polymerelements/iron-flex-layout#^1.0.0", "paper-input": "polymerelements/paper-input#^1.0.0", "paper-slider": "polymerelements/paper-slider#^1.0.0", "paper-styles": "polymerelements/paper-styles#^1.0.0", "test-fixture": "polymerelements/test-fixture#^1.0.0", "web-component-tester": "^4.0.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" }, "_release": "0.7.1", "_resolution": { "type": "version", "tag": "v0.7.1", "commit": "90709ff0dd6d4426385526274eda51f420f9b507" }, "_source": "git://github.com/PolymerElements/iron-page-url.git", "_target": "~0.7.0", "_originalSource": "PolymerElements/iron-page-url" }PK5H"tiiYmaterialdjango/static/materialdjango/components/bower_components/iron-page-url/index.html iron-page-url PK5H֝N"N"amaterialdjango/static/materialdjango/components/bower_components/iron-page-url/iron-page-url.html PK5H+4hGGZmaterialdjango/static/materialdjango/components/bower_components/iron-page-url/.travis.ymllanguage: node_js sudo: false node_js: stable addons: firefox: latest apt: sources: - google-chrome - ubuntu-toolchain-r-test packages: - google-chrome-stable - g++-4.8 sauce_connect: true before_script: - npm install -g bower polylint web-component-tester - bower install - polylint script: - xvfb-run wct - "if [ \"${TRAVIS_PULL_REQUEST}\" = \"false\" ]; then wct -s 'default'; fi" env: global: - secure: GQ+cUlta7BWa8Gq4YXrBStPzwRpHT2QG79T4pbDTz2Zs1RvT0GYQaEUksPQnsNCwnTF8ondXhUfMxHcC/r8p7YTCt2hSJSsKkx0lMertsjbKW38ZG28liaAN8msYGb9hnTs4qxhpVEX1pZtOI13RKBU85dw+jKbtxKDX/jVrMn42XCMhEmTeLxM4z8dW5nBu6LW6F3nwABQIUfdc/3OeIYG+2n+84zkXIsX1BFeejq28E6fYJAoMJgqfugLPgPu4IEVCWZJwYl2SgdXwxAcJ2auPph5GJ3DLd0fRRD1TZ94/u0A+eJcQ0OPiPu8hLpQNXOkCgAnO5jkpTCDERNQnB4nY8VfZeZdf1RLAB4VmxzOAbJwJcnqGrh89H6RhKKXyhcuFCgFACYfkzncBCs+co5KwVcwLq88cDOUbnmo3DlwQWpkfusvKy/ZrMrFrX1zycJWN4u8rDsIH4ELasSQh/J3OIa9l2mKfL/OEvqCmpv/ZLGlOVSvNLpr4U7vTVdZBP6C9rtwVXX7VzrClttiidHfoxztAMrNh2GBMjNH9n3FuWMoA/OSoxQGc7RreTsuzdniw3iJYUHIeG08R9bqRtSVA71AlQrbqUaHR+WM7rf7GUx6xG0uDop5vH0RDkE0Nld1W8XuVhHQUg3y3fd4AHJAQVmM7Zsfa3AY1gSr3hV0= - secure: He0JAbtg9jFzuEBRHQdFWHJ33uueY/9Hxq4NB5PCAI1Z9ebIiTs73ofdNy6e+ftBqlQnBuhoKLfIpuD8Qj2kSdLHQvg1s6ojvNDmAvau1ZINCJRgOSKbGC0TvCVx9rT9Kqc83eqKvKDzr/rcpaIArgMYJzBrSG0D2Kn4luUQnWkKfo1knn17ytJFCvzqQvPWZTIZ6beJ7MRKXRU093a4wYMsKIxQHH65T4Ypj+RBsgv6Xnidjb8qZbNsEwaeOwExfsh30WUo/hSygRi2CP3KSRSc/vsMgSrGpFghZpnhjeDJAGTiDzCTxpJkAkHXereJT4agsWErcgSrRTaxi5G6f18o56pRS+I61BC5DuGGwSL7hOHWSC8pGzkwVFyz31MB2ll0HO3iQHMmcSjY37+G7toEP/vJ/UHm6SZoQq36HGJea7Ycv/2mk4HAHcVEDxhYG42bXXflxevFeqAkVUI7SxSaQpQuZF76/4th4uKFmAHPvRVj5yx8OWil9Lt6cG8DIEZaxXdJVueGgiODmmul7lAd5osO/1UCg4CTy1OnmuSJj7ax9LBa6YY2+3uvnBfE7fNUVKmVmVhlLsF0QAdj0LaFoSU0eQFWdReYqBxEvc4gOT3AtEpaAvfZnL11Q6wVyI7kCHhTHrltA4WENPOSA2u7W//WsQfHX3gRdpIVIVI= - CXX=g++-4.8 PK5HȕXmaterialdjango/static/materialdjango/components/bower_components/iron-page-url/README.md [![Build Status](https://travis-ci.org/PolymerElements/iron-page-url.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-page-url) _[Demo and API Docs](https://elements.polymer-project.org/elements/iron-page-url)_ ##<iron-page-url> The `iron-page-url` element manages binding to and from the current URL. iron-page-url is the first, and lowest level element in the Polymer team's routing system. This is a beta release of iron-page-url as we continue work on higher level elements, and as such iron-page-url may undergo breaking changes. #### Properties When the URL is: `/search?query=583#details` iron-page-url's properties will be: * path: `'/search'` * query: `'query=583'` * hash: `'details'` These bindings are bidirectional. Modifying them will in turn modify the URL. iron-page-url is only active while it is attached to the document. #### Links While iron-page-url is active in the document it will intercept clicks on links within your site, updating the URL pushing the updated URL out through the databinding system. iron-page-url only intercepts clicks with the intent to open in the same window, so middle mouse clicks and ctrl/cmd clicks work fine. You can customize this behavior with the `urlSpaceRegex`. #### Dwell Time iron-page-url protects against accidental history spamming by only adding entries to the user's history if the URL stays unchanged for `dwellTime` milliseconds. PK5HKBYmaterialdjango/static/materialdjango/components/bower_components/iron-page-url/.gitignorebower_components PK5HpdYmaterialdjango/static/materialdjango/components/bower_components/iron-page-url/bower.json{ "name": "iron-page-url", "version": "0.7.1", "description": "Bidirectional data binding into the page's URL.", "private": true, "authors": [ "The Polymer Authors" ], "keywords": [ "web-components", "polymer", "routing" ], "main": "iron-page-url.html", "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-page-url.git" }, "license": "http://polymer.github.io/LICENSE.txt", "homepage": "https://github.com/PolymerElements/iron-page-url", "ignore": [], "dependencies": { "polymer": "Polymer/polymer#^1.0.0" }, "devDependencies": { "promise-polyfill": "polymerlabs/promise-polyfill#^1.0.0", "iron-component-page": "polymerelements/iron-component-page#^1.0.0", "iron-flex-layout": "polymerelements/iron-flex-layout#^1.0.0", "paper-input": "polymerelements/paper-input#^1.0.0", "paper-slider": "polymerelements/paper-slider#^1.0.0", "paper-styles": "polymerelements/paper-styles#^1.0.0", "test-fixture": "polymerelements/test-fixture#^1.0.0", "web-component-tester": "^4.0.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" } } PK5He55mmaterialdjango/static/materialdjango/components/bower_components/iron-page-url/test/initialization-cases.html PK5Hii^materialdjango/static/materialdjango/components/bower_components/iron-page-url/test/index.html PK5HF-fmaterialdjango/static/materialdjango/components/bower_components/iron-page-url/test/iron-page-url.html iron-page-url PK5H2Z&88nmaterialdjango/static/materialdjango/components/bower_components/iron-page-url/test/initialization-iframe.html Base source for injecting into an iframe for tests PK5Hmmaterialdjango/static/materialdjango/components/bower_components/iron-page-url/test/initialization-tests.html PK5H;OvX^materialdjango/static/materialdjango/components/bower_components/iron-page-url/demo/index.html iron-page-url PK6Hts _materialdjango/static/materialdjango/components/bower_components/neon-animation/CONTRIBUTING.md # Polymer Elements ## Guide for Contributors Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: ### Filing Issues **If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: 1. **Who will use the feature?** _“As someone filling out a form…”_ 2. **When will they use the feature?** _“When I enter an invalid value…”_ 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ **If you are filing an issue to report a bug**, please provide: 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: ```markdown The `paper-foo` element causes the page to turn pink when clicked. ## Expected outcome The page stays the same color. ## Actual outcome The page turns pink. ## Steps to reproduce 1. Put a `paper-foo` element in the page. 2. Open the page in a web browser. 3. Click the `paper-foo` element. ``` 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [http://jsbin.com/cagaye](http://jsbin.com/cagaye/edit?html,output). 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. ### Submitting Pull Requests **Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. When submitting pull requests, please provide: 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues using the following syntax: ```markdown (For a single issue) Fixes #20 (For multiple issues) Fixes #32, #40 ``` 2. **A succinct description of the design** used to fix any related issues. For example: ```markdown This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. ``` 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! PKw?HDQgg[materialdjango/static/materialdjango/components/bower_components/neon-animation/.bower.json{ "name": "neon-animation", "description": "A system for animating Polymer-based web components", "version": "1.1.0", "authors": [ "The Polymer Authors" ], "keywords": [ "web-components", "web-component", "polymer", "web-animations" ], "main": [ "neon-animated-pages.html", "neon-animatable-behavior.html", "neon-animation-behavior.html", "neon-animation-runner-behavior.html", "neon-shared-element-animatable-behavior.html", "neon-shared-element-animation-behavior.html", "neon-animatable.html", "neon-animations.html" ], "private": true, "repository": { "type": "git", "url": "git://github.com/PolymerElements/neon-animation" }, "license": "http://polymer.github.io/LICENSE.txt", "homepage": "https://github.com/PolymerElements/neon-animation", "ignore": [], "dependencies": { "polymer": "Polymer/polymer#^1.1.0", "iron-meta": "PolymerElements/iron-meta#^1.0.0", "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#^1.0.0", "iron-selector": "PolymerElements/iron-selector#^1.0.0", "web-animations-js": "web-animations/web-animations-js#2.1.3" }, "devDependencies": { "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", "paper-toolbar": "PolymerElements/paper-toolbar#^1.0.0", "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", "test-fixture": "PolymerElements/test-fixture#^1.0.0", "web-component-tester": "^4.0.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", "paper-item": "PolymerElements/paper-item#^1.0.0", "paper-styles": "PolymerElements/paper-styles#^1.0.0", "iron-icon": "PolymerElements/iron-icon#^1.0.0", "iron-icons": "PolymerElements/iron-icons#^1.0.0", "paper-icon-button": "PolymerElements/paper-icon-button#^1.0.0" }, "_release": "1.1.0", "_resolution": { "type": "version", "tag": "v1.1.0", "commit": "564e0dc92724f2bc0bf0f76bf2ac392d4905b2ff" }, "_source": "git://github.com/polymerelements/neon-animation.git", "_target": "^1.0.0", "_originalSource": "polymerelements/neon-animation" }PK6HegZmaterialdjango/static/materialdjango/components/bower_components/neon-animation/index.html neon-animation PK6H'9|materialdjango/static/materialdjango/components/bower_components/neon-animation/neon-shared-element-animatable-behavior.html PK6H smaterialdjango/static/materialdjango/components/bower_components/neon-animation/neon-animation-runner-behavior.html PK6Hqq{materialdjango/static/materialdjango/components/bower_components/neon-animation/neon-shared-element-animation-behavior.html PK6HJdmaterialdjango/static/materialdjango/components/bower_components/neon-animation/neon-animations.html PK6Hu1mmaterialdjango/static/materialdjango/components/bower_components/neon-animation/neon-animatable-behavior.html PK6H  lmaterialdjango/static/materialdjango/components/bower_components/neon-animation/neon-animation-behavior.html PK6H-shmaterialdjango/static/materialdjango/components/bower_components/neon-animation/neon-animated-pages.html PK6H ˢcmaterialdjango/static/materialdjango/components/bower_components/neon-animation/neon-animation.html PK6Hɳ9_GG[materialdjango/static/materialdjango/components/bower_components/neon-animation/.travis.ymllanguage: node_js sudo: false node_js: stable addons: firefox: latest apt: sources: - google-chrome - ubuntu-toolchain-r-test packages: - google-chrome-stable - g++-4.8 sauce_connect: true before_script: - npm install -g bower polylint web-component-tester - bower install - polylint script: - xvfb-run wct - "if [ \"${TRAVIS_PULL_REQUEST}\" = \"false\" ]; then wct -s 'default'; fi" env: global: - secure: AnPpB3uzTWU0hmrDmPyOb/3mJZRv4BgPFJrpaT/mQ/9979IBeFfFHJX6MqQlgo894lJWvKSvAjEutgK5Z3LQh6cLB3JuhPBInwKgFPUx/V14VIju+Z7jwx6RycE3flb2f9Y6y5My13ovswsTNnhJEkpDGlbRnJlh5c+HeP+6D0oFPFaGWvULZsAHQnEykir1TMPL2TD8SfuYWifmBj7QYQ2vsYnqZoAkPNedv/OtdoA3rziFXSG3GqXX2NJVnYqlaLj/HiHK7xLlZu/ODfo6En12DMtqJajBP7NfJkEUAF72ScOsYxlwiI1aYcVSUy6upkxxPwkBj5x7wDZ0tRFmlautyq2skDAh/fgIfRw9AMe8kj/YLef+T8bmZNT9IIelNaNcpfTQHpYWcOpPk2uBT3iIOcmp+Ys8RZKqzYmekBtHTwCGmQcfQrjBXjrjz5xlUaoMH7vauh7Ct7SkD7Fu87XSUvks4v2yypxxmHXO8jUilKuUdtAzb3dtOboO0ptsoLuBm/qSeURco4be6KPyVnDxdWdbYOxIZtE8JeY2DbonS45OgFtL1NKeEIhiTQIcOuSs0qwJFFzaBBAfek1tkTvBhMJP3JPWpIbNJhdZWzSd0LUSe892sbiZJY67FA4xcY8vK5JZNWnxFyKX1+A8ljPEd1yBImxMzUDMNS9t0G0= - secure: jdh0G/FDRghnjasav0/8nOZsYgXUd5DLKgD5XrDCVrBvPwXly+AnMXE+Hr/bztEXylcEmcqrWUUfB1ODUdVn1EGk8CJaYpHyKcoMcpJiEjHYS/3i1rXRsnHs2o3dcRO69rA8A5LZeG3yYfiPVUiKlyl7MWOal3pNohDGi8dZcT0CoWnA8UaV//0uXG3GGG3X8KcbVfB2hQvG1mK6wM6W4eHVOplcBaE2xnnFDMxfU2KnRgjLSPw66PeJGczWOBR9fZql9p6kV38ZM2s4qnUsMlTZkNqn0f6CuEPqcG6+S6Tk9+0dvAHet+Ky9fgiyJPq+p6sDGfdm1ZJwOjz5MoyudzGSuHAJHH2nscQf8pUBQ1gxKaGg7GV9LUj0cjLDAFWA2KpxTlabDZhZPIMoMKFpqpvJG49gDVga5gGabom21nd/+E1i/2vvoP16kY9rjf+Gd5+tIzajXCu8Tq06Xz63idZDJbt38GjArfFFqe5k7CqE+m2vpWx/iTwe+cT70wnIq/xigvaNq6CgUuNdzkVnVBj/C7yVqwwZkfbBC7HhRna9Nyzts/j2M2vwy0oYB73WzuhpYSweaAOZq2kcUIQ5ZMGO3UkZRjwWnHxAi5mrvZhRcRIqkvJJhoMQnjwJSTah/3cz0cJh19DL+Ozde24/tuY+vOnhFb+ddo1OKD6FtM= - CXX=g++-4.8 PK6H tOOcmaterialdjango/static/materialdjango/components/bower_components/neon-animation/web-animations.html PK6Hh((Ymaterialdjango/static/materialdjango/components/bower_components/neon-animation/README.md# neon-animation `neon-animation` is a suite of elements and behaviors to implement pluggable animated transitions for Polymer Elements using [Web Animations](https://w3c.github.io/web-animations/). *Warning: The API may change.* * [A basic animatable element](#basic) * [Animation configuration](#configuration) * [Animation types](#configuration-types) * [Configuration properties](#configuration-properties) * [Using multiple animations](#configuration-multiple) * [Running animations encapsulated in children nodes](#configuration-encapsulation) * [Page transitions](#page-transitions) * [Shared element animations](#shared-element) * [Declarative page transitions](#declarative-page) * [Included animations](#animations) * [Demos](#demos)
## A basic animatable element Elements that can be animated should implement the `Polymer.NeonAnimatableBehavior` behavior, or `Polymer.NeonAnimationRunnerBehavior` if they're also responsible for running an animation. ```js Polymer({ is: 'my-animatable', behaviors: [ Polymer.NeonAnimationRunnerBehavior ], properties: { animationConfig: { value: function() { return { // provided by neon-animation/animations/scale-down-animation.html name: 'scale-down-animation', node: this } } } }, listeners: { // this event is fired when the animation finishes 'neon-animation-finish': '_onNeonAnimationFinish' }, animate: function() { // run scale-down-animation this.playAnimation(); }, _onNeonAnimationFinish: function() { console.log('animation done!'); } }); ``` [Live demo](http://morethanreal.github.io/neon-animation-demo/bower_components/neon-animation/demo/doc/basic.html) ## Animation configuration ### Animation types An element might run different animations, for example it might do something different when it enters the view and when it exits from view. You can set the `animationConfig` property to a map from an animation type to configuration. ```js Polymer({ is: 'my-dialog', behaviors: [ Polymer.NeonAnimationRunnerBehavior ], properties: { opened: { type: Boolean }, animationConfig: { value: function() { return { 'entry': { // provided by neon-animation/animations/scale-up-animation.html name: 'scale-up-animation', node: this }, 'exit': { // provided by neon-animation/animations/fade-out-animation.html name: 'fade-out-animation', node: this } } } } }, listeners: { 'neon-animation-finish': '_onNeonAnimationFinish' }, show: function() { this.opened = true; this.style.display = 'inline-block'; // run scale-up-animation this.playAnimation('entry'); }, hide: function() { this.opened = false; // run fade-out-animation this.playAnimation('exit'); }, _onNeonAnimationFinish: function() { if (!this.opened) { this.style.display = 'none'; } } }); ``` [Live demo](http://morethanreal.github.io/neon-animation-demo/bower_components/neon-animation/demo/doc/types.html) You can also use the convenience properties `entryAnimation` and `exitAnimation` to set `entry` and `exit` animations: ```js properties: { entryAnimation: { value: 'scale-up-animation' }, exitAnimation: { value: 'fade-out-animation' } } ``` ### Configuration properties You can pass additional parameters to configure an animation in the animation configuration object. All animations should accept the following properties: * `name`: The name of an animation, ie. an element implementing `Polymer.NeonAnimationBehavior`. * `node`: The target node to apply the animation to. Defaults to `this`. * `timing`: Timing properties to use in this animation. They match the [Web Animations Animation Effect Timing interface](https://w3c.github.io/web-animations/#the-animationeffecttiming-interface). The properties include the following: * `duration`: The duration of the animation in milliseconds. * `delay`: The delay before the start of the animation in milliseconds. * `easing`: A timing function for the animation. Matches the CSS timing function values. Animations may define additional configuration properties and they are listed in their documentation. ### Using multiple animations Set the animation configuration to an array to combine animations, like this: ```js animationConfig: { value: function() { return { // fade-in-animation is run with a 50ms delay from slide-down-animation 'entry': [{ name: 'slide-down-animation', node: this }, { name: 'fade-in-animation', node: this, timing: {delay: 50} }] } } } ``` ### Running animations encapsulated in children nodes You can include animations in the configuration that are encapsulated in a child element that implement `Polymer.NeonAnimatableBehavior` with the `animatable` property. ```js animationConfig: { value: function() { return { // run fade-in-animation on this, and the entry animation on this.$.myAnimatable 'entry': [ {name: 'fade-in-animation', node: this}, {animatable: this.$.myAnimatable, type: 'entry'} ] } } } ``` ## Page transitions *The artist formerly known as ``* The `neon-animated-pages` element manages a set of pages to switch between, and runs animations between the page transitions. It implements the `Polymer.IronSelectableBehavior` behavior. Each child node should implement `Polymer.NeonAnimatableBehavior` and define the `entry` and `exit` animations. During a page transition, the `entry` animation is run on the new page and the `exit` animation is run on the old page. ### Shared element animations Shared element animations work on multiple nodes. For example, a "hero" animation is used during a page transition to make two elements from separate pages appear to animate as a single element. Shared element animation configurations have an `id` property that identify they belong in the same animation. Elements containing shared elements also have a `sharedElements` property defines a map from `id` to element, the element involved with the animation. In the incoming page: ```js properties: { animationConfig: { value: function() { return { // the incoming page defines the 'entry' animation 'entry': { name: 'hero-animation', id: 'hero', toPage: this } } } }, sharedElements: { value: function() { return { 'hero': this.$.hero } } } } ``` In the outgoing page: ```js properties: { animationConfig: { value: function() { return { // the outgoing page defines the 'exit' animation 'exit': { name: 'hero-animation', id: 'hero', fromPage: this } } } }, sharedElements: { value: function() { return { 'hero': this.$.otherHero } } } } ``` ### Declarative page transitions For convenience, if you define the `entry-animation` and `exit-animation` attributes on ``, those animations will apply for all page transitions. For example: ```js 1 2 3 4 5 ``` The new page will slide in from the right, and the old page slide away to the left. ## Included animations Single element animations: * `fade-in-animation` Animates opacity from `0` to `1`; * `fade-out-animation` Animates opacity from `1` to `0`; * `scale-down-animation` Animates transform from `scale(1)` to `scale(0)`; * `scale-up-animation` Animates transform from `scale(0)` to `scale(1)`; * `slide-down-animation` Animates transform from `translateY(-100%)` to `none`; * `slide-up-animation` Animates transform from `none` to `translateY(-100%)`; * `slide-from-top-animation` Animates transform from `translateY(-100%)` to `none`; * `slide-from-bottom-animation` Animates transform from `translateY(100%)` to `none`; * `slide-left-animation` Animates transform from `none` to `translateX(-100%)`; * `slide-right-animation` Animates transform from `none` to `translateX(100%)`; * `slide-from-left-animation` Animates transform from `translateX(-100%)` to `none`; * `slide-from-right-animation` Animates transform from `translateX(100%)` to `none`; * `transform-animation` Animates a custom transform. Note that there is a restriction that only one transform animation can be applied on the same element at a time. Use the custom `transform-animation` to combine transform properties. Shared element animations * `hero-animation` Animates an element such that it looks like it scales and transforms from another element. * `ripple-animation` Animates an element to full screen such that it looks like it ripples from another element. Group animations * `cascaded-animation` Applys an animation to an array of elements with a delay between each. ## Demos * [Grid to full screen](http://morethanreal.github.io/neon-animation-demo/bower_components/neon-animation/demo/grid/index.html) * [Animation on load](http://morethanreal.github.io/neon-animation-demo/bower_components/neon-animation/demo/load/index.html) * [List item to detail](http://morethanreal.github.io/neon-animation-demo/bower_components/neon-animation/demo/list/index.html) (For narrow width) * [Dots to squares](http://morethanreal.github.io/neon-animation-demo/bower_components/neon-animation/demo/tiles/index.html) * [Declarative](http://morethanreal.github.io/neon-animation-demo/bower_components/neon-animation/demo/declarative/index.html) PK6HKBZmaterialdjango/static/materialdjango/components/bower_components/neon-animation/.gitignorebower_components PK6H0BBZmaterialdjango/static/materialdjango/components/bower_components/neon-animation/bower.json{ "name": "neon-animation", "description": "A system for animating Polymer-based web components", "version": "1.1.0", "authors": [ "The Polymer Authors" ], "keywords": [ "web-components", "web-component", "polymer", "web-animations" ], "main": [ "neon-animated-pages.html", "neon-animatable-behavior.html", "neon-animation-behavior.html", "neon-animation-runner-behavior.html", "neon-shared-element-animatable-behavior.html", "neon-shared-element-animation-behavior.html", "neon-animatable.html", "neon-animations.html" ], "private": true, "repository": { "type": "git", "url": "git://github.com/PolymerElements/neon-animation" }, "license": "http://polymer.github.io/LICENSE.txt", "homepage": "https://github.com/PolymerElements/neon-animation", "ignore": [], "dependencies": { "polymer": "Polymer/polymer#^1.1.0", "iron-meta": "PolymerElements/iron-meta#^1.0.0", "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#^1.0.0", "iron-selector": "PolymerElements/iron-selector#^1.0.0", "web-animations-js": "web-animations/web-animations-js#2.1.3" }, "devDependencies": { "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", "paper-toolbar": "PolymerElements/paper-toolbar#^1.0.0", "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", "test-fixture": "PolymerElements/test-fixture#^1.0.0", "web-component-tester": "^4.0.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", "paper-item": "PolymerElements/paper-item#^1.0.0", "paper-styles": "PolymerElements/paper-styles#^1.0.0", "iron-icon": "PolymerElements/iron-icon#^1.0.0", "iron-icons": "PolymerElements/iron-icons#^1.0.0", "paper-icon-button": "PolymerElements/paper-icon-button#^1.0.0" } } PK6HRdmaterialdjango/static/materialdjango/components/bower_components/neon-animation/neon-animatable.html PK6HT_materialdjango/static/materialdjango/components/bower_components/neon-animation/test/index.html neon-animation tests PK6H<סnmaterialdjango/static/materialdjango/components/bower_components/neon-animation/test/test-resizable-pages.html PK6Hִs s mmaterialdjango/static/materialdjango/components/bower_components/neon-animation/test/neon-animated-pages.html neon-animated-pages tests PK6HLNO(_materialdjango/static/materialdjango/components/bower_components/neon-animation/demo/index.html neon-animated pages demo PKcFiU_materialdjango/static/materialdjango/components/bower_components/neon-animation/demo/shared.css/* 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 */ .red-100 { background: var(--google-red-100); } .yellow-100 { background: var(--google-yellow-100); } .blue-100 { background: var(--google-blue-100); } .green-100 { background: var(--google-green-100); } .red-300 { background: var(--google-red-300); } .yellow-300 { background: var(--google-yellow-300); } .blue-300 { background: var(--google-blue-300); } .green-300 { background: var(--google-green-300); } PK6Hxgmaterialdjango/static/materialdjango/components/bower_components/neon-animation/demo/shared-styles.html PK6Ho' hmaterialdjango/static/materialdjango/components/bower_components/neon-animation/demo/list/list-view.html PK6Hdmaterialdjango/static/materialdjango/components/bower_components/neon-animation/demo/list/index.html neon-animated-pages demo: list PK6H9 hmaterialdjango/static/materialdjango/components/bower_components/neon-animation/demo/list/full-view.html PK6Hkװhmaterialdjango/static/materialdjango/components/bower_components/neon-animation/demo/list/list-demo.html PK6H^GߋEEematerialdjango/static/materialdjango/components/bower_components/neon-animation/demo/tiles/index.html neon-animated-pages demo: tiles PK6H)D lmaterialdjango/static/materialdjango/components/bower_components/neon-animation/demo/tiles/squares-page.html PK6H\S lmaterialdjango/static/materialdjango/components/bower_components/neon-animation/demo/tiles/circles-page.html PK6Hflmaterialdjango/static/materialdjango/components/bower_components/neon-animation/demo/load/animated-grid.html PK6H*dmaterialdjango/static/materialdjango/components/bower_components/neon-animation/demo/load/index.html neon-animated-pages demo: load PK6HR=^2hmaterialdjango/static/materialdjango/components/bower_components/neon-animation/demo/load/full-page.html PK6HՆlmaterialdjango/static/materialdjango/components/bower_components/neon-animation/demo/grid/animated-grid.html PK6HOdmaterialdjango/static/materialdjango/components/bower_components/neon-animation/demo/grid/index.html neon-animated-pages demo: grid PK6H(u vmaterialdjango/static/materialdjango/components/bower_components/neon-animation/demo/grid/fullsize-page-with-card.html PK6HoIkmaterialdjango/static/materialdjango/components/bower_components/neon-animation/demo/declarative/index.html neon-animated-pages demo: declarative PK6Hfhmaterialdjango/static/materialdjango/components/bower_components/neon-animation/demo/dropdown/index.html neon-animated-pages demo: dropdown PK6H7Jtmaterialdjango/static/materialdjango/components/bower_components/neon-animation/demo/dropdown/animated-dropdown.html PK6HXkmaterialdjango/static/materialdjango/components/bower_components/neon-animation/demo/doc/my-animatable.html PK6Havcmaterialdjango/static/materialdjango/components/bower_components/neon-animation/demo/doc/index.html neon-animation demo: basic PK6H1ڤYYgmaterialdjango/static/materialdjango/components/bower_components/neon-animation/demo/doc/my-dialog.html PKcF,;cmaterialdjango/static/materialdjango/components/bower_components/neon-animation/demo/doc/types.html neon-animation demo: basic PKcF&eecmaterialdjango/static/materialdjango/components/bower_components/neon-animation/demo/doc/basic.html neon-animation demo: basic PK6HCT]]kmaterialdjango/static/materialdjango/components/bower_components/neon-animation/demo/card/x-cards-list.html PK6HSSdmaterialdjango/static/materialdjango/components/bower_components/neon-animation/demo/card/index.html neon-animated-pages demo: card PK6HMZћ ematerialdjango/static/materialdjango/components/bower_components/neon-animation/demo/card/x-card.html PK6HXtmaterialdjango/static/materialdjango/components/bower_components/neon-animation/demo/reprojection/animated-grid.html PK6Hclmaterialdjango/static/materialdjango/components/bower_components/neon-animation/demo/reprojection/index.html neon-animated-pages demo: grid PK6HX xmaterialdjango/static/materialdjango/components/bower_components/neon-animation/demo/reprojection/reprojected-pages.html PK6H: ~materialdjango/static/materialdjango/components/bower_components/neon-animation/demo/reprojection/fullsize-page-with-card.html PK6H:XXpmaterialdjango/static/materialdjango/components/bower_components/neon-animation/animations/opaque-animation.html PK6HoN9qmaterialdjango/static/materialdjango/components/bower_components/neon-animation/animations/fade-in-animation.html PK6HÆv?rmaterialdjango/static/materialdjango/components/bower_components/neon-animation/animations/scale-up-animation.html PK6H`H66tmaterialdjango/static/materialdjango/components/bower_components/neon-animation/animations/slide-down-animation.html PK6HSII{materialdjango/static/materialdjango/components/bower_components/neon-animation/animations/slide-from-bottom-animation.html PK6H==zmaterialdjango/static/materialdjango/components/bower_components/neon-animation/animations/slide-from-right-animation.html PK6HCCxmaterialdjango/static/materialdjango/components/bower_components/neon-animation/animations/slide-from-top-animation.html PK6Hmi*X rmaterialdjango/static/materialdjango/components/bower_components/neon-animation/animations/cascaded-animation.html PK6Hߏrrmaterialdjango/static/materialdjango/components/bower_components/neon-animation/animations/fade-out-animation.html PK6Hh pmaterialdjango/static/materialdjango/components/bower_components/neon-animation/animations/ripple-animation.html PK6H~)I=tmaterialdjango/static/materialdjango/components/bower_components/neon-animation/animations/scale-down-animation.html PK6HjU_..umaterialdjango/static/materialdjango/components/bower_components/neon-animation/animations/slide-right-animation.html PK6HTYx nmaterialdjango/static/materialdjango/components/bower_components/neon-animation/animations/hero-animation.html PK6H3 3 xmaterialdjango/static/materialdjango/components/bower_components/neon-animation/animations/reverse-ripple-animation.html PK6Ha+88rmaterialdjango/static/materialdjango/components/bower_components/neon-animation/animations/slide-up-animation.html PK6H{smaterialdjango/static/materialdjango/components/bower_components/neon-animation/animations/transform-animation.html PK6H--tmaterialdjango/static/materialdjango/components/bower_components/neon-animation/animations/slide-left-animation.html PK6HU2E<<ymaterialdjango/static/materialdjango/components/bower_components/neon-animation/animations/slide-from-left-animation.html PK6H,({))hmaterialdjango/static/materialdjango/components/bower_components/neon-animation/guides/neon-animation.md--- title: neon-animation summary: "A short guide to neon-animation and neon-animated-pages" tags: ['animation','core-animated-pages'] elements: ['neon-animation','neon-animated-pages'] updated: 2015-05-26 --- # neon-animation `neon-animation` is a suite of elements and behaviors to implement pluggable animated transitions for Polymer Elements using [Web Animations](https://w3c.github.io/web-animations/). *Warning: The API may change.* * [A basic animatable element](#basic) * [Animation configuration](#configuration) * [Animation types](#configuration-types) * [Configuration properties](#configuration-properties) * [Using multiple animations](#configuration-multiple) * [Running animations encapsulated in children nodes](#configuration-encapsulation) * [Page transitions](#page-transitions) * [Shared element animations](#shared-element) * [Declarative page transitions](#declarative-page) * [Included animations](#animations) * [Demos](#demos) ## A basic animatable element Elements that can be animated should implement the `Polymer.NeonAnimatableBehavior` behavior, or `Polymer.NeonAnimationRunnerBehavior` if they're also responsible for running an animation. ```js Polymer({ is: 'my-animatable', behaviors: [ Polymer.NeonAnimationRunnerBehavior ], properties: { animationConfig: { value: function() { return { // provided by neon-animation/animations/scale-down-animation.html name: 'scale-down-animation', node: this } } } }, listeners: { // this event is fired when the animation finishes 'neon-animation-finish': '_onNeonAnimationFinish' }, animate: function() { // run scale-down-animation this.playAnimation(); }, _onNeonAnimationFinish: function() { console.log('animation done!'); } }); ``` [Live demo](http://morethanreal.github.io/neon-animation-demo/bower_components/neon-animation/demo/doc/basic.html) ## Animation configuration ### Animation types An element might run different animations, for example it might do something different when it enters the view and when it exits from view. You can set the `animationConfig` property to a map from an animation type to configuration. ```js Polymer({ is: 'my-dialog', behaviors: [ Polymer.NeonAnimationRunnerBehavior ], properties: { opened: { type: Boolean }, animationConfig: { value: function() { return { 'entry': { // provided by neon-animation/animations/scale-up-animation.html name: 'scale-up-animation', node: this }, 'exit': { // provided by neon-animation-animations/fade-out-animation.html name: 'fade-out-animation', node: this } } } } }, listeners: { 'neon-animation-finish': '_onNeonAnimationFinish' }, show: function() { this.opened = true; this.style.display = 'inline-block'; // run scale-up-animation this.playAnimation('entry'); }, hide: function() { this.opened = false; // run fade-out-animation this.playAnimation('fade-out-animation'); }, _onNeonAnimationFinish: function() { if (!this.opened) { this.style.display = 'none'; } } }); ``` [Live demo](http://morethanreal.github.io/neon-animation-demo/bower_components/neon-animation/demo/doc/types.html) You can also use the convenience properties `entryAnimation` and `exitAnimation` to set `entry` and `exit` animations: ```js properties: { entryAnimation: { value: 'scale-up-animation' }, exitAnimation: { value: 'fade-out-animation' } } ``` ### Configuration properties You can pass additional parameters to configure an animation in the animation configuration object. All animations should accept the following properties: * `name`: The name of an animation, ie. an element implementing `Polymer.NeonAnimationBehavior`. * `node`: The target node to apply the animation to. Defaults to `this`. * `timing`: Timing properties to use in this animation. They match the [Web Animations Animation Effect Timing interface](https://w3c.github.io/web-animations/#the-animationeffecttiming-interface). The properties include the following: * `duration`: The duration of the animation in milliseconds. * `delay`: The delay before the start of the animation in milliseconds. * `easing`: A timing function for the animation. Matches the CSS timing function values. Animations may define additional configuration properties and they are listed in their documentation. ### Using multiple animations Set the animation configuration to an array to combine animations, like this: ```js animationConfig: { value: function() { return { // fade-in-animation is run with a 50ms delay from slide-down-animation 'entry': [{ name: 'slide-down-animation', node: this }, { name: 'fade-in-animation', node: this, timing: {delay: 50} }] } } } ``` ### Running animations encapsulated in children nodes You can include animations in the configuration that are encapsulated in a child element that implement `Polymer.NeonAnimatableBehavior` with the `animatable` property. ```js animationConfig: { value: function() { return { // run fade-in-animation on this, and the entry animation on this.$.myAnimatable 'entry': [ {name: 'fade-in-animation', node: this}, {animatable: this.$.myAnimatable, type: 'entry'} ] } } } ``` ## Page transitions *The artist formerly known as ``* The `neon-animated-pages` element manages a set of pages to switch between, and runs animations between the page transitions. It implements the `Polymer.IronSelectableBehavior` behavior. Each child node should implement `Polymer.NeonAnimatableBehavior` and define the `entry` and `exit` animations. During a page transition, the `entry` animation is run on the new page and the `exit` animation is run on the old page. ### Shared element animations Shared element animations work on multiple nodes. For example, a "hero" animation is used during a page transition to make two elements from separate pages appear to animate as a single element. Shared element animation configurations have an `id` property that identify they belong in the same animation. Elements containing shared elements also have a `sharedElements` property defines a map from `id` to element, the element involved with the animation. In the incoming page: ```js properties: { animationConfig: { value: function() { return { // the incoming page defines the 'entry' animation 'entry': { name: 'hero-animation', id: 'hero', toPage: this } } } }, sharedElements: { value: function() { return { 'hero': this.$.hero } } } } ``` In the outgoing page: ```js properties: { animationConfig: { value: function() { return { // the outgoing page defines the 'exit' animation 'exit': { name: 'hero-animation', id: 'hero', fromPage: this } } } }, sharedElements: { value: function() { return { 'hero': this.$.otherHero } } } } ``` ### Declarative page transitions For convenience, if you define the `entry-animation` and `exit-animation` attributes on ``, those animations will apply for all page transitions. For example: ```js 1 2 3 4 5 ``` The new page will slide in from the right, and the old page slide away to the left. ## Included animations Single element animations: * `fade-in-animation` Animates opacity from `0` to `1`; * `fade-out-animation` Animates opacity from `1` to `0`; * `scale-down-animation` Animates transform from `scale(1)` to `scale(0)`; * `scale-up-animation` Animates transform from `scale(0)` to `scale(1)`; * `slide-down-animation` Animates transform from `none` to `translateY(100%)`; * `slide-up-animation` Animates transform from `none` to `translateY(-100%)`; * `slide-from-top-animation` Animates transform from `translateY(-100%)` to `none`; * `slide-from-bottom-animation` Animates transform from `translateY(100%)` to `none`; * `slide-left-animation` Animates transform from `none` to `translateX(-100%)`; * `slide-right-animation` Animates transform from `none` to `translateX(100%)`; * `slide-from-left-animation` Animates transform from `translateX(-100%)` to `none`; * `slide-from-right-animation` Animates transform from `translateX(100%)` to `none`; * `transform-animation` Animates a custom transform. Note that there is a restriction that only one transform animation can be applied on the same element at a time. Use the custom `transform-animation` to combine transform properties. Shared element animations * `hero-animation` Animates an element such that it looks like it scales and transforms from another element. * `ripple-animation` Animates an element to full screen such that it looks like it ripples from another element. Group animations * `cascaded-animation` Applys an animation to an array of elements with a delay between each. ## Demos * [Grid to full screen](http://morethanreal.github.io/neon-animation-demo/bower_components/neon-animation/demo/grid/index.html) * [Animation on load](http://morethanreal.github.io/neon-animation-demo/bower_components/neon-animation/demo/load/index.html) * [List item to detail](http://morethanreal.github.io/neon-animation-demo/bower_components/neon-animation/demo/list/index.html) (For narrow width) * [Dots to squares](http://morethanreal.github.io/neon-animation-demo/bower_components/neon-animation/demo/tiles/index.html) * [Declarative](http://morethanreal.github.io/neon-animation-demo/bower_components/neon-animation/demo/declarative/index.html) PKorGts dmaterialdjango/static/materialdjango/components/bower_components/iron-a11y-announcer/CONTRIBUTING.md # Polymer Elements ## Guide for Contributors Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: ### Filing Issues **If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: 1. **Who will use the feature?** _“As someone filling out a form…”_ 2. **When will they use the feature?** _“When I enter an invalid value…”_ 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ **If you are filing an issue to report a bug**, please provide: 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: ```markdown The `paper-foo` element causes the page to turn pink when clicked. ## Expected outcome The page stays the same color. ## Actual outcome The page turns pink. ## Steps to reproduce 1. Put a `paper-foo` element in the page. 2. Open the page in a web browser. 3. Click the `paper-foo` element. ``` 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [http://jsbin.com/cagaye](http://jsbin.com/cagaye/edit?html,output). 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. ### Submitting Pull Requests **Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. When submitting pull requests, please provide: 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues using the following syntax: ```markdown (For a single issue) Fixes #20 (For multiple issues) Fixes #32, #40 ``` 2. **A succinct description of the design** used to fix any related issues. For example: ```markdown This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. ``` 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! PKRGAIT݃`materialdjango/static/materialdjango/components/bower_components/iron-a11y-announcer/.bower.json{ "name": "iron-a11y-announcer", "version": "1.0.4", "description": "A singleton element that simplifies announcing text to screen readers.", "keywords": [ "web-components", "polymer", "a11y", "live" ], "authors": [ "The Polymer Authors" ], "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-a11y-announcer.git" }, "main": "iron-a11y-announcer.html", "license": "http://polymer.github.io/LICENSE.txt", "dependencies": { "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-button": "polymerelements/paper-button#^1.0.0", "paper-styles": "polymerelements/paper-styles#^1.0.0", "test-fixture": "polymerelements/test-fixture#^1.0.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", "web-component-tester": "polymer/web-component-tester#^3.4.0" }, "ignore": [], "homepage": "https://github.com/PolymerElements/iron-a11y-announcer", "_release": "1.0.4", "_resolution": { "type": "version", "tag": "v1.0.4", "commit": "5ce3eb8c4282bb53cd72e348858dc6be6b4c50b9" }, "_source": "git://github.com/PolymerElements/iron-a11y-announcer.git", "_target": "^1.0.0", "_originalSource": "PolymerElements/iron-a11y-announcer" }PKorG礧_materialdjango/static/materialdjango/components/bower_components/iron-a11y-announcer/index.html iron-a11y-announcer PKorG'  mmaterialdjango/static/materialdjango/components/bower_components/iron-a11y-announcer/iron-a11y-announcer.html PKorGO`materialdjango/static/materialdjango/components/bower_components/iron-a11y-announcer/.travis.ymllanguage: node_js sudo: false before_script: - npm install web-component-tester - npm install bower - 'export PATH=$PWD/node_modules/.bin:$PATH' - bower install env: global: - secure: lNcOb1qPO7R65VYIQ6ekoc4I8wg98E/DRdqRMGAWrvr9eZ6lbz4hqwVvgnl05Ukc62lFsEGdaykFdcQ5QG5rDxXxh1Dofl8dfE8ohBZzR9gQ5g9808CVVbV/0kfafAMts/KYGVLAuy+30aU/xA+DQ4oR76E1glZOGoz4FDxUotIFpMyPR77HC1WDuFiF/HUOUgs8zO5v02171URdYG33ywVx6n0j1akCKksQ9Odcxn+VF51xziSuP+Hd+mju4j6xiAsvkc8EhdFMTXBKDHH0LEjP6zVLQ+lA4ePX2YxPAocFUcWFlGsfDwLdbY18zrP9vXK0AqpoU0d3hW1bLdxoH+4Fd8WkFzYB5rjtV0jT8BOWjEK+1g7GBzofZYQs+h9kRUoNQA5m7NNo3dz/NM8NxvDCALscH2kWTEYpzvaX/Gy653psOkKe8MRawa6nqgXreaNEn3dtVqlonz3KpgVLJpgBtLYvQDQ8lczntuBw6BlnCZRZw8wy0hLHIIpld/GbxrH1O13XGpT07CAny10wZYMk9J0OiEuMPd23UNdcEXibNnfDS18UKW64JoILqqBMyl10WY6dOqLt7DAd5eDoKqZ/heU3vXFm9/JcebtUB3NmOG+qkgb1UOChEtzxJFCXa3S3NFsLiHra6CgdV78gHM5WizlT0kldecgrlDtz/tQ= - secure: ig1L3SPuNpnAqzk8wXc8SqprhF7ajVuD1MQa0KfmkCxFZCXSmAHnt9tsuwrkea0J3s3Mmj+UQBI3WX5jsFEAlwNy239uRIUxHTz/tsKznmo5Jf+u/u7jHR4H/x0+kNbA/D56eInlNeR9bwE/72kiWB2ZI9nxHIggNxJrsTK4d+CQC863V763P8sJaBNP7BXq/2igs2/wHgfsF126oKOf0fxMbeBm3tFYB0VBdkLZJvQ+NowZGn/RTvmdAMJZe/UuICf9jTl/YQXp7q3b/hF5h/CMlQckkNoiQZ8FY3yz4yg8eJc2Pe1NjuCYl8YE7nUY+mUX8B/hqB9g05LmKxAdFg1icsq14Rmb54MBa6CsYIPo5ZZNXSeCkiQvfHOOhubnB4lBxDYGSLwFIDwpRtRRkwIzpz/5sul6OP9RR/g0kXnmktFEYbu2/OQk89H2GymOdrIlUrJ9Rat74X4My3DO7I7QnGi/04I7sLxP5PxUShqcjDi5q4rZTXG/ssaLS3O4YvXigy0ZzK6PsKX8jYVTlQdMQHBY5IwYH6reJ5IM0KjJoum95VoZTTKtIAIxOjLnbVu8khwxYDyzFhrfUKkvcULCCrGx7PphBPNV6SN+/0TFNmuabhp1nLb/+lZ61bVFiV5Mfs7DF8WVVMvwhBMw68HqIyts/b5g68e/yjwV6do= node_js: 4 addons: firefox: '42.0' apt: sources: - google-chrome packages: - google-chrome-stable script: - xvfb-run wct - "if [ \"${TRAVIS_PULL_REQUEST}\" = \"false\" ]; then wct -s 'default'; fi" PKorGlt++^materialdjango/static/materialdjango/components/bower_components/iron-a11y-announcer/README.md [![Build Status](https://travis-ci.org/PolymerElements/iron-a11y-announcer.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-a11y-announcer) _[Demo and API Docs](https://elements.polymer-project.org/elements/iron-a11y-announcer)_ ##<iron-a11y-announcer> `iron-a11y-announcer` is a singleton element that is intended to add a11y to features that require on-demand announcement from screen readers. In order to make use of the announcer, it is best to request its availability in the announcing element. Example: Polymer({ is: 'x-chatty', attached: function() { // This will create the singleton element if it has not // been created yet: Polymer.IronA11yAnnouncer.requestAvailability(); } }); After the `iron-a11y-announcer` has been made available, elements can make announces by firing bubbling `iron-announce` events. Example: this.fire('iron-announce', { text: 'This is an announcement!' }, { bubbles: true }); Note: announcements are only audible if you have a screen reader enabled. PKorGKB_materialdjango/static/materialdjango/components/bower_components/iron-a11y-announcer/.gitignorebower_components PKorG  _materialdjango/static/materialdjango/components/bower_components/iron-a11y-announcer/bower.json{ "name": "iron-a11y-announcer", "version": "1.0.4", "description": "A singleton element that simplifies announcing text to screen readers.", "keywords": [ "web-components", "polymer", "a11y", "live" ], "authors": [ "The Polymer Authors" ], "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-a11y-announcer.git" }, "main": "iron-a11y-announcer.html", "license": "http://polymer.github.io/LICENSE.txt", "dependencies": { "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-button": "polymerelements/paper-button#^1.0.0", "paper-styles": "polymerelements/paper-styles#^1.0.0", "test-fixture": "polymerelements/test-fixture#^1.0.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", "web-component-tester": "polymer/web-component-tester#^3.4.0" }, "ignore": [] } PKorGYgrrdmaterialdjango/static/materialdjango/components/bower_components/iron-a11y-announcer/test/index.html iron-a11y-announcer tests PKorG8 !rmaterialdjango/static/materialdjango/components/bower_components/iron-a11y-announcer/test/iron-a11y-announcer.html iron-a11y-announcer PKorG߀{dmaterialdjango/static/materialdjango/components/bower_components/iron-a11y-announcer/demo/index.html iron-a11y-announcer demo
Note: in order to hear the announcements, be sure to turn on your favorite screen reader! Hello, my name is Ava. This true sentence is false. Are you paying attention?
PKorG3Ӈjmaterialdjango/static/materialdjango/components/bower_components/iron-a11y-announcer/demo/x-announces.html PKRHy bmaterialdjango/static/materialdjango/components/bower_components/iron-test-helpers/CONTRIBUTING.md # Polymer Elements ## Guide for Contributors Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: ### Filing Issues **If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: 1. **Who will use the feature?** _“As someone filling out a form…”_ 2. **When will they use the feature?** _“When I enter an invalid value…”_ 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ **If you are filing an issue to report a bug**, please provide: 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: ```markdown The `paper-foo` element causes the page to turn pink when clicked. ## Expected outcome The page stays the same color. ## Actual outcome The page turns pink. ## Steps to reproduce 1. Put a `paper-foo` element in the page. 2. Open the page in a web browser. 3. Click the `paper-foo` element. ``` 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. ### Submitting Pull Requests **Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. When submitting pull requests, please provide: 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: ```markdown (For a single issue) Fixes #20 (For multiple issues) Fixes #32, fixes #40 ``` 2. **A succinct description of the design** used to fix any related issues. For example: ```markdown This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. ``` 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! PK[HC^materialdjango/static/materialdjango/components/bower_components/iron-test-helpers/.bower.json{ "name": "iron-test-helpers", "version": "1.1.5", "authors": [ "The Polymer Authors" ], "description": "Utility classes to help make testing easier", "keywords": [ "web-components", "web-component", "polymer", "test" ], "private": true, "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-test-helpers" }, "license": "http://polymer.github.io/LICENSE.txt", "homepage": "https://github.com/PolymerElements/iron-test-helpers", "ignore": [], "dependencies": { "polymer": "Polymer/polymer#^1.0.0" }, "devDependencies": { "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", "web-component-tester": "^4.0.0" }, "main": "iron-test-helpers.html", "_release": "1.1.5", "_resolution": { "type": "version", "tag": "v1.1.5", "commit": "76d7e5b4d52587c853e8b2cbdf8d970bcf209ff3" }, "_source": "git://github.com/PolymerElements/iron-test-helpers.git", "_target": "^1.0.0", "_originalSource": "PolymerElements/iron-test-helpers" }PKRHT WW W bmaterialdjango/static/materialdjango/components/bower_components/iron-test-helpers/test-helpers.js/** * @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 */ (function(global) { 'use strict'; /* * Forces distribution of light children, and lifecycle callbacks on the * Custom Elements polyfill. Used when testing elements that rely on their * distributed children. */ global.flushAsynchronousOperations = function() { // force distribution Polymer.dom.flush(); // force lifecycle callback to fire on polyfill window.CustomElements && window.CustomElements.takeRecords(); }; /* * Stamps and renders a `dom-if` template. * * @param {HTMLElement} node The node containing the template, */ global.forceXIfStamp = function(node) { var templates = Polymer.dom(node.root).querySelectorAll('template[is=dom-if]'); for (var tmpl, i = 0; tmpl = templates[i]; i++) { tmpl.render(); } global.flushAsynchronousOperations(); }; /* * Fires a custom event on a specific node. This event bubbles and is cancellable. * * @param {String} type The type of event. * @param {Object} props Any custom properties the event contains. * @param {HTMLElement} node The node to fire the event on. */ global.fireEvent = function(type, props, node) { var event = new CustomEvent(type, { bubbles: true, cancelable: true }); for (var p in props) { event[p] = props[p]; } node.dispatchEvent(event); }; /* * Skips a test unless a condition is met. Sample use: * function isNotIE() { * return !navigator.userAgent.match(/MSIE/i); * } * test('runs on non IE browsers', skipUnless(isNotIE, function() { * ... * }); * * @param {String} condition The name of a Boolean function determining if the test should be run. * @param {Function} test The test to be run. */ global.skipUnless = function(condition, test) { var isAsyncTest = !!test.length; return function(done) { var testCalledDone = false; if (!condition()) { return done(); } var result = test.call(this, done); if (!isAsyncTest) { done(); } return result; }; }; })(this); PKRH[Xaaimaterialdjango/static/materialdjango/components/bower_components/iron-test-helpers/mock-interactions.html PKRHCfH****gmaterialdjango/static/materialdjango/components/bower_components/iron-test-helpers/mock-interactions.js/** * @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 */ (function(global) { 'use strict'; var HAS_NEW_MOUSE = (function() { var has = false; try { has = Boolean(new MouseEvent('x')); } catch (_) {} return has; })(); /* * Returns the (x,y) coordinates representing the middle of a node. * * @param {HTMLElement} node An element. */ function middleOfNode(node) { var bcr = node.getBoundingClientRect(); return { y: bcr.top + (bcr.height / 2), x: bcr.left + (bcr.width / 2) }; } /* * Returns the (x,y) coordinates representing the top left corner of a node. * * @param {HTMLElement} node An element. */ function topLeftOfNode(node) { var bcr = node.getBoundingClientRect(); return { y: bcr.top, x: bcr.left }; } /* * Fires a mouse event on a specific node, at a given set of coordinates. * This event bubbles and is cancellable. * * @param {String} type The type of mouse event (such as 'tap' or 'down'). * @param {Object} xy The (x,y) coordinates the mouse event should be fired from. * @param {HTMLElement} node The node to fire the event on. */ function makeEvent(type, xy, node) { var props = { bubbles: true, cancelable: true, clientX: xy.x, clientY: xy.y, // Make this a primary input. buttons: 1 // http://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons }; var e; var mousetype = type === 'tap' ? 'click' : 'mouse' + type; if (HAS_NEW_MOUSE) { e = new MouseEvent(mousetype, props); } else { e = document.createEvent('MouseEvent'); e.initMouseEvent( mousetype, props.bubbles, props.cancelable, null, /* view */ null, /* detail */ 0, /* screenX */ 0, /* screenY */ props.clientX, props.clientY, false, /*ctrlKey */ false, /*altKey */ false, /*shiftKey */ false, /*metaKey */ 0, /*button */ null /*relatedTarget*/); } node.dispatchEvent(e); } /* * Simulates a mouse move action by firing a `move` mouse event on a * specific node, between a set of coordinates. * * @param {HTMLElement} node The node to fire the event on. * @param {Object} fromXY The (x,y) coordinates the dragging should start from. * @param {Object} toXY The (x,y) coordinates the dragging should end at. * @param {Object} steps Optional. The numbers of steps in the move motion. * If not specified, the default is 5. */ function move(node, fromXY, toXY, steps) { steps = steps || 5; var dx = Math.round((fromXY.x - toXY.x) / steps); var dy = Math.round((fromXY.y - toXY.y) / steps); var xy = { x: fromXY.x, y: fromXY.y }; for (var i = steps; i > 0; i--) { makeEvent('move', xy, node); xy.x += dx; xy.y += dy; } makeEvent('move', { x: toXY.x, y: toXY.y }, node); } /* * Simulates a mouse dragging action originating in the middle of a specific node. * * @param {HTMLElement} target The node to fire the event on. * @param {Number} dx The horizontal displacement. * @param {Object} dy The vertical displacement * @param {Object} steps Optional. The numbers of steps in the dragging motion. * If not specified, the default is 5. */ function track(target, dx, dy, steps) { dx = dx | 0; dy = dy | 0; steps = steps || 5; down(target); var xy = middleOfNode(target); var xy2 = { x: xy.x + dx, y: xy.y + dy }; move(target, xy, xy2, steps); up(target, xy2); } /* * Fires a `down` mouse event on a specific node, at a given set of coordinates. * This event bubbles and is cancellable. If the (x,y) coordinates are * not specified, the middle of the node will be used instead. * * @param {HTMLElement} node The node to fire the event on. * @param {Object} xy Optional. The (x,y) coordinates the mouse event should be fired from. */ function down(node, xy) { xy = xy || middleOfNode(node); makeEvent('down', xy, node); } /* * Fires an `up` mouse event on a specific node, at a given set of coordinates. * This event bubbles and is cancellable. If the (x,y) coordinates are * not specified, the middle of the node will be used instead. * * @param {HTMLElement} node The node to fire the event on. * @param {Object} xy Optional. The (x,y) coordinates the mouse event should be fired from. */ function up(node, xy) { xy = xy || middleOfNode(node); makeEvent('up', xy, node); } /* * Simulates a complete mouse click by firing a `down` mouse event, followed * by an asynchronous `up` and `tap` events on a specific node. Calls the *`callback` after the `tap` event is fired. * * @param {HTMLElement} target The node to fire the event on. * @param {Object} callback Optional. The function to be called after the action ends. */ function downAndUp(target, callback) { down(target); Polymer.Base.async(function() { up(target); tap(target); callback && callback(); }); } /* * Fires a 'tap' mouse event on a specific node. This respects the pointer-events * set on the node, and will not fire on disabled nodes. * * @param {HTMLElement} node The node to fire the event on. * @param {Object} xy Optional. The (x,y) coordinates the mouse event should be fired from. */ function tap(node) { // Respect nodes that are disabled in the UI. if (window.getComputedStyle(node)['pointer-events'] === 'none') return; var xy = middleOfNode(node); down(node, xy); up(node, xy); makeEvent('tap', xy, node); } /* * Focuses a node by firing a `focus` event. This event does not bubble. * * @param {HTMLElement} target The node to fire the event on. */ function focus(target) { Polymer.Base.fire('focus', {}, { bubbles: false, node: target }); } /* * Blurs a node by firing a `blur` event. This event does not bubble. * * @param {HTMLElement} target The node to fire the event on. */ function blur(target) { Polymer.Base.fire('blur', {}, { bubbles: false, node: target }); } /* * Returns a keyboard event. This event bubbles and is cancellable. * * @param {String} type The type of keyboard event (such as 'keyup' or 'keydown'). * @param {Number} keyCode The keyCode for the event. * @param {?String|[String]} modifiers The key modifiers for the event. * Accepted values are shift, ctrl, alt, meta. */ function keyboardEventFor(type, keyCode, modifiers) { var event = new CustomEvent(type, { bubbles: true, cancelable: true }); event.keyCode = keyCode; event.code = keyCode; modifiers = modifiers || []; if (typeof modifiers === 'string') { modifiers = [modifiers]; } event.shiftKey = modifiers.indexOf('shift') !== -1; event.altKey = modifiers.indexOf('alt') !== -1; event.ctrlKey = modifiers.indexOf('ctrl') !== -1; event.metaKey = modifiers.indexOf('meta') !== -1; return event; } /* * Fires a keyboard event on a specific node. This event bubbles and is cancellable. * * @param {HTMLElement} target The node to fire the event on. * @param {String} type The type of keyboard event (such as 'keyup' or 'keydown'). * @param {Number} keyCode The keyCode for the event. * @param {?String|[String]} modifiers The key modifiers for the event. * Accepted values are shift, ctrl, alt, meta. */ function keyEventOn(target, type, keyCode, modifiers) { target.dispatchEvent(keyboardEventFor(type, keyCode, modifiers)); } /* * Fires a 'keydown' event on a specific node. This event bubbles and is cancellable. * * @param {HTMLElement} target The node to fire the event on. * @param {Number} keyCode The keyCode for the event. * @param {?String|[String]} modifiers The key modifiers for the event. * Accepted values are shift, ctrl, alt, meta. */ function keyDownOn(target, keyCode, modifiers) { keyEventOn(target, 'keydown', keyCode, modifiers); } /* * Fires a 'keyup' event on a specific node. This event bubbles and is cancellable. * * @param {HTMLElement} target The node to fire the event on. * @param {Number} keyCode The keyCode for the event. * @param {?String|[String]} modifiers The key modifiers for the event. * Accepted values are shift, ctrl, alt, meta. */ function keyUpOn(target, keyCode, modifiers) { keyEventOn(target, 'keyup', keyCode, modifiers); } /* * Simulates a complete key press by firing a `keydown` keyboard event, followed * by an asynchronous `keyup` event on a specific node. * * @param {HTMLElement} target The node to fire the event on. * @param {Number} keyCode The keyCode for the event. * @param {?String|[String]} modifiers The key modifiers for the event. * Accepted values are shift, ctrl, alt, meta. */ function pressAndReleaseKeyOn(target, keyCode, modifiers) { keyDownOn(target, keyCode, modifiers); Polymer.Base.async(function() { keyUpOn(target, keyCode, modifiers); }, 1); } /* * Simulates a complete 'enter' key press by firing a `keydown` keyboard event, * followed by an asynchronous `keyup` event on a specific node. * * @param {HTMLElement} target The node to fire the event on. */ function pressEnter(target) { pressAndReleaseKeyOn(target, 13); } /* * Simulates a complete 'space' key press by firing a `keydown` keyboard event, * followed by an asynchronous `keyup` event on a specific node. * * @param {HTMLElement} target The node to fire the event on. */ function pressSpace(target) { pressAndReleaseKeyOn(target, 32); } global.MockInteractions = { focus: focus, blur: blur, down: down, up: up, downAndUp: downAndUp, tap: tap, track: track, pressAndReleaseKeyOn: pressAndReleaseKeyOn, pressEnter: pressEnter, pressSpace: pressSpace, keyDownOn: keyDownOn, keyUpOn: keyUpOn, keyEventOn: keyEventOn, middleOfNode: middleOfNode, topLeftOfNode: topLeftOfNode }; })(this); PKRHho>\\dmaterialdjango/static/materialdjango/components/bower_components/iron-test-helpers/test-helpers.html PKRHkˋimaterialdjango/static/materialdjango/components/bower_components/iron-test-helpers/iron-test-helpers.html PKRH&YY^materialdjango/static/materialdjango/components/bower_components/iron-test-helpers/.travis.ymllanguage: node_js sudo: false before_script: - npm install -g bower polylint web-component-tester - bower install - polylint env: global: - secure: wz9Lv8ap0neme5w4cfbn8pXZoderSVb6hHd7tSCnO7JE94P06Qoh8tqMAd2enXkY3fHxBVVy75dKqOAEFai+HX7Heazl/id7PkTrImnOIXmdC1RX8AJTAuXgFO1RtIoBA8RgCiQzuwvwHL+mp08G6gG12cjYBYdofWcWc4OeUYc= - secure: tHmA3RiboWGxMD7esoy/E600eoECK7RDysv0cFqcb2JD5E7Lv7iriqsRszEQa/VElbSxY6RdC505XmBmSpANi3TMVt7OYGzfRpqrh3ARzWMS+s3sz/bRFp6drsBMqTQ+Pl65EVBged7gK3aiwUFWI8dZsMocV+L3y5157sNMyOg= - CXX=g++-4.8 node_js: stable addons: firefox: latest apt: sources: - google-chrome - ubuntu-toolchain-r-test packages: - google-chrome-stable - g++-4.8 sauce_connect: true script: - 'true || xvfb-run wct' - "if [ \"${TRAVIS_PULL_REQUEST}\" = \"false\" ]; then true || wct -s 'default'; fi" PKRH5lBB\materialdjango/static/materialdjango/components/bower_components/iron-test-helpers/README.md[![Build status](https://travis-ci.org/PolymerElements/iron-test-helpers.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-test-helpers) # iron-test-helpers A set of utility classes to make testing easier. For more details on the methods available, please check the documentation of `mock-interactions.js` and `test-helpers.js` ## Mock Interactions This is a set of methods to simulate mouse or keyboard interaction with an element. Include `mock-interactions.js` and then use them like so: ```javascript test('can be triggered with space', function(done) { button.addEventListener('keydown', function() { done(); }); MockInteractions.pressSpace(button); }); test('can be clicked', function(done) { button.addEventListener('click', function() { done(); }); MockInteractions.tap(button); }); ``` PKRHKB]materialdjango/static/materialdjango/components/bower_components/iron-test-helpers/.gitignorebower_components PKRHbg]materialdjango/static/materialdjango/components/bower_components/iron-test-helpers/bower.json{ "name": "iron-test-helpers", "version": "1.1.5", "authors": [ "The Polymer Authors" ], "description": "Utility classes to help make testing easier", "keywords": [ "web-components", "web-component", "polymer", "test" ], "private": true, "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-test-helpers" }, "license": "http://polymer.github.io/LICENSE.txt", "homepage": "https://github.com/PolymerElements/iron-test-helpers", "ignore": [], "dependencies": { "polymer": "Polymer/polymer#^1.0.0" }, "devDependencies": { "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", "web-component-tester": "^4.0.0" }, "main": "iron-test-helpers.html" } PK1$Hts `materialdjango/static/materialdjango/components/bower_components/iron-doc-viewer/CONTRIBUTING.md # Polymer Elements ## Guide for Contributors Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: ### Filing Issues **If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: 1. **Who will use the feature?** _“As someone filling out a form…”_ 2. **When will they use the feature?** _“When I enter an invalid value…”_ 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ **If you are filing an issue to report a bug**, please provide: 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: ```markdown The `paper-foo` element causes the page to turn pink when clicked. ## Expected outcome The page stays the same color. ## Actual outcome The page turns pink. ## Steps to reproduce 1. Put a `paper-foo` element in the page. 2. Open the page in a web browser. 3. Click the `paper-foo` element. ``` 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [http://jsbin.com/cagaye](http://jsbin.com/cagaye/edit?html,output). 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. ### Submitting Pull Requests **Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. When submitting pull requests, please provide: 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues using the following syntax: ```markdown (For a single issue) Fixes #20 (For multiple issues) Fixes #32, #40 ``` 2. **A succinct description of the design** used to fix any related issues. For example: ```markdown This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. ``` 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! PKFYW Q Q fmaterialdjango/static/materialdjango/components/bower_components/iron-doc-viewer/iron-doc-property.css/* @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 { @apply(--paper-font-body1); box-sizing: border-box; display: block; padding: 16px 24px; } .type:before { content: '\007b'; /* https://github.com/Polymer/polymer/issues/1291 */ } .type:after { content: '\007d'; /* https://github.com/Polymer/polymer/issues/1291 */ } #transitionMask { position: relative; overflow: hidden; } [hidden] { display: none; } #signature { @apply(--paper-font-code1); width: 160px; overflow: hidden; text-overflow: ellipsis; float: left; } #signature .name { @apply(--paper-font-code2); } :host([function]) #signature { position: static; width: 100%; } :host:not([function]) #signature .params { display: none; } :host([function]) #type { display: none; } #details { margin-left: 160px; flex: 1; } /* Metadata */ #meta { display: flex; } #type { @apply(--paper-font-code1); } #default { flex: 1; text-align: right; } #default .value { @apply(--paper-font-code1); } /* Function Parameters */ #params { background: rgba(0,0,0,0.05); list-style: none; margin: 8px -8px 0 -8px; padding: 0 8px; } #params .type { @apply(--paper-font-code1); } #params li { padding: 4px 0; } #params li:first-child { padding-top: 8px; } #params li:last-child { padding-bottom: 8px; } #params marked-element { display: inline-block; } #params marked-element::shadow #content p { margin: 0; } /* Description */ #desc { display: block; } #desc::shadow #content > :first-child { margin-top: 0; } #desc::shadow #content > :last-child { margin-bottom: 0; } #desc::shadow #content #content code { @apply(--paper-font-code1); } /* State Transitions */ #transitionMask { transition: height ease-in-out 150ms; } #meta { transition: opacity ease-in-out 150ms; } #desc { transition: transform ease-in-out 150ms, opacity ease-in-out 150ms; } /* Collapsed State */ :host([_collapsed]) #transitionMask { height: 20px; /* 1 line of text */ overflow: hidden; } :host([_collapsed]) #meta { opacity: 0; } :host([_collapsed]) #desc { transform: translateY(-34px); } :host([_collapsed][function]) #desc { opacity: 0; } PK *HZ\materialdjango/static/materialdjango/components/bower_components/iron-doc-viewer/.bower.json{ "name": "iron-doc-viewer", "version": "1.0.12", "authors": [ "The Polymer Authors" ], "description": "Elements for rendering Polymer component documentation.", "keywords": [ "web-component", "web-components", "polymer" ], "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-doc-viewer.git" }, "main": "iron-doc-viewer.html", "license": "http://polymer.github.io/LICENSE.txt", "homepage": "https://github.com/PolymerElements/iron-doc-viewer/", "ignore": [ "/.*", "/tests/" ], "dependencies": { "marked-element": "PolymerElements/marked-element#^1.0.0", "paper-button": "PolymerElements/paper-button#^1.0.0", "paper-styles": "PolymerElements/paper-styles#^1.0.0", "polymer": "Polymer/polymer#^1.1.0", "prism-element": "PolymerElements/prism-element#^1.0.2" }, "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.12", "_resolution": { "type": "version", "tag": "v1.0.12", "commit": "875729d0e4b5ac49dbcabd5cad3c339cd6a0a7d5" }, "_source": "git://github.com/PolymerElements/iron-doc-viewer.git", "_target": "^1.0.0", "_originalSource": "PolymerElements/iron-doc-viewer" }PK1$HKI"JJ[materialdjango/static/materialdjango/components/bower_components/iron-doc-viewer/index.html PK1$H‰BYnmaterialdjango/static/materialdjango/components/bower_components/iron-doc-viewer/iron-doc-property-styles.html PK1$H4m''ematerialdjango/static/materialdjango/components/bower_components/iron-doc-viewer/iron-doc-viewer.html PK1$H#VWlmaterialdjango/static/materialdjango/components/bower_components/iron-doc-viewer/iron-doc-viewer-styles.html PKFHk k dmaterialdjango/static/materialdjango/components/bower_components/iron-doc-viewer/iron-doc-viewer.css/* @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 { @apply(--paper-font-body1); display: block; color: #212121; } :host > header { @apply(--paper-font-headline); margin-bottom: 18px; } [hidden] { display: none !important; } #api { display: flex; align-items: center; } #api header { flex: 1; padding-left: 16px; @apply(--paper-font-subhead); } #api a { @apply(--paper-font-button); cursor: pointer; display: block; padding: 4px 16px; color: var(--paper-grey-800); } /* Common Formatting */ #summary { padding: 4px 0; } #summary marked-element::shadow #content pre { background-color: var(--paper-grey-50); border: solid #e5e5e5; border-width: 1px 0; overflow-x: auto; padding: 12px 24px; font-size: 15px; word-wrap: break-word; } #summary marked-element::shadow #content table { width: 100%; border-collapse: collapse; margin: 12px 0; border-top: 1px solid #e5e5e5; } #summary marked-element::shadow #content tr { border-bottom: 1px solid #e5e5e5; padding: 0 18px; } #summary marked-element::shadow #content td, #summary marked-element::shadow #content th { padding: 6px 12px; } #summary marked-element::shadow #content td:first-child, #summary marked-element::shadow #content th:first-child { padding-left: 24px; } #summary marked-element::shadow #content td:last-child, #summary marked-element::shadow #content th:last-child { padding-right: 24px; } #summary marked-element::shadow #content code { @apply(--paper-font-code1); } #summary marked-element::shadow #content p { padding: 0 24px; } #summary marked-element::shadow #content a { color: var(--paper-indigo-a200); font-weight: 500; text-decoration: none; } #summary marked-element::shadow #content h1, #summary marked-element::shadow #content h2, #summary marked-element::shadow #content h3, #summary marked-element::shadow #content h4, #summary marked-element::shadow #content h5 { padding: 0 18px; } /* Property Sections */ .card { background: white; margin-bottom: 20px; border-radius: 2px; @apply(--shadow-elevation-2dp); } .card > header { padding: 14px 24px; border-bottom: 1px solid #e5e5e5; font-size: 20px; line-height: 28px; font-weight: 400; } iron-doc-property { border-bottom: 1px solid #e5e5e5; } iron-doc-property:last-of-type { border-bottom-width: 0; } /* Private Properties */ iron-doc-property[private] { display: none; } :host(.show-private) iron-doc-property[private] { display: block; } iron-doc-property[configuration] { display: none !important; /* Never. */ } #behaviors > p { border-bottom: 1px solid #e5e5e5; box-sizing: border-box; display: block; padding: 16px 24px; cursor: pointer; } PK1$HOgmaterialdjango/static/materialdjango/components/bower_components/iron-doc-viewer/iron-doc-property.html PK1$HG9Zmaterialdjango/static/materialdjango/components/bower_components/iron-doc-viewer/README.md [![Build Status](https://travis-ci.org/PolymerElements/iron-doc-viewer.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-doc-viewer) _[Demo and API Docs](https://elements.polymer-project.org/elements/iron-doc-viewer)_ ##<iron-doc-viewer> Renders documentation describing an element's API. `iron-doc-viewer` renders element and behavior descriptions as extracted by [Hydrolysis](https://github.com/PolymerLabs/hydrolysis). You can provide them either via binding... ...or by placing the element descriptor in JSON as the text content of an `iron-doc-viewer`: { "is": "awesome-sauce", "properties": [ {"name": "isAwesome", "type": "boolean", "desc": "Is it awesome?"}, ] } However, be aware that due to current limitations in Polymer 0.8, _changes_ to the text content will not be respected, only the initial value will be loaded. If you wish to update the documented element, please set it via the `descriptor` property. ##<iron-doc-property> Renders documentation describing a specific property of an element. Give it a hydrolysis `PropertyDescriptor` (via `descriptor`), and watch it go! PK1$HͲkee[materialdjango/static/materialdjango/components/bower_components/iron-doc-viewer/bower.json{ "name": "iron-doc-viewer", "version": "1.0.12", "authors": [ "The Polymer Authors" ], "description": "Elements for rendering Polymer component documentation.", "keywords": [ "web-component", "web-components", "polymer" ], "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-doc-viewer.git" }, "main": "iron-doc-viewer.html", "license": "http://polymer.github.io/LICENSE.txt", "homepage": "https://github.com/PolymerElements/iron-doc-viewer/", "ignore": [ "/.*", "/tests/" ], "dependencies": { "marked-element": "PolymerElements/marked-element#^1.0.0", "paper-button": "PolymerElements/paper-button#^1.0.0", "paper-styles": "PolymerElements/paper-styles#^1.0.0", "polymer": "Polymer/polymer#^1.1.0", "prism-element": "PolymerElements/prism-element#^1.0.2" }, "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" } } PK1$H0*U`materialdjango/static/materialdjango/components/bower_components/iron-doc-viewer/test/index.html Tests PK1$Hք6jmaterialdjango/static/materialdjango/components/bower_components/iron-doc-viewer/test/iron-doc-viewer.html Tests { "is": "awesome-sauce", "properties": [ {"name": "isAwesome", "type": "boolean", "desc": "Is it awesome?"} ] } PK1$HO&}}`materialdjango/static/materialdjango/components/bower_components/iron-doc-viewer/demo/index.html PKLIHy hmaterialdjango/static/materialdjango/components/bower_components/paper-dialog-scrollable/CONTRIBUTING.md # Polymer Elements ## Guide for Contributors Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: ### Filing Issues **If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: 1. **Who will use the feature?** _“As someone filling out a form…”_ 2. **When will they use the feature?** _“When I enter an invalid value…”_ 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ **If you are filing an issue to report a bug**, please provide: 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: ```markdown The `paper-foo` element causes the page to turn pink when clicked. ## Expected outcome The page stays the same color. ## Actual outcome The page turns pink. ## Steps to reproduce 1. Put a `paper-foo` element in the page. 2. Open the page in a web browser. 3. Click the `paper-foo` element. ``` 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. ### Submitting Pull Requests **Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. When submitting pull requests, please provide: 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: ```markdown (For a single issue) Fixes #20 (For multiple issues) Fixes #32, fixes #40 ``` 2. **A succinct description of the design** used to fix any related issues. For example: ```markdown This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. ``` 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! PK[H dmaterialdjango/static/materialdjango/components/bower_components/paper-dialog-scrollable/.bower.json{ "name": "paper-dialog-scrollable", "version": "1.1.1", "description": "A scrollable area used inside the material design dialog", "authors": [ "The Polymer Authors" ], "keywords": [ "web-components", "polymer", "dialog", "overlay" ], "main": "paper-dialog-scrollable.html", "private": true, "repository": { "type": "git", "url": "git://github.com/PolymerElements/paper-dialog-scrollable" }, "license": "http://polymer.github.io/LICENSE.txt", "homepage": "https://github.com/PolymerElements/paper-dialog-scrollable", "ignore": [], "dependencies": { "iron-flex-layout": "PolymerElements/iron-flex-layout#^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", "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", "paper-dialog": "PolymerElements/paper-dialog#^1.0.0", "test-fixture": "PolymerElements/test-fixture#^1.0.0", "web-component-tester": "^4.0.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" }, "_release": "1.1.1", "_resolution": { "type": "version", "tag": "v1.1.1", "commit": "f3342accc3829c116f4cec75e821e13009831d28" }, "_source": "git://github.com/PolymerElements/paper-dialog-scrollable.git", "_target": "^1.0.0", "_originalSource": "PolymerElements/paper-dialog-scrollable" }PKLIHҮ:cmaterialdjango/static/materialdjango/components/bower_components/paper-dialog-scrollable/index.html paper-dialog-scrollable PKLIHFumaterialdjango/static/materialdjango/components/bower_components/paper-dialog-scrollable/paper-dialog-scrollable.html PKLIH amaterialdjango/static/materialdjango/components/bower_components/paper-dialog-scrollable/hero.svg PKLIH dmaterialdjango/static/materialdjango/components/bower_components/paper-dialog-scrollable/.travis.ymllanguage: node_js sudo: false before_script: - npm install web-component-tester - npm install bower - 'export PATH=$PWD/node_modules/.bin:$PATH' - bower install env: global: - secure: ZIBQZhuVW1goIU6oskcbmWuM594aS96i+kCSX0CAxvoeCGjTkwy/UyjPqFVbFIgaF1QOnKoP4VG8nkQPs6poqxbiBRqc3knH6PQyskamy8RZ9seBRWnY8aLRTFU9VYoWQLQ0zB+zDK7dTHOyu7X3oqbIW5eil/fjkmg6CT0kYCA= - secure: KGH5ZQzoVHzWl9YOoqqVipfoe3/6RbMLzeIcw+7reJEUZrYBVdtA6LVpCfMK7O9BqzYNAQFfNduXB92yHDWnOOwIhUSnxqE2fTjFKUeFj+nc//bcri/eLuET0/zoyE6nvO4k8/OZbj0k8Q3OtlHRFYyX2KefxOd6FdmKe854lw0= node_js: 4 addons: firefox: latest apt: sources: - google-chrome packages: - google-chrome-stable script: - xvfb-run wct - "if [ \"${TRAVIS_PULL_REQUEST}\" = \"false\" ]; then wct -s 'default'; fi" PKLIHZST T bmaterialdjango/static/materialdjango/components/bower_components/paper-dialog-scrollable/README.md [![Build status](https://travis-ci.org/PolymerElements/paper-dialog-scrollable.svg?branch=master)](https://travis-ci.org/PolymerElements/paper-dialog-scrollable) _[Demo and API docs](https://elements.polymer-project.org/elements/paper-dialog-scrollable)_ ##<paper-dialog-scrollable> Material design: [Dialogs](https://www.google.com/design/spec/components/dialogs.html) `paper-dialog-scrollable` implements a scrolling area used in a Material Design dialog. It shows a divider at the top and/or bottom indicating more content, depending on scroll position. Use this together with elements implementing `Polymer.PaperDialogBehavior`. ```html

Header

Lorem ipsum...
OK
``` It shows a top divider after scrolling if it is not the first child in its parent container, indicating there is more content above. It shows a bottom divider if it is scrollable and it is not the last child in its parent container, indicating there is more content below. The bottom divider is hidden if it is scrolled to the bottom. If `paper-dialog-scrollable` is not a direct child of the element implementing `Polymer.PaperDialogBehavior`, remember to set the `dialogElement`: ```html

Header

Sub-header

Lorem ipsum...
OK
``` ### Styling The following custom properties and mixins are available for styling: | Custom property | Description | Default | | --- | --- | --- | | `--paper-dialog-scrollable` | Mixin for the scrollable content | {} | PKLIHKBcmaterialdjango/static/materialdjango/components/bower_components/paper-dialog-scrollable/.gitignorebower_components PKLIH#'cmaterialdjango/static/materialdjango/components/bower_components/paper-dialog-scrollable/bower.json{ "name": "paper-dialog-scrollable", "version": "1.1.1", "description": "A scrollable area used inside the material design dialog", "authors": [ "The Polymer Authors" ], "keywords": [ "web-components", "polymer", "dialog", "overlay" ], "main": "paper-dialog-scrollable.html", "private": true, "repository": { "type": "git", "url": "git://github.com/PolymerElements/paper-dialog-scrollable" }, "license": "http://polymer.github.io/LICENSE.txt", "homepage": "https://github.com/PolymerElements/paper-dialog-scrollable", "ignore": [], "dependencies": { "iron-flex-layout": "PolymerElements/iron-flex-layout#^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", "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", "paper-dialog": "PolymerElements/paper-dialog#^1.0.0", "test-fixture": "PolymerElements/test-fixture#^1.0.0", "web-component-tester": "^4.0.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" } } PKLIHA4Whmaterialdjango/static/materialdjango/components/bower_components/paper-dialog-scrollable/test/index.html paper-dialog tests PKLIHkχ::zmaterialdjango/static/materialdjango/components/bower_components/paper-dialog-scrollable/test/paper-dialog-scrollable.html paper-dialog-scrollable tests PKLIH<;~/~/hmaterialdjango/static/materialdjango/components/bower_components/paper-dialog-scrollable/demo/index.html paper-dialog-scrollable demo

paper-dialog-scrollable shows a divider at the top and/or bottom indicating more content, depending on scroll position

PKZHy cmaterialdjango/static/materialdjango/components/bower_components/paper-header-panel/CONTRIBUTING.md # Polymer Elements ## Guide for Contributors Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: ### Filing Issues **If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: 1. **Who will use the feature?** _“As someone filling out a form…”_ 2. **When will they use the feature?** _“When I enter an invalid value…”_ 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ **If you are filing an issue to report a bug**, please provide: 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: ```markdown The `paper-foo` element causes the page to turn pink when clicked. ## Expected outcome The page stays the same color. ## Actual outcome The page turns pink. ## Steps to reproduce 1. Put a `paper-foo` element in the page. 2. Open the page in a web browser. 3. Click the `paper-foo` element. ``` 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. ### Submitting Pull Requests **Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. When submitting pull requests, please provide: 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: ```markdown (For a single issue) Fixes #20 (For multiple issues) Fixes #32, fixes #40 ``` 2. **A succinct description of the design** used to fix any related issues. For example: ```markdown This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. ``` 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! PK[H Lҍ_materialdjango/static/materialdjango/components/bower_components/paper-header-panel/.bower.json{ "name": "paper-header-panel", "version": "1.1.4", "description": "A header and content wrapper for layout with headers", "authors": [ "The Polymer Authors" ], "keywords": [ "web-components", "polymer", "layout" ], "main": "paper-header-panel.html", "repository": { "type": "git", "url": "git://github.com/PolymerElements/paper-header-panel.git" }, "private": true, "license": "http://polymer.github.io/LICENSE.txt", "homepage": "https://github.com/PolymerElements/paper-header-panel", "ignore": [], "dependencies": { "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", "polymer": "Polymer/polymer#^1.1.0" }, "devDependencies": { "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", "paper-styles": "PolymerElements/paper-styles#^1.0.0", "test-fixture": "PolymerElements/test-fixture#^1.0.0", "web-component-tester": "^4.0.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" }, "_release": "1.1.4", "_resolution": { "type": "version", "tag": "v1.1.4", "commit": "46e0a6218b3f984855dde6e52c2177157801718a" }, "_source": "git://github.com/PolymerElements/paper-header-panel.git", "_target": "^1.0.0", "_originalSource": "PolymerElements/paper-header-panel" }PKZHr??^materialdjango/static/materialdjango/components/bower_components/paper-header-panel/index.html paper-header-panel PKZH2\materialdjango/static/materialdjango/components/bower_components/paper-header-panel/hero.svg PK=Gqjmaterialdjango/static/materialdjango/components/bower_components/paper-header-panel/paper-header-panel.css/** @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 The complete set of authors may be found at http://polymer.github.io/AUTHORS The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS 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 */ :host { --paper-header-panel-shadow: { height: 6px; bottom: -6px; box-shadow: inset 0px 5px 6px -3px rgba(0, 0, 0, 0.4); }; @apply(--layout-vertical); position: relative; height: 100%; } #mainContainer { @apply(--layout-flex); position: relative; overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch; } #mainPanel { @apply(--layout-vertical); @apply(--layout-flex); position: relative; } /* * mode: scroll */ :host([mode=scroll]) #mainContainer { @apply(--paper-header-panel-scroll-container); overflow: visible; } :host([mode=scroll]) { overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch; } /* * mode: cover */ :host([mode=cover]) #mainContainer { @apply(--paper-header-panel-cover-container); position: absolute; top: 0; right: 0; bottom: 0; left: 0; } :host([mode=cover]) #mainPanel { position: static; } /* * mode: standard */ :host([mode=standard]) #mainContainer { @apply(--paper-header-panel-standard-container); } /* * mode: seamed */ :host([mode=seamed]) #mainContainer { @apply(--paper-header-panel-seamed-container); } /* * mode: waterfall */ :host([mode=waterfall]) #mainContainer { @apply(--paper-header-panel-waterfall-container); } /* * mode: waterfall-tall */ :host([mode=waterfall-tall]) #mainContainer { @apply(--paper-header-panel-waterfall-tall-container); } #dropShadow { @apply(--paper-header-panel-shadow); position: absolute; top: 0; left: 0; right: 0; height: 6px; pointer-events: none; -webkit-transition: opacity 0.5s; transition: opacity 0.5s; opacity: 0; } #dropShadow.has-shadow { opacity: 1; } PKZH]k)xGG_materialdjango/static/materialdjango/components/bower_components/paper-header-panel/.travis.ymllanguage: node_js sudo: false before_script: - npm install -g bower polylint web-component-tester - bower install - polylint env: global: - secure: DCpexemWTC3r2xTSmUb1kvE9wNja3vUwljP6RtobsuPY4x40Ht0z/+IEyKazfyiFQq7+yq0WMnxyQL/rCHUAej1Ll6+9DbUj6gvbflJmTpjUqUuQEMvn8oGUMsXrpTINZAU2KPSTno63oqpu2LTB4xG0ATUaLQM3TOOrW1yiLiw= - secure: jXcnHDCLZF7GijBmPylDzY3azCkB1xW0t3nxoYcDWhhn8cq2LYLuv+EnQ7wOEtT2rSc9xlZ11YBYPOHirKIMWJl6coF0pDJnFgtVfCpxylVIv9WQKN1wYW1HIlAaROQIHCVksnweaBJG+tlM6fREHKcT1QTDc5Asp0SoE+Nfpd8= - CXX=g++-4.8 node_js: stable addons: firefox: latest apt: sources: - google-chrome - ubuntu-toolchain-r-test packages: - google-chrome-stable - g++-4.8 sauce_connect: true script: - xvfb-run wct - "if [ \"${TRAVIS_PULL_REQUEST}\" = \"false\" ]; then wct -s 'default'; fi" PKZHa1]materialdjango/static/materialdjango/components/bower_components/paper-header-panel/README.md [![Build status](https://travis-ci.org/PolymerElements/paper-header-panel.svg?branch=master)](https://travis-ci.org/PolymerElements/paper-header-panel) _[Demo and API docs](https://elements.polymer-project.org/elements/paper-header-panel)_ ##<paper-header-panel> `paper-header-panel` contains a header section and a content panel section. __Important:__ The `paper-header-panel` will not display if its parent does not have a height. Using layout classes, you can make the `paper-header-panel` fill the screen ```html
Hello World!
``` Special support is provided for scrolling modes when one uses a paper-toolbar or equivalent for the header section. Example: ```html Header
Content goes here...
``` If you want to use other than `paper-toolbar` for the header, add `paper-header` class to that element. Example: ```html
Header
Content goes here...
``` To have the content fit to the main area, use the `fit` class. ```html
standard
content fits 100% below the header
``` ### Modes Controls header and scrolling behavior. Options are `standard`, `seamed`, `waterfall`, `waterfall-tall`, `scroll` and `cover`. Default is `standard`. | Mode | Description | | --- | --- | | `standard` | The header is a step above the panel. The header will consume the panel at the point of entry, preventing it from passing through to the opposite side. | | `seamed` | The header is presented as seamed with the panel. | | `waterfall` | Similar to standard mode, but header is initially presented as seamed with panel, but then separates to form the step. | | `waterfall-tall` | The header is initially taller (`tall` class is added to the header). As the user scrolls, the header separates (forming an edge) while condensing (`tall` class is removed from the header). | | `scroll` | The header keeps its seam with the panel, and is pushed off screen. | | `cover` | The panel covers the whole `paper-header-panel` including the header. This allows user to style the panel in such a way that the panel is partially covering the header. | Example: ```html
standard
content fits 100% below the header
``` ### Styling To change the shadow that shows up underneath the header: ```css paper-header-panel { --paper-header-panel-shadow: { height: 6px; bottom: -6px; box-shadow: inset 0px 5px 6px -3px rgba(0, 0, 0, 0.4); }; } ``` To change the panel container in different modes: ```css paper-header-panel { --paper-header-panel-standard-container: { border: 1px solid gray; }; --paper-header-panel-seamed-container: { border: 1px solid gray; }; --paper-header-panel-waterfall-container: { border: 1px solid gray; }; --paper-header-panel-waterfall-tall-container: { border: 1px solid gray; }; --paper-header-panel-scroll-container: { border: 1px solid gray; }; --paper-header-panel-cover-container: { border: 1px solid gray; }; } ``` The following custom properties and mixins are available for styling: | Custom property | Description | Default | | --- | --- | --- | | `--paper-header-panel` | Mixin applied to the element | `{}` | | `--paper-header-panel-body` | Mixin applied to the element's body (i.e. everything below the toolbar) | `{}` | | `--paper-header-panel-scroll-container` | Mixin applied to the container when in scroll mode | `{}` | | `--paper-header-panel-cover-container` | Mixin applied to the container when in cover mode | `{}` | | `--paper-header-panel-standard-container` | Mixin applied to the container when in standard mode | `{}` | | `--paper-header-panel-seamed-container` | Mixin applied to the container when in seamed mode | `{}` | | `--paper-header-panel-waterfall-container` | Mixin applied to the container when in waterfall mode | `{}` | | `--paper-header-panel-waterfall-tall-container` | Mixin applied to the container when in tall waterfall mode | `{}` | PKZH%_^materialdjango/static/materialdjango/components/bower_components/paper-header-panel/.gitignorebower_components/ PKZHJe^materialdjango/static/materialdjango/components/bower_components/paper-header-panel/bower.json{ "name": "paper-header-panel", "version": "1.1.4", "description": "A header and content wrapper for layout with headers", "authors": [ "The Polymer Authors" ], "keywords": [ "web-components", "polymer", "layout" ], "main": "paper-header-panel.html", "repository": { "type": "git", "url": "git://github.com/PolymerElements/paper-header-panel.git" }, "private": true, "license": "http://polymer.github.io/LICENSE.txt", "homepage": "https://github.com/PolymerElements/paper-header-panel", "ignore": [], "dependencies": { "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", "polymer": "Polymer/polymer#^1.1.0" }, "devDependencies": { "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", "paper-styles": "PolymerElements/paper-styles#^1.0.0", "test-fixture": "PolymerElements/test-fixture#^1.0.0", "web-component-tester": "^4.0.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" } } PKZH6 ;;kmaterialdjango/static/materialdjango/components/bower_components/paper-header-panel/paper-header-panel.html PKZH]cmaterialdjango/static/materialdjango/components/bower_components/paper-header-panel/test/index.html paper-header-panel tests PKZH/D++cmaterialdjango/static/materialdjango/components/bower_components/paper-header-panel/test/basic.html paper-header-panel tests PKZHؿ5ddcmaterialdjango/static/materialdjango/components/bower_components/paper-header-panel/demo/index.html paper-header-panel demo
standard
seamed
scroll
waterfall
waterfall-tall
waterfall-tall
tall-class: medium-tall
cover
PKRG*fmaterialdjango/static/materialdjango/components/bower_components/iron-validatable-behavior/.bower.json{ "name": "iron-validatable-behavior", "version": "1.0.5", "description": "Provides a behavior for an element that validates user input", "authors": "The Polymer Authors", "keywords": [ "web-components", "polymer", "iron", "behavior" ], "main": [ "iron-validatable-behavior.html" ], "private": true, "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-validatable-behavior.git" }, "license": "http://polymer.github.io/LICENSE.txt", "homepage": "https://github.com/PolymerElements/iron-validatable-behavior", "ignore": [], "dependencies": { "iron-meta": "PolymerElements/iron-meta#^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", "iron-validator-behavior": "PolymerElements/iron-validator-behavior#^1.0.0", "test-fixture": "PolymerElements/test-fixture#^1.0.0", "web-component-tester": "*", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" }, "_release": "1.0.5", "_resolution": { "type": "version", "tag": "v1.0.5", "commit": "c1334b835892b3d7a329a8e6b8741d4be3a8d99c" }, "_source": "git://github.com/PolymerElements/iron-validatable-behavior.git", "_target": "^1.0.0", "_originalSource": "PolymerElements/iron-validatable-behavior" }PKTG%ematerialdjango/static/materialdjango/components/bower_components/iron-validatable-behavior/index.html iron-validatable-behavior PKTGymaterialdjango/static/materialdjango/components/bower_components/iron-validatable-behavior/iron-validatable-behavior.html PKTG%``dmaterialdjango/static/materialdjango/components/bower_components/iron-validatable-behavior/README.md# iron-validatable-behavior Implements an element validated with Polymer.IronValidatorBehavior PKTGKBematerialdjango/static/materialdjango/components/bower_components/iron-validatable-behavior/.gitignorebower_components PKTGE]]ematerialdjango/static/materialdjango/components/bower_components/iron-validatable-behavior/bower.json{ "name": "iron-validatable-behavior", "version": "1.0.5", "description": "Provides a behavior for an element that validates user input", "authors": "The Polymer Authors", "keywords": [ "web-components", "polymer", "iron", "behavior" ], "main": [ "iron-validatable-behavior.html" ], "private": true, "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-validatable-behavior.git" }, "license": "http://polymer.github.io/LICENSE.txt", "homepage": "https://github.com/PolymerElements/iron-validatable-behavior", "ignore": [], "dependencies": { "iron-meta": "PolymerElements/iron-meta#^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", "iron-validator-behavior": "PolymerElements/iron-validator-behavior#^1.0.0", "test-fixture": "PolymerElements/test-fixture#^1.0.0", "web-component-tester": "*", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" } } PKTGUK?  jmaterialdjango/static/materialdjango/components/bower_components/iron-validatable-behavior/test/index.html paper-validatable-behavior tests PKTG$cAA~materialdjango/static/materialdjango/components/bower_components/iron-validatable-behavior/test/iron-validatable-behavior.html iron-validatable-behavior tests PKTGRumaterialdjango/static/materialdjango/components/bower_components/iron-validatable-behavior/test/test-validatable.html PKTGsEEjmaterialdjango/static/materialdjango/components/bower_components/iron-validatable-behavior/demo/index.html iron-validatable-behavior demo

<iron-validatable-behavior>

PKTGYnmaterialdjango/static/materialdjango/components/bower_components/iron-validatable-behavior/demo/cats-only.html PKTGvmaterialdjango/static/materialdjango/components/bower_components/iron-validatable-behavior/demo/validatable-input.html PKG/ ?Smaterialdjango/static/materialdjango/components/bower_components/marked/.bower.json{ "name": "marked", "version": "0.3.5", "homepage": "https://github.com/chjj/marked", "authors": [ "Christopher Jeffrey " ], "description": "A markdown parser built for speed", "keywords": [ "markdown", "markup", "html" ], "main": "lib/marked.js", "license": "MIT", "ignore": [ "**/.*", "node_modules", "bower_components", "app/bower_components", "test", "tests" ], "_release": "0.3.5", "_resolution": { "type": "version", "tag": "v0.3.5", "commit": "88ce4df47c4d994dc1b1df1477a21fb893e11ddc" }, "_source": "git://github.com/chjj/marked.git", "_target": "~0.3.3", "_originalSource": "marked" }PKLFWJHHOmaterialdjango/static/materialdjango/components/bower_components/marked/LICENSECopyright (c) 2011-2014, Christopher Jeffrey (https://github.com/chjj/) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. PKLFiSmaterialdjango/static/materialdjango/components/bower_components/marked/Gulpfile.jsvar gulp = require('gulp'); var uglify = require('gulp-uglify'); var concat = require('gulp-concat'); var preserveFirstComment = function() { var set = false; return function() { if (set) return false; set = true; return true; }; }; gulp.task('uglify', function() { gulp.src('lib/marked.js') .pipe(uglify({preserveComments: preserveFirstComment()})) .pipe(concat('marked.min.js')) .pipe(gulp.dest('.')); }); gulp.task('default', ['uglify']); PKLF!5tPmaterialdjango/static/materialdjango/components/bower_components/marked/Makefileall: @cp lib/marked.js marked.js @uglifyjs --comments '/\*[^\0]+?Copyright[^\0]+?\*/' -o marked.min.js lib/marked.js clean: @rm marked.js @rm marked.min.js bench: @node test --bench .PHONY: clean all PKLFL"9L9LUmaterialdjango/static/materialdjango/components/bower_components/marked/marked.min.js/** * marked - a markdown parser * Copyright (c) 2011-2014, Christopher Jeffrey. (MIT Licensed) * https://github.com/chjj/marked */ (function(){var block={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:noop,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:noop,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,def:/^ *\[([^\]]+)\]: *]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:noop,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/};block.bullet=/(?:[*+-]|\d+\.)/;block.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;block.item=replace(block.item,"gm")(/bull/g,block.bullet)();block.list=replace(block.list)(/bull/g,block.bullet)("hr","\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))")("def","\\n+(?="+block.def.source+")")();block.blockquote=replace(block.blockquote)("def",block.def)();block._tag="(?!(?:"+"a|em|strong|small|s|cite|q|dfn|abbr|data|time|code"+"|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo"+"|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b";block.html=replace(block.html)("comment",//)("closed",/<(tag)[\s\S]+?<\/\1>/)("closing",/])*?>/)(/tag/g,block._tag)();block.paragraph=replace(block.paragraph)("hr",block.hr)("heading",block.heading)("lheading",block.lheading)("blockquote",block.blockquote)("tag","<"+block._tag)("def",block.def)();block.normal=merge({},block);block.gfm=merge({},block.normal,{fences:/^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\s*\1 *(?:\n+|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/});block.gfm.paragraph=replace(block.paragraph)("(?!","(?!"+block.gfm.fences.source.replace("\\1","\\2")+"|"+block.list.source.replace("\\1","\\3")+"|")();block.tables=merge({},block.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/});function Lexer(options){this.tokens=[];this.tokens.links={};this.options=options||marked.defaults;this.rules=block.normal;if(this.options.gfm){if(this.options.tables){this.rules=block.tables}else{this.rules=block.gfm}}}Lexer.rules=block;Lexer.lex=function(src,options){var lexer=new Lexer(options);return lexer.lex(src)};Lexer.prototype.lex=function(src){src=src.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n");return this.token(src,true)};Lexer.prototype.token=function(src,top,bq){var src=src.replace(/^ +$/gm,""),next,loose,cap,bull,b,item,space,i,l;while(src){if(cap=this.rules.newline.exec(src)){src=src.substring(cap[0].length);if(cap[0].length>1){this.tokens.push({type:"space"})}}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);cap=cap[0].replace(/^ {4}/gm,"");this.tokens.push({type:"code",text:!this.options.pedantic?cap.replace(/\n+$/,""):cap});continue}if(cap=this.rules.fences.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"code",lang:cap[2],text:cap[3]||""});continue}if(cap=this.rules.heading.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"heading",depth:cap[1].length,text:cap[2]});continue}if(top&&(cap=this.rules.nptable.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/\n$/,"").split("\n")};for(i=0;i ?/gm,"");this.token(cap,top,true);this.tokens.push({type:"blockquote_end"});continue}if(cap=this.rules.list.exec(src)){src=src.substring(cap[0].length);bull=cap[2];this.tokens.push({type:"list_start",ordered:bull.length>1});cap=cap[0].match(this.rules.item);next=false;l=cap.length;i=0;for(;i1&&b.length>1)){src=cap.slice(i+1).join("\n")+src;i=l-1}}loose=next||/\n\n(?!\s*$)/.test(item);if(i!==l-1){next=item.charAt(item.length-1)==="\n";if(!loose)loose=next}this.tokens.push({type:loose?"loose_item_start":"list_item_start"});this.token(item,false,bq);this.tokens.push({type:"list_item_end"})}this.tokens.push({type:"list_end"});continue}if(cap=this.rules.html.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:!this.options.sanitizer&&(cap[1]==="pre"||cap[1]==="script"||cap[1]==="style"),text:cap[0]});continue}if(!bq&&top&&(cap=this.rules.def.exec(src))){src=src.substring(cap[0].length);this.tokens.links[cap[1].toLowerCase()]={href:cap[2],title:cap[3]};continue}if(top&&(cap=this.rules.table.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/(?: *\| *)?\n$/,"").split("\n")};for(i=0;i])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:noop,tag:/^|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:noop,text:/^[\s\S]+?(?=[\\?(?:\s+['"]([\s\S]*?)['"])?\s*/;inline.link=replace(inline.link)("inside",inline._inside)("href",inline._href)();inline.reflink=replace(inline.reflink)("inside",inline._inside)();inline.normal=merge({},inline);inline.pedantic=merge({},inline.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/});inline.gfm=merge({},inline.normal,{escape:replace(inline.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:replace(inline.text)("]|","~]|")("|","|https?://|")()});inline.breaks=merge({},inline.gfm,{br:replace(inline.br)("{2,}","*")(),text:replace(inline.gfm.text)("{2,}","*")()});function InlineLexer(links,options){this.options=options||marked.defaults;this.links=links;this.rules=inline.normal;this.renderer=this.options.renderer||new Renderer;this.renderer.options=this.options;if(!this.links){throw new Error("Tokens array requires a `links` property.")}if(this.options.gfm){if(this.options.breaks){this.rules=inline.breaks}else{this.rules=inline.gfm}}else if(this.options.pedantic){this.rules=inline.pedantic}}InlineLexer.rules=inline;InlineLexer.output=function(src,links,options){var inline=new InlineLexer(links,options);return inline.output(src)};InlineLexer.prototype.output=function(src){var out="",link,text,href,cap;while(src){if(cap=this.rules.escape.exec(src)){src=src.substring(cap[0].length);out+=cap[1];continue}if(cap=this.rules.autolink.exec(src)){src=src.substring(cap[0].length);if(cap[2]==="@"){text=cap[1].charAt(6)===":"?this.mangle(cap[1].substring(7)):this.mangle(cap[1]);href=this.mangle("mailto:")+text}else{text=escape(cap[1]);href=text}out+=this.renderer.link(href,null,text);continue}if(!this.inLink&&(cap=this.rules.url.exec(src))){src=src.substring(cap[0].length);text=escape(cap[1]);href=text;out+=this.renderer.link(href,null,text);continue}if(cap=this.rules.tag.exec(src)){if(!this.inLink&&/^/i.test(cap[0])){this.inLink=false}src=src.substring(cap[0].length);out+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(cap[0]):escape(cap[0]):cap[0];continue}if(cap=this.rules.link.exec(src)){src=src.substring(cap[0].length);this.inLink=true;out+=this.outputLink(cap,{href:cap[2],title:cap[3]});this.inLink=false;continue}if((cap=this.rules.reflink.exec(src))||(cap=this.rules.nolink.exec(src))){src=src.substring(cap[0].length);link=(cap[2]||cap[1]).replace(/\s+/g," ");link=this.links[link.toLowerCase()];if(!link||!link.href){out+=cap[0].charAt(0);src=cap[0].substring(1)+src;continue}this.inLink=true;out+=this.outputLink(cap,link);this.inLink=false;continue}if(cap=this.rules.strong.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.strong(this.output(cap[2]||cap[1]));continue}if(cap=this.rules.em.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.em(this.output(cap[2]||cap[1]));continue}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.codespan(escape(cap[2],true));continue}if(cap=this.rules.br.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.br();continue}if(cap=this.rules.del.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.del(this.output(cap[1]));continue}if(cap=this.rules.text.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.text(escape(this.smartypants(cap[0])));continue}if(src){throw new Error("Infinite loop on byte: "+src.charCodeAt(0))}}return out};InlineLexer.prototype.outputLink=function(cap,link){var href=escape(link.href),title=link.title?escape(link.title):null;return cap[0].charAt(0)!=="!"?this.renderer.link(href,title,this.output(cap[1])):this.renderer.image(href,title,escape(cap[1]))};InlineLexer.prototype.smartypants=function(text){if(!this.options.smartypants)return text;return text.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…")};InlineLexer.prototype.mangle=function(text){if(!this.options.mangle)return text;var out="",l=text.length,i=0,ch;for(;i.5){ch="x"+ch.toString(16)}out+="&#"+ch+";"}return out};function Renderer(options){this.options=options||{}}Renderer.prototype.code=function(code,lang,escaped){if(this.options.highlight){var out=this.options.highlight(code,lang);if(out!=null&&out!==code){escaped=true;code=out}}if(!lang){return"
"+(escaped?code:escape(code,true))+"\n
"}return'
'+(escaped?code:escape(code,true))+"\n
\n"};Renderer.prototype.blockquote=function(quote){return"
\n"+quote+"
\n"};Renderer.prototype.html=function(html){return html};Renderer.prototype.heading=function(text,level,raw){return"'+text+"\n"};Renderer.prototype.hr=function(){return this.options.xhtml?"
\n":"
\n"};Renderer.prototype.list=function(body,ordered){var type=ordered?"ol":"ul";return"<"+type+">\n"+body+"\n"};Renderer.prototype.listitem=function(text){return"
  • "+text+"
  • \n"};Renderer.prototype.paragraph=function(text){return"

    "+text+"

    \n"};Renderer.prototype.table=function(header,body){return"\n"+"\n"+header+"\n"+"\n"+body+"\n"+"
    \n"};Renderer.prototype.tablerow=function(content){return"\n"+content+"\n"};Renderer.prototype.tablecell=function(content,flags){var type=flags.header?"th":"td";var tag=flags.align?"<"+type+' style="text-align:'+flags.align+'">':"<"+type+">";return tag+content+"\n"};Renderer.prototype.strong=function(text){return""+text+""};Renderer.prototype.em=function(text){return""+text+""};Renderer.prototype.codespan=function(text){return""+text+""};Renderer.prototype.br=function(){return this.options.xhtml?"
    ":"
    "};Renderer.prototype.del=function(text){return""+text+""};Renderer.prototype.link=function(href,title,text){if(this.options.sanitize){try{var prot=decodeURIComponent(unescape(href)).replace(/[^\w:]/g,"").toLowerCase()}catch(e){return""}if(prot.indexOf("javascript:")===0||prot.indexOf("vbscript:")===0){return""}}var out='
    ";return out};Renderer.prototype.image=function(href,title,text){var out=''+text+'":">";return out};Renderer.prototype.text=function(text){return text};function Parser(options){this.tokens=[];this.token=null;this.options=options||marked.defaults;this.options.renderer=this.options.renderer||new Renderer;this.renderer=this.options.renderer;this.renderer.options=this.options}Parser.parse=function(src,options,renderer){var parser=new Parser(options,renderer);return parser.parse(src)};Parser.prototype.parse=function(src){this.inline=new InlineLexer(src.links,this.options,this.renderer);this.tokens=src.reverse();var out="";while(this.next()){out+=this.tok()}return out};Parser.prototype.next=function(){return this.token=this.tokens.pop()};Parser.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0};Parser.prototype.parseText=function(){var body=this.token.text;while(this.peek().type==="text"){body+="\n"+this.next().text}return this.inline.output(body)};Parser.prototype.tok=function(){switch(this.token.type){case"space":{return""}case"hr":{return this.renderer.hr()}case"heading":{return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,this.token.text)}case"code":{return this.renderer.code(this.token.text,this.token.lang,this.token.escaped)}case"table":{var header="",body="",i,row,cell,flags,j;cell="";for(i=0;i/g,">").replace(/"/g,""").replace(/'/g,"'")}function unescape(html){return html.replace(/&([#\w]+);/g,function(_,n){n=n.toLowerCase();if(n==="colon")return":";if(n.charAt(0)==="#"){return n.charAt(1)==="x"?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1))}return""})}function replace(regex,opt){regex=regex.source;opt=opt||"";return function self(name,val){if(!name)return new RegExp(regex,opt);val=val.source||val;val=val.replace(/(^|[^\[])\^/g,"$1");regex=regex.replace(name,val);return self}}function noop(){}noop.exec=noop;function merge(obj){var i=1,target,key;for(;iAn error occured:

    "+escape(e.message+"",true)+"
    "}throw e}}marked.options=marked.setOptions=function(opt){merge(marked.defaults,opt);return marked};marked.defaults={gfm:true,tables:true,breaks:false,pedantic:false,sanitize:false,sanitizer:null,mangle:true,smartLists:false,silent:false,highlight:null,langPrefix:"lang-",smartypants:false,headerPrefix:"",renderer:new Renderer,xhtml:false};marked.Parser=Parser;marked.parser=Parser.parse;marked.Renderer=Renderer;marked.Lexer=Lexer;marked.lexer=Lexer.lex;marked.InlineLexer=InlineLexer;marked.inlineLexer=InlineLexer.output;marked.parse=marked;if(typeof module!=="undefined"&&typeof exports==="object"){module.exports=marked}else if(typeof define==="function"&&define.amd){define(function(){return marked})}else{this.marked=marked}}).call(function(){return this||(typeof window!=="undefined"?window:global)}());PKLFərTmaterialdjango/static/materialdjango/components/bower_components/marked/package.json{ "name": "marked", "description": "A markdown parser built for speed", "author": "Christopher Jeffrey", "version": "0.3.5", "main": "./lib/marked.js", "bin": "./bin/marked", "man": "./man/marked.1", "preferGlobal": true, "repository": "git://github.com/chjj/marked.git", "homepage": "https://github.com/chjj/marked", "bugs": { "url": "http://github.com/chjj/marked/issues" }, "license": "MIT", "keywords": ["markdown", "markup", "html"], "tags": ["markdown", "markup", "html"], "devDependencies": { "markdown": "*", "showdown": "*", "gulp": "^3.8.11", "gulp-uglify": "^1.1.0", "gulp-concat": "^2.5.2" }, "scripts": { "test": "node test", "bench": "node test --bench" } } PKLFڅZ"Vmaterialdjango/static/materialdjango/components/bower_components/marked/component.json{ "name": "marked", "version": "0.3.4", "repo": "chjj/marked", "description": "A markdown parser built for speed", "keywords": ["markdown", "markup", "html"], "scripts": ["lib/marked.js"], "main": "lib/marked.js", "license": "MIT" } PKLF;N̻**Pmaterialdjango/static/materialdjango/components/bower_components/marked/index.jsmodule.exports = require('./lib/marked'); PKLFw-&-&Qmaterialdjango/static/materialdjango/components/bower_components/marked/README.md# marked > A full-featured markdown parser and compiler, written in JavaScript. Built > for speed. [![NPM version](https://badge.fury.io/js/marked.png)][badge] ## Install ``` bash npm install marked --save ``` ## Usage Minimal usage: ```js var marked = require('marked'); console.log(marked('I am using __markdown__.')); // Outputs:

    I am using markdown.

    ``` Example setting options with default values: ```js var marked = require('marked'); marked.setOptions({ renderer: new marked.Renderer(), gfm: true, tables: true, breaks: false, pedantic: false, sanitize: true, smartLists: true, smartypants: false }); console.log(marked('I am using __markdown__.')); ``` ### Browser ```html Marked in the browser
    ``` ## marked(markdownString [,options] [,callback]) ### markdownString Type: `string` String of markdown source to be compiled. ### options Type: `object` Hash of options. Can also be set using the `marked.setOptions` method as seen above. ### callback Type: `function` Function called when the `markdownString` has been fully parsed when using async highlighting. If the `options` argument is omitted, this can be used as the second argument. ## Options ### highlight Type: `function` A function to highlight code blocks. The first example below uses async highlighting with [node-pygmentize-bundled][pygmentize], and the second is a synchronous example using [highlight.js][highlight]: ```js var marked = require('marked'); var markdownString = '```js\n console.log("hello"); \n```'; // Async highlighting with pygmentize-bundled marked.setOptions({ highlight: function (code, lang, callback) { require('pygmentize-bundled')({ lang: lang, format: 'html' }, code, function (err, result) { callback(err, result.toString()); }); } }); // Using async version of marked marked(markdownString, function (err, content) { if (err) throw err; console.log(content); }); // Synchronous highlighting with highlight.js marked.setOptions({ highlight: function (code) { return require('highlight.js').highlightAuto(code).value; } }); console.log(marked(markdownString)); ``` #### highlight arguments `code` Type: `string` The section of code to pass to the highlighter. `lang` Type: `string` The programming language specified in the code block. `callback` Type: `function` The callback function to call when using an async highlighter. ### renderer Type: `object` Default: `new Renderer()` An object containing functions to render tokens to HTML. #### Overriding renderer methods The renderer option allows you to render tokens in a custom manner. Here is an example of overriding the default heading token rendering by adding an embedded anchor tag like on GitHub: ```javascript var marked = require('marked'); var renderer = new marked.Renderer(); renderer.heading = function (text, level) { var escapedText = text.toLowerCase().replace(/[^\w]+/g, '-'); return '
    ' + text + ''; }, console.log(marked('# heading+', { renderer: renderer })); ``` This code will output the following HTML: ```html

    heading+

    ``` #### Block level renderer methods - code(*string* code, *string* language) - blockquote(*string* quote) - html(*string* html) - heading(*string* text, *number* level) - hr() - list(*string* body, *boolean* ordered) - listitem(*string* text) - paragraph(*string* text) - table(*string* header, *string* body) - tablerow(*string* content) - tablecell(*string* content, *object* flags) `flags` has the following properties: ```js { header: true || false, align: 'center' || 'left' || 'right' } ``` #### Inline level renderer methods - strong(*string* text) - em(*string* text) - codespan(*string* code) - br() - del(*string* text) - link(*string* href, *string* title, *string* text) - image(*string* href, *string* title, *string* text) ### gfm Type: `boolean` Default: `true` Enable [GitHub flavored markdown][gfm]. ### tables Type: `boolean` Default: `true` Enable GFM [tables][tables]. This option requires the `gfm` option to be true. ### breaks Type: `boolean` Default: `false` Enable GFM [line breaks][breaks]. This option requires the `gfm` option to be true. ### pedantic Type: `boolean` Default: `false` Conform to obscure parts of `markdown.pl` as much as possible. Don't fix any of the original markdown bugs or poor behavior. ### sanitize Type: `boolean` Default: `false` Sanitize the output. Ignore any HTML that has been input. ### smartLists Type: `boolean` Default: `true` Use smarter list behavior than the original markdown. May eventually be default with the old behavior moved into `pedantic`. ### smartypants Type: `boolean` Default: `false` Use "smart" typograhic punctuation for things like quotes and dashes. ## Access to lexer and parser You also have direct access to the lexer and parser if you so desire. ``` js var tokens = marked.lexer(text, options); console.log(marked.parser(tokens)); ``` ``` js var lexer = new marked.Lexer(options); var tokens = lexer.lex(text); console.log(tokens); console.log(lexer.rules); ``` ## CLI ``` bash $ marked -o hello.html hello world ^D $ cat hello.html

    hello world

    ``` ## Philosophy behind marked The point of marked was to create a markdown compiler where it was possible to frequently parse huge chunks of markdown without having to worry about caching the compiled output somehow...or blocking for an unnecesarily long time. marked is very concise and still implements all markdown features. It is also now fully compatible with the client-side. marked more or less passes the official markdown test suite in its entirety. This is important because a surprising number of markdown compilers cannot pass more than a few tests. It was very difficult to get marked as compliant as it is. It could have cut corners in several areas for the sake of performance, but did not in order to be exactly what you expect in terms of a markdown rendering. In fact, this is why marked could be considered at a disadvantage in the benchmarks above. Along with implementing every markdown feature, marked also implements [GFM features][gfmf]. ## Benchmarks node v0.8.x ``` bash $ node test --bench marked completed in 3411ms. marked (gfm) completed in 3727ms. marked (pedantic) completed in 3201ms. robotskirt completed in 808ms. showdown (reuse converter) completed in 11954ms. showdown (new converter) completed in 17774ms. markdown-js completed in 17191ms. ``` __Marked is now faster than Discount, which is written in C.__ For those feeling skeptical: These benchmarks run the entire markdown test suite 1000 times. The test suite tests every feature. It doesn't cater to specific aspects. ### Pro level You also have direct access to the lexer and parser if you so desire. ``` js var tokens = marked.lexer(text, options); console.log(marked.parser(tokens)); ``` ``` js var lexer = new marked.Lexer(options); var tokens = lexer.lex(text); console.log(tokens); console.log(lexer.rules); ``` ``` bash $ node > require('marked').lexer('> i am using marked.') [ { type: 'blockquote_start' }, { type: 'paragraph', text: 'i am using marked.' }, { type: 'blockquote_end' }, links: {} ] ``` ## Running Tests & Contributing If you want to submit a pull request, make sure your changes pass the test suite. If you're adding a new feature, be sure to add your own test. The marked test suite is set up slightly strangely: `test/new` is for all tests that are not part of the original markdown.pl test suite (this is where your test should go if you make one). `test/original` is only for the original markdown.pl tests. `test/tests` houses both types of tests after they have been combined and moved/generated by running `node test --fix` or `marked --test --fix`. In other words, if you have a test to add, add it to `test/new/` and then regenerate the tests with `node test --fix`. Commit the result. If your test uses a certain feature, for example, maybe it assumes GFM is *not* enabled, you can add `.nogfm` to the filename. So, `my-test.text` becomes `my-test.nogfm.text`. You can do this with any marked option. Say you want line breaks and smartypants enabled, your filename should be: `my-test.breaks.smartypants.text`. To run the tests: ``` bash cd marked/ node test ``` ### Contribution and License Agreement If you contribute code to this project, you are implicitly allowing your code to be distributed under the MIT license. You are also implicitly verifying that all code is your original work. `` ## License Copyright (c) 2011-2014, Christopher Jeffrey. (MIT License) See LICENSE for more info. [gfm]: https://help.github.com/articles/github-flavored-markdown [gfmf]: http://github.github.com/github-flavored-markdown/ [pygmentize]: https://github.com/rvagg/node-pygmentize-bundled [highlight]: https://github.com/isagalaev/highlight.js [badge]: http://badge.fury.io/js/marked [tables]: https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#wiki-tables [breaks]: https://help.github.com/articles/github-flavored-markdown#newlines PKLF Rmaterialdjango/static/materialdjango/components/bower_components/marked/bower.json{ "name": "marked", "version": "0.3.4", "homepage": "https://github.com/chjj/marked", "authors": [ "Christopher Jeffrey " ], "description": "A markdown parser built for speed", "keywords": [ "markdown", "markup", "html" ], "main": "lib/marked.js", "license": "MIT", "ignore": [ "**/.*", "node_modules", "bower_components", "app/bower_components", "test", "tests" ] } PKLFqTmaterialdjango/static/materialdjango/components/bower_components/marked/man/marked.1.ds q \N'34' .TH marked 1 "2014-01-31" "v0.3.1" "marked.js" .SH NAME marked \- a javascript markdown parser .SH SYNOPSIS .B marked [\-o \fI\fP] [\-i \fI\fP] [\-\-help] [\-\-tokens] [\-\-pedantic] [\-\-gfm] [\-\-breaks] [\-\-tables] [\-\-sanitize] [\-\-smart\-lists] [\-\-lang\-prefix \fI\fP] [\-\-no\-etc...] [\-\-silent] [\fIfilename\fP] .SH DESCRIPTION .B marked is a full-featured javascript markdown parser, built for speed. It also includes multiple GFM features. .SH EXAMPLES .TP cat in.md | marked > out.html .TP echo "hello *world*" | marked .TP marked \-o out.html in.md \-\-gfm .TP marked \-\-output="hello world.html" \-i in.md \-\-no-breaks .SH OPTIONS .TP .BI \-o,\ \-\-output\ [\fIoutput\fP] Specify file output. If none is specified, write to stdout. .TP .BI \-i,\ \-\-input\ [\fIinput\fP] Specify file input, otherwise use last argument as input file. If no input file is specified, read from stdin. .TP .BI \-t,\ \-\-tokens Output a token stream instead of html. .TP .BI \-\-pedantic Conform to obscure parts of markdown.pl as much as possible. Don't fix original markdown bugs. .TP .BI \-\-gfm Enable github flavored markdown. .TP .BI \-\-breaks Enable GFM line breaks. Only works with the gfm option. .TP .BI \-\-tables Enable GFM tables. Only works with the gfm option. .TP .BI \-\-sanitize Sanitize output. Ignore any HTML input. .TP .BI \-\-smart\-lists Use smarter list behavior than the original markdown. .TP .BI \-\-lang\-prefix\ [\fIprefix\fP] Set the prefix for code block classes. .TP .BI \-\-mangle Mangle email addresses. .TP .BI \-\-no\-sanitize,\ \-no-etc... The inverse of any of the marked options above. .TP .BI \-\-silent Silence error output. .TP .BI \-h,\ \-\-help Display help information. .SH CONFIGURATION For configuring and running programmatically. .B Example require('marked')('*foo*', { gfm: true }); .SH BUGS Please report any bugs to https://github.com/chjj/marked. .SH LICENSE Copyright (c) 2011-2014, Christopher Jeffrey (MIT License). .SH "SEE ALSO" .BR markdown(1), .BR node.js(1) PKLF3k Rmaterialdjango/static/materialdjango/components/bower_components/marked/bin/marked#!/usr/bin/env node /** * Marked CLI * Copyright (c) 2011-2013, Christopher Jeffrey (MIT License) */ var fs = require('fs') , util = require('util') , marked = require('../'); /** * Man Page */ function help() { var spawn = require('child_process').spawn; var options = { cwd: process.cwd(), env: process.env, setsid: false, customFds: [0, 1, 2] }; spawn('man', [__dirname + '/../man/marked.1'], options); } /** * Main */ function main(argv, callback) { var files = [] , options = {} , input , output , arg , tokens , opt; function getarg() { var arg = argv.shift(); if (arg.indexOf('--') === 0) { // e.g. --opt arg = arg.split('='); if (arg.length > 1) { // e.g. --opt=val argv.unshift(arg.slice(1).join('=')); } arg = arg[0]; } else if (arg[0] === '-') { if (arg.length > 2) { // e.g. -abc argv = arg.substring(1).split('').map(function(ch) { return '-' + ch; }).concat(argv); arg = argv.shift(); } else { // e.g. -a } } else { // e.g. foo } return arg; } while (argv.length) { arg = getarg(); switch (arg) { case '--test': return require('../test').main(process.argv.slice()); case '-o': case '--output': output = argv.shift(); break; case '-i': case '--input': input = argv.shift(); break; case '-t': case '--tokens': tokens = true; break; case '-h': case '--help': return help(); default: if (arg.indexOf('--') === 0) { opt = camelize(arg.replace(/^--(no-)?/, '')); if (!marked.defaults.hasOwnProperty(opt)) { continue; } if (arg.indexOf('--no-') === 0) { options[opt] = typeof marked.defaults[opt] !== 'boolean' ? null : false; } else { options[opt] = typeof marked.defaults[opt] !== 'boolean' ? argv.shift() : true; } } else { files.push(arg); } break; } } function getData(callback) { if (!input) { if (files.length <= 2) { return getStdin(callback); } input = files.pop(); } return fs.readFile(input, 'utf8', callback); } return getData(function(err, data) { if (err) return callback(err); data = tokens ? JSON.stringify(marked.lexer(data, options), null, 2) : marked(data, options); if (!output) { process.stdout.write(data + '\n'); return callback(); } return fs.writeFile(output, data, callback); }); } /** * Helpers */ function getStdin(callback) { var stdin = process.stdin , buff = ''; stdin.setEncoding('utf8'); stdin.on('data', function(data) { buff += data; }); stdin.on('error', function(err) { return callback(err); }); stdin.on('end', function() { return callback(null, buff); }); try { stdin.resume(); } catch (e) { callback(e); } } function camelize(text) { return text.replace(/(\w)-(\w)/g, function(_, a, b) { return a + b.toUpperCase(); }); } /** * Expose / Entry Point */ if (!module.parent) { process.title = 'marked'; main(process.argv.slice(), function(err, code) { if (err) throw err; return process.exit(code || 0); }); } else { module.exports = main; } PKLF3# ooUmaterialdjango/static/materialdjango/components/bower_components/marked/lib/marked.js/** * marked - a markdown parser * Copyright (c) 2011-2014, Christopher Jeffrey. (MIT Licensed) * https://github.com/chjj/marked */ ;(function() { /** * Block-Level Grammar */ var block = { newline: /^\n+/, code: /^( {4}[^\n]+\n*)+/, fences: noop, hr: /^( *[-*_]){3,} *(?:\n+|$)/, heading: /^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/, nptable: noop, lheading: /^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/, blockquote: /^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/, list: /^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/, html: /^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/, def: /^ *\[([^\]]+)\]: *]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/, table: noop, paragraph: /^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/, text: /^[^\n]+/ }; block.bullet = /(?:[*+-]|\d+\.)/; block.item = /^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/; block.item = replace(block.item, 'gm') (/bull/g, block.bullet) (); block.list = replace(block.list) (/bull/g, block.bullet) ('hr', '\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))') ('def', '\\n+(?=' + block.def.source + ')') (); block.blockquote = replace(block.blockquote) ('def', block.def) (); block._tag = '(?!(?:' + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code' + '|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo' + '|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b'; block.html = replace(block.html) ('comment', //) ('closed', /<(tag)[\s\S]+?<\/\1>/) ('closing', /])*?>/) (/tag/g, block._tag) (); block.paragraph = replace(block.paragraph) ('hr', block.hr) ('heading', block.heading) ('lheading', block.lheading) ('blockquote', block.blockquote) ('tag', '<' + block._tag) ('def', block.def) (); /** * Normal Block Grammar */ block.normal = merge({}, block); /** * GFM Block Grammar */ block.gfm = merge({}, block.normal, { fences: /^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\s*\1 *(?:\n+|$)/, paragraph: /^/, heading: /^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/ }); block.gfm.paragraph = replace(block.paragraph) ('(?!', '(?!' + block.gfm.fences.source.replace('\\1', '\\2') + '|' + block.list.source.replace('\\1', '\\3') + '|') (); /** * GFM + Tables Block Grammar */ block.tables = merge({}, block.gfm, { nptable: /^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/, table: /^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/ }); /** * Block Lexer */ function Lexer(options) { this.tokens = []; this.tokens.links = {}; this.options = options || marked.defaults; this.rules = block.normal; if (this.options.gfm) { if (this.options.tables) { this.rules = block.tables; } else { this.rules = block.gfm; } } } /** * Expose Block Rules */ Lexer.rules = block; /** * Static Lex Method */ Lexer.lex = function(src, options) { var lexer = new Lexer(options); return lexer.lex(src); }; /** * Preprocessing */ Lexer.prototype.lex = function(src) { src = src .replace(/\r\n|\r/g, '\n') .replace(/\t/g, ' ') .replace(/\u00a0/g, ' ') .replace(/\u2424/g, '\n'); return this.token(src, true); }; /** * Lexing */ Lexer.prototype.token = function(src, top, bq) { var src = src.replace(/^ +$/gm, '') , next , loose , cap , bull , b , item , space , i , l; while (src) { // newline if (cap = this.rules.newline.exec(src)) { src = src.substring(cap[0].length); if (cap[0].length > 1) { this.tokens.push({ type: 'space' }); } } // code if (cap = this.rules.code.exec(src)) { src = src.substring(cap[0].length); cap = cap[0].replace(/^ {4}/gm, ''); this.tokens.push({ type: 'code', text: !this.options.pedantic ? cap.replace(/\n+$/, '') : cap }); continue; } // fences (gfm) if (cap = this.rules.fences.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({ type: 'code', lang: cap[2], text: cap[3] || '' }); continue; } // heading if (cap = this.rules.heading.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({ type: 'heading', depth: cap[1].length, text: cap[2] }); continue; } // table no leading pipe (gfm) if (top && (cap = this.rules.nptable.exec(src))) { src = src.substring(cap[0].length); item = { type: 'table', header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */), align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */), cells: cap[3].replace(/\n$/, '').split('\n') }; for (i = 0; i < item.align.length; i++) { if (/^ *-+: *$/.test(item.align[i])) { item.align[i] = 'right'; } else if (/^ *:-+: *$/.test(item.align[i])) { item.align[i] = 'center'; } else if (/^ *:-+ *$/.test(item.align[i])) { item.align[i] = 'left'; } else { item.align[i] = null; } } for (i = 0; i < item.cells.length; i++) { item.cells[i] = item.cells[i].split(/ *\| */); } this.tokens.push(item); continue; } // lheading if (cap = this.rules.lheading.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({ type: 'heading', depth: cap[2] === '=' ? 1 : 2, text: cap[1] }); continue; } // hr if (cap = this.rules.hr.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({ type: 'hr' }); continue; } // blockquote if (cap = this.rules.blockquote.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({ type: 'blockquote_start' }); cap = cap[0].replace(/^ *> ?/gm, ''); // Pass `top` to keep the current // "toplevel" state. This is exactly // how markdown.pl works. this.token(cap, top, true); this.tokens.push({ type: 'blockquote_end' }); continue; } // list if (cap = this.rules.list.exec(src)) { src = src.substring(cap[0].length); bull = cap[2]; this.tokens.push({ type: 'list_start', ordered: bull.length > 1 }); // Get each top-level item. cap = cap[0].match(this.rules.item); next = false; l = cap.length; i = 0; for (; i < l; i++) { item = cap[i]; // Remove the list item's bullet // so it is seen as the next token. space = item.length; item = item.replace(/^ *([*+-]|\d+\.) +/, ''); // Outdent whatever the // list item contains. Hacky. if (~item.indexOf('\n ')) { space -= item.length; item = !this.options.pedantic ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '') : item.replace(/^ {1,4}/gm, ''); } // Determine whether the next list item belongs here. // Backpedal if it does not belong in this list. if (this.options.smartLists && i !== l - 1) { b = block.bullet.exec(cap[i + 1])[0]; if (bull !== b && !(bull.length > 1 && b.length > 1)) { src = cap.slice(i + 1).join('\n') + src; i = l - 1; } } // Determine whether item is loose or not. // Use: /(^|\n)(?! )[^\n]+\n\n(?!\s*$)/ // for discount behavior. loose = next || /\n\n(?!\s*$)/.test(item); if (i !== l - 1) { next = item.charAt(item.length - 1) === '\n'; if (!loose) loose = next; } this.tokens.push({ type: loose ? 'loose_item_start' : 'list_item_start' }); // Recurse. this.token(item, false, bq); this.tokens.push({ type: 'list_item_end' }); } this.tokens.push({ type: 'list_end' }); continue; } // html if (cap = this.rules.html.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({ type: this.options.sanitize ? 'paragraph' : 'html', pre: !this.options.sanitizer && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'), text: cap[0] }); continue; } // def if ((!bq && top) && (cap = this.rules.def.exec(src))) { src = src.substring(cap[0].length); this.tokens.links[cap[1].toLowerCase()] = { href: cap[2], title: cap[3] }; continue; } // table (gfm) if (top && (cap = this.rules.table.exec(src))) { src = src.substring(cap[0].length); item = { type: 'table', header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */), align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */), cells: cap[3].replace(/(?: *\| *)?\n$/, '').split('\n') }; for (i = 0; i < item.align.length; i++) { if (/^ *-+: *$/.test(item.align[i])) { item.align[i] = 'right'; } else if (/^ *:-+: *$/.test(item.align[i])) { item.align[i] = 'center'; } else if (/^ *:-+ *$/.test(item.align[i])) { item.align[i] = 'left'; } else { item.align[i] = null; } } for (i = 0; i < item.cells.length; i++) { item.cells[i] = item.cells[i] .replace(/^ *\| *| *\| *$/g, '') .split(/ *\| */); } this.tokens.push(item); continue; } // top-level paragraph if (top && (cap = this.rules.paragraph.exec(src))) { src = src.substring(cap[0].length); this.tokens.push({ type: 'paragraph', text: cap[1].charAt(cap[1].length - 1) === '\n' ? cap[1].slice(0, -1) : cap[1] }); continue; } // text if (cap = this.rules.text.exec(src)) { // Top-level should never reach here. src = src.substring(cap[0].length); this.tokens.push({ type: 'text', text: cap[0] }); continue; } if (src) { throw new Error('Infinite loop on byte: ' + src.charCodeAt(0)); } } return this.tokens; }; /** * Inline-Level Grammar */ var inline = { escape: /^\\([\\`*{}\[\]()#+\-.!_>])/, autolink: /^<([^ >]+(@|:\/)[^ >]+)>/, url: noop, tag: /^|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/, link: /^!?\[(inside)\]\(href\)/, reflink: /^!?\[(inside)\]\s*\[([^\]]*)\]/, nolink: /^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/, strong: /^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/, em: /^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/, code: /^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/, br: /^ {2,}\n(?!\s*$)/, del: noop, text: /^[\s\S]+?(?=[\\?(?:\s+['"]([\s\S]*?)['"])?\s*/; inline.link = replace(inline.link) ('inside', inline._inside) ('href', inline._href) (); inline.reflink = replace(inline.reflink) ('inside', inline._inside) (); /** * Normal Inline Grammar */ inline.normal = merge({}, inline); /** * Pedantic Inline Grammar */ inline.pedantic = merge({}, inline.normal, { strong: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/, em: /^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/ }); /** * GFM Inline Grammar */ inline.gfm = merge({}, inline.normal, { escape: replace(inline.escape)('])', '~|])')(), url: /^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/, del: /^~~(?=\S)([\s\S]*?\S)~~/, text: replace(inline.text) (']|', '~]|') ('|', '|https?://|') () }); /** * GFM + Line Breaks Inline Grammar */ inline.breaks = merge({}, inline.gfm, { br: replace(inline.br)('{2,}', '*')(), text: replace(inline.gfm.text)('{2,}', '*')() }); /** * Inline Lexer & Compiler */ function InlineLexer(links, options) { this.options = options || marked.defaults; this.links = links; this.rules = inline.normal; this.renderer = this.options.renderer || new Renderer; this.renderer.options = this.options; if (!this.links) { throw new Error('Tokens array requires a `links` property.'); } if (this.options.gfm) { if (this.options.breaks) { this.rules = inline.breaks; } else { this.rules = inline.gfm; } } else if (this.options.pedantic) { this.rules = inline.pedantic; } } /** * Expose Inline Rules */ InlineLexer.rules = inline; /** * Static Lexing/Compiling Method */ InlineLexer.output = function(src, links, options) { var inline = new InlineLexer(links, options); return inline.output(src); }; /** * Lexing/Compiling */ InlineLexer.prototype.output = function(src) { var out = '' , link , text , href , cap; while (src) { // escape if (cap = this.rules.escape.exec(src)) { src = src.substring(cap[0].length); out += cap[1]; continue; } // autolink if (cap = this.rules.autolink.exec(src)) { src = src.substring(cap[0].length); if (cap[2] === '@') { text = cap[1].charAt(6) === ':' ? this.mangle(cap[1].substring(7)) : this.mangle(cap[1]); href = this.mangle('mailto:') + text; } else { text = escape(cap[1]); href = text; } out += this.renderer.link(href, null, text); continue; } // url (gfm) if (!this.inLink && (cap = this.rules.url.exec(src))) { src = src.substring(cap[0].length); text = escape(cap[1]); href = text; out += this.renderer.link(href, null, text); continue; } // tag if (cap = this.rules.tag.exec(src)) { if (!this.inLink && /^/i.test(cap[0])) { this.inLink = false; } src = src.substring(cap[0].length); out += this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0]) : cap[0] continue; } // link if (cap = this.rules.link.exec(src)) { src = src.substring(cap[0].length); this.inLink = true; out += this.outputLink(cap, { href: cap[2], title: cap[3] }); this.inLink = false; continue; } // reflink, nolink if ((cap = this.rules.reflink.exec(src)) || (cap = this.rules.nolink.exec(src))) { src = src.substring(cap[0].length); link = (cap[2] || cap[1]).replace(/\s+/g, ' '); link = this.links[link.toLowerCase()]; if (!link || !link.href) { out += cap[0].charAt(0); src = cap[0].substring(1) + src; continue; } this.inLink = true; out += this.outputLink(cap, link); this.inLink = false; continue; } // strong if (cap = this.rules.strong.exec(src)) { src = src.substring(cap[0].length); out += this.renderer.strong(this.output(cap[2] || cap[1])); continue; } // em if (cap = this.rules.em.exec(src)) { src = src.substring(cap[0].length); out += this.renderer.em(this.output(cap[2] || cap[1])); continue; } // code if (cap = this.rules.code.exec(src)) { src = src.substring(cap[0].length); out += this.renderer.codespan(escape(cap[2], true)); continue; } // br if (cap = this.rules.br.exec(src)) { src = src.substring(cap[0].length); out += this.renderer.br(); continue; } // del (gfm) if (cap = this.rules.del.exec(src)) { src = src.substring(cap[0].length); out += this.renderer.del(this.output(cap[1])); continue; } // text if (cap = this.rules.text.exec(src)) { src = src.substring(cap[0].length); out += this.renderer.text(escape(this.smartypants(cap[0]))); continue; } if (src) { throw new Error('Infinite loop on byte: ' + src.charCodeAt(0)); } } return out; }; /** * Compile Link */ InlineLexer.prototype.outputLink = function(cap, link) { var href = escape(link.href) , title = link.title ? escape(link.title) : null; return cap[0].charAt(0) !== '!' ? this.renderer.link(href, title, this.output(cap[1])) : this.renderer.image(href, title, escape(cap[1])); }; /** * Smartypants Transformations */ InlineLexer.prototype.smartypants = function(text) { if (!this.options.smartypants) return text; return text // em-dashes .replace(/---/g, '\u2014') // en-dashes .replace(/--/g, '\u2013') // opening singles .replace(/(^|[-\u2014/(\[{"\s])'/g, '$1\u2018') // closing singles & apostrophes .replace(/'/g, '\u2019') // opening doubles .replace(/(^|[-\u2014/(\[{\u2018\s])"/g, '$1\u201c') // closing doubles .replace(/"/g, '\u201d') // ellipses .replace(/\.{3}/g, '\u2026'); }; /** * Mangle Links */ InlineLexer.prototype.mangle = function(text) { if (!this.options.mangle) return text; var out = '' , l = text.length , i = 0 , ch; for (; i < l; i++) { ch = text.charCodeAt(i); if (Math.random() > 0.5) { ch = 'x' + ch.toString(16); } out += '&#' + ch + ';'; } return out; }; /** * Renderer */ function Renderer(options) { this.options = options || {}; } Renderer.prototype.code = function(code, lang, escaped) { if (this.options.highlight) { var out = this.options.highlight(code, lang); if (out != null && out !== code) { escaped = true; code = out; } } if (!lang) { return '
    '
          + (escaped ? code : escape(code, true))
          + '\n
    '; } return '
    '
        + (escaped ? code : escape(code, true))
        + '\n
    \n'; }; Renderer.prototype.blockquote = function(quote) { return '
    \n' + quote + '
    \n'; }; Renderer.prototype.html = function(html) { return html; }; Renderer.prototype.heading = function(text, level, raw) { return '' + text + '\n'; }; Renderer.prototype.hr = function() { return this.options.xhtml ? '
    \n' : '
    \n'; }; Renderer.prototype.list = function(body, ordered) { var type = ordered ? 'ol' : 'ul'; return '<' + type + '>\n' + body + '\n'; }; Renderer.prototype.listitem = function(text) { return '
  • ' + text + '
  • \n'; }; Renderer.prototype.paragraph = function(text) { return '

    ' + text + '

    \n'; }; Renderer.prototype.table = function(header, body) { return '\n' + '\n' + header + '\n' + '\n' + body + '\n' + '
    \n'; }; Renderer.prototype.tablerow = function(content) { return '\n' + content + '\n'; }; Renderer.prototype.tablecell = function(content, flags) { var type = flags.header ? 'th' : 'td'; var tag = flags.align ? '<' + type + ' style="text-align:' + flags.align + '">' : '<' + type + '>'; return tag + content + '\n'; }; // span level renderer Renderer.prototype.strong = function(text) { return '' + text + ''; }; Renderer.prototype.em = function(text) { return '' + text + ''; }; Renderer.prototype.codespan = function(text) { return '' + text + ''; }; Renderer.prototype.br = function() { return this.options.xhtml ? '
    ' : '
    '; }; Renderer.prototype.del = function(text) { return '' + text + ''; }; Renderer.prototype.link = function(href, title, text) { if (this.options.sanitize) { try { var prot = decodeURIComponent(unescape(href)) .replace(/[^\w:]/g, '') .toLowerCase(); } catch (e) { return ''; } if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0) { return ''; } } var out = '
    '; return out; }; Renderer.prototype.image = function(href, title, text) { var out = '' + text + '' : '>'; return out; }; Renderer.prototype.text = function(text) { return text; }; /** * Parsing & Compiling */ function Parser(options) { this.tokens = []; this.token = null; this.options = options || marked.defaults; this.options.renderer = this.options.renderer || new Renderer; this.renderer = this.options.renderer; this.renderer.options = this.options; } /** * Static Parse Method */ Parser.parse = function(src, options, renderer) { var parser = new Parser(options, renderer); return parser.parse(src); }; /** * Parse Loop */ Parser.prototype.parse = function(src) { this.inline = new InlineLexer(src.links, this.options, this.renderer); this.tokens = src.reverse(); var out = ''; while (this.next()) { out += this.tok(); } return out; }; /** * Next Token */ Parser.prototype.next = function() { return this.token = this.tokens.pop(); }; /** * Preview Next Token */ Parser.prototype.peek = function() { return this.tokens[this.tokens.length - 1] || 0; }; /** * Parse Text Tokens */ Parser.prototype.parseText = function() { var body = this.token.text; while (this.peek().type === 'text') { body += '\n' + this.next().text; } return this.inline.output(body); }; /** * Parse Current Token */ Parser.prototype.tok = function() { switch (this.token.type) { case 'space': { return ''; } case 'hr': { return this.renderer.hr(); } case 'heading': { return this.renderer.heading( this.inline.output(this.token.text), this.token.depth, this.token.text); } case 'code': { return this.renderer.code(this.token.text, this.token.lang, this.token.escaped); } case 'table': { var header = '' , body = '' , i , row , cell , flags , j; // header cell = ''; for (i = 0; i < this.token.header.length; i++) { flags = { header: true, align: this.token.align[i] }; cell += this.renderer.tablecell( this.inline.output(this.token.header[i]), { header: true, align: this.token.align[i] } ); } header += this.renderer.tablerow(cell); for (i = 0; i < this.token.cells.length; i++) { row = this.token.cells[i]; cell = ''; for (j = 0; j < row.length; j++) { cell += this.renderer.tablecell( this.inline.output(row[j]), { header: false, align: this.token.align[j] } ); } body += this.renderer.tablerow(cell); } return this.renderer.table(header, body); } case 'blockquote_start': { var body = ''; while (this.next().type !== 'blockquote_end') { body += this.tok(); } return this.renderer.blockquote(body); } case 'list_start': { var body = '' , ordered = this.token.ordered; while (this.next().type !== 'list_end') { body += this.tok(); } return this.renderer.list(body, ordered); } case 'list_item_start': { var body = ''; while (this.next().type !== 'list_item_end') { body += this.token.type === 'text' ? this.parseText() : this.tok(); } return this.renderer.listitem(body); } case 'loose_item_start': { var body = ''; while (this.next().type !== 'list_item_end') { body += this.tok(); } return this.renderer.listitem(body); } case 'html': { var html = !this.token.pre && !this.options.pedantic ? this.inline.output(this.token.text) : this.token.text; return this.renderer.html(html); } case 'paragraph': { return this.renderer.paragraph(this.inline.output(this.token.text)); } case 'text': { return this.renderer.paragraph(this.parseText()); } } }; /** * Helpers */ function escape(html, encode) { return html .replace(!encode ? /&(?!#?\w+;)/g : /&/g, '&') .replace(//g, '>') .replace(/"/g, '"') .replace(/'/g, '''); } function unescape(html) { return html.replace(/&([#\w]+);/g, function(_, n) { n = n.toLowerCase(); if (n === 'colon') return ':'; if (n.charAt(0) === '#') { return n.charAt(1) === 'x' ? String.fromCharCode(parseInt(n.substring(2), 16)) : String.fromCharCode(+n.substring(1)); } return ''; }); } function replace(regex, opt) { regex = regex.source; opt = opt || ''; return function self(name, val) { if (!name) return new RegExp(regex, opt); val = val.source || val; val = val.replace(/(^|[^\[])\^/g, '$1'); regex = regex.replace(name, val); return self; }; } function noop() {} noop.exec = noop; function merge(obj) { var i = 1 , target , key; for (; i < arguments.length; i++) { target = arguments[i]; for (key in target) { if (Object.prototype.hasOwnProperty.call(target, key)) { obj[key] = target[key]; } } } return obj; } /** * Marked */ function marked(src, opt, callback) { if (callback || typeof opt === 'function') { if (!callback) { callback = opt; opt = null; } opt = merge({}, marked.defaults, opt || {}); var highlight = opt.highlight , tokens , pending , i = 0; try { tokens = Lexer.lex(src, opt) } catch (e) { return callback(e); } pending = tokens.length; var done = function(err) { if (err) { opt.highlight = highlight; return callback(err); } var out; try { out = Parser.parse(tokens, opt); } catch (e) { err = e; } opt.highlight = highlight; return err ? callback(err) : callback(null, out); }; if (!highlight || highlight.length < 3) { return done(); } delete opt.highlight; if (!pending) return done(); for (; i < tokens.length; i++) { (function(token) { if (token.type !== 'code') { return --pending || done(); } return highlight(token.text, token.lang, function(err, code) { if (err) return done(err); if (code == null || code === token.text) { return --pending || done(); } token.text = code; token.escaped = true; --pending || done(); }); })(tokens[i]); } return; } try { if (opt) opt = merge({}, marked.defaults, opt); return Parser.parse(Lexer.lex(src, opt), opt); } catch (e) { e.message += '\nPlease report this to https://github.com/chjj/marked.'; if ((opt || marked.defaults).silent) { return '

    An error occured:

    '
            + escape(e.message + '', true)
            + '
    '; } throw e; } } /** * Options */ marked.options = marked.setOptions = function(opt) { merge(marked.defaults, opt); return marked; }; marked.defaults = { gfm: true, tables: true, breaks: false, pedantic: false, sanitize: false, sanitizer: null, mangle: true, smartLists: false, silent: false, highlight: null, langPrefix: 'lang-', smartypants: false, headerPrefix: '', renderer: new Renderer, xhtml: false }; /** * Expose */ marked.Parser = Parser; marked.parser = Parser.parse; marked.Renderer = Renderer; marked.Lexer = Lexer; marked.lexer = Lexer.lex; marked.InlineLexer = InlineLexer; marked.inlineLexer = InlineLexer.output; marked.parse = marked; if (typeof module !== 'undefined' && typeof exports === 'object') { module.exports = marked; } else if (typeof define === 'function' && define.amd) { define(function() { return marked; }); } else { this.marked = marked; } }).call(function() { return this || (typeof window !== 'undefined' ? window : global); }()); PKLF uuUmaterialdjango/static/materialdjango/components/bower_components/marked/doc/broken.md# Markdown is broken I have a lot of scraps of markdown engine oddities that I've collected over the years. What you see below is slightly messy, but it's what I've managed to cobble together to illustrate the differences between markdown engines, and why, if there ever is a markdown specification, it has to be absolutely thorough. There are a lot more of these little differences I have documented elsewhere. I know I will find them lingering on my disk one day, but until then, I'll continue to add whatever strange nonsensical things I find. Some of these examples may only mention a particular engine compared to marked. However, the examples with markdown.pl could easily be swapped out for discount, upskirt, or markdown.js, and you would very easily see even more inconsistencies. A lot of this was written when I was very unsatisfied with the inconsistencies between markdown engines. Please excuse the frustration noticeable in my writing. ## Examples of markdown's "stupid" list parsing ``` $ markdown.pl * item1 * item2 text ^D
    • item1

      • item2

      text

    ``` ``` $ marked * item1 * item2 text ^D
    • item1

      • item2

      text

    ``` Which looks correct to you? - - - ``` $ markdown.pl * hello > world ^D

    • hello

      world

    ``` ``` $ marked * hello > world ^D
    • hello

      world

    ``` Again, which looks correct to you? - - - EXAMPLE: ``` $ markdown.pl * hello * world * hi code ^D
    • hello
      • world
      • hi code
    ``` The code isn't a code block even though it's after the bullet margin. I know, lets give it two more spaces, effectively making it 8 spaces past the bullet. ``` $ markdown.pl * hello * world * hi code ^D
    • hello
      • world
      • hi code
    ``` And, it's still not a code block. Did you also notice that the 3rd item isn't even its own list? Markdown screws that up too because of its indentation unaware parsing. - - - Let's look at some more examples of markdown's list parsing: ``` $ markdown.pl * item1 * item2 text ^D
    • item1

      • item2

      text

    ``` Misnested tags. ``` $ marked * item1 * item2 text ^D
    • item1

      • item2

      text

    ``` Which looks correct to you? - - - ``` $ markdown.pl * hello > world ^D

    • hello

      world

    ``` More misnested tags. ``` $ marked * hello > world ^D
    • hello

      world

    ``` Again, which looks correct to you? - - - # Why quality matters - Part 2 ``` bash $ markdown.pl * hello > world ^D

    • hello

      world

    ``` ``` bash $ sundown # upskirt * hello > world ^D
    • hello > world
    ``` ``` bash $ marked * hello > world ^D
    • hello

      world

    ``` Which looks correct to you? - - - See: https://github.com/evilstreak/markdown-js/issues/23 ``` bash $ markdown.pl # upskirt/markdown.js/discount * hello var a = 1; * world ^D
    • hello var a = 1;
    • world
    ``` ``` bash $ marked * hello var a = 1; * world ^D
    • hello
      code>var a = 1;
    • world
    ``` Which looks more reasonable? Why shouldn't code blocks be able to appear in list items in a sane way? - - - ``` bash $ markdown.js
    hello
    hello ^D

    <div>hello</div>

    <span>hello</span>

    ``` ``` bash $ marked
    hello
    hello ^D
    hello

    hello

    ``` - - - See: https://github.com/evilstreak/markdown-js/issues/27 ``` bash $ markdown.js [![an image](/image)](/link) ^D

    ![an image

    ``` ``` bash $ marked [![an image](/image)](/link) ^D

    an image

    ``` - - - See: https://github.com/evilstreak/markdown-js/issues/24 ``` bash $ markdown.js > a > b > c ^D

    a

    bundefined> c

    ``` ``` bash $ marked > a > b > c ^D

    a

    b

    c

    ``` - - - ``` bash $ markdown.pl * hello * world how are you * today * hi ^D
    • hello

      • world how

      are you

      • today
    • hi
    ``` ``` bash $ marked * hello * world how are you * today * hi ^D
    • hello

      • world how

        are you

      • today

    • hi
    ``` PKLFSmaterialdjango/static/materialdjango/components/bower_components/marked/doc/todo.md# Todo PKaGts bmaterialdjango/static/materialdjango/components/bower_components/paper-menu-button/CONTRIBUTING.md # Polymer Elements ## Guide for Contributors Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: ### Filing Issues **If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: 1. **Who will use the feature?** _“As someone filling out a form…”_ 2. **When will they use the feature?** _“When I enter an invalid value…”_ 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ **If you are filing an issue to report a bug**, please provide: 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: ```markdown The `paper-foo` element causes the page to turn pink when clicked. ## Expected outcome The page stays the same color. ## Actual outcome The page turns pink. ## Steps to reproduce 1. Put a `paper-foo` element in the page. 2. Open the page in a web browser. 3. Click the `paper-foo` element. ``` 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [http://jsbin.com/cagaye](http://jsbin.com/cagaye/edit?html,output). 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. ### Submitting Pull Requests **Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. When submitting pull requests, please provide: 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues using the following syntax: ```markdown (For a single issue) Fixes #20 (For multiple issues) Fixes #32, #40 ``` 2. **A succinct description of the design** used to fix any related issues. For example: ```markdown This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. ``` 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! PKRG&F\N^materialdjango/static/materialdjango/components/bower_components/paper-menu-button/.bower.json{ "name": "paper-menu-button", "version": "1.0.4", "description": "A material design element that composes a trigger and a dropdown menu", "authors": [ "The Polymer Authors" ], "keywords": [ "web-components", "web-component", "polymer", "menu", "button" ], "main": "paper-menu-button.html", "private": true, "repository": { "type": "git", "url": "git://github.com/PolymerElements/paper-menu-button" }, "license": "MIT", "homepage": "https://github.com/PolymerElements/paper-menu-button", "dependencies": { "polymer": "polymer/polymer#^1.0.0", "neon-animation": "polymerelements/neon-animation#^1.0.0", "paper-material": "polymerelements/paper-material#^1.0.0", "paper-styles": "polymerelements/paper-styles#^1.0.0", "iron-dropdown": "polymerelements/iron-dropdown#^1.0.0", "iron-a11y-keys-behavior": "polymerelements/iron-a11y-keys-behavior#^1.0.0", "iron-behaviors": "polymerelements/iron-behaviors#^1.0.0" }, "devDependencies": { "iron-component-page": "polymerelements/iron-component-page#^1.0.0", "test-fixture": "polymerelements/test-fixture#^1.0.0", "iron-test-helpers": "polymerelements/iron-test-helpers#^1.0.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", "web-component-tester": "*", "paper-menu": "polymerelements/paper-menu#^1.0.0", "paper-icon-button": "polymerelements/paper-icon-button#^1.0.0", "iron-icons": "polymerelements/iron-icons#^1.0.0", "paper-button": "polymerelements/paper-button#^1.0.0", "paper-item": "polymerelements/paper-item#^1.0.0", "iron-image": "polymerelements/iron-image#^1.0.0", "iron-icon": "polymerelements/iron-icon#^1.0.0" }, "ignore": [], "_release": "1.0.4", "_resolution": { "type": "version", "tag": "v1.0.4", "commit": "886c7eb904a5d59652adc0a127a8e0eab7e0f663" }, "_source": "git://github.com/PolymerElements/paper-menu-button.git", "_target": "^1.0.0", "_originalSource": "PolymerElements/paper-menu-button" }PKaG9[N tmaterialdjango/static/materialdjango/components/bower_components/paper-menu-button/paper-menu-button-animations.html PKaG~S']materialdjango/static/materialdjango/components/bower_components/paper-menu-button/index.html paper-menu-button PKaG^]$ [materialdjango/static/materialdjango/components/bower_components/paper-menu-button/hero.svg PKaGoft^materialdjango/static/materialdjango/components/bower_components/paper-menu-button/.travis.ymllanguage: node_js sudo: false before_script: - npm install web-component-tester - npm install bower - 'export PATH=$PWD/node_modules/.bin:$PATH' - bower install env: global: - secure: KylA/s+GkWGDpW9vcaBDrcr9M4xsE7HVyH36I5p7UBvQUiqPMFR/+GbFx7UoYR1OPNMf2hgHD4nd5G8hfnKjFuRl8NKe63Dnwt+83tKO9MKWrOAPq1/fMG/ZS1vRNP8Jqkp3iOsRUdatWsrs9LA5Pa6tM2OefQXs5ZF0F8s+de8Wv3+QwoGSjfJmTTC8j9tvrzEI6eOX66PAFGWUnySwV66tph+LRT/B/Y2HDcA0KbQucbyxCMnKU100xGJwK3+ZuPTEnqEqPv7R/9Z1Ggh+wXO/MduN+7OO6ZbF9//jrQNSY4QMKcz5zziYa0ugXH7F7HZijq3qxuLST0edPknozGi4xR7Vn00Zu8yHkIKYqswHrXM97qwoZZkBkwD8LEoZTkEIvk/uts68WVTiFaXV2FufBjl48E1BpjvMX1fW0hKTyFKXURXiJBphwNepyHFHpxSF29TKW1FBXy9ITiSMmKrdmqnnPliunDU44NK23tiuY90ZLKPLcOHBzLU7yzqVu67flbWxoWCCkP8gEkT6qRWHzRiZOiw0eHvXkmE1Gs+z1q/JuDg8Aaa40lm9oKC+dY8AfmQDhfXgfd89RbsF+AsJk7kp6wOVGCgmanrAeFSQcdU3qHB0ZQspS5kD1Y6mxl/R9a0iQnhtcHyLTadG8bfvc3EzP+2nYrP326Kir60= - secure: HBHAEcnTe6APHH/ZHmN4fd1sid/RCsgUsn7abA3hRxU6PM4Jo0C4nZhet60Q8joQyxiA415FSETvJVhdY7zHUcmxd0KklEAZjKX08v5vroAGJt0OUmxpZ/scoAcC09JfnZeVFO8Df/kx1WWP+q2LydrZhasPP8ifM+BBdD2wE/ShM6Jz7E5yQHgQ+pUf5yShfOzoYy0+tYtBpm9bxxj1i9qjPEfUiOxAWmSpefJ94dcIh2mCFpakBhPRh/l6FQip0+NPT00YEpk5/fDh+I2Apg8whWm02WiqGsXUpZZZaiGn8oAO5XckrKJGm0xuGYrI3cM1zRvsieaA424WwXNCSkXt6M8s0zQTqj+wlFQMOpEoIgD8dKW0gkIEt09ChKgmhs82FKE3OuI+Nz5z9DRRrtfoOckPi0bjVsOmXNDX0x569dpNOoJB21opfj6Nyl3Ln7/9q1J4LStt/VeuHzUUhBI33GTSlqW6qg0E0difa/bOc8dhSuXQ3Y8uunAXPk1Do7sWUhszF7k/wOjZ/oMsvvl8CiNZCJn0dbvrANOACNW8qBLoAlw2eHwA0wGTuN3VCZohYnHkeioYfkAFzPZX6QR4+NdpOorGBhxuOm0R7rR2q3SIrd+6Wd+T6A4+NLL8e+A57pc2lHKhtSwOOE7DdQpzrVyfN5NOaixlScqcbAw= node_js: 4 addons: firefox: latest apt: sources: - google-chrome packages: - google-chrome-stable script: - xvfb-run wct - "if [ \"${TRAVIS_PULL_REQUEST}\" = \"false\" ]; then wct -s 'default'; fi" PKaG PKaGg \materialdjango/static/materialdjango/components/bower_components/paper-menu-button/README.md [![Build Status](https://travis-ci.org/PolymerElements/paper-menu-button.svg?branch=master)](https://travis-ci.org/PolymerElements/paper-menu-button) _[Demo and API Docs](https://elements.polymer-project.org/elements/paper-menu-button)_ ##<paper-menu-button> Material design: [Dropdown buttons](https://www.google.com/design/spec/components/buttons.html#buttons-dropdown-buttons) `paper-menu-button` allows one to compose a designated "trigger" element with another element that represents "content", to create a dropdown menu that displays the "content" when the "trigger" is clicked. The child element with the class `dropdown-trigger` will be used as the "trigger" element. The child element with the class `dropdown-content` will be used as the "content" element. The `paper-menu-button` is sensitive to its content's `iron-select` events. If the "content" element triggers an `iron-select` event, the `paper-menu-button` will close automatically. Example: Share Settings Help ### Styling The following custom properties and mixins are also available for styling: Custom property | Description | Default ----------------|-------------|---------- `--paper-menu-button-dropdown-background` | Background color of the paper-menu-button dropdown | `#fff` `--paper-menu-button` | Mixin applied to the paper-menu-button | `{}` `--paper-menu-button-disabled` | Mixin applied to the paper-menu-button when disabled | `{}` `--paper-menu-button-dropdown` | Mixin applied to the paper-menu-button dropdown | `{}` `--paper-menu-button-content` | Mixin applied to the paper-menu-button content | `{}` PKaGKB]materialdjango/static/materialdjango/components/bower_components/paper-menu-button/.gitignorebower_components PKaGY@]materialdjango/static/materialdjango/components/bower_components/paper-menu-button/bower.json{ "name": "paper-menu-button", "version": "1.0.4", "description": "A material design element that composes a trigger and a dropdown menu", "authors": [ "The Polymer Authors" ], "keywords": [ "web-components", "web-component", "polymer", "menu", "button" ], "main": "paper-menu-button.html", "private": true, "repository": { "type": "git", "url": "git://github.com/PolymerElements/paper-menu-button" }, "license": "MIT", "homepage": "https://github.com/PolymerElements/paper-menu-button", "dependencies": { "polymer": "polymer/polymer#^1.0.0", "neon-animation": "polymerelements/neon-animation#^1.0.0", "paper-material": "polymerelements/paper-material#^1.0.0", "paper-styles": "polymerelements/paper-styles#^1.0.0", "iron-dropdown": "polymerelements/iron-dropdown#^1.0.0", "iron-a11y-keys-behavior": "polymerelements/iron-a11y-keys-behavior#^1.0.0", "iron-behaviors": "polymerelements/iron-behaviors#^1.0.0" }, "devDependencies": { "iron-component-page": "polymerelements/iron-component-page#^1.0.0", "test-fixture": "polymerelements/test-fixture#^1.0.0", "iron-test-helpers": "polymerelements/iron-test-helpers#^1.0.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", "web-component-tester": "*", "paper-menu": "polymerelements/paper-menu#^1.0.0", "paper-icon-button": "polymerelements/paper-icon-button#^1.0.0", "iron-icons": "polymerelements/iron-icons#^1.0.0", "paper-button": "polymerelements/paper-button#^1.0.0", "paper-item": "polymerelements/paper-item#^1.0.0", "iron-image": "polymerelements/iron-image#^1.0.0", "iron-icon": "polymerelements/iron-icon#^1.0.0" }, "ignore": [] } PKaG bmaterialdjango/static/materialdjango/components/bower_components/paper-menu-button/test/index.html paper-menu-button tests PKaGS3 nmaterialdjango/static/materialdjango/components/bower_components/paper-menu-button/test/paper-menu-button.html paper-menu-button basic tests PKaGPbmaterialdjango/static/materialdjango/components/bower_components/paper-menu-button/demo/index.html paper-menu-button PKz FVO O \materialdjango/static/materialdjango/components/bower_components/promise-polyfill/Promise.jsfunction MakePromise (asap) { function Promise(fn) { if (typeof this !== 'object' || typeof fn !== 'function') throw new TypeError(); this._state = null; this._value = null; this._deferreds = [] doResolve(fn, resolve.bind(this), reject.bind(this)); } function handle(deferred) { var me = this; if (this._state === null) { this._deferreds.push(deferred); return } asap(function() { var cb = me._state ? deferred.onFulfilled : deferred.onRejected if (typeof cb !== 'function') { (me._state ? deferred.resolve : deferred.reject)(me._value); return; } var ret; try { ret = cb(me._value); } catch (e) { deferred.reject(e); return; } deferred.resolve(ret); }) } function resolve(newValue) { try { //Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure if (newValue === this) throw new TypeError(); if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) { var then = newValue.then; if (typeof then === 'function') { doResolve(then.bind(newValue), resolve.bind(this), reject.bind(this)); return; } } this._state = true; this._value = newValue; finale.call(this); } catch (e) { reject.call(this, e); } } function reject(newValue) { this._state = false; this._value = newValue; finale.call(this); } function finale() { for (var i = 0, len = this._deferreds.length; i < len; i++) { handle.call(this, this._deferreds[i]); } this._deferreds = null; } /** * Take a potentially misbehaving resolver function and make sure * onFulfilled and onRejected are only called once. * * Makes no guarantees about asynchrony. */ function doResolve(fn, onFulfilled, onRejected) { var done = false; try { fn(function (value) { if (done) return; done = true; onFulfilled(value); }, function (reason) { if (done) return; done = true; onRejected(reason); }) } catch (ex) { if (done) return; done = true; onRejected(ex); } } Promise.prototype['catch'] = function (onRejected) { return this.then(null, onRejected); }; Promise.prototype.then = function(onFulfilled, onRejected) { var me = this; return new Promise(function(resolve, reject) { handle.call(me, { onFulfilled: onFulfilled, onRejected: onRejected, resolve: resolve, reject: reject }); }) }; Promise.resolve = function (value) { if (value && typeof value === 'object' && value.constructor === Promise) { return value; } return new Promise(function (resolve) { resolve(value); }); }; Promise.reject = function (value) { return new Promise(function (resolve, reject) { reject(value); }); }; return Promise; } if (typeof module !== 'undefined') { module.exports = MakePromise; } PKz F.Rff]materialdjango/static/materialdjango/components/bower_components/promise-polyfill/.bower.json{ "name": "promise-polyfill", "version": "1.0.0", "homepage": "https://github.com/taylorhakes/promise-polyfill", "authors": [ "Taylor Hakes" ], "description": "Lightweight promise polyfill for the browser and node. A+ Compliant.", "main": "Promise.js", "moduleType": [ "globals", "node" ], "keywords": [ "promise", "es6", "polyfill", "html5" ], "license": "MIT", "ignore": [ "**/.*", "node_modules", "bower_components", "test", "tests" ], "dependencies": { "polymer": "polymer/polymer#^1.0.0" }, "_release": "1.0.0", "_resolution": { "type": "version", "tag": "v1.0.0", "commit": "2ef7dada161cae30e69ffff918485c57121d4b88" }, "_source": "git://github.com/polymerlabs/promise-polyfill.git", "_target": "^1.0.0", "_originalSource": "polymerlabs/promise-polyfill" }PKz F8BBYmaterialdjango/static/materialdjango/components/bower_components/promise-polyfill/LICENSECopyright (c) 2014 Taylor Hakes Copyright (c) 2014 Forbes Lindesay Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.PKz FvabBeegmaterialdjango/static/materialdjango/components/bower_components/promise-polyfill/promise-polyfill.html PKz Fq$`materialdjango/static/materialdjango/components/bower_components/promise-polyfill/Promise.min.jsfunction m(n){function b(a){if("object"!==typeof this||"function"!==typeof a)throw new TypeError;this.c=this.a=null;this.b=[];g(a,h.bind(this),d.bind(this))}function k(a){var c=this;null===this.a?this.b.push(a):n(function(){var f=c.a?a.d:a.e;if("function"!==typeof f)(c.a?a.resolve:a.reject)(c.c);else{var e;try{e=f(c.c)}catch(b){a.reject(b);return}a.resolve(e)}})}function h(a){try{if(a===this)throw new TypeError;if(a&&("object"===typeof a||"function"===typeof a)){var c=a.then;if("function"===typeof c){g(c.bind(a), h.bind(this),d.bind(this));return}}this.a=!0;this.c=a;l.call(this)}catch(b){d.call(this,b)}}function d(a){this.a=!1;this.c=a;l.call(this)}function l(){for(var a=0,c=this.b.length;a PKz FE ^materialdjango/static/materialdjango/components/bower_components/promise-polyfill/package.json{ "name": "promise-polyfill", "version": "2.0.0", "description": "Lightweight promise polyfill. A+ compliant", "main": "Promise.js", "scripts": { "test": "./node_modules/.bin/promises-aplus-tests tests/adapter.js; ./node_modules/.bin/promises-es6-tests tests/adapter.js" }, "repository": { "type": "git", "url": "https://taylorhakes@github.com/taylorhakes/promise-polyfill.git" }, "author": "Taylor Hakes", "license": "MIT", "bugs": { "url": "https://github.com/taylorhakes/promise-polyfill/issues" }, "homepage": "https://github.com/taylorhakes/promise-polyfill", "devDependencies": { "grunt": "^0.4.5", "grunt-bytesize": "^0.1.1", "grunt-closurecompiler": "^0.9.9", "grunt-contrib-uglify": "^0.4.0", "mocha": "^2.2.1", "promises-aplus-tests": "*", "promises-es6-tests": "^0.5.0" }, "keywords": [ "promise", "promise-polyfill", "ES6", "promises-aplus" ], "dependencies": {} } PKz FV_^materialdjango/static/materialdjango/components/bower_components/promise-polyfill/Gruntfile.jsmodule.exports = function(grunt) { grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), uglify: { options: { banner: '/*! <%= pkg.name %> <%= pkg.version %> */\n' }, dist: { files: { 'Promise.min.uglify.js': ['Promise.js'] } } }, closurecompiler: { options: { compilation_level: 'ADVANCED_OPTIMIZATIONS', }, dist: { files: { 'Promise.min.js': ['Promise.js'] } } }, bytesize: { dist: { src: ['Promise*.js'] } } }); grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-closurecompiler'); grunt.loadNpmTasks('grunt-bytesize'); grunt.registerTask('build', ['closurecompiler', 'bytesize']); }; PKz F@G  [materialdjango/static/materialdjango/components/bower_components/promise-polyfill/README.md# Promise Polyfill Note: this is an unsolicited fork of [taylorhakes/promise-polyfill](https://github.com/taylorhakes/promise-polyfill) and should be considered experimental and unstable compared to upstream. ## Testing ``` npm install npm test ``` ## License MIT PKz FJdmaterialdjango/static/materialdjango/components/bower_components/promise-polyfill/Promise-Statics.jsPromise.all = Promise.all || function () { var args = Array.prototype.slice.call(arguments.length === 1 && Array.isArray(arguments[0]) ? arguments[0] : arguments); return new Promise(function (resolve, reject) { if (args.length === 0) return resolve([]); var remaining = args.length; function res(i, val) { try { if (val && (typeof val === 'object' || typeof val === 'function')) { var then = val.then; if (typeof then === 'function') { then.call(val, function (val) { res(i, val) }, reject); return; } } args[i] = val; if (--remaining === 0) { resolve(args); } } catch (ex) { reject(ex); } } for (var i = 0; i < args.length; i++) { res(i, args[i]); } }); }; Promise.race = Promise.race || function (values) { return new Promise(function (resolve, reject) { for(var i = 0, len = values.length; i < len; i++) { values[i].then(resolve, reject); } }); }; PKz FXWkEE\materialdjango/static/materialdjango/components/bower_components/promise-polyfill/bower.json{ "name": "promise-polyfill", "version": "1.0.0", "homepage": "https://github.com/taylorhakes/promise-polyfill", "authors": [ "Taylor Hakes" ], "description": "Lightweight promise polyfill for the browser and node. A+ Compliant.", "main": "Promise.js", "moduleType": [ "globals", "node" ], "keywords": [ "promise", "es6", "polyfill", "html5" ], "license": "MIT", "ignore": [ "**/.*", "node_modules", "bower_components", "test", "tests" ], "dependencies": { "polymer": "polymer/polymer#^1.0.0" } } PK[HFFRmaterialdjango/static/materialdjango/components/bower_components/prism/.bower.json{ "name": "prism", "main": [ "prism.js", "themes/prism.css" ], "homepage": "http://prismjs.com", "authors": "Lea Verou", "description": "Lightweight, robust, elegant syntax highlighting. A spin-off project from Dabblet.", "license": "MIT", "repository": { "type": "git", "url": "https://github.com/PrismJS/prism.git" }, "ignore": [ "**/.*", "img", "templates", "CNAME", "*.html", "style.css", "favicon.png", "logo.svg", "download.js", "prefixfree.min.js", "utopia.js", "code.js" ], "version": "1.4.1", "_release": "1.4.1", "_resolution": { "type": "version", "tag": "v1.4.1", "commit": "97b0eb5a1a74760c5c0f37f82116679b33876634" }, "_source": "git://github.com/LeaVerou/prism.git", "_target": "*", "_originalSource": "prism" }PKfvCHS$NDNDOmaterialdjango/static/materialdjango/components/bower_components/prism/prism.js /* ********************************************** Begin prism-core.js ********************************************** */ var _self = (typeof window !== 'undefined') ? window // if in browser : ( (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) ? self // if in worker : {} // if in node js ); /** * Prism: Lightweight, robust, elegant syntax highlighting * MIT license http://www.opensource.org/licenses/mit-license.php/ * @author Lea Verou http://lea.verou.me */ var Prism = (function(){ // Private helper vars var lang = /\blang(?:uage)?-(\w+)\b/i; var uniqueId = 0; var _ = _self.Prism = { util: { encode: function (tokens) { if (tokens instanceof Token) { return new Token(tokens.type, _.util.encode(tokens.content), tokens.alias); } else if (_.util.type(tokens) === 'Array') { return tokens.map(_.util.encode); } else { return tokens.replace(/&/g, '&').replace(/ text.length) { // Something went terribly wrong, ABORT, ABORT! break tokenloop; } if (str instanceof Token) { continue; } pattern.lastIndex = 0; var match = pattern.exec(str); if (match) { if(lookbehind) { lookbehindLength = match[1].length; } var from = match.index - 1 + lookbehindLength, match = match[0].slice(lookbehindLength), len = match.length, to = from + len, before = str.slice(0, from + 1), after = str.slice(to + 1); var args = [i, 1]; if (before) { args.push(before); } var wrapped = new Token(token, inside? _.tokenize(match, inside) : match, alias); args.push(wrapped); if (after) { args.push(after); } Array.prototype.splice.apply(strarr, args); } } } } return strarr; }, hooks: { all: {}, add: function (name, callback) { var hooks = _.hooks.all; hooks[name] = hooks[name] || []; hooks[name].push(callback); }, run: function (name, env) { var callbacks = _.hooks.all[name]; if (!callbacks || !callbacks.length) { return; } for (var i=0, callback; callback = callbacks[i++];) { callback(env); } } } }; var Token = _.Token = function(type, content, alias) { this.type = type; this.content = content; this.alias = alias; }; Token.stringify = function(o, language, parent) { if (typeof o == 'string') { return o; } if (_.util.type(o) === 'Array') { return o.map(function(element) { return Token.stringify(element, language, o); }).join(''); } var env = { type: o.type, content: Token.stringify(o.content, language, parent), tag: 'span', classes: ['token', o.type], attributes: {}, language: language, parent: parent }; if (env.type == 'comment') { env.attributes['spellcheck'] = 'true'; } if (o.alias) { var aliases = _.util.type(o.alias) === 'Array' ? o.alias : [o.alias]; Array.prototype.push.apply(env.classes, aliases); } _.hooks.run('wrap', env); var attributes = ''; for (var name in env.attributes) { attributes += (attributes ? ' ' : '') + name + '="' + (env.attributes[name] || '') + '"'; } return '<' + env.tag + ' class="' + env.classes.join(' ') + '" ' + attributes + '>' + env.content + ''; }; if (!_self.document) { if (!_self.addEventListener) { // in Node.js return _self.Prism; } // In worker _self.addEventListener('message', function(evt) { var message = JSON.parse(evt.data), lang = message.language, code = message.code, immediateClose = message.immediateClose; _self.postMessage(_.highlight(code, _.languages[lang], lang)); if (immediateClose) { _self.close(); } }, false); return _self.Prism; } //Get current script and highlight var script = document.currentScript || [].slice.call(document.getElementsByTagName("script")).pop(); if (script) { _.filename = script.src; if (document.addEventListener && !script.hasAttribute('data-manual')) { document.addEventListener('DOMContentLoaded', _.highlightAll); } } return _self.Prism; })(); if (typeof module !== 'undefined' && module.exports) { module.exports = Prism; } // hack for components to work correctly in node.js if (typeof global !== 'undefined') { global.Prism = Prism; } /* ********************************************** Begin prism-markup.js ********************************************** */ Prism.languages.markup = { 'comment': //, 'prolog': /<\?[\w\W]+?\?>/, 'doctype': //, 'cdata': //i, 'tag': { pattern: /<\/?(?!\d)[^\s>\/=.$<]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\\1|\\?(?!\1)[\w\W])*\1|[^\s'">=]+))?)*\s*\/?>/i, inside: { 'tag': { pattern: /^<\/?[^\s>\/]+/i, inside: { 'punctuation': /^<\/?/, 'namespace': /^[^\s>\/:]+:/ } }, 'attr-value': { pattern: /=(?:('|")[\w\W]*?(\1)|[^\s>]+)/i, inside: { 'punctuation': /[=>"']/ } }, 'punctuation': /\/?>/, 'attr-name': { pattern: /[^\s>\/]+/, inside: { 'namespace': /^[^\s>\/:]+:/ } } } }, 'entity': /&#?[\da-z]{1,8};/i }; // Plugin to make entity title show the real entity, idea by Roman Komarov Prism.hooks.add('wrap', function(env) { if (env.type === 'entity') { env.attributes['title'] = env.content.replace(/&/, '&'); } }); Prism.languages.xml = Prism.languages.markup; Prism.languages.html = Prism.languages.markup; Prism.languages.mathml = Prism.languages.markup; Prism.languages.svg = Prism.languages.markup; /* ********************************************** Begin prism-css.js ********************************************** */ Prism.languages.css = { 'comment': /\/\*[\w\W]*?\*\//, 'atrule': { pattern: /@[\w-]+?.*?(;|(?=\s*\{))/i, inside: { 'rule': /@[\w-]+/ // See rest below } }, 'url': /url\((?:(["'])(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1|.*?)\)/i, 'selector': /[^\{\}\s][^\{\};]*?(?=\s*\{)/, 'string': /("|')(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1/, 'property': /(\b|\B)[\w-]+(?=\s*:)/i, 'important': /\B!important\b/i, 'function': /[-a-z0-9]+(?=\()/i, 'punctuation': /[(){};:]/ }; Prism.languages.css['atrule'].inside.rest = Prism.util.clone(Prism.languages.css); if (Prism.languages.markup) { Prism.languages.insertBefore('markup', 'tag', { 'style': { pattern: /()[\w\W]*?(?=<\/style>)/i, lookbehind: true, inside: Prism.languages.css, alias: 'language-css' } }); Prism.languages.insertBefore('inside', 'attr-value', { 'style-attr': { pattern: /\s*style=("|').*?\1/i, inside: { 'attr-name': { pattern: /^\s*style/i, inside: Prism.languages.markup.tag.inside }, 'punctuation': /^\s*=\s*['"]|['"]\s*$/, 'attr-value': { pattern: /.+/i, inside: Prism.languages.css } }, alias: 'language-css' } }, Prism.languages.markup.tag); } /* ********************************************** Begin prism-clike.js ********************************************** */ Prism.languages.clike = { 'comment': [ { pattern: /(^|[^\\])\/\*[\w\W]*?\*\//, lookbehind: true }, { pattern: /(^|[^\\:])\/\/.*/, lookbehind: true } ], 'string': /(["'])(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, 'class-name': { pattern: /((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/i, lookbehind: true, inside: { punctuation: /(\.|\\)/ } }, 'keyword': /\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/, 'boolean': /\b(true|false)\b/, 'function': /[a-z0-9_]+(?=\()/i, 'number': /\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)\b/i, 'operator': /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/, 'punctuation': /[{}[\];(),.:]/ }; /* ********************************************** Begin prism-javascript.js ********************************************** */ Prism.languages.javascript = Prism.languages.extend('clike', { 'keyword': /\b(as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/, 'number': /\b-?(0x[\dA-Fa-f]+|0b[01]+|0o[0-7]+|\d*\.?\d+([Ee][+-]?\d+)?|NaN|Infinity)\b/, // Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444) 'function': /[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*(?=\()/i }); Prism.languages.insertBefore('javascript', 'keyword', { 'regex': { pattern: /(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\\\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})]))/, lookbehind: true } }); Prism.languages.insertBefore('javascript', 'class-name', { 'template-string': { pattern: /`(?:\\`|\\?[^`])*`/, inside: { 'interpolation': { pattern: /\$\{[^}]+\}/, inside: { 'interpolation-punctuation': { pattern: /^\$\{|\}$/, alias: 'punctuation' }, rest: Prism.languages.javascript } }, 'string': /[\s\S]+/ } } }); if (Prism.languages.markup) { Prism.languages.insertBefore('markup', 'tag', { 'script': { pattern: /()[\w\W]*?(?=<\/script>)/i, lookbehind: true, inside: Prism.languages.javascript, alias: 'language-javascript' } }); } Prism.languages.js = Prism.languages.javascript; /* ********************************************** Begin prism-file-highlight.js ********************************************** */ (function () { if (typeof self === 'undefined' || !self.Prism || !self.document || !document.querySelector) { return; } self.Prism.fileHighlight = function() { var Extensions = { 'js': 'javascript', 'html': 'markup', 'svg': 'markup', 'xml': 'markup', 'py': 'python', 'rb': 'ruby', 'ps1': 'powershell', 'psm1': 'powershell' }; if(Array.prototype.forEach) { // Check to prevent error in IE8 Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) { var src = pre.getAttribute('data-src'); var language, parent = pre; var lang = /\blang(?:uage)?-(?!\*)(\w+)\b/i; while (parent && !lang.test(parent.className)) { parent = parent.parentNode; } if (parent) { language = (pre.className.match(lang) || [, ''])[1]; } if (!language) { var extension = (src.match(/\.(\w+)$/) || [, ''])[1]; language = Extensions[extension] || extension; } var code = document.createElement('code'); code.className = 'language-' + language; pre.textContent = ''; code.textContent = 'Loading…'; pre.appendChild(code); var xhr = new XMLHttpRequest(); xhr.open('GET', src, true); xhr.onreadystatechange = function () { if (xhr.readyState == 4) { if (xhr.status < 400 && xhr.responseText) { code.textContent = xhr.responseText; Prism.highlightElement(code); } else if (xhr.status >= 400) { code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText; } else { code.textContent = '✖ Error: File does not exist or is empty'; } } }; xhr.send(null); }); } }; document.addEventListener('DOMContentLoaded', self.Prism.fileHighlight); })(); PKfvCHD/**Nmaterialdjango/static/materialdjango/components/bower_components/prism/LICENSEMIT LICENSE Copyright (c) 2012 Lea Verou Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. PKfvCHj Rmaterialdjango/static/materialdjango/components/bower_components/prism/gulpfile.jsvar gulp = require('gulp'), rename = require('gulp-rename'), uglify = require('gulp-uglify'), header = require('gulp-header'), concat = require('gulp-concat'), replace = require('gulp-replace'), fs = require('fs'), paths = { componentsFile: 'components.js', components: ['components/**/*.js', '!components/**/*.min.js'], main: [ 'components/prism-core.js', 'components/prism-markup.js', 'components/prism-css.js', 'components/prism-clike.js', 'components/prism-javascript.js', 'plugins/file-highlight/prism-file-highlight.js' ], plugins: ['plugins/**/*.js', '!plugins/**/*.min.js'], showLanguagePlugin: 'plugins/show-language/prism-show-language.js', autoloaderPlugin: 'plugins/autoloader/prism-autoloader.js', changelog: 'CHANGELOG.md' }; gulp.task('components', function() { return gulp.src(paths.components) .pipe(uglify()) .pipe(rename({ suffix: '.min' })) .pipe(gulp.dest('components')); }); gulp.task('build', function() { return gulp.src(paths.main) .pipe(header('\n/* **********************************************\n' + ' Begin <%= file.relative %>\n' + '********************************************** */\n\n')) .pipe(concat('prism.js')) .pipe(gulp.dest('./')); }); gulp.task('plugins', ['languages-plugins'], function() { return gulp.src(paths.plugins) .pipe(uglify()) .pipe(rename({ suffix: '.min' })) .pipe(gulp.dest('plugins')); }); gulp.task('watch', function() { gulp.watch(paths.components, ['components', 'build']); gulp.watch(paths.plugins, ['plugins', 'build']); }); gulp.task('languages-plugins', function (cb) { fs.readFile(paths.componentsFile, { encoding: 'utf-8' }, function (err, data) { if (!err) { data = data.replace(/^var\s+components\s*=\s*|;\s*$/g, ''); try { data = JSON.parse(data); var languagesMap = {}; var dependenciesMap = {}; for (var p in data.languages) { if (p !== 'meta') { var title = data.languages[p].displayTitle || data.languages[p].title; var ucfirst = p.substring(0, 1).toUpperCase() + p.substring(1); if (title !== ucfirst) { languagesMap[p] = title; } if(data.languages[p].require) { dependenciesMap[p] = data.languages[p].require; } } } var jsonLanguagesMap = JSON.stringify(languagesMap); var jsonDependenciesMap = JSON.stringify(dependenciesMap); var tasks = [ {plugin: paths.showLanguagePlugin, map: jsonLanguagesMap}, {plugin: paths.autoloaderPlugin, map: jsonDependenciesMap} ]; var cpt = 0; var l = tasks.length; var done = function() { cpt++; if(cpt === l) { cb && cb(); } }; tasks.forEach(function(task) { var stream = gulp.src(task.plugin) .pipe(replace( /\/\*languages_placeholder\[\*\/[\s\S]*?\/\*\]\*\//, '/*languages_placeholder[*/' + task.map + '/*]*/' )) .pipe(gulp.dest(task.plugin.substring(0, task.plugin.lastIndexOf('/')))); stream.on('error', done); stream.on('end', done); }); } catch (e) { cb(e); } } else { cb(err); } }); }); gulp.task('changelog', function (cb) { return gulp.src(paths.changelog) .pipe(replace( /#(\d+)(?![\d\]])/g, '[#$1](https://github.com/PrismJS/prism/issues/$1)' )) .pipe(replace( /\[[\da-f]+(?:, *[\da-f]+)*\]/g, function (match) { return match.replace(/([\da-f]{7})[\da-f]*/g, '[`$1`](https://github.com/PrismJS/prism/commit/$1)'); } )) .pipe(gulp.dest('.')); }); gulp.task('default', ['components', 'plugins', 'build']); PKfvCH")")Tmaterialdjango/static/materialdjango/components/bower_components/prism/components.jsvar components = { "core": { "meta": { "path": "components/prism-core.js", "option": "mandatory" }, "core": "Core" }, "themes": { "meta": { "path": "themes/{id}.css", "link": "index.html?theme={id}", "exclusive": true }, "prism": { "title": "Default", "option": "default" }, "prism-dark": "Dark", "prism-funky": "Funky", "prism-okaidia": { "title": "Okaidia", "owner": "ocodia" }, "prism-twilight": { "title": "Twilight", "owner": "remybach" }, "prism-coy": { "title": "Coy", "owner": "tshedor" }, "prism-solarizedlight": { "title": "Solarized Light", "owner": "hectormatos2011 " } }, "languages": { "meta": { "path": "components/prism-{id}", "noCSS": true, "examplesPath": "examples/prism-{id}", "addCheckAll": true }, "markup": { "title": "Markup", "option": "default" }, "css": { "title": "CSS", "option": "default" }, "clike": { "title": "C-like", "option": "default" }, "javascript": { "title": "JavaScript", "option": "default", "require": "clike" }, "abap": { "title": "ABAP", "owner": "dellagustin" }, "actionscript": { "title": "ActionScript", "require": "javascript", "owner": "Golmote" }, "apacheconf": { "title": "Apache Configuration", "owner": "GuiTeK" }, "apl": { "title": "APL", "owner": "ngn" }, "applescript": { "title": "AppleScript", "owner": "Golmote" }, "asciidoc": { "title": "AsciiDoc", "owner": "Golmote" }, "aspnet": { "title": "ASP.NET (C#)", "require": "markup", "owner": "nauzilus" }, "autoit": { "title": "AutoIt", "owner": "Golmote" }, "autohotkey": { "title": "AutoHotkey", "owner": "aviaryan" }, "bash": { "title": "Bash", "owner": "zeitgeist87" }, "basic": { "title": "BASIC", "owner": "Golmote" }, "batch": { "title": "Batch", "owner": "Golmote" }, "bison": { "title": "Bison", "require": "c", "owner": "Golmote" }, "brainfuck": { "title": "Brainfuck", "owner": "Golmote" }, "c": { "title": "C", "require": "clike", "owner": "zeitgeist87" }, "csharp": { "title": "C#", "require": "clike", "owner": "mvalipour" }, "cpp": { "title": "C++", "require": "c", "owner": "zeitgeist87" }, "coffeescript": { "title": "CoffeeScript", "require": "javascript", "owner": "R-osey" }, "crystal": { "title": "Crystal", "require": "ruby", "owner": "MakeNowJust" }, "css-extras": { "title": "CSS Extras", "require": "css", "owner": "milesj" }, "d": { "title": "D", "require": "clike", "owner": "Golmote" }, "dart": { "title": "Dart", "require": "clike", "owner": "Golmote" }, "diff": { "title": "Diff", "owner": "uranusjr" }, "docker": { "title": "Docker", "owner": "JustinBeckwith" }, "eiffel": { "title": "Eiffel", "owner": "Conaclos" }, "elixir": { "title": "Elixir", "owner": "Golmote" }, "erlang": { "title": "Erlang", "owner": "Golmote" }, "fsharp": { "title": "F#", "require": "clike", "owner": "simonreynolds7" }, "fortran": { "title": "Fortran", "owner": "Golmote" }, "gherkin": { "title": "Gherkin", "owner": "hason" }, "git": { "title": "Git", "owner": "lgiraudel" }, "glsl": { "title": "GLSL", "require": "clike", "owner": "Golmote" }, "go": { "title": "Go", "require": "clike", "owner": "arnehormann" }, "groovy": { "title": "Groovy", "require": "clike", "owner": "robfletcher" }, "haml": { "title": "Haml", "require": "ruby", "owner": "Golmote" }, "handlebars": { "title": "Handlebars", "require": "markup", "owner": "Golmote" }, "haskell": { "title": "Haskell", "owner": "bholst" }, "haxe": { "title": "Haxe", "require": "clike", "owner": "Golmote" }, "http": { "title": "HTTP", "owner": "danielgtaylor" }, "icon": { "title": "Icon", "owner": "Golmote" }, "inform7": { "title": "Inform 7", "owner": "Golmote" }, "ini": { "title": "Ini", "owner": "aviaryan" }, "j": { "title": "J", "owner": "Golmote" }, "jade": { "title": "Jade", "require": "javascript", "owner": "Golmote" }, "java": { "title": "Java", "require": "clike", "owner": "sherblot" }, "json": { "title": "JSON", "owner": "CupOfTea696" }, "julia": { "title": "Julia", "owner": "cdagnino" }, "keyman": { "title": "Keyman", "owner": "mcdurdin" }, "kotlin": { "title": "Kotlin", "require": "clike", "owner": "Golmote" }, "latex": { "title": "LaTeX", "owner": "japborst" }, "less": { "title": "Less", "require": "css", "owner": "Golmote" }, "lolcode": { "title": "LOLCODE", "owner": "Golmote" }, "lua": { "title": "Lua", "owner": "Golmote" }, "makefile": { "title": "Makefile", "owner": "Golmote" }, "markdown": { "title": "Markdown", "require": "markup", "owner": "Golmote" }, "matlab": { "title": "MATLAB", "owner": "Golmote" }, "mel": { "title": "MEL", "owner": "Golmote" }, "mizar": { "title": "Mizar", "owner": "Golmote" }, "monkey": { "title": "Monkey", "owner": "Golmote" }, "nasm": { "title": "NASM", "owner": "rbmj" }, "nginx": { "title": "nginx", "owner": "westonganger", "require": "clike" }, "nim": { "title": "Nim", "owner": "Golmote" }, "nix": { "title": "Nix", "owner": "Golmote" }, "nsis": { "title": "NSIS", "owner": "idleberg" }, "objectivec": { "title": "Objective-C", "require": "c", "owner": "uranusjr" }, "ocaml": { "title": "OCaml", "owner": "Golmote" }, "oz": { "title": "Oz", "owner": "Golmote" }, "parigp": { "title": "PARI/GP", "owner": "Golmote" }, "parser": { "title": "Parser", "require": "markup", "owner": "Golmote" }, "pascal": { "title": "Pascal", "owner": "Golmote" }, "perl": { "title": "Perl", "owner": "Golmote" }, "php": { "title": "PHP", "require": "clike", "owner": "milesj" }, "php-extras": { "title": "PHP Extras", "require": "php", "owner": "milesj" }, "powershell": { "title": "PowerShell", "owner": "nauzilus" }, "processing": { "title": "Processing", "require": "clike", "owner": "Golmote" }, "prolog": { "title": "Prolog", "owner": "Golmote" }, "puppet": { "title": "Puppet", "owner": "Golmote" }, "pure": { "title": "Pure", "owner": "Golmote" }, "python": { "title": "Python", "owner": "multipetros" }, "q": { "title": "Q", "owner": "Golmote" }, "qore": { "title": "Qore", "require": "clike", "owner": "temnroegg" }, "r": { "title": "R", "owner": "Golmote" }, "jsx":{ "title": "React JSX", "require": ["markup", "javascript"], "owner": "vkbansal" }, "rest": { "title": "reST (reStructuredText)", "owner": "Golmote" }, "rip": { "title": "Rip", "owner": "ravinggenius" }, "roboconf": { "title": "Roboconf", "owner": "Golmote" }, "ruby": { "title": "Ruby", "require": "clike", "owner": "samflores" }, "rust": { "title": "Rust", "owner": "Golmote" }, "sas": { "title": "SAS", "owner": "Golmote" }, "sass": { "title": "Sass (Sass)", "require": "css", "owner": "Golmote" }, "scss": { "title": "Sass (Scss)", "require": "css", "owner": "MoOx" }, "scala": { "title": "Scala", "require": "java", "owner": "jozic" }, "scheme" : { "title": "Scheme", "owner" : "bacchus123" }, "smalltalk": { "title": "Smalltalk", "owner": "Golmote" }, "smarty": { "title": "Smarty", "require": "markup", "owner": "Golmote" }, "sql": { "title": "SQL", "owner": "multipetros" }, "stylus" : { "title": "Stylus", "owner": "vkbansal" }, "swift": { "title": "Swift", "require": "clike", "owner": "chrischares" }, "tcl": { "title": "Tcl", "owner": "PeterChaplin" }, "textile": { "title": "Textile", "require": "markup", "owner": "Golmote" }, "twig": { "title": "Twig", "require": "markup", "owner": "brandonkelly" }, "typescript":{ "title": "TypeScript", "require": "javascript", "owner": "vkbansal" }, "verilog": { "title": "Verilog", "owner": "a-rey" }, "vhdl": { "title": "VHDL", "owner": "a-rey" }, "vim": { "title": "vim", "owner": "westonganger" }, "wiki": { "title": "Wiki markup", "require": "markup", "owner": "Golmote" }, "yaml": { "title": "YAML", "owner": "hason" } }, "plugins": { "meta": { "path": "plugins/{id}/prism-{id}", "link": "plugins/{id}/" }, "line-highlight": "Line Highlight", "line-numbers": { "title": "Line Numbers", "owner": "kuba-kubula" }, "show-invisibles": "Show Invisibles", "autolinker": "Autolinker", "wpd": "WebPlatform Docs", "file-highlight": { "title": "File Highlight", "noCSS": true }, "show-language": { "title": "Show Language", "owner": "nauzilus" }, "jsonp-highlight": { "title": "JSONP Highlight", "noCSS": true, "owner": "nauzilus" }, "highlight-keywords": { "title": "Highlight Keywords", "owner": "vkbansal", "noCSS": true }, "remove-initial-line-feed": { "title": "Remove initial line feed", "owner": "Golmote", "noCSS": true }, "previewer-base": { "title": "Previewer: Base", "owner": "Golmote" }, "previewer-color": { "title": "Previewer: Color", "require": "previewer-base", "owner": "Golmote" }, "previewer-gradient": { "title": "Previewer: Gradient", "require": "previewer-base", "owner": "Golmote" }, "previewer-easing": { "title": "Previewer: Easing", "require": "previewer-base", "owner": "Golmote" }, "previewer-time": { "title": "Previewer: Time", "require": "previewer-base", "owner": "Golmote" }, "previewer-angle": { "title": "Previewer: Angle", "require": "previewer-base", "owner": "Golmote" }, "autoloader": { "title": "Autoloader", "owner": "Golmote", "noCSS": true }, "keep-markup": { "title": "Keep Markup", "owner": "Golmote", "noCSS": true }, "command-line": { "title": "Command Line", "owner": "chriswells0" } } }; PKfvCHr]^^Smaterialdjango/static/materialdjango/components/bower_components/prism/CHANGELOG.md# Prism Changelog ## 1.4.1 (2016-02-03) ### Other changes * Fix DFS bug in Prism core [[`b86c727`](https://github.com/PrismJS/prism/commit/b86c727)] ## 1.4.0 (2016-02-03) ### New components * __Solarized Light__ ([#855](https://github.com/PrismJS/prism/pull/855)) [[`70846ba`](https://github.com/PrismJS/prism/commit/70846ba)] * __JSON__ ([#370](https://github.com/PrismJS/prism/pull/370)) [[`ad2fcd0`](https://github.com/PrismJS/prism/commit/ad2fcd0)] ### Updated components * __Show Language__: * Remove data-language attribute ([#840](https://github.com/PrismJS/prism/pull/840)) [[`eb9a83c`](https://github.com/PrismJS/prism/commit/eb9a83c)] * Allow custom label without a language mapping ([#837](https://github.com/PrismJS/prism/pull/837)) [[`7e74aef`](https://github.com/PrismJS/prism/commit/7e74aef)] * __JSX__: * Better Nesting in JSX attributes ([#842](https://github.com/PrismJS/prism/pull/842)) [[`971dda7`](https://github.com/PrismJS/prism/commit/971dda7)] * __File Highlight__: * Defer File Highlight until the full DOM has loaded. ([#844](https://github.com/PrismJS/prism/pull/844)) [[`6f995ef`](https://github.com/PrismJS/prism/commit/6f995ef)] * __Coy Theme__: * Fix coy theme shadows ([#865](https://github.com/PrismJS/prism/pull/865)) [[`58d2337`](https://github.com/PrismJS/prism/commit/58d2337)] * __Show Invisibles__: * Ensure show-invisibles compat with autoloader ([#874](https://github.com/PrismJS/prism/pull/874)) [[`c3cfb1f`](https://github.com/PrismJS/prism/commit/c3cfb1f)] * Add support for the space character for the show-invisibles plugin ([#876](https://github.com/PrismJS/prism/pull/876)) [[`05442d3`](https://github.com/PrismJS/prism/commit/05442d3)] ### New plugins * __Command Line__ ([#831](https://github.com/PrismJS/prism/pull/831)) [[`8378906`](https://github.com/PrismJS/prism/commit/8378906)] ### Other changes * Use document.currentScript instead of document.getElementsByTagName() [[`fa98743`](https://github.com/PrismJS/prism/commit/fa98743)] * Add prefix for Firefox selection and move prefixed rule first [[`6d54717`](https://github.com/PrismJS/prism/commit/6d54717)] * No background for `` in `
    ` [[`8c310bc`](https://github.com/PrismJS/prism/commit/8c310bc)]
    * Fixing to initial copyright year [[`69cbf7a`](https://github.com/PrismJS/prism/commit/69cbf7a)]
    * Simplify the “lang” regex [[`417f54a`](https://github.com/PrismJS/prism/commit/417f54a)]
    * Fix broken heading links [[`a7f9e62`](https://github.com/PrismJS/prism/commit/a7f9e62)]
    * Prevent infinite recursion in DFS [[`02894e1`](https://github.com/PrismJS/prism/commit/02894e1)]
    * Fix incorrect page title [[`544b56f`](https://github.com/PrismJS/prism/commit/544b56f)]
    * Link scss to webplatform wiki [[`08d979a`](https://github.com/PrismJS/prism/commit/08d979a)]
    * Revert white-space to normal when code is inline instead of in a pre [[`1a971b5`](https://github.com/PrismJS/prism/commit/1a971b5)]
    
    ## 1.3.0 (2015-10-26)
    
    ### New components
    
    * __AsciiDoc__ ([#800](https://github.com/PrismJS/prism/issues/800)) [[`6803ca0`](https://github.com/PrismJS/prism/commit/6803ca0)]
    * __Haxe__ ([#811](https://github.com/PrismJS/prism/issues/811)) [[`bd44341`](https://github.com/PrismJS/prism/commit/bd44341)]
    * __Icon__ ([#803](https://github.com/PrismJS/prism/issues/803)) [[`b43c5f3`](https://github.com/PrismJS/prism/commit/b43c5f3)]
    * __Kotlin ([#814](https://github.com/PrismJS/prism/issues/814)) [[`e8a31a5`](https://github.com/PrismJS/prism/commit/e8a31a5)]
    * __Lua__ ([#804](https://github.com/PrismJS/prism/issues/804)) [[`a36bc4a`](https://github.com/PrismJS/prism/commit/a36bc4a)]
    * __Nix__ ([#795](https://github.com/PrismJS/prism/issues/795)) [[`9b275c8`](https://github.com/PrismJS/prism/commit/9b275c8)]
    * __Oz__ ([#805](https://github.com/PrismJS/prism/issues/805)) [[`388c53f`](https://github.com/PrismJS/prism/commit/388c53f)]
    * __PARI/GP__ ([#802](https://github.com/PrismJS/prism/issues/802)) [[`253c035`](https://github.com/PrismJS/prism/commit/253c035)]
    * __Parser__ ([#808](https://github.com/PrismJS/prism/issues/808)) [[`a953b3a`](https://github.com/PrismJS/prism/commit/a953b3a)]
    * __Puppet__ ([#813](https://github.com/PrismJS/prism/issues/813)) [[`81933ee`](https://github.com/PrismJS/prism/commit/81933ee)]
    * __Roboconf__ ([#812](https://github.com/PrismJS/prism/issues/812)) [[`f5db346`](https://github.com/PrismJS/prism/commit/f5db346)]
    
    ### Updated components
    
    * __C__:
    	* Highlight directives in preprocessor lines ([#801](https://github.com/PrismJS/prism/issues/801)) [[`ad316a3`](https://github.com/PrismJS/prism/commit/ad316a3)]
    * __C#__:
    	* Highlight directives in preprocessor lines ([#801](https://github.com/PrismJS/prism/issues/801)) [[`ad316a3`](https://github.com/PrismJS/prism/commit/ad316a3)]
    	* Fix detection of float numbers ([#806](https://github.com/PrismJS/prism/issues/806)) [[`1dae72b`](https://github.com/PrismJS/prism/commit/1dae72b)]
    * __F#__:
    	* Highlight directives in preprocessor lines ([#801](https://github.com/PrismJS/prism/issues/801)) [[`ad316a3`](https://github.com/PrismJS/prism/commit/ad316a3)]
    * __JavaScript__:
    	* Highlight true and false as booleans ([#801](https://github.com/PrismJS/prism/issues/801)) [[`ad316a3`](https://github.com/PrismJS/prism/commit/ad316a3)]
    * __Python__:
    	* Highlight triple-quoted strings before comments. Fix [#815](https://github.com/PrismJS/prism/issues/815) [[`90fbf0b`](https://github.com/PrismJS/prism/commit/90fbf0b)]
    
    ### New plugins
    
    * __Previewer: Time__ ([#790](https://github.com/PrismJS/prism/issues/790)) [[`88173de`](https://github.com/PrismJS/prism/commit/88173de)]
    * __Previewer: Angle__ ([#791](https://github.com/PrismJS/prism/issues/791)) [[`a434c86`](https://github.com/PrismJS/prism/commit/a434c86)]
    
    ### Other changes
    
    * Increase mocha's timeout [[`f1c41db`](https://github.com/PrismJS/prism/commit/f1c41db)]
    * Prevent most errors in IE8. Fix [#9](https://github.com/PrismJS/prism/issues/9) [[`9652d75`](https://github.com/PrismJS/prism/commit/9652d75)]
    * Add U.S. Web Design Standards on homepage. Fix [#785](https://github.com/PrismJS/prism/issues/785) [[`e10d48b`](https://github.com/PrismJS/prism/commit/e10d48b), [`79ebbf8`](https://github.com/PrismJS/prism/commit/79ebbf8), [`2f7088d`](https://github.com/PrismJS/prism/commit/2f7088d)]
    * Added gulp task to autolink PRs and commits in changelog [[`5ec4e4d`](https://github.com/PrismJS/prism/commit/5ec4e4d)]
    * Use child processes to run each set of tests, in order to deal with the memory leak in vm.runInNewContext() [[`9a4b6fa`](https://github.com/PrismJS/prism/commit/9a4b6fa)]
    
    ## 1.2.0 (2015-10-07)
    
    ### New components
    
    * __Batch__ ([#781](https://github.com/PrismJS/prism/issues/781)) [[`eab5b06`](https://github.com/PrismJS/prism/commit/eab5b06)]
    
    ### Updated components
    
    * __ASP.NET__:
    	* Simplified pattern for `
    
    
    ----------------------------------------------------
    
    [
    
    	["tag", [
    		["tag", [
    			["punctuation", "<"],
    			"script"
    		]],
    		["attr-name", [
    			"type"
    		]],
    		["attr-value", [
    			["punctuation", "="],
    			["punctuation", "\""],
    			"text/javascript",
    			["punctuation", "\""]
    		]],
    		["punctuation", ">"]
    	]],
    	["script", [
    		["function", "foo"],
    		["punctuation", "("],
    		["punctuation", ")"]
    	]],
    	["tag", [
    		["tag", [
    			["punctuation", ""]
    	]],
    
    	["tag", [
    		["tag", [
    			["punctuation", "<"],
    			"script"
    		]],
    		["punctuation", ">"]
    	]],
    	["script", [
    		["string", "\"foo bar\""]
    	]],
    	["tag", [
    		["tag", [
    			["punctuation", ""]
    	]]
    ]
    
    ----------------------------------------------------
    
    Checks for Javascript usage inside Markup, using 
    
    
    ----------------------------------------------------
    
    [
    	["tag", [
    		["tag", [
    			["punctuation", "<"],
    			"script"
    		]],
    		["attr-name", [
    			"runat"
    		]],
    		["attr-value", [
    			["punctuation", "="],
    			["punctuation", "\""],
    			"server",
    			["punctuation", "\""]
    		]],
    		["punctuation", ">"]
    	]],
    	["asp script", [
    		["preprocessor", ["#", ["directive", "pragma"]]]
    	]],
    	["tag", [
    		["tag", [
    			["punctuation", ""]
    	]],
    
    	["tag", [
    		["tag", [
    			["punctuation", "<"],
    			"script"
    		]],
    		["punctuation", ">"]
    	]],
    	["script", [
    		["regex", "/foo/"]
    	]],
    	["tag", [
    		["tag", [
    			["punctuation", ""]
    	]]
    ]
    
    ----------------------------------------------------
    
    Checks for scripts containing C# code.
    Also checks that those don't break normal JS scripts.
    Note: Markup is loaded before Javascript so that scripts are added into grammar.PKfvCHpmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/scss/boolean_feature.testtrue
    false
    
    ----------------------------------------------------
    
    [
    	["boolean", "true"],
    	["boolean", "false"]
    ]
    
    ----------------------------------------------------
    
    Checks for booleans.PKfvCHU
    
    tmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/scss/placeholder_feature.test%foobar
    %foo-bar
    %foo_bar
    
    ----------------------------------------------------
    
    [
    	["placeholder", "%foobar"],
    	["placeholder", "%foo-bar"],
    	["placeholder", "%foo_bar"]
    ]
    
    ----------------------------------------------------
    
    Checks for placeholders.PKfvCH=ϋttqmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/scss/variable_feature.test$foo
    $foo-bar
    $foo_bar
    #{$foo}
    #{$foo-bar}
    #{$foo_bar}
    
    ----------------------------------------------------
    
    [
    	["variable", "$foo"],
    	["variable", "$foo-bar"],
    	["variable", "$foo_bar"],
    	["variable", "#{$foo}"],
    	["variable", "#{$foo-bar}"],
    	["variable", "#{$foo_bar}"]
    ]
    
    ----------------------------------------------------
    
    Checks for variables.PKfvCH pmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/scss/comment_feature.test//
    // foobar
    /**/
    /* foo
    bar */
    
    
    ----------------------------------------------------
    
    [
    	["comment", "//"],
    	["comment", "// foobar"],
    	["comment", "/**/"],
    	["comment", "/* foo\r\nbar */"]
    ]
    
    ----------------------------------------------------
    
    Checks for comments.PKfvCH,0rmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/scss/statement_feature.test$foo: "bar" !default;
    @extend .baz !optional;
    
    ----------------------------------------------------
    
    [
    	["variable", "$foo"],
    	["punctuation", ":"],
    	["string", "\"bar\""],
    	["statement", "!default"],
    	["punctuation", ";"],
    
    	["keyword", "@extend"],
    	" .baz ",
    	["statement", "!optional"],
    	["punctuation", ";"]
    ]
    
    ----------------------------------------------------
    
    Checks for statements.PKfvCHyMMqmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/scss/operator_feature.test4 - 2;
    4 + 2;
    4 * 2;
    4 / 2;
    4 % 2;
    4 == 2;
    4 != 2;
    4 < 2;
    4 <= 2;
    4 > 2;
    4 >= 2;
    true and false
    false or true
    not true
    
    ----------------------------------------------------
    
    [
    	"4 ", ["operator", "-"], " 2", ["punctuation", ";"],
    	"\r\n4 ", ["operator", "+"], " 2", ["punctuation", ";"],
    	"\r\n4 ", ["operator", "*"], " 2", ["punctuation", ";"],
    	"\r\n4 ", ["operator", "/"], " 2", ["punctuation", ";"],
    	"\r\n4 ", ["operator", "%"], " 2", ["punctuation", ";"],
    	"\r\n4 ", ["operator", "=="], " 2", ["punctuation", ";"],
    	"\r\n4 ", ["operator", "!="], " 2", ["punctuation", ";"],
    	"\r\n4 ", ["operator", "<"], " 2", ["punctuation", ";"],
    	"\r\n4 ", ["operator", "<="], " 2", ["punctuation", ";"],
    	"\r\n4 ", ["operator", ">"], " 2", ["punctuation", ";"],
    	"\r\n4 ", ["operator", ">="], " 2", ["punctuation", ";"],
    
    	["boolean", "true"], ["operator", "and"], ["boolean", "false"],
    	["boolean", "false"], ["operator", "or"], ["boolean", "true"],
    	["operator", "not"], ["boolean", "true"]
    ]
    
    ----------------------------------------------------
    
    Checks for operators.PKfvCHc۠**qmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/scss/selector_feature.testa {}
    p, div {}
    #foobar .foo {}
    &:hover {}
    &-sidebar {}
    #context a%extreme {}
    #{$selector}:before {}
    
    ----------------------------------------------------
    
    [
    	["selector", ["a "]], ["punctuation", "{"], ["punctuation", "}"],
    	["selector", ["p, div "]], ["punctuation", "{"], ["punctuation", "}"],
    	["selector", ["#foobar .foo "]], ["punctuation", "{"], ["punctuation", "}"],
    	["selector", ["&:hover "]], ["punctuation", "{"], ["punctuation", "}"],
    	["selector", ["&-sidebar "]], ["punctuation", "{"], ["punctuation", "}"],
    	["selector", ["#context a", ["placeholder", "%extreme"]]], ["punctuation", "{"], ["punctuation", "}"],
    	["selector", ["#{$selector}:before "]], ["punctuation", "{"], ["punctuation", "}"]
    ]
    
    ----------------------------------------------------
    
    Checks for selectors.PKfvCH~wmmlmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/scss/url_feature.testurl('foo.png')
    font-url('foo.ttf')
    
    ----------------------------------------------------
    
    [
    	["url", "url"],
    	["punctuation", "("],
    	["string", "'foo.png'"],
    	["punctuation", ")"],
    	["url", "font-url"],
    	["punctuation", "("],
    	["string", "'foo.ttf'"],
    	["punctuation", ")"]
    ]
    
    ----------------------------------------------------
    
    Checks for URLs.PKfvCH5*pmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/scss/keyword_feature.test@if @else if @else
    @for @each @while
    @import @extend
    @debug @warn @mixin
    @include @function
    @return @content
    
    @for $i from 1 through 3
    
    ----------------------------------------------------
    
    [
    	["keyword", "@if"], ["keyword", "@else if"], ["keyword", "@else"],
    	["keyword", "@for"], ["keyword", "@each"], ["keyword", "@while"],
    	["keyword", "@import"], ["keyword", "@extend"],
    	["keyword", "@debug"], ["keyword", "@warn"], ["keyword", "@mixin"],
    	["keyword", "@include"], ["keyword", "@function"],
    	["keyword", "@return"], ["keyword", "@content"],
    
    	["keyword", "@for"],
    	["variable", "$i"],
    	["keyword", "from"],
    	" 1 ",
    	["keyword", "through"],
    	" 3"
    ]
    
    ----------------------------------------------------
    PKfvCH.Nomaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/scss/atrule_feature.test@media (min-width: 600px) {}
    
    ----------------------------------------------------
    
    [
    	["atrule", [
    		["rule", "@media"],
    		["punctuation", "("],
    		["property", "min-width"],
    		["punctuation", ":"],
    		" 600px",
    		["punctuation", ")"]
    	]],
    	["punctuation", "{"],
        ["punctuation", "}"]
    ]
    
    ----------------------------------------------------
    
    Checks for at-rules.PKfvCHSimmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/scss/null_feature.testnull
    
    ----------------------------------------------------
    
    [
    	["null", "null"]
    ]
    
    ----------------------------------------------------
    
    Checks for null.PKfvCH٬PJJumaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/markup+php/markup_feature.test
    ---------------------------------------------------- [ ["markup", [ ["tag", [ ["tag", [ ["punctuation", "<"], "div" ]], ["attr-name", [ "class" ]], ["attr-value", [ ["punctuation", "="], ["punctuation", "\""], "foo", ["punctuation", "\""] ]], ["punctuation", ">"] ]] ]], ["markup", [ ["tag", [ ["tag", [ ["punctuation", ""] ]] ]] ] ---------------------------------------------------- Checks for markup in PHP.PKfvCHoormaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/stylus/boolean_feature.testa = true b = false ---------------------------------------------------- [ ["variable-declaration", [ ["variable", "a"], ["operator", "="], ["boolean", "true"] ]], ["variable-declaration", [ ["variable", "b"], ["operator", "="], ["boolean", "false"] ]] ] ---------------------------------------------------- Checks for booleans.PKfvCH@rmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/stylus/hexcode_feature.testcolor: #fff color: #FA3 color: #f7c111 color: #9F4ABB ---------------------------------------------------- [ ["property-declaration", [ ["property", ["color"]], ["punctuation", ":"], ["hexcode", "#fff"] ]], ["property-declaration", [ ["property", ["color"]], ["punctuation", ":"], ["hexcode", "#FA3"] ]], ["property-declaration", [ ["property", ["color"]], ["punctuation", ":"], ["hexcode", "#f7c111"] ]], ["property-declaration", [ ["property", ["color"]], ["punctuation", ":"], ["hexcode", "#9F4ABB"] ]] ] ---------------------------------------------------- Checks for hexadecimal values.PKfvCHԣN}materialdjango/static/materialdjango/components/bower_components/prism/tests/languages/stylus/atrule-declaration_feature.test@media print @import "reset.css" @font-face { @keyframes { @media (max-{foo}: bar) ---------------------------------------------------- [ ["atrule-declaration", [["atrule", "@media"], " print"]], ["atrule-declaration", [["atrule", "@import"], ["string", "\"reset.css\""]]], ["atrule-declaration", [["atrule", "@font-face"], ["punctuation", "{"]]], ["atrule-declaration", [["atrule", "@keyframes"], ["punctuation", "{"]]], ["atrule-declaration", [ ["atrule", "@media"], ["punctuation", "("], "max-", ["interpolation", [ ["punctuation", "{"], "foo", ["punctuation", "}"] ]], ["punctuation", ":"], " bar", ["punctuation", ")"] ]] ] ---------------------------------------------------- Checks for at-rules.PKfvCH%rmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/stylus/comment_feature.test/**/ /* foo bar */ // // foobar ---------------------------------------------------- [ ["comment", "/**/"], ["comment", "/* foo\r\nbar */"], ["comment", "//"], ["comment", "// foobar"] ] ---------------------------------------------------- Checks for comments.PKfvCHь6bbqmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/stylus/number_feature.testz-index 42 foo = 3.14159 width: 23% bar = 1.5% ---------------------------------------------------- [ ["property-declaration", [ ["property", ["z-index"]], ["number", "42"] ]], ["variable-declaration", [ ["variable", "foo"], ["operator", "="], ["number", "3.14159"] ]], ["property-declaration", [ ["property", ["width"]], ["punctuation", ":"], ["number", "23%"] ]], ["variable-declaration", [ ["variable", "bar"], ["operator", "="], ["number", "1.5%"] ]] ] ---------------------------------------------------- Checks for numbers and percentages.PKfvCHWdgomaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/stylus/func_feature.testborder-radius(n) -webkit-border-radius n -moz-border-radius n border-radius n form input[type=button] border-radius(5px) color foo() ---------------------------------------------------- [ ["func", [ ["function", "border-radius"], ["punctuation", "("], "n", ["punctuation", ")"] ]], ["property-declaration", [ ["property", ["-webkit-border-radius"]], " n" ]], ["property-declaration", [ ["property", ["-moz-border-radius"]], " n" ]], ["property-declaration", [ ["property", ["border-radius"]], " n" ]], ["selector", ["form input[type=button]"]], ["func", [ ["function", "border-radius"], ["punctuation", "("], ["number", "5"], "px", ["punctuation", ")"] ]], ["property-declaration", [ ["property", ["color"]], ["func", [ ["function", "foo"], ["punctuation", "("], ["punctuation", ")"] ]] ]] ] ---------------------------------------------------- Checks for functions.PKfvCHFRRsmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/stylus/operator_feature.testa = !b b = b != a c = ~b d = c + b d += a e = d - c e -= b f = a * b g = c ** d g *= f h = g / f h /= e i = h % g i %= f j = 1..5 k = 1...5 l = k < j m = l <= k n = m > l o = n >= m p = o ? n : m q ?= p r = q == p s := r t = s && r u = t || s v = u and t w = v or u x = 1 in w y = true is true z = true is not false aa = z isnt y ab = #fff is a 'rgba' ac = ab is defined ad = not ac ---------------------------------------------------- [ ["variable-declaration", [ ["variable", "a"], ["operator", "="], ["operator", "!"], "b" ]], ["variable-declaration", [ ["variable", "b"], ["operator", "="], " b ", ["operator", "!="], " a" ]], ["variable-declaration", [ ["variable", "c"], ["operator", "="], ["operator", "~"], "b" ]], ["variable-declaration", [ ["variable", "d"], ["operator", "="], " c ", ["operator", "+"], " b" ]], ["variable-declaration", [ ["variable", "d"], ["operator", "+="], " a" ]], ["variable-declaration", [ ["variable", "e"], ["operator", "="], " d ", ["operator", "-"], " c" ]], ["variable-declaration", [ ["variable", "e"], ["operator", "-="], " b" ]], ["variable-declaration", [ ["variable", "f"], ["operator", "="], " a ", ["operator", "*"], " b" ]], ["variable-declaration", [ ["variable", "g"], ["operator", "="], " c ", ["operator", "**"], " d" ]], ["variable-declaration", [ ["variable", "g"], ["operator", "*="], " f" ]], ["variable-declaration", [ ["variable", "h"], ["operator", "="], " g ", ["operator", "/"], " f" ]], ["variable-declaration", [ ["variable", "h"], ["operator", "/="], " e" ]], ["variable-declaration", [ ["variable", "i"], ["operator", "="], " h ", ["operator", "%"], " g" ]], ["variable-declaration", [ ["variable", "i"], ["operator", "%="], " f" ]], ["variable-declaration", [ ["variable", "j"], ["operator", "="], ["number", "1"], ["operator", ".."], ["number", "5"] ]], ["variable-declaration", [ ["variable", "k"], ["operator", "="], ["number", "1"], ["operator", "..."], ["number", "5"] ]], ["variable-declaration", [ ["variable", "l"], ["operator", "="], " k ", ["operator", "<"], " j" ]], ["variable-declaration", [ ["variable", "m"], ["operator", "="], " l ", ["operator", "<="], " k" ]], ["variable-declaration", [ ["variable", "n"], ["operator", "="], " m ", ["operator", ">"], " l" ]], ["variable-declaration", [ ["variable", "o"], ["operator", "="], " n ", ["operator", ">="], " m" ]], ["variable-declaration", [ ["variable", "p"], ["operator", "="], " o ", ["operator", "?"], " n ", ["punctuation", ":"], " m" ]], ["variable-declaration", [ ["variable", "q"], ["operator", "?="], " p" ]], ["variable-declaration", [ ["variable", "r"], ["operator", "="], " q ", ["operator", "=="], " p" ]], ["variable-declaration", [ ["variable", "s"], ["operator", ":="], " r" ]], ["variable-declaration", [ ["variable", "t"], ["operator", "="], " s ", ["operator", "&&"], " r" ]], ["variable-declaration", [ ["variable", "u"], ["operator", "="], " t ", ["operator", "||"], " s" ]], ["variable-declaration", [ ["variable", "v"], ["operator", "="], " u ", ["operator", "and"], " t" ]], ["variable-declaration", [ ["variable", "w"], ["operator", "="], " v ", ["operator", "or"], " u" ]], ["variable-declaration", [ ["variable", "x"], ["operator", "="], ["number", "1"], ["operator", "in"], " w" ]], ["variable-declaration", [ ["variable", "y"], ["operator", "="], ["boolean", "true"], ["operator", "is"], ["boolean", "true"] ]], ["variable-declaration", [ ["variable", "z"], ["operator", "="], ["boolean", "true"], ["operator", "is not"], ["boolean", "false"] ]], ["variable-declaration", [ ["variable", "aa"], ["operator", "="], " z ", ["operator", "isnt"], " y" ]], ["variable-declaration", [ ["variable", "ab"], ["operator", "="], ["hexcode", "#fff"], ["operator", "is a"], ["string", "'rgba'"] ]], ["variable-declaration", [ ["variable", "ac"], ["operator", "="], " ab ", ["operator", "is defined"] ]], ["variable-declaration", [ ["variable", "ad"], ["operator", "="], ["operator", "not"], " ac" ]] ] ---------------------------------------------------- Checks for all operators.PKfvCHl>qmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/stylus/string_feature.testcontent: "" content: "foo" content: '' content: 'foo' ---------------------------------------------------- [ ["property-declaration", [ ["property", ["content"]], ["punctuation", ":"], ["string", "\"\""] ]], ["property-declaration", [ ["property", ["content"]], ["punctuation", ":"], ["string", "\"foo\""] ]], ["property-declaration", [ ["property", ["content"]], ["punctuation", ":"], ["string", "''"] ]], ["property-declaration", [ ["property", ["content"]], ["punctuation", ":"], ["string", "'foo'"] ]] ] ---------------------------------------------------- Checks for strings.PKfvCH4fHggsmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/stylus/selector_feature.testdiv span[foo=bar] color red div input, input:nth-child(2n) color red #foo .bar::before color red #foo .bar { color red } {foo} {bar}:hover color red ---------------------------------------------------- [ ["selector", ["div\r\nspan[foo=bar]"]], ["property-declaration", [["property", ["color"]], " red"]], ["selector", ["div input", ["punctuation", ","], "\r\ninput:nth-child(2n)"]], ["property-declaration", [["property", ["color"]], " red"]], ["selector", ["#foo"]], ["selector", [".bar::before"]], ["property-declaration", [["property", ["color"]], " red"]], ["selector", ["#foo"]], ["selector", [".bar ", ["punctuation", "{"]]], ["property-declaration", [["property", ["color"]], " red"]], ["punctuation", "}"], ["selector", [ ["interpolation", [ ["punctuation", "{"], "foo", ["punctuation", "}"] ]], ["interpolation", [ ["punctuation", "{"], "bar", ["punctuation", "}"] ]], ":hover" ]], ["property-declaration", [["property", ["color"]], " red"]] ] ---------------------------------------------------- Checks for selectors.PKfvCHylnmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/stylus/url_feature.testbackground: url('foo.png') background: url("foo/bar.jpg") ---------------------------------------------------- [ ["property-declaration", [ ["property", ["background"]], ["punctuation", ":"], ["url", "url('foo.png')"] ]], ["property-declaration", [ ["property", ["background"]], ["punctuation", ":"], ["url", "url(\"foo/bar.jpg\")"] ]] ] ---------------------------------------------------- Checks for urls.PKfvCH,6%%materialdjango/static/materialdjango/components/bower_components/prism/tests/languages/stylus/property-declaration_feature.testdiv width 40px color: red background: blue; div { background-{foo}: bar; } div {foo} bar ---------------------------------------------------- [ ["selector", ["div"]], ["property-declaration", [ ["property", ["width"]], ["number", "40"], "px" ]], ["property-declaration", [ ["property", ["color"]], ["punctuation", ":"], " red" ]], ["property-declaration", [ ["property", ["background"]], ["punctuation", ":"], " blue", ["punctuation", ";"] ]], ["selector", ["div ", ["punctuation", "{"]]], ["property-declaration", [ ["property", [ "background-", ["interpolation", [ ["punctuation", "{"], "foo", ["punctuation", "}"] ]] ]], ["punctuation", ":"], " bar", ["punctuation", ";"] ]], ["punctuation", "}"], ["selector", ["div"]], ["property-declaration", [ ["property", [ ["interpolation", [ ["punctuation", "{"], "foo", ["punctuation", "}"] ]] ]], " bar" ]] ] ---------------------------------------------------- Checks for property declarations.PKfvCH:XXmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/stylus/variable-declaration_feature.testfoo = 'bar' a = 4 bar-baz = 5 a += 8 ---------------------------------------------------- [ ["variable-declaration", [ ["variable", "foo"], ["operator", "="], ["string", "'bar'"] ]], ["variable-declaration", [ ["variable", "a"], ["operator", "="], ["number", "4"] ]], ["variable-declaration", [ ["variable", "bar-baz"], ["operator", "="], ["number", "5"] ]], ["variable-declaration", [ ["variable", "a"], ["operator", "+="], ["number", "8"] ]] ] ---------------------------------------------------- Checks for variable declarations.PKfvCHrmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/stylus/keyword_feature.testfor i in 1..5 if a == 3 z-index: 1 unless @z-index; return pair[1] if pair[0] == key for pair in hash ---------------------------------------------------- [ ["statement", [ ["keyword", "for"], " i ", ["operator", "in"], ["number", "1"], ["operator", ".."], ["number", "5"] ]], ["statement", [ ["keyword", "if"], " a ", ["operator", "=="], ["number", "3"] ]], ["property-declaration", [ ["property", ["z-index"]], ["punctuation", ":"], ["number", "1"], ["keyword", "unless"], ["keyword", "@z-index"], ["punctuation", ";"] ]], ["statement", [ ["keyword", "return"], " pair", ["punctuation", "["], ["number", "1"], ["punctuation", "]"], ["keyword", "if"], " pair", ["punctuation", "["], ["number", "0"], ["punctuation", "]"], ["operator", "=="], " key ", ["keyword", "for"], " pair ", ["operator", "in"], " hash" ]] ] ---------------------------------------------------- Checks for statements and keywords.PKfvCHȳtmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/stylus/important_feature.testcolor: red !important @extend foo !optional ---------------------------------------------------- [ ["property-declaration", [ ["property", ["color"]], ["punctuation", ":"], " red ", ["important", "!important"] ]], ["atrule-declaration", [ ["atrule", "@extend"], " foo ", ["important", "!optional"] ]] ] ---------------------------------------------------- Checks for !important and !optional.PKfvCH*tkmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/jsx/tag_feature.testvar myDivElement =
    ; var myElement = ; ---------------------------------------------------- [ ["keyword", "var"], " myDivElement ", ["operator", "="], ["tag", [ ["tag", [ ["punctuation", "<"], "div" ]], ["attr-name", ["className"]], ["attr-value", [ ["punctuation", "="], ["punctuation", "\""], "foo", ["punctuation", "\""] ]], ["punctuation", "/>"] ]], ["punctuation", ";"], ["keyword", "var"], " myElement ", ["operator", "="], ["tag", [ ["tag", [ ["punctuation", "<"], "MyComponent" ]], ["attr-name", ["someProperty"]], ["script", [ ["punctuation", "="], ["punctuation", "{"], ["boolean", "true"], ["punctuation", "}"] ]], ["punctuation", "/>"] ]], ["punctuation", ";"] ] ---------------------------------------------------- Checks for JSX tags.PKfvCHgi**umaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/haxe/preprocessor_feature.test#if #elseif #else #end ---------------------------------------------------- [ ["preprocessor", "#if"], ["preprocessor", "#elseif"], ["preprocessor", "#else"], ["preprocessor", "#end"] ] ---------------------------------------------------- Checks for preprocessor directives.PKfvCH|+XXnmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/haxe/regex_feature.test~/ha\/xe/i ~/[A-Z0-9._%-]+@[A-Z0-9.-]+.[A-Z][A-Z][A-Z]?/i ~/(dog|fox)/igmsu ---------------------------------------------------- [ ["regex", "~/ha\\/xe/i"], ["regex", "~/[A-Z0-9._%-]+@[A-Z0-9.-]+.[A-Z][A-Z][A-Z]?/i"], ["regex", "~/(dog|fox)/igmsu"] ] ---------------------------------------------------- Checks for regexes.PKfvCHazqmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/haxe/operator_feature.test... + ++ - -- -> = == ! != & && | || < <= << > >= >> * / % ~ ^ ---------------------------------------------------- [ ["operator", "..."], ["operator", "+"], ["operator", "++"], ["operator", "-"], ["operator", "--"], ["operator", "->"], ["operator", "="], ["operator", "=="], ["operator", "!"], ["operator", "!="], ["operator", "&"], ["operator", "&&"], ["operator", "|"], ["operator", "||"], ["operator", "<"], ["operator", "<="], ["operator", "<<"], ["operator", ">"], ["operator", ">="], ["operator", ">>"], ["operator", "*"], ["operator", "/"], ["operator", "%"], ["operator", "~"], ["operator", "^"] ] ---------------------------------------------------- Checks for operators.PKfvCHLYYqmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/haxe/metadata_feature.test@author("Nicolas") @debug @:noCompletion ---------------------------------------------------- [ ["metadata", "@author"], ["punctuation", "("], ["string", ["\"Nicolas\""]], ["punctuation", ")"], ["metadata", "@debug"], ["metadata", "@:noCompletion"] ] ---------------------------------------------------- Checks for metadata.PKfvCHƝomaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/haxe/string_feature.test"" "Foo \"bar\" baz" "$bar ${4+2}" '' 'Foo \'bar\' baz' ---------------------------------------------------- [ ["string", ["\"\""]], ["string", ["\"Foo\r\n\\\"bar\\\"\r\nbaz\""]], ["string", [ "\"", ["interpolation", [ ["interpolation", "$bar"] ]], ["interpolation", [ ["interpolation", "$"], ["punctuation", "{"], ["number", "4"], ["operator", "+"], ["number", "2"], ["punctuation", "}"] ]], "\"" ]], ["string", ["''"]], ["string", ["'Foo\r\n\\'bar\\'\r\nbaz'"]] ] ---------------------------------------------------- Checks for strings and string interpolation.PKfvCH`4f44tmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/haxe/reification_feature.test$e ${4+2} ---------------------------------------------------- [ ["reification", "$e"], ["reification", "$"], ["punctuation", "{"], ["number", "4"], ["operator", "+"], ["number", "2"], ["punctuation", "}"] ] ---------------------------------------------------- Checks for reification.PKfvCH>pmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/haxe/keyword_feature.testthis abstract as break case cast catch class continue default do dynamic else enum extends extern from for function if implements import in inline interface macro new null override public private return static super switch throw to try typedef using var while ---------------------------------------------------- [ ["keyword", "this"], ["keyword", "abstract"], ["keyword", "as"], ["keyword", "break"], ["keyword", "case"], ["keyword", "cast"], ["keyword", "catch"], ["keyword", "class"], ["keyword", "continue"], ["keyword", "default"], ["keyword", "do"], ["keyword", "dynamic"], ["keyword", "else"], ["keyword", "enum"], ["keyword", "extends"], ["keyword", "extern"], ["keyword", "from"], ["keyword", "for"], ["keyword", "function"], ["keyword", "if"], ["keyword", "implements"], ["keyword", "import"], ["keyword", "in"], ["keyword", "inline"], ["keyword", "interface"], ["keyword", "macro"], ["keyword", "new"], ["keyword", "null"], ["keyword", "override"], ["keyword", "public"], ["keyword", "private"], ["keyword", "return"], ["keyword", "static"], ["keyword", "super"], ["keyword", "switch"], ["keyword", "throw"], ["keyword", "to"], ["keyword", "try"], ["keyword", "typedef"], ["keyword", "using"], ["keyword", "var"], ["keyword", "while"] ] ---------------------------------------------------- Checks for keywords.PKfvCH63}materialdjango/static/materialdjango/components/bower_components/prism/tests/languages/asciidoc/list-punctuation_feature.test- Foo * Foo ** Foo bar *** Foo 1. Foo 2. Foo bar 42. Foo **** Foo ***** Foo bar . Foo .. Foo a. Foo b. Foo z. Foo ... Foo bar .... Foo i) Foo vi) Bar xxvii) Baz ..... Foo ____ . 1 .. 2 ____ |=== | xi) a xii) b |=== ---------------------------------------------------- [ ["list-punctuation", "-"], " Foo\r\n", ["list-punctuation", "*"], " Foo\r\n", ["list-punctuation", "**"], " Foo bar\r\n", ["list-punctuation", "***"], " Foo\r\n\t", ["list-punctuation", "1."], " Foo\r\n\t", ["list-punctuation", "2."], " Foo bar\r\n\t", ["list-punctuation", "42."], " Foo\r\n", ["list-punctuation", "****"], " Foo\r\n", ["list-punctuation", "*****"], " Foo bar\r\n\r\n", ["list-punctuation", "."], " Foo\r\n", ["list-punctuation", ".."], " Foo\r\n ", ["list-punctuation", "a."], " Foo\r\n ", ["list-punctuation", "b."], " Foo\r\n ", ["list-punctuation", "z."], " Foo\r\n", ["list-punctuation", "..."], " Foo bar\r\n", ["list-punctuation", "...."], " Foo\r\n\t", ["list-punctuation", "i)"], " Foo\r\n\t", ["list-punctuation", "vi)"], " Bar\r\n\t", ["list-punctuation", "xxvii)"], " Baz\r\n", ["list-punctuation", "....."], " Foo\r\n\r\n", ["other-block", [ ["punctuation", "____"], ["list-punctuation", "."], " 1\r\n", ["list-punctuation", ".."], " 2\r\n", ["punctuation", "____"] ]], ["table", [ ["punctuation", "|==="], ["punctuation", "|"], ["list-punctuation", "xi)"], " a\r\n", ["list-punctuation", "xii)"], " b\r\n", ["punctuation", "|==="] ]] ] ---------------------------------------------------- Checks for list punctuation.PKfvCHeWW{materialdjango/static/materialdjango/components/bower_components/prism/tests/languages/asciidoc/indented-block_feature.test. (TM) __foobar__ :bar: baz Foo *bar* baz // Foobar == Foobar == Title ~~~~~ ..... ..... ---------------------------------------------------- [ ".\r\n\r\n", ["indented-block", "\t(TM) __foobar__\r\n\t:bar: baz"], ["indented-block", " Foo *bar* baz\r\n // Foobar\r\n == Foobar =="], ["indented-block", " Title\r\n ~~~~~\r\n .....\r\n ....."] ] ---------------------------------------------------- Checks for indented blocks. Also checks that nothing gets highlighted inside. The initial dot is required because tests are trimmed.PKfvCHoormaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/asciidoc/title_feature.testFoobar ====== Foobar ------ Foobar ~~~~~~ Foobar ^^^^^^ Foo +++ = Foo bar baz = == Foo bar baz === Foo bar baz === ==== Foo bar baz ===== Foo bar baz ===== .Foo bar baz ---------------------------------------------------- [ ["title", [ "Foobar\r\n", ["punctuation", "======"] ]], ["title", [ "Foobar\r\n", ["punctuation", "------"] ]], ["title", [ "Foobar\r\n", ["punctuation", "~~~~~~"] ]], ["title", [ "Foobar\r\n", ["punctuation", "^^^^^^"] ]], ["title", [ "Foo\r\n", ["punctuation", "+++"] ]], ["title", [ ["punctuation", "="], " Foo bar baz ", ["punctuation", "="] ]], ["title", [ ["punctuation", "=="], " Foo bar baz" ]], ["title", [ ["punctuation", "==="], " Foo bar baz ", ["punctuation", "==="] ]], ["title", [ ["punctuation", "===="], " Foo bar baz" ]], ["title", [ ["punctuation", "====="], " Foo bar baz ", ["punctuation", "====="] ]], ["title", [ ["punctuation", "."], "Foo bar baz" ]] ] ---------------------------------------------------- Checks for titles.PKfvCHromaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/asciidoc/hr_feature.test''' '''''''''' ---------------------------------------------------- [ ["hr", "'''"], ["hr", "''''''''''"] ] ---------------------------------------------------- Checks for hr.PKfvCH3ٔsmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/asciidoc/entity_feature.test➊ ¶ ➊ ¶ ============ ['➊ ¶'] -- ➊ ¶ -- |====== | ➊ ¶ |====== ---------------------------------------------------- [ ["entity", "➊"], ["entity", "¶"], ["title", [ ["entity", "➊"], ["entity", "¶"], ["punctuation", "============"] ]], ["attributes", [ ["punctuation", "["], ["interpreted", [ ["punctuation", "'"], ["entity", "➊"], ["entity", "¶"], ["punctuation", "'"] ]], ["punctuation", "]"] ]], ["other-block", [ ["punctuation", "--"], ["entity", "➊"], ["entity", "¶"], ["punctuation", "--"] ]], ["table", [ ["punctuation", "|======"], ["punctuation", "|"], ["entity", "➊"], ["entity", "¶"], ["punctuation", "|======"] ]] ] ---------------------------------------------------- Checks for entities.PKfvCHsI4``tmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/asciidoc/callout_feature.testFoobar <1> <1> Foo 1> Bar > Baz |==== | Foobar <1> <1> Foo 1> Bar > Baz |==== ---------------------------------------------------- [ "Foobar ", ["callout", "<1>"], ["callout", "<1>"], " Foo\r\n", ["callout", "1>"], " Bar\r\n", ["callout", ">"], " Baz\r\n\r\n", ["table", [ ["punctuation", "|===="], ["punctuation", "|"], " Foobar ", ["callout", "<1>"], ["callout", "<1>"], " Foo\r\n", ["callout", "1>"], " Bar\r\n", ["callout", ">"], " Baz\r\n", ["punctuation", "|===="] ]] ] ---------------------------------------------------- Checks for callouts.PKfvCH zmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/asciidoc/literal-block_feature.test---- == Foobar == Bar _baz_ (TM) <1> * Foo <2> <1> Foobar 2> Baz ---- ....... .Foo . Foobar <1> include::addendum.txt <2> > Foo > Bar __Foo__**bar**{baz} ....... ---------------------------------------------------- [ ["literal-block", [ ["punctuation", "----"], "\r\n== Foobar ==\r\nBar _baz_ (TM) ", ["callout", "<1>"], "\r\n* Foo ", ["callout", "<2>"], ["callout", "<1>"], " Foobar\r\n", ["callout", "2>"], " Baz\r\n", ["punctuation", "----"] ]], ["literal-block", [ ["punctuation", "......."], "\r\n.Foo\r\n. Foobar ", ["callout", "<1>"], "\r\ninclude::addendum.txt ", ["callout", "<2>"], ["callout", ">"], " Foo\r\n", ["callout", ">"], " Bar\r\n__Foo__**bar**{baz}\r\n", ["punctuation", "......."] ]] ] ---------------------------------------------------- Checks for literal blocks and listing blocks. Also checks that nothing gets highlighted inside expect callouts. PKfvCH釫rmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/asciidoc/macro_feature.testfootnote:[An example footnote.] indexterm:[Tigers,Big cats] http://www.docbook.org/[DocBook.org] include::chapt1.txt[tabsize=2] mailto:srackham@gmail.com[] image:screen-thumbnail.png[height=32,link="screen.png"] == Foo image:foo.jpg[] == -- footnote:[An example footnote.] indexterm:[Tigers,Big cats] http://www.docbook.org/[DocBook.org] include::chapt1.txt[tabsize=2] mailto:srackham@gmail.com[] image:screen-thumbnail.png[height=32,link="screen.png"] -- |==== | footnote:[An example footnote.] indexterm:[Tigers,Big cats] http://www.docbook.org/[DocBook.org] include::chapt1.txt[tabsize=2] mailto:srackham@gmail.com[] image:screen-thumbnail.png[height=32,link="screen.png"] |==== ---------------------------------------------------- [ ["macro", [ ["function", "footnote"], ["punctuation", ":"], ["attributes", [ ["punctuation", "["], ["attr-value", "An example footnote."], ["punctuation", "]"] ]] ]], ["macro", [ ["function", "indexterm"], ["punctuation", ":"], ["attributes", [ ["punctuation", "["], ["attr-value", "Tigers"], ["punctuation", ","], ["attr-value", "Big cats"], ["punctuation", "]"] ]] ]], ["macro", [ ["function", "http"], ["punctuation", ":"], "//www.docbook.org/", ["attributes", [ ["punctuation", "["], ["attr-value", "DocBook.org"], ["punctuation", "]"] ]] ]], ["macro", [ ["function", "include"], ["punctuation", "::"], "chapt1.txt", ["attributes", [ ["punctuation", "["], ["variable", "tabsize"], ["operator", "="], ["attr-value", "2"], ["punctuation", "]"] ]] ]], ["macro", [ ["function", "mailto"], ["punctuation", ":"], "srackham@gmail.com", ["attributes", [ ["punctuation", "["], ["punctuation", "]"] ]] ]], ["macro", [ ["function", "image"], ["punctuation", ":"], "screen-thumbnail.png", ["attributes", [ ["punctuation", "["], ["variable", "height"], ["operator", "="], ["attr-value", "32"], ["punctuation", ","], ["variable", "link"], ["operator", "="], ["string", "\"screen.png\""], ["punctuation", "]"] ]] ]], ["title", [ ["punctuation", "=="], " Foo ", ["macro", [ ["function", "image"], ["punctuation", ":"], "foo.jpg", ["attributes", [ ["punctuation", "["], ["punctuation", "]"] ]] ]], ["punctuation", "=="] ]], ["other-block", [ ["punctuation", "--"], ["macro", [ ["function", "footnote"], ["punctuation", ":"], ["attributes", [ ["punctuation", "["], ["attr-value", "An example footnote."], ["punctuation", "]"] ]] ]], ["macro", [ ["function", "indexterm"], ["punctuation", ":"], ["attributes", [ ["punctuation", "["], ["attr-value", "Tigers"], ["punctuation", ","], ["attr-value", "Big cats"], ["punctuation", "]"] ]] ]], ["macro", [ ["function", "http"], ["punctuation", ":"], "//www.docbook.org/", ["attributes", [ ["punctuation", "["], ["attr-value", "DocBook.org"], ["punctuation", "]"] ]] ]], ["macro", [ ["function", "include"], ["punctuation", "::"], "chapt1.txt", ["attributes", [ ["punctuation", "["], ["variable", "tabsize"], ["operator", "="], ["attr-value", "2"], ["punctuation", "]"] ]] ]], ["macro", [ ["function", "mailto"], ["punctuation", ":"], "srackham@gmail.com", ["attributes", [ ["punctuation", "["], ["punctuation", "]"] ]] ]], ["macro", [ ["function", "image"], ["punctuation", ":"], "screen-thumbnail.png", ["attributes", [ ["punctuation", "["], ["variable", "height"], ["operator", "="], ["attr-value", "32"], ["punctuation", ","], ["variable", "link"], ["operator", "="], ["string", "\"screen.png\""], ["punctuation", "]"] ]] ]], ["punctuation", "--"] ]], ["table", [ ["punctuation", "|===="], ["punctuation", "|"], ["macro", [ ["function", "footnote"], ["punctuation", ":"], ["attributes", [ ["punctuation", "["], ["attr-value", "An example footnote."], ["punctuation", "]"] ]] ]], ["macro", [ ["function", "indexterm"], ["punctuation", ":"], ["attributes", [ ["punctuation", "["], ["attr-value", "Tigers"], ["punctuation", ","], ["attr-value", "Big cats"], ["punctuation", "]"] ]] ]], ["macro", [ ["function", "http"], ["punctuation", ":"], "//www.docbook.org/", ["attributes", [ ["punctuation", "["], ["attr-value", "DocBook.org"], ["punctuation", "]"] ]] ]], ["macro", [ ["function", "include"], ["punctuation", "::"], "chapt1.txt", ["attributes", [ ["punctuation", "["], ["variable", "tabsize"], ["operator", "="], ["attr-value", "2"], ["punctuation", "]"] ]] ]], ["macro", [ ["function", "mailto"], ["punctuation", ":"], "srackham@gmail.com", ["attributes", [ ["punctuation", "["], ["punctuation", "]"] ]] ]], ["macro", [ ["function", "image"], ["punctuation", ":"], "screen-thumbnail.png", ["attributes", [ ["punctuation", "["], ["variable", "height"], ["operator", "="], ["attr-value", "32"], ["punctuation", ","], ["variable", "link"], ["operator", "="], ["string", "\"screen.png\""], ["punctuation", "]"] ]] ]], ["punctuation", "|===="] ]] ] ---------------------------------------------------- Checks for macros.PKfvCHڳ+==xmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/asciidoc/other-block_feature.test**** Sidebar block <1> **** ______ Quote block <2> ______ ======== Example block <3> ======== -- Open block <4> -- ---------------------------------------------------- [ ["other-block", [ ["punctuation", "****"], "\r\nSidebar block <1>\r\n", ["punctuation", "****"] ]], ["other-block", [ ["punctuation", "______"], "\r\nQuote block <2>\r\n", ["punctuation", "______"] ]], ["other-block", [ ["punctuation", "========"], "\r\nExample block <3>\r\n", ["punctuation", "========"] ]], ["other-block", [ ["punctuation", "--"], "\r\nOpen block <4>\r\n", ["punctuation", "--"] ]] ] ---------------------------------------------------- Checks for sidebar blocks, quote blocks, example blocks and open blocks. Also checks that callouts are not highlighted.PKfvCH}&wmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/asciidoc/list-label_feature.testIn:: Lorem:: Foo bar baz Dolor::: Ipsum:::: Donec;; Foobar ____ In:: Lorem:: Foo bar baz Dolor::: Ipsum:::: Donec;; Foobar ____ |======== | In:: Lorem:: Foo bar baz Dolor::: Ipsum:::: Donec;; Foobar |======== ---------------------------------------------------- [ ["list-label", "In::"], ["list-label", "Lorem::"], "\r\n Foo bar baz\r\n", ["list-label", "Dolor:::"], ["list-label", "Ipsum::::"], ["list-label", "Donec;;"], "\r\n Foobar\r\n\r\n", ["other-block", [ ["punctuation", "____"], ["list-label", "In::"], ["list-label", "Lorem::"], "\r\n Foo bar baz\r\n", ["list-label", "Dolor:::"], ["list-label", "Ipsum::::"], ["list-label", "Donec;;"], "\r\n Foobar\r\n", ["punctuation", "____"] ]], ["table", [ ["punctuation", "|========"], ["punctuation", "|"], ["list-label", "In::"], ["list-label", "Lorem::"], "\r\n Foo bar baz\r\n", ["list-label", "Dolor:::"], ["list-label", "Ipsum::::"], ["list-label", "Donec;;"], "\r\n Foobar\r\n", ["punctuation", "|========"] ]] ] ---------------------------------------------------- Checks for list labels.PKfvCHhVYYtmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/asciidoc/comment_feature.test// // Foobar ****** // // Foobar ****** |====== | // | // Foobar |====== ---------------------------------------------------- [ ["comment", "//"], ["comment", "// Foobar"], ["other-block", [ ["punctuation", "******"], ["comment", "//"], ["comment", "// Foobar"], ["punctuation", "******"] ]], ["table", [ ["punctuation", "|======"], ["punctuation", "|"], ["comment", "//"], ["punctuation", "|"], ["comment", "// Foobar"], ["punctuation", "|======"] ]] ] ---------------------------------------------------- Checks for comments.PKfvCH`ߪ+zmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/asciidoc/comment-block_feature.test//// //// //// Foobar Baz //// ---------------------------------------------------- [ ["comment-block", "////\r\n////"], ["comment-block", "////\r\nFoobar\r\n\r\nBaz\r\n////"] ] ---------------------------------------------------- Checks for comment blocks.PKfvCHfߧyy~materialdjango/static/materialdjango/components/bower_components/prism/tests/languages/asciidoc/passthrough-block_feature.test++++ .Fo__o__bar *baz* Fo(((o)))bar baz * Foobar baz include::addendum.txt[] ++++ ---------------------------------------------------- [ ["passthrough-block", [ ["punctuation", "++++"], "\r\n.Fo__o__bar *baz*\r\nFo(((o)))bar baz\r\n* Foobar baz\r\n", ["macro", [ ["function", "include"], ["punctuation", "::"], "addendum.txt", ["attributes", [ ["punctuation", "["], ["punctuation", "]"] ]] ]], ["punctuation", "++++"] ]] ] ---------------------------------------------------- Checks for passthrough blocks. Also checks that nothing gets highlighted inside expect macros.PKfvCHBnxmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/asciidoc/replacement_feature.test(C) (TM) (R) (C) (TM) (R) ============ ['(C) (TM) (R)'] -- (C) (TM) (R) -- |====== | (C) (TM) (R) |====== ---------------------------------------------------- [ ["replacement", "(C)"], ["replacement", "(TM)"], ["replacement", "(R)"], ["title", [ ["replacement", "(C)"], ["replacement", "(TM)"], ["replacement", "(R)"], ["punctuation", "============"] ]], ["attributes", [ ["punctuation", "["], ["interpreted", [ ["punctuation", "'"], ["replacement", "(C)"], ["replacement", "(TM)"], ["replacement", "(R)"], ["punctuation", "'"] ]], ["punctuation", "]"] ]], ["other-block", [ ["punctuation", "--"], ["replacement", "(C)"], ["replacement", "(TM)"], ["replacement", "(R)"], ["punctuation", "--"] ]], ["table", [ ["punctuation", "|======"], ["punctuation", "|"], ["replacement", "(C)"], ["replacement", "(TM)"], ["replacement", "(R)"], ["punctuation", "|======"] ]] ] ---------------------------------------------------- Checks for replacements.PKfvCH_i|materialdjango/static/materialdjango/components/bower_components/prism/tests/languages/asciidoc/attribute-entry_feature.test:Foo bar: baz :Foobar: Foo + bar + baz :Foo bar!: :Foobar!: ===== :Foo bar: baz :Foobar: Foo + bar + baz :Foo bar!: :Foobar!: ===== |===== | :Foo bar: baz :Foobar: Foo + bar + baz |===== ---------------------------------------------------- [ ["attribute-entry", ":Foo bar: baz"], ["attribute-entry", ":Foobar: Foo +\r\nbar +\r\nbaz"], ["attribute-entry", ":Foo bar!:"], ["attribute-entry", ":Foobar!:"], ["other-block", [ ["punctuation", "====="], ["attribute-entry", ":Foo bar: baz"], ["attribute-entry", ":Foobar: Foo +\r\nbar +\r\nbaz"], ["attribute-entry", ":Foo bar!:"], ["attribute-entry", ":Foobar!:"], ["punctuation", "====="] ]], ["table", [ ["punctuation", "|====="], ["punctuation", "|"], ["attribute-entry", ":Foo bar: baz"], ["attribute-entry", ":Foobar: Foo +\r\nbar +\r\nbaz"], ["punctuation", "|====="] ]] ] ---------------------------------------------------- Checks for attribute entries.PKfvCHAwmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/asciidoc/page-break_feature.test<<< <<<<<<<<<<<<< ---------------------------------------------------- [ ["page-break", "<<<"], ["page-break", "<<<<<<<<<<<<<"] ] ---------------------------------------------------- Checks for page breaks.PKfvCHt:??~materialdjango/static/materialdjango/components/bower_components/prism/tests/languages/asciidoc/line-continuation_feature.testFoo + bar * Foo + bar ---------------------------------------------------- [ "Foo ", ["line-continuation", "+"], "\r\nbar\r\n\r\n", ["list-punctuation", "*"], " Foo\r\n", ["line-continuation", "+"], "\r\nbar" ] ---------------------------------------------------- Checks for line continuations.PKfvCH+rmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/asciidoc/table_feature.test|=== |1 |=== |============================ |1 >s|2 |3 |4 ^|5 2.2+^.^|6 .3+<.>m|7 2*^|8 |9 2+>|10 |============================ |============================================== |Normal cell |Cell with nested table !============================================== !Nested table cell 1 !Nested table cell 2 !============================================== |============================================== ---------------------------------------------------- [ ["table", [ ["punctuation", "|==="], ["punctuation", "|"], "1\r\n", ["punctuation", "|==="] ]], ["table", [ ["punctuation", "|============================"], ["punctuation", "|"], "1 ", ["specifiers", ">s"], ["punctuation", "|"], "2 ", ["punctuation", "|"], "3 ", ["punctuation", "|"], "4\r\n", ["specifiers", "^"], ["punctuation", "|"], "5 ", ["specifiers", "2.2+^.^"], ["punctuation", "|"], "6 ", ["specifiers", ".3+<.>m"], ["punctuation", "|"], "7\r\n", ["specifiers", "2*^"], ["punctuation", "|"], "8\r\n", ["punctuation", "|"], "9 ", ["specifiers", "2+>"], ["punctuation", "|"], "10\r\n", ["punctuation", "|============================"] ]], ["table", [ ["punctuation", "|=============================================="], ["punctuation", "|"], "Normal cell\r\n\r\n", ["punctuation", "|"], "Cell with nested table\r\n\r\n", ["punctuation", "!=============================================="], ["punctuation", "!"], "Nested table cell 1 ", ["punctuation", "!"], "Nested table cell 2\r\n", ["punctuation", "!=============================================="], ["punctuation", "|=============================================="] ]] ] ---------------------------------------------------- Checks for tables.PKfvCH_$_$wmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/asciidoc/attributes_feature.testFoo [big red yellow-background]#obvious# [float] [quote,'http://en.wikipedia.org/wiki/Samuel_Johnson[Samuel Johnson]'] [quote,'"with *an* image" image:foo.png[] (TM)'] [NOTE] [icon="./images/icons/wink.png"] [icons=None, caption="My Special Note"] [start=7] [cols="e,m,^,>s",width="25%"] ===== Foo [big red yellow-background]#obvious# [float] [quote,'http://en.wikipedia.org/wiki/Samuel_Johnson[Samuel Johnson]'] [quote,'"with *an* image" image:foo.png[] (TM)'] [NOTE] [icon="./images/icons/wink.png"] [icons=None, caption="My Special Note"] [start=7] [cols="e,m,^,>s",width="25%"] ===== |===== | Foo [big red yellow-background]#obvious# [float] [quote,'http://en.wikipedia.org/wiki/Samuel_Johnson[Samuel Johnson]'] [quote,'"with *an* image" image:foo.png[] (TM)'] [NOTE] [icon="./images/icons/wink.png"] [icons=None, caption="My Special Note"] [start=7] [cols="e,m,^,>s",width="25%"] |===== latexmath:[$C = \alpha + \beta Y^{\gamma} + \epsilon$] asciimath:[`x/x={(1,if x!=0),(text{undefined},if x=0):}`] latexmath:[$\sum_{n=1}^\infty \frac{1}{2^n}$] ---------------------------------------------------- [ "Foo ", ["inline", [ ["attributes", [ ["punctuation", "["], ["attr-value", "big red yellow-background"], ["punctuation", "]"] ]], ["punctuation", "#"], "obvious", ["punctuation", "#"] ]], ["attributes", [ ["punctuation", "["], ["attr-value", "float"], ["punctuation", "]"] ]], ["attributes", [ ["punctuation", "["], ["attr-value", "quote"], ["punctuation", ","], ["interpreted", [ ["punctuation", "'"], ["macro", [ ["function", "http"], ["punctuation", ":"], "//en.wikipedia.org/wiki/Samuel_Johnson", ["attributes", [ ["punctuation", "["], ["attr-value", "Samuel Johnson"], ["punctuation", "]"] ]] ]], ["punctuation", "'"] ]], ["punctuation", "]"] ]], ["attributes", [ ["punctuation", "["], ["attr-value", "quote"], ["punctuation", ","], ["interpreted", [ ["punctuation", "'"], ["entity", """], "with ", ["inline", [ ["bold", [ ["punctuation", "*"], "an", ["punctuation", "*"] ]] ]], " image", ["entity", """], ["macro", [ ["function", "image"], ["punctuation", ":"], "foo.png", ["attributes", [ ["punctuation", "["], ["punctuation", "]"] ]] ]], ["replacement", "(TM)"], ["punctuation", "'"] ]], ["punctuation", "]"] ]], ["attributes", [ ["punctuation", "["], ["attr-value", "NOTE"], ["punctuation", "]"] ]], ["attributes", [ ["punctuation", "["], ["variable", "icon"], ["operator", "="], ["string", "\"./images/icons/wink.png\""], ["punctuation", "]"] ]], ["attributes", [ ["punctuation", "["], ["variable", "icons"], ["operator", "="], ["attr-value", "None"], ["punctuation", ","], ["variable", "caption"], ["operator", "="], ["string", "\"My Special Note\""], ["punctuation", "]"] ]], ["attributes", [ ["punctuation", "["], ["variable", "start"], ["operator", "="], ["attr-value", "7"], ["punctuation", "]"] ]], ["attributes", [ ["punctuation", "["], ["variable", "cols"], ["operator", "="], ["string", "\"e,m,^,>s\""], ["punctuation", ","], ["variable", "width"], ["operator", "="], ["string", "\"25%\""], ["punctuation", "]"] ]], ["other-block", [ ["punctuation", "====="], "\r\nFoo ", ["inline", [ ["attributes", [ ["punctuation", "["], ["attr-value", "big red yellow-background"], ["punctuation", "]"] ]], ["punctuation", "#"], "obvious", ["punctuation", "#"] ]], ["attributes", [ ["punctuation", "["], ["attr-value", "float"], ["punctuation", "]"] ]], ["attributes", [ ["punctuation", "["], ["attr-value", "quote"], ["punctuation", ","], ["interpreted", [ ["punctuation", "'"], ["macro", [ ["function", "http"], ["punctuation", ":"], "//en.wikipedia.org/wiki/Samuel_Johnson", ["attributes", [ ["punctuation", "["], ["attr-value", "Samuel Johnson"], ["punctuation", "]"] ]] ]], ["punctuation", "'"] ]], ["punctuation", "]"] ]], ["attributes", [ ["punctuation", "["], ["attr-value", "quote"], ["punctuation", ","], ["interpreted", [ ["punctuation", "'"], ["entity", """], "with ", ["inline", [ ["bold", [ ["punctuation", "*"], "an", ["punctuation", "*"] ]] ]], " image", ["entity", """], ["macro", [ ["function", "image"], ["punctuation", ":"], "foo.png", ["attributes", [ ["punctuation", "["], ["punctuation", "]"] ]] ]], ["replacement", "(TM)"], ["punctuation", "'"] ]], ["punctuation", "]"] ]], ["attributes", [ ["punctuation", "["], ["attr-value", "NOTE"], ["punctuation", "]"] ]], ["attributes", [ ["punctuation", "["], ["variable", "icon"], ["operator", "="], ["string", "\"./images/icons/wink.png\""], ["punctuation", "]"] ]], ["attributes", [ ["punctuation", "["], ["variable", "icons"], ["operator", "="], ["attr-value", "None"], ["punctuation", ","], ["variable", "caption"], ["operator", "="], ["string", "\"My Special Note\""], ["punctuation", "]"] ]], ["attributes", [ ["punctuation", "["], ["variable", "start"], ["operator", "="], ["attr-value", "7"], ["punctuation", "]"] ]], ["attributes", [ ["punctuation", "["], ["variable", "cols"], ["operator", "="], ["string", "\"e,m,^,>s\""], ["punctuation", ","], ["variable", "width"], ["operator", "="], ["string", "\"25%\""], ["punctuation", "]"] ]], ["punctuation", "====="] ]], ["table", [ ["punctuation", "|====="], ["punctuation", "|"], "\r\nFoo ", ["inline", [ ["attributes", [ ["punctuation", "["], ["attr-value", "big red yellow-background"], ["punctuation", "]"] ]], ["punctuation", "#"], "obvious", ["punctuation", "#"] ]], ["attributes", [ ["punctuation", "["], ["attr-value", "float"], ["punctuation", "]"] ]], ["attributes", [ ["punctuation", "["], ["attr-value", "quote"], ["punctuation", ","], ["interpreted", [ ["punctuation", "'"], ["macro", [ ["function", "http"], ["punctuation", ":"], "//en.wikipedia.org/wiki/Samuel_Johnson", ["attributes", [ ["punctuation", "["], ["attr-value", "Samuel Johnson"], ["punctuation", "]"] ]] ]], ["punctuation", "'"] ]], ["punctuation", "]"] ]], ["attributes", [ ["punctuation", "["], ["attr-value", "quote"], ["punctuation", ","], ["interpreted", [ ["punctuation", "'"], ["entity", """], "with ", ["inline", [ ["bold", [ ["punctuation", "*"], "an", ["punctuation", "*"] ]] ]], " image", ["entity", """], ["macro", [ ["function", "image"], ["punctuation", ":"], "foo.png", ["attributes", [ ["punctuation", "["], ["punctuation", "]"] ]] ]], ["replacement", "(TM)"], ["punctuation", "'"] ]], ["punctuation", "]"] ]], ["attributes", [ ["punctuation", "["], ["attr-value", "NOTE"], ["punctuation", "]"] ]], ["attributes", [ ["punctuation", "["], ["variable", "icon"], ["operator", "="], ["string", "\"./images/icons/wink.png\""], ["punctuation", "]"] ]], ["attributes", [ ["punctuation", "["], ["variable", "icons"], ["operator", "="], ["attr-value", "None"], ["punctuation", ","], ["variable", "caption"], ["operator", "="], ["string", "\"My Special Note\""], ["punctuation", "]"] ]], ["attributes", [ ["punctuation", "["], ["variable", "start"], ["operator", "="], ["attr-value", "7"], ["punctuation", "]"] ]], ["attributes", [ ["punctuation", "["], ["variable", "cols"], ["operator", "="], ["string", "\"e,m,^,>s\""], ["punctuation", ","], ["variable", "width"], ["operator", "="], ["string", "\"25%\""], ["punctuation", "]"] ]], ["punctuation", "|====="] ]], ["macro", [ ["function", "latexmath"], ["punctuation", ":"], ["attributes", [ ["punctuation", "["], ["quoted", [ ["punctuation", "$"], "C = \\alpha + \\beta Y^{\\gamma} + \\epsilon", ["punctuation", "$"] ]], ["punctuation", "]"] ]] ]], ["macro", [ ["function", "asciimath"], ["punctuation", ":"], ["attributes", [ ["punctuation", "["], ["quoted", [ ["punctuation", "`"], "x/x={(1,if x!=0),(text{undefined},if x=0):}", ["punctuation", "`"] ]], ["punctuation", "]"] ]] ]], ["macro", [ ["function", "latexmath"], ["punctuation", ":"], ["attributes", [ ["punctuation", "["], ["quoted", [ ["punctuation", "$"], "\\sum_{n=1}^\\infty \\frac{1}{2^n}", ["punctuation", "$"] ]], ["punctuation", "]"] ]] ]] ] ---------------------------------------------------- Checks for attributes.PKfvCHlwmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/asciidoc/admonition_feature.testTIP: Foobar NOTE: Foo bar baz IMPORTANT: Foobar WARNING: Foo bar baz CAUTION: Foobar ---------------------------------------------------- [ ["admonition", "TIP:"], " Foobar\r\n", ["admonition", "NOTE:"], " Foo bar baz\r\n", ["admonition", "IMPORTANT:"], " Foobar\r\n", ["admonition", "WARNING:"], " Foo bar baz\r\n", ["admonition", "CAUTION:"], " Foobar" ] ---------------------------------------------------- Checks for admonitions.PKfvCH%`.`.smaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/asciidoc/inline_feature.test_emphasis_ ``double quotes'' `single quotes' `monospace` 'emphasis' *strong* +monospace+ #unquoted# _foo _ bar baz_ `foo ' bar baz' `foo ` bar baz` 'foo ' bar baz' *foo * bar baz* +foo + bar baz+ #foo # bar baz# _foo bar_ ``foo bar'' `foo bar' `foo bar` 'foo bar' *foo bar* +foo bar+ #foo bar# foo__emphasis__bar foo**strong**bar foo++monospace++bar foo+++passthrough+++bar foo##unquoted##bar foo$$passthrough$$bar foo~subscript~bar foo^superscript^bar foo{attribute-reference}bar foo[[anchor]]bar foo[[[bibliography anchor]]]bar foo<>bar foo(((indexes)))bar foo((indexes))bar ==== _emphasis_ ``double quotes'' `single quotes' `monospace` 'emphasis' *strong* +monospace+ #unquoted# __emphasis__ **strong** ++monospace++ +++passthrough+++ ##unquoted## $$passthrough$$ ~subscript~ ^superscript^ {attribute-reference} [[anchor]] [[[bibliography anchor]]] <> (((indexes))) ((indexes)) ==== |==== | _emphasis_ ``double quotes'' `single quotes' `monospace` 'emphasis' *strong* +monospace+ #unquoted# __emphasis__ **strong** ++monospace++ +++passthrough+++ ##unquoted## $$passthrough$$ ~subscript~ ^superscript^ {attribute-reference} [[anchor]] [[[bibliography anchor]]] <> (((indexes))) ((indexes)) |==== ['foo *bar* baz'] == foo *bar* baz == {names=value} {names?value} {names!value} {names#value} {names%value} {names@regexp:value1:value2} {names$regexp:value1:value2} {names$regexp::value} {foo,bar=foobar} {foo+bar=foobar} {counter:attrname} ---------------------------------------------------- [ ["inline", [ ["italic", [["punctuation", "_"], "emphasis", ["punctuation", "_"]]] ]], ["inline", [ ["punctuation", "``"], "double quotes", ["punctuation", "''"] ]], ["inline", [ ["punctuation", "`"], "single quotes", ["punctuation", "'"] ]], ["inline", [ ["punctuation", "`"], "monospace", ["punctuation", "`"] ]], ["inline", [ ["italic", [["punctuation", "'"], "emphasis", ["punctuation", "'"]]] ]], ["inline", [ ["bold", [["punctuation", "*"], "strong", ["punctuation", "*"]]] ]], ["inline", [ ["punctuation", "+"], "monospace", ["punctuation", "+"] ]], ["inline", [ ["punctuation", "#"], "unquoted", ["punctuation", "#"] ]], ["inline", [ ["italic", [["punctuation", "_"], "foo _ bar baz", ["punctuation", "_"]]] ]], ["inline", [ ["punctuation", "`"], "foo ' bar baz", ["punctuation", "'"] ]], ["inline", [ ["punctuation", "`"], "foo ` bar baz", ["punctuation", "`"] ]], ["inline", [ ["italic", [["punctuation", "'"], "foo ' bar baz", ["punctuation", "'"]]] ]], ["inline", [ ["bold", [["punctuation", "*"], "foo * bar baz", ["punctuation", "*"]]] ]], ["inline", [ ["punctuation", "+"], "foo + bar baz", ["punctuation", "+"] ]], ["inline", [ ["punctuation", "#"], "foo # bar baz", ["punctuation", "#"] ]], ["inline", [ ["italic", [["punctuation", "_"], "foo\r\nbar", ["punctuation", "_"]]] ]], ["inline", [ ["punctuation", "``"], "foo\r\nbar", ["punctuation", "''"] ]], ["inline", [ ["punctuation", "`"], "foo\r\nbar", ["punctuation", "'"] ]], ["inline", [ ["punctuation", "`"], "foo\r\nbar", ["punctuation", "`"] ]], ["inline", [ ["italic", [["punctuation", "'"], "foo\r\nbar", ["punctuation", "'"]]] ]], ["inline", [ ["bold", [["punctuation", "*"], "foo\r\nbar", ["punctuation", "*"]]] ]], ["inline", [ ["punctuation", "+"], "foo\r\nbar", ["punctuation", "+"] ]], ["inline", [ ["punctuation", "#"], "foo\r\nbar", ["punctuation", "#"] ]], "\r\n\r\nfoo", ["inline", [ ["italic", [["punctuation", "__"], "emphasis", ["punctuation", "__"]]] ]], "bar\r\nfoo", ["inline", [ ["bold", [["punctuation", "**"], "strong", ["punctuation", "**"]]] ]], "bar\r\nfoo", ["inline", [ ["punctuation", "++"], "monospace", ["punctuation", "++"] ]], "bar\r\nfoo", ["inline", [ ["punctuation", "+++"], "passthrough", ["punctuation", "+++"] ]], "bar\r\nfoo", ["inline", [ ["punctuation", "##"], "unquoted", ["punctuation", "##"] ]], "bar\r\nfoo", ["inline", [ ["punctuation", "$$"], "passthrough", ["punctuation", "$$"] ]], "bar\r\nfoo", ["inline", [ ["punctuation", "~"], "subscript", ["punctuation", "~"] ]], "bar\r\nfoo", ["inline", [ ["punctuation", "^"], "superscript", ["punctuation", "^"] ]], "bar\r\nfoo", ["inline", [ ["attribute-ref", [["punctuation", "{"], ["variable", "attribute-reference"], ["punctuation", "}"]]] ]], "bar\r\nfoo", ["inline", [ ["url", [["punctuation", "[["], "anchor", ["punctuation", "]]"]]] ]], "bar\r\nfoo", ["inline", [ ["url", [["punctuation", "[[["], "bibliography anchor", ["punctuation", "]]]"]]] ]], "bar\r\nfoo", ["inline", [ ["url", [["punctuation", "<<"], "xref", ["punctuation", ">>"]]] ]], "bar\r\nfoo", ["inline", [ ["punctuation", "((("], "indexes", ["punctuation", ")))"] ]], "bar\r\nfoo", ["inline", [ ["punctuation", "(("], "indexes", ["punctuation", "))"] ]], "bar\r\n\r\n", ["other-block", [ ["punctuation", "===="], ["inline", [ ["italic", [["punctuation", "_"], "emphasis", ["punctuation", "_"]]] ]], ["inline", [ ["punctuation", "``"], "double quotes", ["punctuation", "''"] ]], ["inline", [ ["punctuation", "`"], "single quotes", ["punctuation", "'"] ]], ["inline", [ ["punctuation", "`"], "monospace", ["punctuation", "`"] ]], ["inline", [ ["italic", [["punctuation", "'"], "emphasis", ["punctuation", "'"]]] ]], ["inline", [ ["bold", [["punctuation", "*"], "strong", ["punctuation", "*"]]] ]], ["inline", [ ["punctuation", "+"], "monospace", ["punctuation", "+"] ]], ["inline", [ ["punctuation", "#"], "unquoted", ["punctuation", "#"] ]], ["inline", [ ["italic", [["punctuation", "__"], "emphasis", ["punctuation", "__"]]] ]], ["inline", [ ["bold", [["punctuation", "**"], "strong", ["punctuation", "**"]]] ]], ["inline", [ ["punctuation", "++"], "monospace", ["punctuation", "++"] ]], ["inline", [ ["punctuation", "+++"], "passthrough", ["punctuation", "+++"] ]], ["inline", [ ["punctuation", "##"], "unquoted", ["punctuation", "##"] ]], ["inline", [ ["punctuation", "$$"], "passthrough", ["punctuation", "$$"] ]], ["inline", [ ["punctuation", "~"], "subscript", ["punctuation", "~"] ]], ["inline", [ ["punctuation", "^"], "superscript", ["punctuation", "^"] ]], ["inline", [ ["attribute-ref", [["punctuation", "{"], ["variable", "attribute-reference"], ["punctuation", "}"]]] ]], ["inline", [ ["url", [["punctuation", "[["], "anchor", ["punctuation", "]]"]]] ]], ["inline", [ ["url", [["punctuation", "[[["], "bibliography anchor", ["punctuation", "]]]"]]] ]], ["inline", [ ["url", [["punctuation", "<<"], "xref", ["punctuation", ">>"]]] ]], ["inline", [ ["punctuation", "((("], "indexes", ["punctuation", ")))"] ]], ["inline", [ ["punctuation", "(("], "indexes", ["punctuation", "))"] ]], ["punctuation", "===="] ]], ["table", [ ["punctuation", "|===="], ["punctuation", "|"], ["inline", [ ["italic", [["punctuation", "_"], "emphasis", ["punctuation", "_"]]] ]], ["inline", [ ["punctuation", "``"], "double quotes", ["punctuation", "''"] ]], ["inline", [ ["punctuation", "`"], "single quotes", ["punctuation", "'"] ]], ["inline", [ ["punctuation", "`"], "monospace", ["punctuation", "`"] ]], ["inline", [ ["italic", [["punctuation", "'"], "emphasis", ["punctuation", "'"]]] ]], ["inline", [ ["bold", [["punctuation", "*"], "strong", ["punctuation", "*"]]] ]], ["inline", [ ["punctuation", "+"], "monospace", ["punctuation", "+"] ]], ["inline", [ ["punctuation", "#"], "unquoted", ["punctuation", "#"] ]], ["inline", [ ["italic", [["punctuation", "__"], "emphasis", ["punctuation", "__"]]] ]], ["inline", [ ["bold", [["punctuation", "**"], "strong", ["punctuation", "**"]]] ]], ["inline", [ ["punctuation", "++"], "monospace", ["punctuation", "++"] ]], ["inline", [ ["punctuation", "+++"], "passthrough", ["punctuation", "+++"] ]], ["inline", [ ["punctuation", "##"], "unquoted", ["punctuation", "##"] ]], ["inline", [ ["punctuation", "$$"], "passthrough", ["punctuation", "$$"] ]], ["inline", [ ["punctuation", "~"], "subscript", ["punctuation", "~"] ]], ["inline", [ ["punctuation", "^"], "superscript", ["punctuation", "^"] ]], ["inline", [ ["attribute-ref", [["punctuation", "{"], ["variable", "attribute-reference"], ["punctuation", "}"]]] ]], ["inline", [ ["url", [["punctuation", "[["], "anchor", ["punctuation", "]]"]]] ]], ["inline", [ ["url", [["punctuation", "[[["], "bibliography anchor", ["punctuation", "]]]"]]] ]], ["inline", [ ["url", [["punctuation", "<<"], "xref", ["punctuation", ">>"]]] ]], ["inline", [ ["punctuation", "((("], "indexes", ["punctuation", ")))"] ]], ["inline", [ ["punctuation", "(("], "indexes", ["punctuation", "))"] ]], ["punctuation", "|===="] ]], ["attributes", [ ["punctuation", "["], ["interpreted", [ ["punctuation", "'"], "foo ", ["inline", [["bold", [["punctuation", "*"], "bar", ["punctuation", "*"]]]]], " baz", ["punctuation", "'"] ]], ["punctuation", "]"] ]], ["title", [ ["punctuation", "=="], " foo ", ["inline", [["bold", [["punctuation", "*"], "bar", ["punctuation", "*"]]]]], " baz ", ["punctuation", "=="] ]], ["inline", [ ["attribute-ref", [ ["punctuation", "{"], ["variable", "names"], ["operator", "="], "value", ["punctuation", "}"] ]] ]], ["inline", [ ["attribute-ref", [ ["punctuation", "{"], ["variable", "names"], ["operator", "?"], "value", ["punctuation", "}"] ]] ]], ["inline", [ ["attribute-ref", [ ["punctuation", "{"], ["variable", "names"], ["operator", "!"], "value", ["punctuation", "}"] ]] ]], ["inline", [ ["attribute-ref", [ ["punctuation", "{"], ["variable", "names"], ["operator", "#"], "value", ["punctuation", "}"] ]] ]], ["inline", [ ["attribute-ref", [ ["punctuation", "{"], ["variable", "names"], ["operator", "%"], "value", ["punctuation", "}"] ]] ]], ["inline", [ ["attribute-ref", [ ["punctuation", "{"], ["variable", "names"], ["operator", "@"], "regexp", ["punctuation", ":"], "value1", ["punctuation", ":"], "value2", ["punctuation", "}"] ]] ]], ["inline", [ ["attribute-ref", [ ["punctuation", "{"], ["variable", "names"], ["operator", "$"], "regexp", ["punctuation", ":"], "value1", ["punctuation", ":"], "value2", ["punctuation", "}"] ]] ]], ["inline", [ ["attribute-ref", [ ["punctuation", "{"], ["variable", "names"], ["operator", "$"], "regexp", ["punctuation", "::"], "value", ["punctuation", "}"] ]] ]], ["inline", [ ["attribute-ref", [ ["punctuation", "{"], ["variable", "foo,bar"], ["operator", "="], "foobar", ["punctuation", "}"] ]] ]], ["inline", [ ["attribute-ref", [ ["punctuation", "{"], ["variable", "foo+bar"], ["operator", "="], "foobar", ["punctuation", "}"] ]] ]], ["inline", [ ["attribute-ref", [ ["punctuation", "{"], ["variable", "counter"], ["punctuation", ":"], "attrname", ["punctuation", "}"] ]] ]] ] ---------------------------------------------------- Checks for all kinds of inline quoted text.PKfvCH?Qmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/javascript+haml/javascript_inclusion.test:javascript 0xBadFace ~ :javascript 0xBadFace ---------------------------------------------------- [ ["filter-javascript", [ ["filter-name", ":javascript"], ["number", "0xBadFace"] ]], ["punctuation", "~"], ["filter-javascript", [ ["filter-name", ":javascript"], ["number", "0xBadFace"] ]] ] ---------------------------------------------------- Checks for JavaScript filter in Haml. The tilde serves only as a separator.PKfvCHd77smaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/puppet/datatype_feature.testAny Array Boolean Callable Catalogentry Class Collection Data Default Enum Float Hash Integer NotUndef Numeric Optional Pattern Regexp Resource Runtime Scalar String Struct Tuple Type Undef Variant ---------------------------------------------------- [ ["datatype", "Any"], ["datatype", "Array"], ["datatype", "Boolean"], ["datatype", "Callable"], ["datatype", "Catalogentry"], ["datatype", "Class"], ["datatype", "Collection"], ["datatype", "Data"], ["datatype", "Default"], ["datatype", "Enum"], ["datatype", "Float"], ["datatype", "Hash"], ["datatype", "Integer"], ["datatype", "NotUndef"], ["datatype", "Numeric"], ["datatype", "Optional"], ["datatype", "Pattern"], ["datatype", "Regexp"], ["datatype", "Resource"], ["datatype", "Runtime"], ["datatype", "Scalar"], ["datatype", "String"], ["datatype", "Struct"], ["datatype", "Tuple"], ["datatype", "Type"], ["datatype", "Undef"], ["datatype", "Variant"] ] ---------------------------------------------------- Checks for data types.PKfvCHrmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/puppet/boolean_feature.testtrue false ---------------------------------------------------- [ ["boolean", "true"], ["boolean", "false"] ] ---------------------------------------------------- Checks for booleans.PKfvCH)rmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/puppet/heredoc_feature.test@("FOO") bar $baz FOO @(FOO BAR/) bar $baz | FOO BAR @(foo!) bar |-foo! @("some text..."/nrts$uL) some text some text.. some text... $foo = @(FOOBAR) == $bar Foobar -FOOBAR ---------------------------------------------------- [ ["heredoc", ["@(", ["punctuation", "\"FOO\""], ")"]], ["heredoc", [ "\tbar\r\n\t", ["interpolation", ["$baz"]], ["punctuation", "FOO"] ]], ["heredoc", ["@(", ["punctuation", "FOO BAR/"], ")"]], ["heredoc", [ "\tbar\r\n\t$baz\r\n\t", ["punctuation", "| FOO BAR"] ]], ["heredoc", ["@(", ["punctuation", "foo!"], ")"]], ["heredoc", ["bar\r\n", ["punctuation", "|-foo!"]]], ["heredoc", ["@(", ["punctuation", "\"some text...\"/nrts$uL"], ")"]], ["heredoc", ["some text\r\nsome text..\r\n", ["punctuation", "some text..."]]], ["variable", ["$foo"]], ["operator", "="], ["heredoc", ["@(", ["punctuation", "FOOBAR"], ")"]], ["operator", "=="], ["variable", ["$bar"]], ["heredoc", ["\tFoobar\r\n\t", ["punctuation", "-FOOBAR"]]] ] ---------------------------------------------------- Checks for heredoc strings. Also checks that string interpolation applies only inside quoted heredoc strings.PKfvCHtmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/puppet/attr-name_feature.testfoo { bar => bar, * => {} } ---------------------------------------------------- [ "foo ", ["punctuation", "{"], ["attr-name", "bar"], ["operator", "=>"], " bar", ["punctuation", ","], ["attr-name", "*"], ["operator", "=>"], ["punctuation", "{"], ["punctuation", "}"], ["punctuation", "}"] ] ---------------------------------------------------- Checks for attributes.PKfvCHH-Qccsmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/puppet/variable_feature.test$foo $::foobar_42 $Foo::Bar_42::baz ---------------------------------------------------- [ ["variable", ["$foo"]], ["variable", ["$", ["punctuation", "::"], "foobar_42"]], ["variable", ["$Foo", ["punctuation", "::"], "Bar_42", ["punctuation", "::"], "baz"]] ] ---------------------------------------------------- Checks for variables.PKfvCH rmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/puppet/comment_feature.test# # Foobar /* Foo bar */ ---------------------------------------------------- [ ["comment", "#"], ["comment", "# Foobar"], ["multiline-comment", "/* Foo\r\nbar */"] ] ---------------------------------------------------- Checks for comments.PKfvCH5q~~qmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/puppet/number_feature.test0 42 3.14159 3e8 3.2E-7 0777 0xBadFace 0XBADFACE ---------------------------------------------------- [ ["number", "0"], ["number", "42"], ["number", "3.14159"], ["number", "3e8"], ["number", "3.2E-7"], ["number", "0777"], ["number", "0xBadFace"], ["number", "0XBADFACE"] ] ---------------------------------------------------- Checks for numbers.PKfvCH8C*TTpmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/puppet/regex_feature.testnode /f(o)"o"[b]?a\/r/ $foo = /foo bar # baz /m $foo = /foo bar # baz /ixm ---------------------------------------------------- [ ["keyword", "node"], ["regex", ["/f(o)\"o\"[b]?a\\/r/"]], ["variable", ["$foo"]], ["operator", "="], ["regex", ["/foo\r\nbar # baz\r\n/m"]], ["variable", ["$foo"]], ["operator", "="], ["regex", [ ["extended-regex", [ "/foo\r\nbar ", ["comment", "# baz"], "\r\n/ixm" ]] ]] ] ---------------------------------------------------- Checks for regular expressions. Also checks that extended-regex accept inline comments.PKfvCHlReesmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/puppet/operator_feature.test= == =~ => ! != !~ < << <<| <= <~ <| <- > >> >= - -> ~> | |> |>> * / % + ? and in or ---------------------------------------------------- [ ["operator", "="], ["operator", "=="], ["operator", "=~"], ["operator", "=>"], ["operator", "!"], ["operator", "!="], ["operator", "!~"], ["operator", "<"], ["operator", "<<"], ["operator", "<<|"], ["operator", "<="], ["operator", "<~"], ["operator", "<|"], ["operator", "<-"], ["operator", ">"], ["operator", ">>"], ["operator", ">="], ["operator", "-"], ["operator", "->"], ["operator", "~>"], ["operator", "|"], ["operator", "|>"], ["operator", "|>>"], ["operator", "*"], ["operator", "/"], ["operator", "%"], ["operator", "+"], ["operator", "?"], ["operator", "and"], ["operator", "in"], ["operator", "or"] ] ---------------------------------------------------- Checks for operators.PKfvCHGH}HHqmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/puppet/string_feature.test'' 'fo\'obar' 'foo $bar baz' "" "fo\"obar" "foo $bar baz" ---------------------------------------------------- [ ["string", ["''"]], ["string", ["'fo\\'obar'"]], ["string", ["'foo\r\n$bar\r\nbaz'"]], ["string", [["double-quoted", ["\"\""]]]], ["string", [["double-quoted", ["\"fo\\\"obar\""]]]], ["string", [["double-quoted", [ "\"foo\r\n", ["interpolation", ["$bar"]], "\r\nbaz\"" ]]]] ] ---------------------------------------------------- Checks for strings. Also checks that string interpolation only applies to double-quoted strings.PKfvCH[b-xmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/puppet/interpolation_feature.test"$foo ${::foo} ${foo::bar.foobar} ${foobar(42)} ${::interfaces.split(",")[3]} ${[1,20,3].filter |$value| { $value < 10 }}" ---------------------------------------------------- [ ["string", [["double-quoted", [ "\"", ["interpolation", ["$foo"]], ["interpolation", [ ["delimiter", "$"], ["punctuation", "{"], ["short-variable", [["punctuation", "::"], "foo"]], ["punctuation", "}"] ]], ["interpolation", [ ["delimiter", "$"], ["punctuation", "{"], ["short-variable", ["foo", ["punctuation", "::"], "bar"]], ["punctuation", "."], ["function", "foobar"], ["punctuation", "}"] ]], ["interpolation", [ ["delimiter", "$"], ["punctuation", "{"], ["function", "foobar"], ["punctuation", "("], ["number", "42"], ["punctuation", ")"], ["punctuation", "}"] ]], ["interpolation", [ ["delimiter", "$"], ["punctuation", "{"], ["short-variable", [["punctuation", "::"], "interfaces"]], ["punctuation", "."], ["function", "split"], ["punctuation", "("], ["string", [["double-quoted", ["\",\""]]]], ["punctuation", ")"], ["punctuation", "["], ["number", "3"], ["punctuation", "]"], ["punctuation", "}"] ]], ["interpolation", [ ["delimiter", "$"], ["punctuation", "{"], ["punctuation", "["], ["number", "1"], ["punctuation", ","], ["number", "20"], ["punctuation", ","], ["number", "3"], ["punctuation", "]"], ["punctuation", "."], ["function", "filter"], ["operator", "|"], ["variable", ["$value"]], ["operator", "|"], ["punctuation", "{"], ["variable", ["$value"]], ["operator", "<"], ["number", "10"], ["punctuation", "}"], ["punctuation", "}"] ]], "\"" ]]]] ] ---------------------------------------------------- Checks for interpolation.PKfvCHLsmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/puppet/function_feature.test$foo.foobar foo_bar_42() contain debug err fail include info notice realize require tag warning ---------------------------------------------------- [ ["variable", ["$foo"]], ["punctuation", "."], ["function", "foobar"], ["function", "foo_bar_42"], ["punctuation", "("], ["punctuation", ")"], ["function", "contain"], ["function", "debug"], ["function", "err"], ["function", "fail"], ["function", "include"], ["function", "info"], ["function", "notice"], ["function", "realize"], ["function", "require"], ["function", "tag"], ["function", "warning"] ] ---------------------------------------------------- Checks for functions.PKfvCHrmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/puppet/keyword_feature.testapplication attr case class consumes default define else elsif function if import inherits node private produces type undef unless ---------------------------------------------------- [ ["keyword", "application"], ["keyword", "attr"], ["keyword", "case"], ["keyword", "class"], ["keyword", "consumes"], ["keyword", "default"], ["keyword", "define"], ["keyword", "else"], ["keyword", "elsif"], ["keyword", "function"], ["keyword", "if"], ["keyword", "import"], ["keyword", "inherits"], ["keyword", "node"], ["keyword", "private"], ["keyword", "produces"], ["keyword", "type"], ["keyword", "undef"], ["keyword", "unless"] ] ---------------------------------------------------- Checks for keywords.PKfvCHbccvmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/handlebars/boolean_feature.test{{ true }} {{{ false }}} ---------------------------------------------------- [ ["handlebars", [ ["delimiter", "{{"], ["boolean", "true"], ["delimiter", "}}"] ]], ["handlebars", [ ["delimiter", "{{{"], ["boolean", "false"], ["delimiter", "}}}"] ]] ] ---------------------------------------------------- Checks for all booleans.PKfvCHb֙vmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/handlebars/comment_feature.test{{! foobar}} {{!-- foo bar baz --}} {{! foo bar }} {{!-- foo bar --}} ---------------------------------------------------- [ ["handlebars-comment", "{{! foobar}}"], ["handlebars-comment", "{{!-- foo bar baz --}}"], ["handlebars-comment", "{{! foo\r\nbar }}"], ["handlebars-comment", "{{!-- foo\r\nbar --}}"] ] ---------------------------------------------------- Checks for comments.PKfvCH2umaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/handlebars/number_feature.test{{ 0xBadFace }} {{{ 42 }}} {{{ 4e2 }}} {{ 3.5e+1 }} {{ 0.15e-9 }} ---------------------------------------------------- [ ["handlebars", [ ["delimiter", "{{"], ["number", "0xBadFace"], ["delimiter", "}}"] ]], ["handlebars", [ ["delimiter", "{{{"], ["number", "42"], ["delimiter", "}}}"] ]], ["handlebars", [ ["delimiter", "{{{"], ["number", "4e2"], ["delimiter", "}}}"] ]], ["handlebars", [ ["delimiter", "{{"], ["number", "3.5e+1"], ["delimiter", "}}"] ]], ["handlebars", [ ["delimiter", "{{"], ["number", "0.15e-9"], ["delimiter", "}}"] ]] ] ---------------------------------------------------- Checks for decimal and hexadecimal numbers.PKfvCH[//umaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/handlebars/string_feature.test{{ "" }} {{{''}}} {{{"foobar"}}} {{ 'foobar' }} ---------------------------------------------------- [ ["handlebars", [ ["delimiter", "{{"], ["string", "\"\""], ["delimiter", "}}"] ]], ["handlebars", [ ["delimiter", "{{{"], ["string", "''"], ["delimiter", "}}}"] ]], ["handlebars", [ ["delimiter", "{{{"], ["string", "\"foobar\""], ["delimiter", "}}}"] ]], ["handlebars", [ ["delimiter", "{{"], ["string", "'foobar'"], ["delimiter", "}}"] ]] ] ---------------------------------------------------- Checks for stringsPKfvCHtmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/handlebars/block_feature.test{{#each comments}}{{/each}} {{~#if isActive~}}{{~/if~}} ---------------------------------------------------- [ ["handlebars", [ ["delimiter", "{{"], ["block", "#each"], ["variable", "comments"], ["delimiter", "}}"] ]], ["handlebars", [ ["delimiter", "{{"], ["block", "/each"], ["delimiter", "}}"] ]], ["handlebars", [ ["delimiter", "{{"], ["punctuation", "~"], ["block", "#if"], ["variable", "isActive"], ["punctuation", "~"], ["delimiter", "}}"] ]], ["handlebars", [ ["delimiter", "{{"], ["punctuation", "~"], ["block", "/if"], ["punctuation", "~"], ["delimiter", "}}"] ]] ] ---------------------------------------------------- Checks for block helpers.PKfvCHdCcrmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/crystal/number_feature.test1 1_1 1_1_1 0b10_01 0o1_2_3 0x123456789abcdef 012_345.678_9e+10_f64 ---------------------------------------------------- [ ["number", "1"], ["number", "1_1"], ["number", "1_1_1"], ["number", "0b10_01"], ["number", "0o1_2_3"], ["number", "0x123456789abcdef"], ["number", "012_345.678_9e+10_f64"] ] ---------------------------------------------------- Checks for number literals. PKfvCH\4umaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/crystal/expansion_feature.test{{ 1_u32 }} {% 2_u32 %} {{ { 3_u32 } }} {% % 4_u32 % %} ---------------------------------------------------- [ ["expansion", [ ["delimiter", "{{"], ["number", "1_u32"], ["delimiter", "}}"] ]], ["expansion", [ ["delimiter", "{%"], ["number", "2_u32"], ["delimiter", "%}"] ]], ["expansion", [ ["delimiter", "{{"], ["punctuation", "{"], ["number", "3_u32"], ["punctuation", "}"], ["delimiter", "}}"] ]], ["expansion", [ ["delimiter", "{%"], ["operator", "%"], ["number", "4_u32"], ["operator", "%"], ["delimiter", "%}"] ]] ] ---------------------------------------------------- Checks for macro expansions. PKfvCHyH}$umaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/crystal/attribute_feature.test@[AlwaysInline] @[CallConvention("X86_StdCall")] ---------------------------------------------------- [ ["attribute", [ ["delimiter", "@["], ["constant", "AlwaysInline"], ["delimiter", "]"] ]], ["attribute", [ ["delimiter", "@["], ["function", "CallConvention"], ["punctuation", "("], ["string", [ "\"X86_StdCall\"" ]], ["punctuation", ")"], ["delimiter", "]"] ]] ] ---------------------------------------------------- Checks for attributes. PKfvCHxsmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/crystal/keyword_feature.testabstract alias as asm begin break case class; def do else elsif end ensure enum extend for fun if ifdef include instance_sizeof .is_a? lib macro module next of out pointerof private protected rescue .responds_to? return require self sizeof struct super then type typeof union unless until when while with yield __DIR__ __FILE__ __LINE__ ---------------------------------------------------- [ ["keyword", "abstract"], ["keyword", "alias"], ["keyword", "as"], ["keyword", "asm"], ["keyword", "begin"], ["keyword", "break"], ["keyword", "case"], ["keyword", "class"], ["punctuation", ";"], ["keyword", "def"], ["keyword", "do"], ["keyword", "else"], ["keyword", "elsif"], ["keyword", "end"], ["keyword", "ensure"], ["keyword", "enum"], ["keyword", "extend"], ["keyword", "for"], ["keyword", "fun"], ["keyword", "if"], ["keyword", "ifdef"], ["keyword", "include"], ["keyword", "instance_sizeof"], ["punctuation", "."], ["keyword", "is_a?"], ["keyword", "lib"], ["keyword", "macro"], ["keyword", "module"], ["keyword", "next"], ["keyword", "of"], ["keyword", "out"], ["keyword", "pointerof"], ["keyword", "private"], ["keyword", "protected"], ["keyword", "rescue"], ["punctuation", "."], ["keyword", "responds_to?"], ["keyword", "return"], ["keyword", "require"], ["keyword", "self"], ["keyword", "sizeof"], ["keyword", "struct"], ["keyword", "super"], ["keyword", "then"], ["keyword", "type"], ["keyword", "typeof"], ["keyword", "union"], ["keyword", "unless"], ["keyword", "until"], ["keyword", "when"], ["keyword", "while"], ["keyword", "with"], ["keyword", "yield"], ["keyword", "__DIR__"], ["keyword", "__FILE__"], ["keyword", "__LINE__"] ] ---------------------------------------------------- Checks for all keywords. PKfvCHy1=zh h umaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/textile/block-tag_feature.testh1. Header 1 h2>. Header 2 bq. A block quotation p<. Foo p=. Bar p<>. Baz p(. Foobar baz p))). Foo h1(foo). Foo h2[en]. Bar h3{color: red}. Baz h4[fr]{text-decoration:underline;}(#bar). Foobar ---------------------------------------------------- [ ["phrase", [ ["block-tag", [["tag", "h1"], ["punctuation", "."]]], " Header 1" ]], ["phrase", [ ["block-tag", [ ["tag", "h2"], ["modifier", [["punctuation", ">"]]], ["punctuation", "."] ]], " Header 2" ]], ["phrase", [ ["block-tag", [["tag", "bq"], ["punctuation", "."]]], " A block quotation" ]], ["phrase", [ ["block-tag", [ ["tag", "p"], ["modifier", [["punctuation", "<"]]], ["punctuation", "."] ]], " Foo" ]], ["phrase", [ ["block-tag", [ ["tag", "p"], ["modifier", [["punctuation", "="]]], ["punctuation", "."] ]], " Bar" ]], ["phrase", [ ["block-tag", [ ["tag", "p"], ["modifier", [["punctuation", "<"], ["punctuation", ">"]]], ["punctuation", "."] ]], " Baz" ]], ["phrase", [ ["block-tag", [ ["tag", "p"], ["modifier", [["punctuation", "("]]], ["punctuation", "."] ]], " Foobar\r\nbaz" ]], ["phrase", [ ["block-tag", [ ["tag", "p"], ["modifier", [["punctuation", ")"], ["punctuation", ")"], ["punctuation", ")"]]], ["punctuation", "."] ]], " Foo" ]], ["phrase", [ ["block-tag", [ ["tag", "h1"], ["modifier", [ ["punctuation", "("], ["class-id", "foo"], ["punctuation", ")"] ]], ["punctuation", "."] ]], " Foo" ]], ["phrase", [ ["block-tag", [ ["tag", "h2"], ["modifier", [ ["punctuation", "["], ["lang", "en"], ["punctuation", "]"] ]], ["punctuation", "."] ]], " Bar" ]], ["phrase", [ ["block-tag", [ ["tag", "h3"], ["modifier", [ ["css", ["{color: red}"]] ]], ["punctuation", "."] ]], " Baz" ]], ["phrase", [ ["block-tag", [ ["tag", "h4"], ["modifier", [ ["punctuation", "["], ["lang", "fr"], ["punctuation", "]"], ["css", ["{text-decoration:underline;}"]], ["punctuation", "("], ["class-id", "#bar"], ["punctuation", ")"] ]], ["punctuation", "."] ]], " Foobar" ]] ] ---------------------------------------------------- Checks for tags at the beginning of a block and alignment modifiers.PKfvCH7""pmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/textile/list_feature.test# foo # bar ## baz #[fr](#foo){background:pink} Foobar * foo ** bar *** baz ---------------------------------------------------- [ ["phrase", [ ["list", [["punctuation", "#"], " foo"]], ["list", [["punctuation", "#"], " bar"]], ["list", [["punctuation", "##"], " baz"]], ["list", [ ["punctuation", "#"], ["modifier", [ ["punctuation", "["], ["lang", "fr"], ["punctuation", "]"], ["punctuation", "("], ["class-id", "#foo"], ["punctuation", ")"], ["css", ["{background:pink}"]] ]], " Foobar" ]] ]], ["phrase", [ ["list", [["punctuation", "*"], " foo"]], ["list", [["punctuation", "**"], " bar"]], ["list", [["punctuation", "***"], " baz"]] ]] ] ---------------------------------------------------- Checks for list items.PKfvCH#NNtmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/textile/footnote_feature.testFoo[1] Bar[42] ---------------------------------------------------- [ ["phrase", [ "Foo", ["footnote", [["punctuation", "["], "1", ["punctuation", "]"]]], "\r\nBar", ["footnote", [["punctuation", "["], "42", ["punctuation", "]"]]] ]] ] ---------------------------------------------------- Checks for footnotes.PKfvCHEqmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/textile/image_feature.test!foo.png! !bar.jpg(Foo bar)! !foo.png!:http://prismjs.com !bar.jpg(Foo bar)!:http://www.example.com !bar.jpg! !(foo)[en]{border:1px solid #ccc}foo.png! ---------------------------------------------------- [ ["phrase", [ ["image", [ ["punctuation", "!"], ["source", "foo.png"], ["punctuation", "!"] ]], ["image", [ ["punctuation", "!"], ["source", "bar.jpg(Foo bar)"], ["punctuation", "!"] ]], ["image", [ ["punctuation", "!"], ["source", "foo.png"], ["punctuation", "!"], ["punctuation", ":"], ["url", "http://prismjs.com"] ]], ["image", [ ["punctuation", "!"], ["source", "bar.jpg(Foo bar)"], ["punctuation", "!"], ["punctuation", ":"], ["url", "http://www.example.com"] ]] ]], ["phrase", [ ["image", [ ["punctuation", "!"], ["modifier", [ ["punctuation", "<"] ]], ["source", "foo.png"], ["punctuation", "!"] ]], ["image", [ ["punctuation", "!"], ["modifier", [ ["punctuation", ">"] ]], ["source", "bar.jpg"], ["punctuation", "!"] ]], ["image", [ ["punctuation", "!"], ["modifier", [ ["punctuation", "("], ["class-id", "foo"], ["punctuation", ")"], ["punctuation", "["], ["lang", "en"], ["punctuation", "]"], ["css", ["{border:1px solid #ccc}"]] ]], ["source", "foo.png"], ["punctuation", "!"] ]] ]] ] ---------------------------------------------------- Checks for images.PKfvCH)fasmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/textile/acronym_feature.testCSS(Cascading Style Sheet) HTML(HyperText Markup Language) ---------------------------------------------------- [ ["phrase", [ ["acronym", ["CSS", ["punctuation", "("], ["comment", "Cascading Style Sheet"], ["punctuation", ")"]]], ["acronym", ["HTML", ["punctuation", "("], ["comment", "HyperText Markup Language"], ["punctuation", ")"]]] ]] ] ---------------------------------------------------- Checks for acronyms.PKfvCHebpmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/textile/link_feature.test"Foo bar":http://prismjs.com "Baz":foo "Foobar":link-ref "(foo)[en]{color:blue;}Foo":bar ---------------------------------------------------- [ ["phrase", [ ["link", [ ["punctuation", "\""], ["text", "Foo bar"], ["punctuation", "\""], ["punctuation", ":"], ["url", "http://prismjs.com"] ]], ["link", [ ["punctuation", "\""], ["text", "Baz"], ["punctuation", "\""], ["punctuation", ":"], ["url", "foo"] ]], ["link", [ ["punctuation", "\""], ["text", "Foobar"], ["punctuation", "\""], ["punctuation", ":"], ["url", "link-ref"] ]], ["link", [ ["punctuation", "\""], ["modifier", [ ["punctuation", "("], ["class-id", "foo"], ["punctuation", ")"], ["punctuation", "["], ["lang", "en"], ["punctuation", "]"], ["css", ["{color:blue;}"]] ]], ["text", "Foo"], ["punctuation", "\""], ["punctuation", ":"], ["url", "bar"] ]] ]] ] ---------------------------------------------------- Checks for links.PKfvCHҗqmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/textile/table_feature.test|_. foo |<_. bar |>_. baz | |<>. foo |(((. bar |)). baz | |~. foo |^. bar |=. baz | |/2. bar |\2. foo bar baz | |\2~>. foobarbaz | (foo).|(bar).Baz| (#foo).|(#bar).Baz| [fr].|[en].Baz| {color: blue}.|{font-weight:bold}.Baz| (foo#bar){font-style:italic}[fr].|{background:red;}(bar#baz)[en].Baz| |*bold*|**bold**|_italic_|__italic__| |??cite??|@code@|+inserted+|-deleted-| |%span%|"foo":http://example.com|!foo.jpg!|bar[2]| |\2.CSS(Cascading Style Sheet)|\2.Foo(TM)| ---------------------------------------------------- [ ["phrase", [ ["table", [ ["punctuation", "|"], ["modifier", [["punctuation", "_"]]], ["punctuation", "."], " foo ", ["punctuation", "|"], ["modifier", [["punctuation", "<"], ["punctuation", "_"]]], ["punctuation", "."], " bar ", ["punctuation", "|"], ["modifier", [["punctuation", ">"], ["punctuation", "_"]]], ["punctuation", "."], " baz ", ["punctuation", "|"], ["punctuation", "|"], ["modifier", [["punctuation", "<"], ["punctuation", ">"]]], ["punctuation", "."], " foo ", ["punctuation", "|"], ["modifier", [["punctuation", "("], ["punctuation", "("], ["punctuation", "("]]], ["punctuation", "."], " bar ", ["punctuation", "|"], ["modifier", [["punctuation", ")"], ["punctuation", ")"]]], ["punctuation", "."], " baz ", ["punctuation", "|"], ["punctuation", "|"], ["modifier", [["punctuation", "~"]]], ["punctuation", "."], " foo ", ["punctuation", "|"], ["modifier", [["punctuation", "^"]]], ["punctuation", "."], " bar ", ["punctuation", "|"], ["modifier", [["punctuation", "="]]], ["punctuation", "."], " baz ", ["punctuation", "|"], ["punctuation", "|"], ["modifier", [["punctuation", "/2"]]], ["punctuation", "."], " bar ", ["punctuation", "|"], ["modifier", [["punctuation", "\\2"]]], ["punctuation", "."], " foo\r\nbar\r\nbaz ", ["punctuation", "|"], ["punctuation", "|"], ["modifier", [["punctuation", "\\2"], ["punctuation", "~"], ["punctuation", ">"]]], ["punctuation", "."], " foobarbaz ", ["punctuation", "|"] ]] ]], ["phrase", [ ["table", [ ["modifier", [ ["punctuation", "("], ["class-id", "foo"], ["punctuation", ")"] ]], ["punctuation", "."], ["punctuation", "|"], ["modifier", [ ["punctuation", "("], ["class-id", "bar"], ["punctuation", ")"] ]], ["punctuation", "."], "Baz", ["punctuation", "|"], ["modifier", [ ["punctuation", "("], ["class-id", "#foo"], ["punctuation", ")"] ]], ["punctuation", "."], ["punctuation", "|"], ["modifier", [ ["punctuation", "("], ["class-id", "#bar"], ["punctuation", ")"] ]], ["punctuation", "."], "Baz", ["punctuation", "|"], ["modifier", [ ["punctuation", "["], ["lang", "fr"], ["punctuation", "]"] ]], ["punctuation", "."], ["punctuation", "|"], ["modifier", [ ["punctuation", "["], ["lang", "en"], ["punctuation", "]"] ]], ["punctuation", "."], "Baz", ["punctuation", "|"], ["modifier", [ ["css", ["{color: blue}"]] ]], ["punctuation", "."], ["punctuation", "|"], ["modifier", [ ["css", ["{font-weight:bold}"]] ]], ["punctuation", "."], "Baz", ["punctuation", "|"], ["modifier", [ ["punctuation", "("], ["class-id", "foo#bar"], ["punctuation", ")"], ["css", ["{font-style:italic}"]], ["punctuation", "["], ["lang", "fr"], ["punctuation", "]"] ]], ["punctuation", "."], ["punctuation", "|"], ["modifier", [ ["css", ["{background:red;}"]], ["punctuation", "("], ["class-id", "bar#baz"], ["punctuation", ")"], ["punctuation", "["], ["lang", "en"], ["punctuation", "]"] ]], ["punctuation", "."], "Baz", ["punctuation", "|"] ]] ]], ["phrase", [ ["table", [ ["punctuation", "|"], ["inline", [["punctuation", "*"], ["bold", "bold"], ["punctuation", "*"]]], ["punctuation", "|"], ["inline", [["punctuation", "**"], ["bold", "bold"], ["punctuation", "**"]]], ["punctuation", "|"], ["inline", [["punctuation", "_"], ["italic", "italic"], ["punctuation", "_"]]], ["punctuation", "|"], ["inline", [["punctuation", "__"], ["italic", "italic"], ["punctuation", "__"]]], ["punctuation", "|"], ["punctuation", "|"], ["inline", [["punctuation", "??"], ["cite", "cite"], ["punctuation", "??"]]], ["punctuation", "|"], ["inline", [["punctuation", "@"], ["code", "code"], ["punctuation", "@"]]], ["punctuation", "|"], ["inline", [["punctuation", "+"], ["inserted", "inserted"], ["punctuation", "+"]]], ["punctuation", "|"], ["inline", [["punctuation", "-"], ["deleted", "deleted"], ["punctuation", "-"]]], ["punctuation", "|"], ["punctuation", "|"], ["inline", [["punctuation", "%"], ["span", "span"], ["punctuation", "%"]]], ["punctuation", "|"], ["link", [["punctuation", "\""], ["text", "foo"], ["punctuation", "\""], ["punctuation", ":"], ["url", "http://example.com"]]], ["punctuation", "|"], ["image", [["punctuation", "!"], ["source", "foo.jpg"], ["punctuation", "!"]]], ["punctuation", "|"], "bar", ["footnote", [["punctuation", "["], "2", ["punctuation", "]"]]], ["punctuation", "|"], ["punctuation", "|"], ["modifier", [["punctuation", "\\2"]]], ["punctuation", "."], ["acronym", ["CSS", ["punctuation", "("], ["comment", "Cascading Style Sheet"], ["punctuation", ")"]]], ["punctuation", "|"], ["modifier", [["punctuation", "\\2"]]], ["punctuation", "."], "Foo", ["mark", [["punctuation", "("], "TM", ["punctuation", ")"]]], ["punctuation", "|"] ]] ]] ] ---------------------------------------------------- Checks for tables with alignment modifiers and spanning. Also checks for nesting inline styles.PKfvCHtmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/textile/link-ref_feature.test[foo]http://prismjs.com [bar]http://www.example.com ---------------------------------------------------- [ ["phrase", [ ["link-ref", [ ["punctuation", "["], ["string", "foo"], ["punctuation", "]"], ["url", "http://prismjs.com"] ]], ["link-ref", [ ["punctuation", "["], ["string", "bar"], ["punctuation", "]"], ["url", "http://www.example.com"] ]] ]] ] ---------------------------------------------------- Checks for links references.PKfvCH rmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/textile/inline_feature.test*bold* **bold** _italic_ __italic__ ??cite?? @code@ +inserted+ -deleted- %span% ^superscript^ ~subscript~ *{color:red}bold* __(foo#bar)[fr]italique__ %{text-decoration:underline}span *[en]bold*% *_a_ __b__ ??c?? @d@ +e+ -f- %g% ^h^ ~i~* **_a_ __b__ ??c?? @d@ +e+ -f- %g% ^h^ ~i~** _*a* **b** ??c?? @d@ +e+ -f- %g% ^h^ ~i~_ __*a* **b** ??c?? @d@ +e+ -f- %g% ^h^ ~i~__ +*a* **b** _c_ __d__ ??e?? @f@ -g- %h% ^i^ ~j~+ -*a* **b** _c_ __d__ ??e?? @f@ +g+ %h% ^i^ ~j~- %*a* **b** _c_ __d__ ??e?? @f@ +g+ -h- ^i^ ~j~% ---------------------------------------------------- [ ["phrase", [ ["inline", [["punctuation", "*"], ["bold", ["bold"]], ["punctuation", "*"]]], ["inline", [["punctuation", "**"], ["bold", ["bold"]], ["punctuation", "**"]]], ["inline", [["punctuation", "_"], ["italic", ["italic"]], ["punctuation", "_"]]], ["inline", [["punctuation", "__"], ["italic", ["italic"]], ["punctuation", "__"]]], ["inline", [["punctuation", "??"], ["cite", "cite"], ["punctuation", "??"]]], ["inline", [["punctuation", "@"], ["code", "code"], ["punctuation", "@"]]], ["inline", [["punctuation", "+"], ["inserted", ["inserted"]], ["punctuation", "+"]]], ["inline", [["punctuation", "-"], ["deleted", ["deleted"]], ["punctuation", "-"]]], ["inline", [["punctuation", "%"], ["span", ["span"]], ["punctuation", "%"]]], ["inline", [["punctuation", "^"], "superscript", ["punctuation", "^"]]], ["inline", [["punctuation", "~"], "subscript", ["punctuation", "~"]]] ]], ["phrase", [ ["inline", [ ["punctuation", "*"], ["modifier", [ ["css", ["{color:red}"]] ]], ["bold", ["bold"]], ["punctuation", "*"] ]], ["inline", [ ["punctuation", "__"], ["modifier", [ ["punctuation", "("], ["class-id", "foo#bar"], ["punctuation", ")"], ["punctuation", "["], ["lang", "fr"], ["punctuation", "]"] ]], ["italic", ["italique"]], ["punctuation", "__"] ]], ["inline", [ ["punctuation", "%"], ["modifier", [ ["css", ["{text-decoration:underline}"]] ]], ["span", [ "span ", ["inline", [ ["punctuation", "*"], ["modifier", [ ["punctuation", "["], ["lang", "en"], ["punctuation", "]"] ]], ["bold", "bold"], ["punctuation", "*"] ]] ]], ["punctuation", "%"] ]] ]], ["phrase", [ ["inline", [["punctuation", "*"], ["bold", [ ["inline", [["punctuation", "_"], ["italic", "a"], ["punctuation", "_"]]], ["inline", [["punctuation", "__"], ["italic", "b"], ["punctuation", "__"]]], ["inline", [["punctuation", "??"], ["cite", "c"], ["punctuation", "??"]]], ["inline", [["punctuation", "@"], ["code", "d"], ["punctuation", "@"]]], ["inline", [["punctuation", "+"], ["inserted", "e"], ["punctuation", "+"]]], ["inline", [["punctuation", "-"], ["deleted", "f"], ["punctuation", "-"]]], ["inline", [["punctuation", "%"], ["span", "g"], ["punctuation", "%"]]], ["inline", [["punctuation", "^"], "h", ["punctuation", "^"]]], ["inline", [["punctuation", "~"], "i", ["punctuation", "~"]]] ]], ["punctuation", "*"]]], ["inline", [["punctuation", "**"], ["bold", [ ["inline", [["punctuation", "_"], ["italic", "a"], ["punctuation", "_"]]], ["inline", [["punctuation", "__"], ["italic", "b"], ["punctuation", "__"]]], ["inline", [["punctuation", "??"], ["cite", "c"], ["punctuation", "??"]]], ["inline", [["punctuation", "@"], ["code", "d"], ["punctuation", "@"]]], ["inline", [["punctuation", "+"], ["inserted", "e"], ["punctuation", "+"]]], ["inline", [["punctuation", "-"], ["deleted", "f"], ["punctuation", "-"]]], ["inline", [["punctuation", "%"], ["span", "g"], ["punctuation", "%"]]], ["inline", [["punctuation", "^"], "h", ["punctuation", "^"]]], ["inline", [["punctuation", "~"], "i", ["punctuation", "~"]]] ]], ["punctuation", "**"]]], ["inline", [["punctuation", "_"], ["italic", [ ["inline", [["punctuation", "*"], ["bold", "a"], ["punctuation", "*"]]], ["inline", [["punctuation", "**"], ["bold", "b"], ["punctuation", "**"]]], ["inline", [["punctuation", "??"], ["cite", "c"], ["punctuation", "??"]]], ["inline", [["punctuation", "@"], ["code", "d"], ["punctuation", "@"]]], ["inline", [["punctuation", "+"], ["inserted", "e"], ["punctuation", "+"]]], ["inline", [["punctuation", "-"], ["deleted", "f"], ["punctuation", "-"]]], ["inline", [["punctuation", "%"], ["span", "g"], ["punctuation", "%"]]], ["inline", [["punctuation", "^"], "h", ["punctuation", "^"]]], ["inline", [["punctuation", "~"], "i", ["punctuation", "~"]]] ]], ["punctuation", "_"]]], ["inline", [["punctuation", "__"], ["italic", [ ["inline", [["punctuation", "*"], ["bold", "a"], ["punctuation", "*"]]], ["inline", [["punctuation", "**"], ["bold", "b"], ["punctuation", "**"]]], ["inline", [["punctuation", "??"], ["cite", "c"], ["punctuation", "??"]]], ["inline", [["punctuation", "@"], ["code", "d"], ["punctuation", "@"]]], ["inline", [["punctuation", "+"], ["inserted", "e"], ["punctuation", "+"]]], ["inline", [["punctuation", "-"], ["deleted", "f"], ["punctuation", "-"]]], ["inline", [["punctuation", "%"], ["span", "g"], ["punctuation", "%"]]], ["inline", [["punctuation", "^"], "h", ["punctuation", "^"]]], ["inline", [["punctuation", "~"], "i", ["punctuation", "~"]]] ]], ["punctuation", "__"]]], ["inline", [["punctuation", "+"], ["inserted", [ ["inline", [["punctuation", "*"], ["bold", "a"], ["punctuation", "*"]]], ["inline", [["punctuation", "**"], ["bold", "b"], ["punctuation", "**"]]], ["inline", [["punctuation", "_"], ["italic", "c"], ["punctuation", "_"]]], ["inline", [["punctuation", "__"], ["italic", "d"], ["punctuation", "__"]]], ["inline", [["punctuation", "??"], ["cite", "e"], ["punctuation", "??"]]], ["inline", [["punctuation", "@"], ["code", "f"], ["punctuation", "@"]]], ["inline", [["punctuation", "-"], ["deleted", "g"], ["punctuation", "-"]]], ["inline", [["punctuation", "%"], ["span", "h"], ["punctuation", "%"]]], ["inline", [["punctuation", "^"], "i", ["punctuation", "^"]]], ["inline", [["punctuation", "~"], "j", ["punctuation", "~"]]] ]], ["punctuation", "+"]]], ["inline", [["punctuation", "-"], ["deleted", [ ["inline", [["punctuation", "*"], ["bold", "a"], ["punctuation", "*"]]], ["inline", [["punctuation", "**"], ["bold", "b"], ["punctuation", "**"]]], ["inline", [["punctuation", "_"], ["italic", "c"], ["punctuation", "_"]]], ["inline", [["punctuation", "__"], ["italic", "d"], ["punctuation", "__"]]], ["inline", [["punctuation", "??"], ["cite", "e"], ["punctuation", "??"]]], ["inline", [["punctuation", "@"], ["code", "f"], ["punctuation", "@"]]], ["inline", [["punctuation", "+"], ["inserted", "g"], ["punctuation", "+"]]], ["inline", [["punctuation", "%"], ["span", "h"], ["punctuation", "%"]]], ["inline", [["punctuation", "^"], "i", ["punctuation", "^"]]], ["inline", [["punctuation", "~"], "j", ["punctuation", "~"]]] ]], ["punctuation", "-"]]], ["inline", [["punctuation", "%"], ["span", [ ["inline", [["punctuation", "*"], ["bold", "a"], ["punctuation", "*"]]], ["inline", [["punctuation", "**"], ["bold", "b"], ["punctuation", "**"]]], ["inline", [["punctuation", "_"], ["italic", "c"], ["punctuation", "_"]]], ["inline", [["punctuation", "__"], ["italic", "d"], ["punctuation", "__"]]], ["inline", [["punctuation", "??"], ["cite", "e"], ["punctuation", "??"]]], ["inline", [["punctuation", "@"], ["code", "f"], ["punctuation", "@"]]], ["inline", [["punctuation", "+"], ["inserted", "g"], ["punctuation", "+"]]], ["inline", [["punctuation", "-"], ["deleted", "h"], ["punctuation", "-"]]], ["inline", [["punctuation", "^"], "i", ["punctuation", "^"]]], ["inline", [["punctuation", "~"], "j", ["punctuation", "~"]]] ]], ["punctuation", "%"]]] ]] ] ---------------------------------------------------- Checks for inline styles and nesting.PKfvCHB=pmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/textile/mark_feature.testPrism(C) Foo(TM) Foobar(R) ---------------------------------------------------- [ ["phrase", [ "Prism", ["mark", [["punctuation", "("], "C", ["punctuation", ")"]]], "\r\nFoo", ["mark", [["punctuation", "("], "TM", ["punctuation", ")"]]], "\r\nFoobar", ["mark", [["punctuation", "("], "R", ["punctuation", ")"]]] ]] ] ---------------------------------------------------- Checks for marks symbols.PKfvCHKR&TT{materialdjango/static/materialdjango/components/bower_components/prism/tests/languages/csharp+aspnet/directive_feature.test<%: Page.Title %> <%#:Item.ProductID%> <% if(foo) { %> foobar <% } %> ---------------------------------------------------- [ ["directive tag", [ ["directive tag", "<%:"], " Page", ["punctuation", "."], "Title ", ["directive tag", "%>"] ]], ["directive tag", [ ["directive tag", "<%#:"], "Item", ["punctuation", "."], "ProductID", ["directive tag", "%>"] ]], ["tag", [ ["tag", [ ["punctuation", "<"], "a" ]], ["attr-name", [ "href" ]], ["attr-value", [ ["punctuation", "="], ["punctuation", "\""], "ProductDetails.aspx?productID", ["punctuation", "="], ["directive tag", [ ["directive tag", "<%#:"], "Item", ["punctuation", "."], "ProductID", ["directive tag", "%>"] ]], ["punctuation", "\""] ]], ["punctuation", ">"] ]], ["directive tag", [ ["directive tag", "<%"], ["keyword", "if"], ["punctuation", "("], "foo", ["punctuation", ")"], ["punctuation", "{"], ["directive tag", "%>"] ]], "\r\n\tfoobar\r\n", ["directive tag", [ ["directive tag", "<%"], ["punctuation", "}"], ["directive tag", "%>"] ]] ] ---------------------------------------------------- Checks for directives.PKfvCH>xrmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/bison/property_feature.test%% foo: bar_42: $@1: %% ---------------------------------------------------- [ ["bison", [ ["punctuation", "%%"], ["property", "foo"], ["punctuation", ":"], ["property", "bar_42"], ["punctuation", ":"], ["property", "$@1"], ["punctuation", ":"], ["punctuation", "%%"] ]] ] ---------------------------------------------------- Checks for properties.PKfvCH=-qmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/bison/comment_feature.test// Foobar /* Foo bar */ %% // Foobar /* Foo bar */ %% ---------------------------------------------------- [ ["bison", [ ["comment", "// Foobar"], ["comment", "/* Foo\r\nbar */"], ["punctuation", "%%"], ["comment", "// Foobar"], ["comment", "/* Foo\r\nbar */"], ["punctuation", "%%"] ]] ] ---------------------------------------------------- Checks for comments.PKfvCH~ pmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/bison/number_feature.test42 0 0xBadFace ---------------------------------------------------- [ ["number", "42"], ["number", "0"], ["number", "0xBadFace"] ] ---------------------------------------------------- Checks for numbers.PKfvCHpmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/bison/string_feature.test%% foo: 'foo' "foo"; bar: '\'' "\""; %% ---------------------------------------------------- [ ["bison", [ ["punctuation", "%%"], ["property", "foo"], ["punctuation", ":"], ["string", "'foo'"], ["string", "\"foo\""], ["punctuation", ";"], ["property", "bar"], ["punctuation", ":"], ["string", "'\\''"], ["string", "\"\\\"\""], ["punctuation", ";"], ["punctuation", "%%"] ]] ] ---------------------------------------------------- Checks for strings.PKfvCHlkmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/bison/c_feature.test%{ #include %} %code { if(foo) { } } %% exp: NUM { $$ = f($3, $4); @$.first_column = @1.first_column; $result = $left + $1; } %% ---------------------------------------------------- [ ["bison", [ ["c", [ ["delimiter", "%{"], ["macro", ["#", ["directive", "include"], ["string", ""]]], ["delimiter", "%}"] ]], ["keyword", "%code"], ["c", [ ["delimiter", "{"], ["keyword", "if"], ["punctuation", "("], "foo", ["punctuation", ")"], ["punctuation", "{"], ["punctuation", "}"], ["delimiter", "}"] ]], ["punctuation", "%%"], ["property", "exp"], ["punctuation", ":"], "\r\n\tNUM ", ["c", [ ["delimiter", "{"], ["bison-variable", ["$$"]], ["operator", "="], ["function", "f"], ["punctuation", "("], ["bison-variable", ["$3"]], ["punctuation", ","], ["bison-variable", ["$4"]], ["punctuation", ")"], ["punctuation", ";"], ["bison-variable", ["@$"]], ["punctuation", "."], "first_column ", ["operator", "="], ["bison-variable", ["@1"]], ["punctuation", "."], "first_column", ["punctuation", ";"], ["bison-variable", ["$result"]], ["operator", "="], ["bison-variable", ["$left"]], ["operator", "+"], ["bison-variable", ["$", ["punctuation", "<"], "itype", ["punctuation", ">"], "1"]], ["punctuation", ";"], ["delimiter", "}"] ]], ["punctuation", "%%"] ]] ] ---------------------------------------------------- Checks for C inside Bison, along with special Bison variables.PKfvCHuuqmaterialdjango/static/materialdjango/components/bower_components/prism/tests/languages/bison/keyword_feature.test%union %token %% exp: %empty %% ---------------------------------------------------- [ ["bison", [ ["keyword", "%union"], ["keyword", "%token"], ["punctuation", "%%"], ["property", "exp"], ["punctuation", ":"], ["keyword", "%empty"], ["punctuation", "%%"] ]] ] ---------------------------------------------------- Checks for keywords.PKfvCH#%vgmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-markdown.min.jsPrism.languages.markdown=Prism.languages.extend("markup",{}),Prism.languages.insertBefore("markdown","prolog",{blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},code:[{pattern:/^(?: {4}|\t).+/m,alias:"keyword"},{pattern:/``.+?``|`[^`\n]+`/,alias:"keyword"}],title:[{pattern:/\w+.*(?:\r?\n|\r)(?:==+|--+)/,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#+.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])([\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:/(^|[^\\])(\*\*|__)(?:(?:\r?\n|\r)(?!\r?\n|\r)|.)+?\2/,lookbehind:!0,inside:{punctuation:/^\*\*|^__|\*\*$|__$/}},italic:{pattern:/(^|[^\\])([*_])(?:(?:\r?\n|\r)(?!\r?\n|\r)|.)+?\2/,lookbehind:!0,inside:{punctuation:/^[*_]|[*_]$/}},url:{pattern:/!?\[[^\]]+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)| ?\[[^\]\n]*\])/,inside:{variable:{pattern:/(!?\[)[^\]]+(?=\]$)/,lookbehind:!0},string:{pattern:/"(?:\\.|[^"\\])*"(?=\)$)/}}}}),Prism.languages.markdown.bold.inside.url=Prism.util.clone(Prism.languages.markdown.url),Prism.languages.markdown.italic.inside.url=Prism.util.clone(Prism.languages.markdown.url),Prism.languages.markdown.bold.inside.italic=Prism.util.clone(Prism.languages.markdown.italic),Prism.languages.markdown.italic.inside.bold=Prism.util.clone(Prism.languages.markdown.bold);PKfvCH0E}$ $ amaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-elixir.jsPrism.languages.elixir = { // Negative look-ahead is needed for string interpolation // Negative look-behind is needed to avoid highlighting markdown headers in // multi-line doc strings 'comment': { pattern: /(^|[^#])#(?![{#]).*/m, lookbehind: true }, // ~r"""foo""", ~r'''foo''', ~r/foo/, ~r|foo|, ~r"foo", ~r'foo', ~r(foo), ~r[foo], ~r{foo}, ~r 'regex': /~[rR](?:("""|'''|[\/|"'])(?:\\.|(?!\1)[^\\])+\1|\((?:\\\)|[^)])+\)|\[(?:\\\]|[^\]])+\]|\{(?:\\\}|[^}])+\}|<(?:\\>|[^>])+>)[uismxfr]*/, 'string': [ { // ~s"""foo""", ~s'''foo''', ~s/foo/, ~s|foo|, ~s"foo", ~s'foo', ~s(foo), ~s[foo], ~s{foo}, ~s pattern: /~[cCsSwW](?:("""|'''|[\/|"'])(?:\\.|(?!\1)[^\\])+\1|\((?:\\\)|[^)])+\)|\[(?:\\\]|[^\]])+\]|\{(?:\\\}|#\{[^}]+\}|[^}])+\}|<(?:\\>|[^>])+>)[csa]?/, inside: { // See interpolation below } }, { pattern: /("""|''')[\s\S]*?\1/, inside: { // See interpolation below } }, { // Multi-line strings are allowed pattern: /("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/, inside: { // See interpolation below } } ], 'atom': { // Look-behind prevents bad highlighting of the :: operator pattern: /(^|[^:]):\w+/, lookbehind: true, alias: 'symbol' }, // Look-ahead prevents bad highlighting of the :: operator 'attr-name': /\w+:(?!:)/, 'capture': { // Look-behind prevents bad highlighting of the && operator pattern: /(^|[^&])&(?:[^&\s\d()][^\s()]*|(?=\())/, lookbehind: true, alias: 'function' }, 'argument': { // Look-behind prevents bad highlighting of the && operator pattern: /(^|[^&])&\d+/, lookbehind: true, alias: 'variable' }, 'attribute': { pattern: /@[\S]+/, alias: 'variable' }, 'number': /\b(?:0[box][a-f\d_]+|\d[\d_]*)(?:\.[\d_]+)?(?:e[+-]?[\d_]+)?\b/i, 'keyword': /\b(?:after|alias|and|case|catch|cond|def(?:callback|exception|impl|module|p|protocol|struct)?|do|else|end|fn|for|if|import|not|or|require|rescue|try|unless|use|when)\b/, 'boolean': /\b(?:true|false|nil)\b/, 'operator': [ /\bin\b|&&?|\|[|>]?|\\\\|::|\.\.\.?|\+\+?|-[->]?|<[-=>]|>=|!==?|\B!|=(?:==?|[>~])?|[*\/^]/, { // We don't want to match << pattern: /([^<])<(?!<)/, lookbehind: true }, { // We don't want to match >> pattern: /([^>])>(?!>)/, lookbehind: true } ], 'punctuation': /<<|>>|[.,%\[\]{}()]/ }; Prism.languages.elixir.string.forEach(function(o) { o.inside = { 'interpolation': { pattern: /#\{[^}]+\}/, inside: { 'delimiter': { pattern: /^#\{|\}$/, alias: 'punctuation' }, rest: Prism.util.clone(Prism.languages.elixir) } } }; }); PKfvCH*#ssfmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-lolcode.min.jsPrism.languages.lolcode={comment:[/\bOBTW\s+[\s\S]*?\s+TLDR\b/,/\bBTW.+/],string:{pattern:/"(?::.|[^"])*"/,inside:{variable:/:\{[^}]+\}/,symbol:[/:\([a-f\d]+\)/i,/:\[[^\]]+\]/,/:[)>o":]/]}},number:/(-|\b)\d*\.?\d+/,symbol:{pattern:/(^|\s)(?:A )?(?:YARN|NUMBR|NUMBAR|TROOF|BUKKIT|NOOB)(?=\s|,|$)/,lookbehind:!0,inside:{keyword:/A(?=\s)/}},label:{pattern:/((?:^|\s)(?:IM IN YR|IM OUTTA YR) )[a-zA-Z]\w*/,lookbehind:!0,alias:"string"},"function":{pattern:/((?:^|\s)(?:I IZ|HOW IZ I|IZ) )[a-zA-Z]\w*/,lookbehind:!0},keyword:[{pattern:/(^|\s)(?:O HAI IM|KTHX|HAI|KTHXBYE|I HAS A|ITZ(?: A)?|R|AN|MKAY|SMOOSH|MAEK|IS NOW(?: A)?|VISIBLE|GIMMEH|O RLY\?|YA RLY|NO WAI|OIC|MEBBE|WTF\?|OMG|OMGWTF|GTFO|IM IN YR|IM OUTTA YR|FOUND YR|YR|TIL|WILE|UPPIN|NERFIN|I IZ|HOW IZ I|IF U SAY SO|SRS|HAS A|LIEK(?: A)?|IZ)(?=\s|,|$)/,lookbehind:!0},/'Z(?=\s|,|$)/],"boolean":{pattern:/(^|\s)(?:WIN|FAIL)(?=\s|,|$)/,lookbehind:!0},variable:{pattern:/(^|\s)IT(?=\s|,|$)/,lookbehind:!0},operator:{pattern:/(^|\s)(?:NOT|BOTH SAEM|DIFFRINT|(?:SUM|DIFF|PRODUKT|QUOSHUNT|MOD|BIGGR|SMALLR|BOTH|EITHER|WON|ALL|ANY) OF)(?=\s|,|$)/,lookbehind:!0},punctuation:/\.{3}|…|,|!/};PKfvCH;Fimaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-typescript.min.jsPrism.languages.typescript=Prism.languages.extend("javascript",{keyword:/\b(break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|get|if|implements|import|in|instanceof|interface|let|new|null|package|private|protected|public|return|set|static|super|switch|this|throw|true|try|typeof|var|void|while|with|yield|module|declare|constructor|string|Function|any|number|boolean|Array|enum)\b/});PKfvCH88gmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-makefile.min.jsPrism.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|.)*/,lookbehind:!0},string:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,builtin:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,symbol:{pattern:/^[^:=\r\n]+(?=\s*:(?!=))/m,inside:{variable:/\$+(?:[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:[/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,{pattern:/(\()(?:addsuffix|abspath|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:s|list)?)(?=[ \t])/,lookbehind:!0}],operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/};PKfvCHhhamaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-markup.jsPrism.languages.markup = { 'comment': //, 'prolog': /<\?[\w\W]+?\?>/, 'doctype': //, 'cdata': //i, 'tag': { pattern: /<\/?(?!\d)[^\s>\/=.$<]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\\1|\\?(?!\1)[\w\W])*\1|[^\s'">=]+))?)*\s*\/?>/i, inside: { 'tag': { pattern: /^<\/?[^\s>\/]+/i, inside: { 'punctuation': /^<\/?/, 'namespace': /^[^\s>\/:]+:/ } }, 'attr-value': { pattern: /=(?:('|")[\w\W]*?(\1)|[^\s>]+)/i, inside: { 'punctuation': /[=>"']/ } }, 'punctuation': /\/?>/, 'attr-name': { pattern: /[^\s>\/]+/, inside: { 'namespace': /^[^\s>\/:]+:/ } } } }, 'entity': /&#?[\da-z]{1,8};/i }; // Plugin to make entity title show the real entity, idea by Roman Komarov Prism.hooks.add('wrap', function(env) { if (env.type === 'entity') { env.attributes['title'] = env.content.replace(/&/, '&'); } }); Prism.languages.xml = Prism.languages.markup; Prism.languages.html = Prism.languages.markup; Prism.languages.mathml = Prism.languages.markup; Prism.languages.svg = Prism.languages.markup; PKfvCHx@  cmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-nsis.min.jsPrism.languages.nsis={comment:{pattern:/(^|[^\\])(\/\*[\w\W]*?\*\/|[#;].*)/,lookbehind:!0},string:/("|')(\\?.)*?\1/,keyword:/\b(Abort|Add(BrandingImage|Size)|AdvSplash|Allow(RootDirInstall|SkipFiles)|AutoCloseWindow|Banner|BG(Font|Gradient|Image)|BrandingText|BringToFront|Call(InstDLL)?|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|Create(Directory|Font|ShortCut)|Delete(INISec|INIStr|RegKey|RegValue)?|Detail(Print|sButtonText)|Dialer|Dir(Text|Var|Verify)|EnableWindow|Enum(RegKey|RegValue)|Exch|Exec(Shell|Wait)?|ExpandEnvStrings|File(BufSize|Close|ErrorText|Open|Read|ReadByte|ReadUTF16LE|ReadWord|WriteUTF16LE|Seek|Write|WriteByte|WriteWord)?|Find(Close|First|Next|Window)|FlushINI|Get(CurInstType|CurrentAddress|DlgItem|DLLVersion(Local)?|ErrorLevel|FileTime(Local)?|FullPathName|Function(Address|End)?|InstDirError|LabelAddress|TempFileName)|Goto|HideWindow|Icon|If(Abort|Errors|FileExists|RebootFlag|Silent)|InitPluginsDir|Install(ButtonText|Colors|Dir(RegKey)?)|InstProgressFlags|Inst(Type(GetText|SetText)?)|Int(CmpU?|Fmt|Op)|IsWindow|Lang(DLL|String)|License(BkColor|Data|ForceSelection|LangString|Text)|LoadLanguageFile|LockWindow|Log(Set|Text)|Manifest(DPIAware|SupportedOS)|Math|MessageBox|MiscButtonText|Name|Nop|ns(Dialogs|Exec)|NSISdl|OutFile|Page(Callbacks)?|Pop|Push|Quit|Read(EnvStr|INIStr|RegDWORD|RegStr)|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|Section(End|GetFlags|GetInstTypes|GetSize|GetText|Group|In|SetFlags|SetInstTypes|SetSize|SetText)?|SendMessage|Set(AutoClose|BrandingImage|Compress|Compressor(DictSize)?|CtlColors|CurInstType|DatablockOptimize|DateSave|Details(Print|View)|ErrorLevel|Errors|FileAttributes|Font|OutPath|Overwrite|PluginUnload|RebootFlag|RegView|ShellVarContext|Silent)|Show(InstDetails|UninstDetails|Window)|Silent(Install|UnInstall)|Sleep|SpaceTexts|Splash|StartMenu|Str(CmpS?|Cpy|Len)|SubCaption|System|Unicode|Uninstall(ButtonText|Caption|Icon|SubCaption|Text)|UninstPage|UnRegDLL|UserInfo|Var|VI(AddVersionKey|FileVersion|ProductVersion)|VPatch|WindowIcon|Write(INIStr|RegBin|RegDWORD|RegExpandStr|RegStr|Uninstaller)|XPStyle)\b/,property:/\b(admin|all|auto|both|colored|false|force|hide|highest|lastused|leave|listonly|none|normal|notset|off|on|open|print|show|silent|silentlog|smooth|textonly|true|user|ARCHIVE|FILE_(ATTRIBUTE_ARCHIVE|ATTRIBUTE_NORMAL|ATTRIBUTE_OFFLINE|ATTRIBUTE_READONLY|ATTRIBUTE_SYSTEM|ATTRIBUTE_TEMPORARY)|HK(CR|CU|DD|LM|PD|U)|HKEY_(CLASSES_ROOT|CURRENT_CONFIG|CURRENT_USER|DYN_DATA|LOCAL_MACHINE|PERFORMANCE_DATA|USERS)|ID(ABORT|CANCEL|IGNORE|NO|OK|RETRY|YES)|MB_(ABORTRETRYIGNORE|DEFBUTTON1|DEFBUTTON2|DEFBUTTON3|DEFBUTTON4|ICONEXCLAMATION|ICONINFORMATION|ICONQUESTION|ICONSTOP|OK|OKCANCEL|RETRYCANCEL|RIGHT|RTLREADING|SETFOREGROUND|TOPMOST|USERICON|YESNO)|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY)\b/,variable:/\$[({]?[-_\w]+[)}]?/i,number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?)\b/,operator:/--?|\+\+?|<=?|>=?|==?=?|&&?|\|?\||[?*\/~^%]/,punctuation:/[{}[\];(),.:]/,important:/!(addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversionsystem|ifdef|ifmacrodef|ifmacrondef|ifndef|if|include|insertmacro|macroend|macro|makensis|packhdr|searchparse|searchreplace|tempfile|undef|verbose|warning)\b/i};PKfvCH[[^materialdjango/static/materialdjango/components/bower_components/prism/components/prism-jsx.js(function(Prism) { var javascript = Prism.util.clone(Prism.languages.javascript); Prism.languages.jsx = Prism.languages.extend('markup', javascript); Prism.languages.jsx.tag.pattern= /<\/?[\w\.:-]+\s*(?:\s+[\w\.:-]+(?:=(?:("|')(\\?[\w\W])*?\1|[^\s'">=]+|(\{[\w\W]*?\})))?\s*)*\/?>/i; Prism.languages.jsx.tag.inside['attr-value'].pattern = /=[^\{](?:('|")[\w\W]*?(\1)|[^\s>]+)/i; var jsxExpression = Prism.util.clone(Prism.languages.jsx); delete jsxExpression.punctuation jsxExpression = Prism.languages.insertBefore('jsx', 'operator', { 'punctuation': /=(?={)|[{}[\];(),.:]/ }, { jsx: jsxExpression }); Prism.languages.insertBefore('inside', 'attr-value',{ 'script': { // Allow for one level of nesting pattern: /=(\{(?:\{[^}]*\}|[^}])+\})/i, inside: jsxExpression, 'alias': 'language-javascript' } }, Prism.languages.jsx.tag); }(Prism)); PKfvCHJ^(>>amaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-python.jsPrism.languages.python= { 'triple-quoted-string': { pattern: /"""[\s\S]+?"""|'''[\s\S]+?'''/, alias: 'string' }, 'comment': { pattern: /(^|[^\\])#.*/, lookbehind: true }, 'string': /("|')(?:\\?.)*?\1/, 'function' : { pattern: /((?:^|\s)def[ \t]+)[a-zA-Z_][a-zA-Z0-9_]*(?=\()/g, lookbehind: true }, 'class-name': { pattern: /(\bclass\s+)[a-z0-9_]+/i, lookbehind: true }, 'keyword' : /\b(?:as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|pass|print|raise|return|try|while|with|yield)\b/, 'boolean' : /\b(?:True|False)\b/, 'number' : /\b-?(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i, 'operator' : /[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not)\b/, 'punctuation' : /[{}[\];(),.:]/ }; PKfvCHwgcmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-rust.min.jsPrism.languages.rust={comment:[{pattern:/(^|[^\\])\/\*[\w\W]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0}],string:[/b?r(#*)"(?:\\?.)*?"\1/,/b?("|')(?:\\?.)*?\1/],keyword:/\b(?:abstract|alignof|as|be|box|break|const|continue|crate|do|else|enum|extern|false|final|fn|for|if|impl|in|let|loop|match|mod|move|mut|offsetof|once|override|priv|pub|pure|ref|return|sizeof|static|self|struct|super|true|trait|type|typeof|unsafe|unsized|use|virtual|where|while|yield)\b/,attribute:{pattern:/#!?\[.+?\]/,alias:"attr-name"},"function":[/[a-z0-9_]+(?=\s*\()/i,/[a-z0-9_]+!(?=\s*\(|\[)/i],"macro-rules":{pattern:/[a-z0-9_]+!/i,alias:"function"},number:/\b-?(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(\d(_?\d)*)?\.?\d(_?\d)*([Ee][+-]?\d+)?)(?:_?(?:[iu](?:8|16|32|64)?|f32|f64))?\b/,"closure-params":{pattern:/\|[^|]*\|(?=\s*[{-])/,inside:{punctuation:/[\|:,]/,operator:/[&*]/}},punctuation:/[{}[\];(),:]|\.+|->/,operator:/[-+*\/%!^=]=?|@|&[&=]?|\|[|=]?|<>?=?/};PKfvCH\&kmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-actionscript.min.jsPrism.languages.actionscript=Prism.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|else|extends|finally|for|function|if|implements|import|in|instanceof|interface|internal|is|native|new|null|package|private|protected|public|return|super|switch|this|throw|try|typeof|use|var|void|while|with|dynamic|each|final|get|include|namespace|native|override|set|static)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<>?>?|[!=]=?)=?|[~?@]/}),Prism.languages.actionscript["class-name"].alias="function",Prism.languages.markup&&Prism.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\\1|\\?(?!\1)[\w\W])*\2)*\s*\/?>/,lookbehind:!0,inside:{rest:Prism.languages.markup}}});PKfvCH՜5bmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-rip.min.jsPrism.languages.rip={comment:/#.*/,keyword:/(?:=>|->)|\b(?:class|if|else|switch|case|return|exit|try|catch|finally|raise)\b/,builtin:/@|\bSystem\b/,"boolean":/\b(?:true|false)\b/,date:/\b\d{4}-\d{2}-\d{2}\b/,time:/\b\d{2}:\d{2}:\d{2}\b/,datetime:/\b\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\b/,character:/\B`[^\s`'",.:;#\/\\()<>\[\]{}]\b/,regex:{pattern:/(^|[^\/])\/(?!\/)(\[.+?]|\\.|[^\/\\\r\n])+\/(?=\s*($|[\r\n,.;})]))/,lookbehind:!0},symbol:/:[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/,string:/("|')(\\?.)*?\1/,number:/[+-]?(?:(?:\d+\.\d+)|(?:\d+))/,punctuation:/(?:\.{2,3})|[`,.:;=\/\\()<>\[\]{}]/,reference:/[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/};PKfvCH2BBcmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-vhdl.min.jsPrism.languages.vhdl={comment:/--.+/,"vhdl-vectors":{pattern:/\b[oxb]"[\da-f_]+"|"[01uxzwlh-]+"/i,alias:"number"},"quoted-function":{pattern:/"\S+?"(?=\()/,alias:"function"},string:/"(?:[^\\\r\n]|\\?(?:\r\n|[\s\S]))*?"/,constant:/\b(?:use|library)\b/i,keyword:/\b(?:'active|'ascending|'base|'delayed|'driving|'driving_value|'event|'high|'image|'instance_name|'last_active|'last_event|'last_value|'left|'leftof|'length|'low|'path_name|'pos|'pred|'quiet|'range|'reverse_range|'right|'rightof|'simple_name|'stable|'succ|'transaction|'val|'value|access|after|alias|all|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|new|next|null|of|on|open|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|report|return|select|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with)\b/i,"boolean":/\b(?:true|false)\b/i,"function":/[a-z0-9_]+(?=\()/i,number:/'[01uxzwlh-]'|\b(?:\d+#[\da-f_.]+#|\d[\d_.]*)(?:e[-+]?\d+)?/i,operator:/[<>]=?|:=|[-+*\/&=]|\b(?:abs|not|mod|rem|sll|srl|sla|sra|rol|ror|and|or|nand|xnor|xor|nor)\b/i,punctuation:/[{}[\];(),.:]/};PKfvCH_-X^materialdjango/static/materialdjango/components/bower_components/prism/components/prism-cpp.jsPrism.languages.cpp = Prism.languages.extend('c', { 'keyword': /\b(alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|class|compl|const|constexpr|const_cast|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|float|for|friend|goto|if|inline|int|long|mutable|namespace|new|noexcept|nullptr|operator|private|protected|public|register|reinterpret_cast|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/, 'boolean': /\b(true|false)\b/, 'operator': /[-+]{1,2}|!=?|<{1,2}=?|>{1,2}=?|\->|:{1,2}|={1,2}|\^|~|%|&{1,2}|\|?\||\?|\*|\/|\b(and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/ }); Prism.languages.insertBefore('cpp', 'keyword', { 'class-name': { pattern: /(class\s+)[a-z0-9_]+/i, lookbehind: true } });PKfvCHQ_ematerialdjango/static/materialdjango/components/bower_components/prism/components/prism-fsharp.min.jsPrism.languages.fsharp=Prism.languages.extend("clike",{comment:[{pattern:/(^|[^\\])\(\*[\w\W]*?\*\)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0}],keyword:/\b(?:let|return|use|yield)(?:!\B|\b)|\b(abstract|and|as|assert|base|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|global|if|in|inherit|inline|interface|internal|lazy|match|member|module|mutable|namespace|new|not|null|of|open|or|override|private|public|rec|select|static|struct|then|to|true|try|type|upcast|val|void|when|while|with|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|include|method|mixin|object|parallel|process|protected|pure|sealed|tailcall|trait|virtual|volatile)\b/,string:/(?:"""[\s\S]*?"""|@"(?:""|[^"])*"|("|')(?:\\\1|\\?(?!\1)[\s\S])*\1)B?/,number:[/\b-?0x[\da-fA-F]+(un|lf|LF)?\b/,/\b-?0b[01]+(y|uy)?\b/,/\b-?(\d*\.?\d+|\d+\.)([fFmM]|[eE][+-]?\d+)?\b/,/\b-?\d+(y|uy|s|us|l|u|ul|L|UL|I)?\b/]}),Prism.languages.insertBefore("fsharp","keyword",{preprocessor:{pattern:/^[^\r\n\S]*#.*/m,alias:"property",inside:{directive:{pattern:/(\s*#)\b(else|endif|if|light|line|nowarn)\b/,lookbehind:!0,alias:"keyword"}}}});PKfvCHp11imaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-handlebars.min.js!function(e){var a=/\{\{\{[\w\W]+?\}\}\}|\{\{[\w\W]+?\}\}/g;e.languages.handlebars=e.languages.extend("markup",{handlebars:{pattern:a,inside:{delimiter:{pattern:/^\{\{\{?|\}\}\}?$/i,alias:"punctuation"},string:/(["'])(\\?.)*?\1/,number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee][+-]?\d+)?)\b/,"boolean":/\b(true|false)\b/,block:{pattern:/^(\s*~?\s*)[#\/]\S+?(?=\s*~?\s*$|\s)/i,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\w\W]+/}},punctuation:/[!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~\s]+/}}}),e.languages.insertBefore("handlebars","tag",{"handlebars-comment":{pattern:/\{\{![\w\W]*?\}\}/,alias:["handlebars","comment"]}}),e.hooks.add("before-highlight",function(e){"handlebars"===e.language&&(e.tokenStack=[],e.backupCode=e.code,e.code=e.code.replace(a,function(a){return e.tokenStack.push(a),"___HANDLEBARS"+e.tokenStack.length+"___"}))}),e.hooks.add("before-insert",function(e){"handlebars"===e.language&&(e.code=e.backupCode,delete e.backupCode)}),e.hooks.add("after-highlight",function(a){if("handlebars"===a.language){for(var n,t=0;n=a.tokenStack[t];t++)a.highlightedCode=a.highlightedCode.replace("___HANDLEBARS"+(t+1)+"___",e.highlight(n,a.grammar,"handlebars").replace(/\$/g,"$$$$"));a.element.innerHTML=a.highlightedCode}})}(Prism);PKfvCHbamaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-keyman.jsPrism.languages.keyman = { 'comment': /\bc\s.*/i, 'function': /\[\s*((CTRL|SHIFT|ALT|LCTRL|RCTRL|LALT|RALT|CAPS|NCAPS)\s+)*([TKU]_[a-z0-9_?]+|".+?"|'.+?')\s*\]/i, // virtual key 'string': /("|')((?!\1).)*\1/, 'bold': [ // header statements, system stores and variable system stores /&(baselayout|bitmap|capsononly|capsalwaysoff|shiftfreescaps|copyright|ethnologuecode|hotkey|includecodes|keyboardversion|kmw_embedcss|kmw_embedjs|kmw_helpfile|kmw_helptext|kmw_rtl|language|layer|layoutfile|message|mnemoniclayout|name|oldcharposmatching|platform|targets|version|visualkeyboard|windowslanguages)\b/i, /\b(bitmap|bitmaps|caps on only|caps always off|shift frees caps|copyright|hotkey|language|layout|message|name|version)\b/i ], 'keyword': /\b(any|baselayout|beep|call|context|deadkey|dk|if|index|layer|notany|nul|outs|platform|return|reset|save|set|store|use)\b/i, // rule keywords 'atrule': /\b(ansi|begin|unicode|group|using keys|match|nomatch)\b/i, // structural keywords 'number': /\b(U\+[\dA-F]+|d\d+|x[\da-f]+|\d+)\b/i, // U+####, x###, d### characters and numbers 'operator': /[+>\\,()]/, 'tag': /\$(keyman|kmfl|weaver|keymanweb|keymanonly):/i // prefixes };PKfvCHj&`materialdjango/static/materialdjango/components/bower_components/prism/components/prism-bison.jsPrism.languages.bison = Prism.languages.extend('c', {}); Prism.languages.insertBefore('bison', 'comment', { 'bison': { // This should match all the beginning of the file // including the prologue(s), the bison declarations and // the grammar rules. pattern: /^[\s\S]*?%%[\s\S]*?%%/, inside: { 'c': { // Allow for one level of nested braces pattern: /%\{[\s\S]*?%\}|\{(?:\{[^}]*\}|[^{}])*\}/, inside: { 'delimiter': { pattern: /^%?\{|%?\}$/, alias: 'punctuation' }, 'bison-variable': { pattern: /[$@](?:<[^\s>]+>)?[\w$]+/, alias: 'variable', inside: { 'punctuation': /<|>/ } }, rest: Prism.languages.c } }, 'comment': Prism.languages.c.comment, 'string': Prism.languages.c.string, 'property': /\S+(?=:)/, 'keyword': /%\w+/, 'number': { pattern: /(^|[^@])\b(?:0x[\da-f]+|\d+)/i, lookbehind: true }, 'punctuation': /%[%?]|[|:;\[\]<>]/ } } });PKfvCHnAematerialdjango/static/materialdjango/components/bower_components/prism/components/prism-stylus.min.js!function(n){var t={url:/url\((["']?).*?\1\)/i,string:/("|')(?:[^\\\r\n]|\\(?:\r\n|[\s\S]))*?\1/,interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:if|else|for|return|unless)(?=\s+|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,number:/\b\d+(?:\.\d+)?%?/,"boolean":/\b(?:true|false)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.+|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],punctuation:/[{}()\[\];:,]/};t.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:n.util.clone(t)},t.func={pattern:/[\w-]+\([^)]*\).*/,inside:{"function":/^[^(]+/,rest:n.util.clone(t)}},n.languages.stylus={comment:{pattern:/(^|[^\\])(\/\*[\w\W]*?\*\/|\/\/.*)/,lookbehind:!0},"atrule-declaration":{pattern:/(^\s*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:t}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:(?:\{[^}]*\}|.+)|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:t}},statement:{pattern:/(^[ \t]*)(?:if|else|for|return|unless)[ \t]+.+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:t}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)[^{\r\n]*(?:;|[^{\r\n,](?=$)(?!(\r?\n|\r)(?:\{|\2[ \t]+)))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:t.interpolation}},rest:t}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\))?|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\))?|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t]+)))/m,lookbehind:!0,inside:{interpolation:t.interpolation,punctuation:/[{},]/}},func:t.func,string:t.string,interpolation:t.interpolation,punctuation:/[{}()\[\];:.]/}}(Prism);PKfvCH y2Wematerialdjango/static/materialdjango/components/bower_components/prism/components/prism-typescript.jsPrism.languages.typescript = Prism.languages.extend('javascript', { 'keyword': /\b(break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|get|if|implements|import|in|instanceof|interface|let|new|null|package|private|protected|public|return|set|static|super|switch|this|throw|true|try|typeof|var|void|while|with|yield|module|declare|constructor|string|Function|any|number|boolean|Array|enum)\b/ }); PKfvCH3QQ`materialdjango/static/materialdjango/components/bower_components/prism/components/prism-basic.jsPrism.languages.basic = { 'string': /"(?:""|[!#$%&'()*,\/:;<=>?^_ +\-.A-Z\d])*"/i, 'comment': { pattern: /(?:!|REM\b).+/i, inside: { 'keyword': /^REM/i } }, 'number': /(?:\b|\B[.-])(?:\d+\.?\d*)(?:E[+-]?\d+)?/i, 'keyword': /\b(?:AS|BEEP|BLOAD|BSAVE|CALL(?: ABSOLUTE)?|CASE|CHAIN|CHDIR|CLEAR|CLOSE|CLS|COM|COMMON|CONST|DATA|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DIM|DO|DOUBLE|ELSE|ELSEIF|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FOR|FUNCTION|GET|GOSUB|GOTO|IF|INPUT|INTEGER|IOCTL|KEY|KILL|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|MKDIR|NAME|NEXT|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPTION BASE|OUT|POKE|PUT|READ|REDIM|REM|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SHARED|SINGLE|SELECT CASE|SHELL|SLEEP|STATIC|STEP|STOP|STRING|SUB|SWAP|SYSTEM|THEN|TIMER|TO|TROFF|TRON|TYPE|UNLOCK|UNTIL|USING|VIEW PRINT|WAIT|WEND|WHILE|WRITE)(?:\$|\b)/i, 'function': /\b(?:ABS|ACCESS|ACOS|ANGLE|AREA|ARITHMETIC|ARRAY|ASIN|ASK|AT|ATN|BASE|BEGIN|BREAK|CAUSE|CEIL|CHR|CLIP|COLLATE|COLOR|CON|COS|COSH|COT|CSC|DATE|DATUM|DEBUG|DECIMAL|DEF|DEG|DEGREES|DELETE|DET|DEVICE|DISPLAY|DOT|ELAPSED|EPS|ERASABLE|EXLINE|EXP|EXTERNAL|EXTYPE|FILETYPE|FIXED|FP|GO|GRAPH|HANDLER|IDN|IMAGE|IN|INT|INTERNAL|IP|IS|KEYED|LBOUND|LCASE|LEFT|LEN|LENGTH|LET|LINE|LINES|LOG|LOG10|LOG2|LTRIM|MARGIN|MAT|MAX|MAXNUM|MID|MIN|MISSING|MOD|NATIVE|NUL|NUMERIC|OF|OPTION|ORD|ORGANIZATION|OUTIN|OUTPUT|PI|POINT|POINTER|POINTS|POS|PRINT|PROGRAM|PROMPT|RAD|RADIANS|RANDOMIZE|RECORD|RECSIZE|RECTYPE|RELATIVE|REMAINDER|REPEAT|REST|RETRY|REWRITE|RIGHT|RND|ROUND|RTRIM|SAME|SEC|SELECT|SEQUENTIAL|SET|SETTER|SGN|SIN|SINH|SIZE|SKIP|SQR|STANDARD|STATUS|STR|STREAM|STYLE|TAB|TAN|TANH|TEMPLATE|TEXT|THERE|TIME|TIMEOUT|TRACE|TRANSFORM|TRUNCATE|UBOUND|UCASE|USE|VAL|VARIABLE|VIEWPORT|WHEN|WINDOW|WITH|ZER|ZONEWIDTH)(?:\$|\b)/i, 'operator': /<[=>]?|>=?|[+\-*\/^=&]|\b(?:AND|EQV|IMP|NOT|OR|XOR)\b/i, 'punctuation': /[,;:()]/ };PKfvCH icmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-core.min.jsvar _self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(){var e=/\blang(?:uage)?-(\w+)\b/i,t=0,n=_self.Prism={util:{encode:function(e){return e instanceof a?new a(e.type,n.util.encode(e.content),e.alias):"Array"===n.util.type(e)?e.map(n.util.encode):e.replace(/&/g,"&").replace(/e.length)break e;if(!(d instanceof a)){u.lastIndex=0;var m=u.exec(d);if(m){g&&(f=m[1].length);var y=m.index-1+f,m=m[0].slice(f),v=m.length,b=y+v,k=d.slice(0,y+1),w=d.slice(b+1),_=[p,1];k&&_.push(k);var P=new a(l,c?n.tokenize(m,c):m,h);_.push(P),w&&_.push(w),Array.prototype.splice.apply(r,_)}}}}}return r},hooks:{all:{},add:function(e,t){var a=n.hooks.all;a[e]=a[e]||[],a[e].push(t)},run:function(e,t){var a=n.hooks.all[e];if(a&&a.length)for(var r,i=0;r=a[i++];)r(t)}}},a=n.Token=function(e,t,n){this.type=e,this.content=t,this.alias=n};if(a.stringify=function(e,t,r){if("string"==typeof e)return e;if("Array"===n.util.type(e))return e.map(function(n){return a.stringify(n,t,e)}).join("");var i={type:e.type,content:a.stringify(e.content,t,r),tag:"span",classes:["token",e.type],attributes:{},language:t,parent:r};if("comment"==i.type&&(i.attributes.spellcheck="true"),e.alias){var l="Array"===n.util.type(e.alias)?e.alias:[e.alias];Array.prototype.push.apply(i.classes,l)}n.hooks.run("wrap",i);var o="";for(var s in i.attributes)o+=(o?" ":"")+s+'="'+(i.attributes[s]||"")+'"';return"<"+i.tag+' class="'+i.classes.join(" ")+'" '+o+">"+i.content+""},!_self.document)return _self.addEventListener?(_self.addEventListener("message",function(e){var t=JSON.parse(e.data),a=t.language,r=t.code,i=t.immediateClose;_self.postMessage(n.highlight(r,n.languages[a],a)),i&&_self.close()},!1),_self.Prism):_self.Prism;var r=document.currentScript||[].slice.call(document.getElementsByTagName("script")).pop();return r&&(n.filename=r.src,document.addEventListener&&!r.hasAttribute("data-manual")&&document.addEventListener("DOMContentLoaded",n.highlightAll)),_self.Prism}();"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism);PKfvCH&++dmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-brainfuck.jsPrism.languages.brainfuck = { 'pointer': { pattern: /<|>/, alias: 'keyword' }, 'increment': { pattern: /\+/, alias: 'inserted' }, 'decrement': { pattern: /-/, alias: 'deleted' }, 'branching': { pattern: /\[|\]/, alias: 'important' }, 'operator': /[.,]/, 'comment': /\S+/ };PKfvCH}@`materialdjango/static/materialdjango/components/bower_components/prism/components/prism-clike.jsPrism.languages.clike = { 'comment': [ { pattern: /(^|[^\\])\/\*[\w\W]*?\*\//, lookbehind: true }, { pattern: /(^|[^\\:])\/\/.*/, lookbehind: true } ], 'string': /(["'])(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, 'class-name': { pattern: /((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/i, lookbehind: true, inside: { punctuation: /(\.|\\)/ } }, 'keyword': /\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/, 'boolean': /\b(true|false)\b/, 'function': /[a-z0-9_]+(?=\()/i, 'number': /\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)\b/i, 'operator': /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/, 'punctuation': /[{}[\];(),.:]/ }; PKfvCHưccamaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-pascal.js// Based on Free Pascal /* TODO Support inline asm ? */ Prism.languages.pascal = { 'comment': [ /\(\*[\s\S]+?\*\)/, /\{[\s\S]+?\}/, /\/\/.*/ ], 'string': /(?:'(?:''|[^'\r\n])*'|#[&$%]?[a-f\d]+)+|\^[a-z]/i, 'keyword': [ { // Turbo Pascal pattern: /(^|[^&])\b(?:absolute|array|asm|begin|case|const|constructor|destructor|do|downto|else|end|file|for|function|goto|if|implementation|inherited|inline|interface|label|nil|object|of|operator|packed|procedure|program|record|reintroduce|repeat|self|set|string|then|to|type|unit|until|uses|var|while|with)\b/i, lookbehind: true }, { // Free Pascal pattern: /(^|[^&])\b(?:dispose|exit|false|new|true)\b/i, lookbehind: true }, { // Object Pascal pattern: /(^|[^&])\b(?:class|dispinterface|except|exports|finalization|finally|initialization|inline|library|on|out|packed|property|raise|resourcestring|threadvar|try)\b/i, lookbehind: true }, { // Modifiers pattern: /(^|[^&])\b(?:absolute|abstract|alias|assembler|bitpacked|break|cdecl|continue|cppdecl|cvar|default|deprecated|dynamic|enumerator|experimental|export|external|far|far16|forward|generic|helper|implements|index|interrupt|iochecks|local|message|name|near|nodefault|noreturn|nostackframe|oldfpccall|otherwise|overload|override|pascal|platform|private|protected|public|published|read|register|reintroduce|result|safecall|saveregisters|softfloat|specialize|static|stdcall|stored|strict|unaligned|unimplemented|varargs|virtual|write)\b/i, lookbehind: true } ], 'number': [ // Hexadecimal, octal and binary /[+-]?(?:[&%]\d+|\$[a-f\d]+)/i, // Decimal /([+-]|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?/i ], 'operator': [ /\.\.|\*\*|:=|<[<=>]?|>[>=]?|[+\-*\/]=?|[@^=]/i, { pattern: /(^|[^&])\b(?:and|as|div|exclude|in|include|is|mod|not|or|shl|shr|xor)\b/, lookbehind: true } ], 'punctuation': /\(\.|\.\)|[()\[\]:;,.]/ };PKfvCHf8}}cmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-dart.min.jsPrism.languages.dart=Prism.languages.extend("clike",{string:[/r?("""|''')[\s\S]*?\1/,/r?("|')(\\?.)*?\1/],keyword:[/\b(?:async|sync|yield)\*/,/\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|default|deferred|do|dynamic|else|enum|export|external|extends|factory|final|finally|for|get|if|implements|import|in|library|new|null|operator|part|rethrow|return|set|static|super|switch|this|throw|try|typedef|var|void|while|with|yield)\b/],operator:/\bis!|\b(?:as|is)\b|\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?/}),Prism.languages.insertBefore("dart","function",{metadata:{pattern:/@\w+/,alias:"symbol"}});PKfvCH*#Eeeimaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-processing.min.jsPrism.languages.processing=Prism.languages.extend("clike",{keyword:/\b(?:break|catch|case|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\b/,operator:/<[<=]?|>[>=]?|&&?|\|\|?|[%?]|[!=+\-*\/]=?/}),Prism.languages.insertBefore("processing","number",{constant:/\b(?!XML\b)[A-Z][A-Z\d_]+\b/,type:{pattern:/\b(?:boolean|byte|char|color|double|float|int|XML|[A-Z][A-Za-z\d_]*)\b/,alias:"variable"}}),Prism.languages.processing["function"].pattern=/[a-z0-9_]+(?=\s*\()/i,Prism.languages.processing["class-name"].alias="variable";PKfvCHe})AAbmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-mel.min.jsPrism.languages.mel={comment:/\/\/.*/,code:{pattern:/`(?:\\.|[^\\`\r\n])*`/,alias:"italic",inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"}}},string:/"(?:\\.|[^\\"\r\n])*"/,variable:/\$\w+/,number:/(?:\b|-)(?:0x[\da-fA-F]+|\d+\.?\d*)/,flag:{pattern:/-[^\d\W]\w*/,alias:"operator"},keyword:/\b(?:break|case|continue|default|do|else|float|for|global|if|in|int|matrix|proc|return|string|switch|vector|while)\b/,"function":/\w+(?=\()|\b(?:about|abs|addAttr|addAttributeEditorNodeHelp|addDynamic|addNewShelfTab|addPP|addPanelCategory|addPrefixToName|advanceToNextDrivenKey|affectedNet|affects|aimConstraint|air|alias|aliasAttr|align|alignCtx|alignCurve|alignSurface|allViewFit|ambientLight|angle|angleBetween|animCone|animCurveEditor|animDisplay|animView|annotate|appendStringArray|applicationName|applyAttrPreset|applyTake|arcLenDimContext|arcLengthDimension|arclen|arrayMapper|art3dPaintCtx|artAttrCtx|artAttrPaintVertexCtx|artAttrSkinPaintCtx|artAttrTool|artBuildPaintMenu|artFluidAttrCtx|artPuttyCtx|artSelectCtx|artSetPaintCtx|artUserPaintCtx|assignCommand|assignInputDevice|assignViewportFactories|attachCurve|attachDeviceAttr|attachSurface|attrColorSliderGrp|attrCompatibility|attrControlGrp|attrEnumOptionMenu|attrEnumOptionMenuGrp|attrFieldGrp|attrFieldSliderGrp|attrNavigationControlGrp|attrPresetEditWin|attributeExists|attributeInfo|attributeMenu|attributeQuery|autoKeyframe|autoPlace|bakeClip|bakeFluidShading|bakePartialHistory|bakeResults|bakeSimulation|basename|basenameEx|batchRender|bessel|bevel|bevelPlus|binMembership|bindSkin|blend2|blendShape|blendShapeEditor|blendShapePanel|blendTwoAttr|blindDataType|boneLattice|boundary|boxDollyCtx|boxZoomCtx|bufferCurve|buildBookmarkMenu|buildKeyframeMenu|button|buttonManip|CBG|cacheFile|cacheFileCombine|cacheFileMerge|cacheFileTrack|camera|cameraView|canCreateManip|canvas|capitalizeString|catch|catchQuiet|ceil|changeSubdivComponentDisplayLevel|changeSubdivRegion|channelBox|character|characterMap|characterOutlineEditor|characterize|chdir|checkBox|checkBoxGrp|checkDefaultRenderGlobals|choice|circle|circularFillet|clamp|clear|clearCache|clip|clipEditor|clipEditorCurrentTimeCtx|clipSchedule|clipSchedulerOutliner|clipTrimBefore|closeCurve|closeSurface|cluster|cmdFileOutput|cmdScrollFieldExecuter|cmdScrollFieldReporter|cmdShell|coarsenSubdivSelectionList|collision|color|colorAtPoint|colorEditor|colorIndex|colorIndexSliderGrp|colorSliderButtonGrp|colorSliderGrp|columnLayout|commandEcho|commandLine|commandPort|compactHairSystem|componentEditor|compositingInterop|computePolysetVolume|condition|cone|confirmDialog|connectAttr|connectControl|connectDynamic|connectJoint|connectionInfo|constrain|constrainValue|constructionHistory|container|containsMultibyte|contextInfo|control|convertFromOldLayers|convertIffToPsd|convertLightmap|convertSolidTx|convertTessellation|convertUnit|copyArray|copyFlexor|copyKey|copySkinWeights|cos|cpButton|cpCache|cpClothSet|cpCollision|cpConstraint|cpConvClothToMesh|cpForces|cpGetSolverAttr|cpPanel|cpProperty|cpRigidCollisionFilter|cpSeam|cpSetEdit|cpSetSolverAttr|cpSolver|cpSolverTypes|cpTool|cpUpdateClothUVs|createDisplayLayer|createDrawCtx|createEditor|createLayeredPsdFile|createMotionField|createNewShelf|createNode|createRenderLayer|createSubdivRegion|cross|crossProduct|ctxAbort|ctxCompletion|ctxEditMode|ctxTraverse|currentCtx|currentTime|currentTimeCtx|currentUnit|curve|curveAddPtCtx|curveCVCtx|curveEPCtx|curveEditorCtx|curveIntersect|curveMoveEPCtx|curveOnSurface|curveSketchCtx|cutKey|cycleCheck|cylinder|dagPose|date|defaultLightListCheckBox|defaultNavigation|defineDataServer|defineVirtualDevice|deformer|deg_to_rad|delete|deleteAttr|deleteShadingGroupsAndMaterials|deleteShelfTab|deleteUI|deleteUnusedBrushes|delrandstr|detachCurve|detachDeviceAttr|detachSurface|deviceEditor|devicePanel|dgInfo|dgdirty|dgeval|dgtimer|dimWhen|directKeyCtx|directionalLight|dirmap|dirname|disable|disconnectAttr|disconnectJoint|diskCache|displacementToPoly|displayAffected|displayColor|displayCull|displayLevelOfDetail|displayPref|displayRGBColor|displaySmoothness|displayStats|displayString|displaySurface|distanceDimContext|distanceDimension|doBlur|dolly|dollyCtx|dopeSheetEditor|dot|dotProduct|doubleProfileBirailSurface|drag|dragAttrContext|draggerContext|dropoffLocator|duplicate|duplicateCurve|duplicateSurface|dynCache|dynControl|dynExport|dynExpression|dynGlobals|dynPaintEditor|dynParticleCtx|dynPref|dynRelEdPanel|dynRelEditor|dynamicLoad|editAttrLimits|editDisplayLayerGlobals|editDisplayLayerMembers|editRenderLayerAdjustment|editRenderLayerGlobals|editRenderLayerMembers|editor|editorTemplate|effector|emit|emitter|enableDevice|encodeString|endString|endsWith|env|equivalent|equivalentTol|erf|error|eval|evalDeferred|evalEcho|event|exactWorldBoundingBox|exclusiveLightCheckBox|exec|executeForEachObject|exists|exp|expression|expressionEditorListen|extendCurve|extendSurface|extrude|fcheck|fclose|feof|fflush|fgetline|fgetword|file|fileBrowserDialog|fileDialog|fileExtension|fileInfo|filetest|filletCurve|filter|filterCurve|filterExpand|filterStudioImport|findAllIntersections|findAnimCurves|findKeyframe|findMenuItem|findRelatedSkinCluster|finder|firstParentOf|fitBspline|flexor|floatEq|floatField|floatFieldGrp|floatScrollBar|floatSlider|floatSlider2|floatSliderButtonGrp|floatSliderGrp|floor|flow|fluidCacheInfo|fluidEmitter|fluidVoxelInfo|flushUndo|fmod|fontDialog|fopen|formLayout|format|fprint|frameLayout|fread|freeFormFillet|frewind|fromNativePath|fwrite|gamma|gauss|geometryConstraint|getApplicationVersionAsFloat|getAttr|getClassification|getDefaultBrush|getFileList|getFluidAttr|getInputDeviceRange|getMayaPanelTypes|getModifiers|getPanel|getParticleAttr|getPluginResource|getenv|getpid|glRender|glRenderEditor|globalStitch|gmatch|goal|gotoBindPose|grabColor|gradientControl|gradientControlNoAttr|graphDollyCtx|graphSelectContext|graphTrackCtx|gravity|grid|gridLayout|group|groupObjectsByName|HfAddAttractorToAS|HfAssignAS|HfBuildEqualMap|HfBuildFurFiles|HfBuildFurImages|HfCancelAFR|HfConnectASToHF|HfCreateAttractor|HfDeleteAS|HfEditAS|HfPerformCreateAS|HfRemoveAttractorFromAS|HfSelectAttached|HfSelectAttractors|HfUnAssignAS|hardenPointCurve|hardware|hardwareRenderPanel|headsUpDisplay|headsUpMessage|help|helpLine|hermite|hide|hilite|hitTest|hotBox|hotkey|hotkeyCheck|hsv_to_rgb|hudButton|hudSlider|hudSliderButton|hwReflectionMap|hwRender|hwRenderLoad|hyperGraph|hyperPanel|hyperShade|hypot|iconTextButton|iconTextCheckBox|iconTextRadioButton|iconTextRadioCollection|iconTextScrollList|iconTextStaticLabel|ikHandle|ikHandleCtx|ikHandleDisplayScale|ikSolver|ikSplineHandleCtx|ikSystem|ikSystemInfo|ikfkDisplayMethod|illustratorCurves|image|imfPlugins|inheritTransform|insertJoint|insertJointCtx|insertKeyCtx|insertKnotCurve|insertKnotSurface|instance|instanceable|instancer|intField|intFieldGrp|intScrollBar|intSlider|intSliderGrp|interToUI|internalVar|intersect|iprEngine|isAnimCurve|isConnected|isDirty|isParentOf|isSameObject|isTrue|isValidObjectName|isValidString|isValidUiName|isolateSelect|itemFilter|itemFilterAttr|itemFilterRender|itemFilterType|joint|jointCluster|jointCtx|jointDisplayScale|jointLattice|keyTangent|keyframe|keyframeOutliner|keyframeRegionCurrentTimeCtx|keyframeRegionDirectKeyCtx|keyframeRegionDollyCtx|keyframeRegionInsertKeyCtx|keyframeRegionMoveKeyCtx|keyframeRegionScaleKeyCtx|keyframeRegionSelectKeyCtx|keyframeRegionSetKeyCtx|keyframeRegionTrackCtx|keyframeStats|lassoContext|lattice|latticeDeformKeyCtx|launch|launchImageEditor|layerButton|layeredShaderPort|layeredTexturePort|layout|layoutDialog|lightList|lightListEditor|lightListPanel|lightlink|lineIntersection|linearPrecision|linstep|listAnimatable|listAttr|listCameras|listConnections|listDeviceAttachments|listHistory|listInputDeviceAxes|listInputDeviceButtons|listInputDevices|listMenuAnnotation|listNodeTypes|listPanelCategories|listRelatives|listSets|listTransforms|listUnselected|listerEditor|loadFluid|loadNewShelf|loadPlugin|loadPluginLanguageResources|loadPrefObjects|localizedPanelLabel|lockNode|loft|log|longNameOf|lookThru|ls|lsThroughFilter|lsType|lsUI|Mayatomr|mag|makeIdentity|makeLive|makePaintable|makeRoll|makeSingleSurface|makeTubeOn|makebot|manipMoveContext|manipMoveLimitsCtx|manipOptions|manipRotateContext|manipRotateLimitsCtx|manipScaleContext|manipScaleLimitsCtx|marker|match|max|memory|menu|menuBarLayout|menuEditor|menuItem|menuItemToShelf|menuSet|menuSetPref|messageLine|min|minimizeApp|mirrorJoint|modelCurrentTimeCtx|modelEditor|modelPanel|mouse|movIn|movOut|move|moveIKtoFK|moveKeyCtx|moveVertexAlongDirection|multiProfileBirailSurface|mute|nParticle|nameCommand|nameField|namespace|namespaceInfo|newPanelItems|newton|nodeCast|nodeIconButton|nodeOutliner|nodePreset|nodeType|noise|nonLinear|normalConstraint|normalize|nurbsBoolean|nurbsCopyUVSet|nurbsCube|nurbsEditUV|nurbsPlane|nurbsSelect|nurbsSquare|nurbsToPoly|nurbsToPolygonsPref|nurbsToSubdiv|nurbsToSubdivPref|nurbsUVSet|nurbsViewDirectionVector|objExists|objectCenter|objectLayer|objectType|objectTypeUI|obsoleteProc|oceanNurbsPreviewPlane|offsetCurve|offsetCurveOnSurface|offsetSurface|openGLExtension|openMayaPref|optionMenu|optionMenuGrp|optionVar|orbit|orbitCtx|orientConstraint|outlinerEditor|outlinerPanel|overrideModifier|paintEffectsDisplay|pairBlend|palettePort|paneLayout|panel|panelConfiguration|panelHistory|paramDimContext|paramDimension|paramLocator|parent|parentConstraint|particle|particleExists|particleInstancer|particleRenderInfo|partition|pasteKey|pathAnimation|pause|pclose|percent|performanceOptions|pfxstrokes|pickWalk|picture|pixelMove|planarSrf|plane|play|playbackOptions|playblast|plugAttr|plugNode|pluginInfo|pluginResourceUtil|pointConstraint|pointCurveConstraint|pointLight|pointMatrixMult|pointOnCurve|pointOnSurface|pointPosition|poleVectorConstraint|polyAppend|polyAppendFacetCtx|polyAppendVertex|polyAutoProjection|polyAverageNormal|polyAverageVertex|polyBevel|polyBlendColor|polyBlindData|polyBoolOp|polyBridgeEdge|polyCacheMonitor|polyCheck|polyChipOff|polyClipboard|polyCloseBorder|polyCollapseEdge|polyCollapseFacet|polyColorBlindData|polyColorDel|polyColorPerVertex|polyColorSet|polyCompare|polyCone|polyCopyUV|polyCrease|polyCreaseCtx|polyCreateFacet|polyCreateFacetCtx|polyCube|polyCut|polyCutCtx|polyCylinder|polyCylindricalProjection|polyDelEdge|polyDelFacet|polyDelVertex|polyDuplicateAndConnect|polyDuplicateEdge|polyEditUV|polyEditUVShell|polyEvaluate|polyExtrudeEdge|polyExtrudeFacet|polyExtrudeVertex|polyFlipEdge|polyFlipUV|polyForceUV|polyGeoSampler|polyHelix|polyInfo|polyInstallAction|polyLayoutUV|polyListComponentConversion|polyMapCut|polyMapDel|polyMapSew|polyMapSewMove|polyMergeEdge|polyMergeEdgeCtx|polyMergeFacet|polyMergeFacetCtx|polyMergeUV|polyMergeVertex|polyMirrorFace|polyMoveEdge|polyMoveFacet|polyMoveFacetUV|polyMoveUV|polyMoveVertex|polyNormal|polyNormalPerVertex|polyNormalizeUV|polyOptUvs|polyOptions|polyOutput|polyPipe|polyPlanarProjection|polyPlane|polyPlatonicSolid|polyPoke|polyPrimitive|polyPrism|polyProjection|polyPyramid|polyQuad|polyQueryBlindData|polyReduce|polySelect|polySelectConstraint|polySelectConstraintMonitor|polySelectCtx|polySelectEditCtx|polySeparate|polySetToFaceNormal|polySewEdge|polyShortestPathCtx|polySmooth|polySoftEdge|polySphere|polySphericalProjection|polySplit|polySplitCtx|polySplitEdge|polySplitRing|polySplitVertex|polyStraightenUVBorder|polySubdivideEdge|polySubdivideFacet|polyToSubdiv|polyTorus|polyTransfer|polyTriangulate|polyUVSet|polyUnite|polyWedgeFace|popen|popupMenu|pose|pow|preloadRefEd|print|progressBar|progressWindow|projFileViewer|projectCurve|projectTangent|projectionContext|projectionManip|promptDialog|propModCtx|propMove|psdChannelOutliner|psdEditTextureFile|psdExport|psdTextureFile|putenv|pwd|python|querySubdiv|quit|rad_to_deg|radial|radioButton|radioButtonGrp|radioCollection|radioMenuItemCollection|rampColorPort|rand|randomizeFollicles|randstate|rangeControl|readTake|rebuildCurve|rebuildSurface|recordAttr|recordDevice|redo|reference|referenceEdit|referenceQuery|refineSubdivSelectionList|refresh|refreshAE|registerPluginResource|rehash|reloadImage|removeJoint|removeMultiInstance|removePanelCategory|rename|renameAttr|renameSelectionList|renameUI|render|renderGlobalsNode|renderInfo|renderLayerButton|renderLayerParent|renderLayerPostProcess|renderLayerUnparent|renderManip|renderPartition|renderQualityNode|renderSettings|renderThumbnailUpdate|renderWindowEditor|renderWindowSelectContext|renderer|reorder|reorderDeformers|requires|reroot|resampleFluid|resetAE|resetPfxToPolyCamera|resetTool|resolutionNode|retarget|reverseCurve|reverseSurface|revolve|rgb_to_hsv|rigidBody|rigidSolver|roll|rollCtx|rootOf|rot|rotate|rotationInterpolation|roundConstantRadius|rowColumnLayout|rowLayout|runTimeCommand|runup|sampleImage|saveAllShelves|saveAttrPreset|saveFluid|saveImage|saveInitialState|saveMenu|savePrefObjects|savePrefs|saveShelf|saveToolSettings|scale|scaleBrushBrightness|scaleComponents|scaleConstraint|scaleKey|scaleKeyCtx|sceneEditor|sceneUIReplacement|scmh|scriptCtx|scriptEditorInfo|scriptJob|scriptNode|scriptTable|scriptToShelf|scriptedPanel|scriptedPanelType|scrollField|scrollLayout|sculpt|searchPathArray|seed|selLoadSettings|select|selectContext|selectCurveCV|selectKey|selectKeyCtx|selectKeyframeRegionCtx|selectMode|selectPref|selectPriority|selectType|selectedNodes|selectionConnection|separator|setAttr|setAttrEnumResource|setAttrMapping|setAttrNiceNameResource|setConstraintRestPosition|setDefaultShadingGroup|setDrivenKeyframe|setDynamic|setEditCtx|setEditor|setFluidAttr|setFocus|setInfinity|setInputDeviceMapping|setKeyCtx|setKeyPath|setKeyframe|setKeyframeBlendshapeTargetWts|setMenuMode|setNodeNiceNameResource|setNodeTypeFlag|setParent|setParticleAttr|setPfxToPolyCamera|setPluginResource|setProject|setStampDensity|setStartupMessage|setState|setToolTo|setUITemplate|setXformManip|sets|shadingConnection|shadingGeometryRelCtx|shadingLightRelCtx|shadingNetworkCompare|shadingNode|shapeCompare|shelfButton|shelfLayout|shelfTabLayout|shellField|shortNameOf|showHelp|showHidden|showManipCtx|showSelectionInTitle|showShadingGroupAttrEditor|showWindow|sign|simplify|sin|singleProfileBirailSurface|size|sizeBytes|skinCluster|skinPercent|smoothCurve|smoothTangentSurface|smoothstep|snap2to2|snapKey|snapMode|snapTogetherCtx|snapshot|soft|softMod|softModCtx|sort|sound|soundControl|source|spaceLocator|sphere|sphrand|spotLight|spotLightPreviewPort|spreadSheetEditor|spring|sqrt|squareSurface|srtContext|stackTrace|startString|startsWith|stitchAndExplodeShell|stitchSurface|stitchSurfacePoints|strcmp|stringArrayCatenate|stringArrayContains|stringArrayCount|stringArrayInsertAtIndex|stringArrayIntersector|stringArrayRemove|stringArrayRemoveAtIndex|stringArrayRemoveDuplicates|stringArrayRemoveExact|stringArrayToString|stringToStringArray|strip|stripPrefixFromName|stroke|subdAutoProjection|subdCleanTopology|subdCollapse|subdDuplicateAndConnect|subdEditUV|subdListComponentConversion|subdMapCut|subdMapSewMove|subdMatchTopology|subdMirror|subdToBlind|subdToPoly|subdTransferUVsToCache|subdiv|subdivCrease|subdivDisplaySmoothness|substitute|substituteAllString|substituteGeometry|substring|surface|surfaceSampler|surfaceShaderList|swatchDisplayPort|switchTable|symbolButton|symbolCheckBox|sysFile|system|tabLayout|tan|tangentConstraint|texLatticeDeformContext|texManipContext|texMoveContext|texMoveUVShellContext|texRotateContext|texScaleContext|texSelectContext|texSelectShortestPathCtx|texSmudgeUVContext|texWinToolCtx|text|textCurves|textField|textFieldButtonGrp|textFieldGrp|textManip|textScrollList|textToShelf|textureDisplacePlane|textureHairColor|texturePlacementContext|textureWindow|threadCount|threePointArcCtx|timeControl|timePort|timerX|toNativePath|toggle|toggleAxis|toggleWindowVisibility|tokenize|tokenizeList|tolerance|tolower|toolButton|toolCollection|toolDropped|toolHasOptions|toolPropertyWindow|torus|toupper|trace|track|trackCtx|transferAttributes|transformCompare|transformLimits|translator|trim|trunc|truncateFluidCache|truncateHairCache|tumble|tumbleCtx|turbulence|twoPointArcCtx|uiRes|uiTemplate|unassignInputDevice|undo|undoInfo|ungroup|uniform|unit|unloadPlugin|untangleUV|untitledFileName|untrim|upAxis|updateAE|userCtx|uvLink|uvSnapshot|validateShelfName|vectorize|view2dToolCtx|viewCamera|viewClipPlane|viewFit|viewHeadOn|viewLookAt|viewManip|viewPlace|viewSet|visor|volumeAxis|vortex|waitCursor|warning|webBrowser|webBrowserPrefs|whatIs|window|windowPref|wire|wireContext|workspace|wrinkle|wrinkleContext|writeTake|xbmLangPathList|xform)\b/,operator:[/\+[+=]?|-[-=]?|&&|\|\||[<>]=|[*\/!=]=?|[%^]/,{pattern:/(^|[^<])<(?!<)/,lookbehind:!0},{pattern:/(^|[^>])>(?!>)/,lookbehind:!0}],punctuation:/<<|>>|[.,:;?\[\](){}]/},Prism.languages.mel.code.inside.rest=Prism.util.clone(Prism.languages.mel);PKfvCH['cmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-glsl.min.jsPrism.languages.glsl=Prism.languages.extend("clike",{comment:[/\/\*[\w\W]*?\*\//,/\/\/(?:\\(?:\r\n|[\s\S])|.)*/],number:/\b(?:0x[\da-f]+|(?:\.\d+|\d+\.?\d*)(?:e[+-]?\d+)?)[ulf]*\b/i,keyword:/\b(?:attribute|const|uniform|varying|buffer|shared|coherent|volatile|restrict|readonly|writeonly|atomic_uint|layout|centroid|flat|smooth|noperspective|patch|sample|break|continue|do|for|while|switch|case|default|if|else|subroutine|in|out|inout|float|double|int|void|bool|true|false|invariant|precise|discard|return|d?mat[234](?:x[234])?|[ibdu]?vec[234]|uint|lowp|mediump|highp|precision|[iu]?sampler[123]D|[iu]?samplerCube|sampler[12]DShadow|samplerCubeShadow|[iu]?sampler[12]DArray|sampler[12]DArrayShadow|[iu]?sampler2DRect|sampler2DRectShadow|[iu]?samplerBuffer|[iu]?sampler2DMS(?:Array)?|[iu]?samplerCubeArray|samplerCubeArrayShadow|[iu]?image[123]D|[iu]?image2DRect|[iu]?imageCube|[iu]?imageBuffer|[iu]?image[12]DArray|[iu]?imageCubeArray|[iu]?image2DMS(?:Array)?|struct|common|partition|active|asm|class|union|enum|typedef|template|this|resource|goto|inline|noinline|public|static|extern|external|interface|long|short|half|fixed|unsigned|superp|input|output|hvec[234]|fvec[234]|sampler3DRect|filter|sizeof|cast|namespace|using)\b/}),Prism.languages.insertBefore("glsl","comment",{preprocessor:{pattern:/(^[ \t]*)#(?:(?:define|undef|if|ifdef|ifndef|else|elif|endif|error|pragma|extension|version|line)\b)?/m,lookbehind:!0,alias:"builtin"}});PKfvCHɝL`materialdjango/static/materialdjango/components/bower_components/prism/components/prism-julia.jsPrism.languages.julia= { 'comment': { pattern: /(^|[^\\])#.*/, lookbehind: true }, 'string': /"""[\s\S]+?"""|'''[\s\S]+?'''|("|')(\\?.)*?\1/, 'keyword' : /\b(abstract|baremodule|begin|bitstype|break|catch|ccall|const|continue|do|else|elseif|end|export|finally|for|function|global|if|immutable|import|importall|let|local|macro|module|print|println|quote|return|try|type|typealias|using|while)\b/, 'boolean' : /\b(true|false)\b/, 'number' : /\b-?(0[box])?(?:[\da-f]+\.?\d*|\.\d+)(?:[efp][+-]?\d+)?j?\b/i, 'operator': /\+=?|-=?|\*=?|\/[\/=]?|\\=?|\^=?|%=?|÷=?|!=?=?|&=?|\|[=>]?|\$=?|<(?:<=?|[=:])?|>(?:=|>>?=?)?|==?=?|[~≠≤≥]/, 'punctuation' : /[{}[\];(),.:]/ };PKfvCH)sŊ_materialdjango/static/materialdjango/components/bower_components/prism/components/prism-java.jsPrism.languages.java = Prism.languages.extend('clike', { 'keyword': /\b(abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while)\b/, 'number': /\b0b[01]+\b|\b0x[\da-f]*\.?[\da-fp\-]+\b|\b\d*\.?\d+(?:e[+-]?\d+)?[df]?\b/i, 'operator': { pattern: /(^|[^.])(?:\+[+=]?|-[-=]?|!=?|<>?>?=?|==?|&[&=]?|\|[|=]?|\*=?|\/=?|%=?|\^=?|[?:~])/m, lookbehind: true } });PKfvCHNQ]materialdjango/static/materialdjango/components/bower_components/prism/components/prism-go.jsPrism.languages.go = Prism.languages.extend('clike', { 'keyword': /\b(break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/, 'builtin': /\b(bool|byte|complex(64|128)|error|float(32|64)|rune|string|u?int(8|16|32|64|)|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(ln)?|real|recover)\b/, 'boolean': /\b(_|iota|nil|true|false)\b/, 'operator': /[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./, 'number': /\b(-?(0x[a-f\d]+|(\d+\.?\d*|\.\d+)(e[-+]?\d+)?)i?)\b/i, 'string': /("|'|`)(\\?.|\r|\n)*?\1/ }); delete Prism.languages.go['class-name']; PKfvCHEN2_G(G(imaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-apacheconf.min.jsPrism.languages.apacheconf={comment:/#.*/,"directive-inline":{pattern:/^(\s*)\b(AcceptFilter|AcceptPathInfo|AccessFileName|Action|AddAlt|AddAltByEncoding|AddAltByType|AddCharset|AddDefaultCharset|AddDescription|AddEncoding|AddHandler|AddIcon|AddIconByEncoding|AddIconByType|AddInputFilter|AddLanguage|AddModuleInfo|AddOutputFilter|AddOutputFilterByType|AddType|Alias|AliasMatch|Allow|AllowCONNECT|AllowEncodedSlashes|AllowMethods|AllowOverride|AllowOverrideList|Anonymous|Anonymous_LogEmail|Anonymous_MustGiveEmail|Anonymous_NoUserID|Anonymous_VerifyEmail|AsyncRequestWorkerFactor|AuthBasicAuthoritative|AuthBasicFake|AuthBasicProvider|AuthBasicUseDigestAlgorithm|AuthDBDUserPWQuery|AuthDBDUserRealmQuery|AuthDBMGroupFile|AuthDBMType|AuthDBMUserFile|AuthDigestAlgorithm|AuthDigestDomain|AuthDigestNonceLifetime|AuthDigestProvider|AuthDigestQop|AuthDigestShmemSize|AuthFormAuthoritative|AuthFormBody|AuthFormDisableNoStore|AuthFormFakeBasicAuth|AuthFormLocation|AuthFormLoginRequiredLocation|AuthFormLoginSuccessLocation|AuthFormLogoutLocation|AuthFormMethod|AuthFormMimetype|AuthFormPassword|AuthFormProvider|AuthFormSitePassphrase|AuthFormSize|AuthFormUsername|AuthGroupFile|AuthLDAPAuthorizePrefix|AuthLDAPBindAuthoritative|AuthLDAPBindDN|AuthLDAPBindPassword|AuthLDAPCharsetConfig|AuthLDAPCompareAsUser|AuthLDAPCompareDNOnServer|AuthLDAPDereferenceAliases|AuthLDAPGroupAttribute|AuthLDAPGroupAttributeIsDN|AuthLDAPInitialBindAsUser|AuthLDAPInitialBindPattern|AuthLDAPMaxSubGroupDepth|AuthLDAPRemoteUserAttribute|AuthLDAPRemoteUserIsDN|AuthLDAPSearchAsUser|AuthLDAPSubGroupAttribute|AuthLDAPSubGroupClass|AuthLDAPUrl|AuthMerging|AuthName|AuthnCacheContext|AuthnCacheEnable|AuthnCacheProvideFor|AuthnCacheSOCache|AuthnCacheTimeout|AuthnzFcgiCheckAuthnProvider|AuthnzFcgiDefineProvider|AuthType|AuthUserFile|AuthzDBDLoginToReferer|AuthzDBDQuery|AuthzDBDRedirectQuery|AuthzDBMType|AuthzSendForbiddenOnFailure|BalancerGrowth|BalancerInherit|BalancerMember|BalancerPersist|BrowserMatch|BrowserMatchNoCase|BufferedLogs|BufferSize|CacheDefaultExpire|CacheDetailHeader|CacheDirLength|CacheDirLevels|CacheDisable|CacheEnable|CacheFile|CacheHeader|CacheIgnoreCacheControl|CacheIgnoreHeaders|CacheIgnoreNoLastMod|CacheIgnoreQueryString|CacheIgnoreURLSessionIdentifiers|CacheKeyBaseURL|CacheLastModifiedFactor|CacheLock|CacheLockMaxAge|CacheLockPath|CacheMaxExpire|CacheMaxFileSize|CacheMinExpire|CacheMinFileSize|CacheNegotiatedDocs|CacheQuickHandler|CacheReadSize|CacheReadTime|CacheRoot|CacheSocache|CacheSocacheMaxSize|CacheSocacheMaxTime|CacheSocacheMinTime|CacheSocacheReadSize|CacheSocacheReadTime|CacheStaleOnError|CacheStoreExpired|CacheStoreNoStore|CacheStorePrivate|CGIDScriptTimeout|CGIMapExtension|CharsetDefault|CharsetOptions|CharsetSourceEnc|CheckCaseOnly|CheckSpelling|ChrootDir|ContentDigest|CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking|CoreDumpDirectory|CustomLog|Dav|DavDepthInfinity|DavGenericLockDB|DavLockDB|DavMinTimeout|DBDExptime|DBDInitSQL|DBDKeep|DBDMax|DBDMin|DBDParams|DBDPersist|DBDPrepareSQL|DBDriver|DefaultIcon|DefaultLanguage|DefaultRuntimeDir|DefaultType|Define|DeflateBufferSize|DeflateCompressionLevel|DeflateFilterNote|DeflateInflateLimitRequestBody|DeflateInflateRatioBurst|DeflateInflateRatioLimit|DeflateMemLevel|DeflateWindowSize|Deny|DirectoryCheckHandler|DirectoryIndex|DirectoryIndexRedirect|DirectorySlash|DocumentRoot|DTracePrivileges|DumpIOInput|DumpIOOutput|EnableExceptionHook|EnableMMAP|EnableSendfile|Error|ErrorDocument|ErrorLog|ErrorLogFormat|Example|ExpiresActive|ExpiresByType|ExpiresDefault|ExtendedStatus|ExtFilterDefine|ExtFilterOptions|FallbackResource|FileETag|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace|ForceLanguagePriority|ForceType|ForensicLog|GprofDir|GracefulShutdownTimeout|Group|Header|HeaderName|HeartbeatAddress|HeartbeatListen|HeartbeatMaxServers|HeartbeatStorage|HeartbeatStorage|HostnameLookups|IdentityCheck|IdentityCheckTimeout|ImapBase|ImapDefault|ImapMenu|Include|IncludeOptional|IndexHeadInsert|IndexIgnore|IndexIgnoreReset|IndexOptions|IndexOrderDefault|IndexStyleSheet|InputSed|ISAPIAppendLogToErrors|ISAPIAppendLogToQuery|ISAPICacheFile|ISAPIFakeAsync|ISAPILogNotSupported|ISAPIReadAheadBuffer|KeepAlive|KeepAliveTimeout|KeptBodySize|LanguagePriority|LDAPCacheEntries|LDAPCacheTTL|LDAPConnectionPoolTTL|LDAPConnectionTimeout|LDAPLibraryDebug|LDAPOpCacheEntries|LDAPOpCacheTTL|LDAPReferralHopLimit|LDAPReferrals|LDAPRetries|LDAPRetryDelay|LDAPSharedCacheFile|LDAPSharedCacheSize|LDAPTimeout|LDAPTrustedClientCert|LDAPTrustedGlobalCert|LDAPTrustedMode|LDAPVerifyServerCert|LimitInternalRecursion|LimitRequestBody|LimitRequestFields|LimitRequestFieldSize|LimitRequestLine|LimitXMLRequestBody|Listen|ListenBackLog|LoadFile|LoadModule|LogFormat|LogLevel|LogMessage|LuaAuthzProvider|LuaCodeCache|LuaHookAccessChecker|LuaHookAuthChecker|LuaHookCheckUserID|LuaHookFixups|LuaHookInsertFilter|LuaHookLog|LuaHookMapToStorage|LuaHookTranslateName|LuaHookTypeChecker|LuaInherit|LuaInputFilter|LuaMapHandler|LuaOutputFilter|LuaPackageCPath|LuaPackagePath|LuaQuickHandler|LuaRoot|LuaScope|MaxConnectionsPerChild|MaxKeepAliveRequests|MaxMemFree|MaxRangeOverlaps|MaxRangeReversals|MaxRanges|MaxRequestWorkers|MaxSpareServers|MaxSpareThreads|MaxThreads|MergeTrailers|MetaDir|MetaFiles|MetaSuffix|MimeMagicFile|MinSpareServers|MinSpareThreads|MMapFile|ModemStandard|ModMimeUsePathInfo|MultiviewsMatch|Mutex|NameVirtualHost|NoProxy|NWSSLTrustedCerts|NWSSLUpgradeable|Options|Order|OutputSed|PassEnv|PidFile|PrivilegesMode|Protocol|ProtocolEcho|ProxyAddHeaders|ProxyBadHeader|ProxyBlock|ProxyDomain|ProxyErrorOverride|ProxyExpressDBMFile|ProxyExpressDBMType|ProxyExpressEnable|ProxyFtpDirCharset|ProxyFtpEscapeWildcards|ProxyFtpListOnWildcard|ProxyHTMLBufSize|ProxyHTMLCharsetOut|ProxyHTMLDocType|ProxyHTMLEnable|ProxyHTMLEvents|ProxyHTMLExtended|ProxyHTMLFixups|ProxyHTMLInterp|ProxyHTMLLinks|ProxyHTMLMeta|ProxyHTMLStripComments|ProxyHTMLURLMap|ProxyIOBufferSize|ProxyMaxForwards|ProxyPass|ProxyPassInherit|ProxyPassInterpolateEnv|ProxyPassMatch|ProxyPassReverse|ProxyPassReverseCookieDomain|ProxyPassReverseCookiePath|ProxyPreserveHost|ProxyReceiveBufferSize|ProxyRemote|ProxyRemoteMatch|ProxyRequests|ProxySCGIInternalRedirect|ProxySCGISendfile|ProxySet|ProxySourceAddress|ProxyStatus|ProxyTimeout|ProxyVia|ReadmeName|ReceiveBufferSize|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ReflectorHeader|RemoteIPHeader|RemoteIPInternalProxy|RemoteIPInternalProxyList|RemoteIPProxiesHeader|RemoteIPTrustedProxy|RemoteIPTrustedProxyList|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|RequestHeader|RequestReadTimeout|Require|RewriteBase|RewriteCond|RewriteEngine|RewriteMap|RewriteOptions|RewriteRule|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScoreBoardFile|Script|ScriptAlias|ScriptAliasMatch|ScriptInterpreterSource|ScriptLog|ScriptLogBuffer|ScriptLogLength|ScriptSock|SecureListen|SeeRequestTail|SendBufferSize|ServerAdmin|ServerAlias|ServerLimit|ServerName|ServerPath|ServerRoot|ServerSignature|ServerTokens|Session|SessionCookieName|SessionCookieName2|SessionCookieRemove|SessionCryptoCipher|SessionCryptoDriver|SessionCryptoPassphrase|SessionCryptoPassphraseFile|SessionDBDCookieName|SessionDBDCookieName2|SessionDBDCookieRemove|SessionDBDDeleteLabel|SessionDBDInsertLabel|SessionDBDPerUser|SessionDBDSelectLabel|SessionDBDUpdateLabel|SessionEnv|SessionExclude|SessionHeader|SessionInclude|SessionMaxAge|SetEnv|SetEnvIf|SetEnvIfExpr|SetEnvIfNoCase|SetHandler|SetInputFilter|SetOutputFilter|SSIEndTag|SSIErrorMsg|SSIETag|SSILastModified|SSILegacyExprParser|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|SSLCACertificateFile|SSLCACertificatePath|SSLCADNRequestFile|SSLCADNRequestPath|SSLCARevocationCheck|SSLCARevocationFile|SSLCARevocationPath|SSLCertificateChainFile|SSLCertificateFile|SSLCertificateKeyFile|SSLCipherSuite|SSLCompression|SSLCryptoDevice|SSLEngine|SSLFIPS|SSLHonorCipherOrder|SSLInsecureRenegotiation|SSLOCSPDefaultResponder|SSLOCSPEnable|SSLOCSPOverrideResponder|SSLOCSPResponderTimeout|SSLOCSPResponseMaxAge|SSLOCSPResponseTimeSkew|SSLOCSPUseRequestNonce|SSLOpenSSLConfCmd|SSLOptions|SSLPassPhraseDialog|SSLProtocol|SSLProxyCACertificateFile|SSLProxyCACertificatePath|SSLProxyCARevocationCheck|SSLProxyCARevocationFile|SSLProxyCARevocationPath|SSLProxyCheckPeerCN|SSLProxyCheckPeerExpire|SSLProxyCheckPeerName|SSLProxyCipherSuite|SSLProxyEngine|SSLProxyMachineCertificateChainFile|SSLProxyMachineCertificateFile|SSLProxyMachineCertificatePath|SSLProxyProtocol|SSLProxyVerify|SSLProxyVerifyDepth|SSLRandomSeed|SSLRenegBufferSize|SSLRequire|SSLRequireSSL|SSLSessionCache|SSLSessionCacheTimeout|SSLSessionTicketKeyFile|SSLSRPUnknownUserSeed|SSLSRPVerifierFile|SSLStaplingCache|SSLStaplingErrorCacheTimeout|SSLStaplingFakeTryLater|SSLStaplingForceURL|SSLStaplingResponderTimeout|SSLStaplingResponseMaxAge|SSLStaplingResponseTimeSkew|SSLStaplingReturnResponderErrors|SSLStaplingStandardCacheTimeout|SSLStrictSNIVHostCheck|SSLUserName|SSLUseStapling|SSLVerifyClient|SSLVerifyDepth|StartServers|StartThreads|Substitute|Suexec|SuexecUserGroup|ThreadLimit|ThreadsPerChild|ThreadStackSize|TimeOut|TraceEnable|TransferLog|TypesConfig|UnDefine|UndefMacro|UnsetEnv|Use|UseCanonicalName|UseCanonicalPhysicalPort|User|UserDir|VHostCGIMode|VHostCGIPrivs|VHostGroup|VHostPrivs|VHostSecure|VHostUser|VirtualDocumentRoot|VirtualDocumentRootIP|VirtualScriptAlias|VirtualScriptAliasIP|WatchdogInterval|XBitHack|xml2EncAlias|xml2EncDefault|xml2StartParse)\b/im,lookbehind:!0,alias:"property"},"directive-block":{pattern:/<\/?\b(AuthnProviderAlias|AuthzProviderAlias|Directory|DirectoryMatch|Else|ElseIf|Files|FilesMatch|If|IfDefine|IfModule|IfVersion|Limit|LimitExcept|Location|LocationMatch|Macro|Proxy|RequireAll|RequireAny|RequireNone|VirtualHost)\b *.*>/i,inside:{"directive-block":{pattern:/^<\/?\w+/,inside:{punctuation:/^<\/?/},alias:"tag"},"directive-block-parameter":{pattern:/.*[^>]/,inside:{punctuation:/:/,string:{pattern:/("|').*\1/,inside:{variable:/(\$|%)\{?(\w\.?(\+|\-|:)?)+\}?/}}},alias:"attr-value"},punctuation:/>/},alias:"tag"},"directive-flags":{pattern:/\[(\w,?)+\]/,alias:"keyword"},string:{pattern:/("|').*\1/,inside:{variable:/(\$|%)\{?(\w\.?(\+|\-|:)?)+\}?/}},variable:/(\$|%)\{?(\w\.?(\+|\-|:)?)+\}?/,regex:/\^?.*\$|\^.*\$?/};PKfvCH(##ematerialdjango/static/materialdjango/components/bower_components/prism/components/prism-autohotkey.js// NOTES - follows first-first highlight method, block is locked after highlight, different from SyntaxHl Prism.languages.autohotkey= { 'comment': { pattern: /(^[^";\n]*("[^"\n]*?"[^"\n]*?)*)(;.*$|^\s*\/\*[\s\S]*\n\*\/)/m, lookbehind: true }, 'string': /"(([^"\n\r]|"")*)"/m, 'function': /[^\(\); \t,\n\+\*\-=\?>:\\\/<&%\[\]]+?(?=\()/m, //function - don't use .*\) in the end bcoz string locks it 'tag': /^[ \t]*[^\s:]+?(?=:(?:[^:]|$))/m, //labels 'variable': /%\w+%/, 'number': /\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?)\b/, 'operator': /\?|\/\/?=?|:=|\|[=|]?|&[=&]?|\+[=+]?|-[=-]?|\*[=*]?|<(?:<=?|>|=)?|>>?=?|[.^!=~]=?|\b(?:AND|NOT|OR)\b/, 'punctuation': /[\{}[\]\(\):,]/, 'boolean': /\b(true|false)\b/, 'selector': /\b(AutoTrim|BlockInput|Break|Click|ClipWait|Continue|Control|ControlClick|ControlFocus|ControlGet|ControlGetFocus|ControlGetPos|ControlGetText|ControlMove|ControlSend|ControlSendRaw|ControlSetText|CoordMode|Critical|DetectHiddenText|DetectHiddenWindows|Drive|DriveGet|DriveSpaceFree|EnvAdd|EnvDiv|EnvGet|EnvMult|EnvSet|EnvSub|EnvUpdate|Exit|ExitApp|FileAppend|FileCopy|FileCopyDir|FileCreateDir|FileCreateShortcut|FileDelete|FileEncoding|FileGetAttrib|FileGetShortcut|FileGetSize|FileGetTime|FileGetVersion|FileInstall|FileMove|FileMoveDir|FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|FileRemoveDir|FileSelectFile|FileSelectFolder|FileSetAttrib|FileSetTime|FormatTime|GetKeyState|Gosub|Goto|GroupActivate|GroupAdd|GroupClose|GroupDeactivate|Gui|GuiControl|GuiControlGet|Hotkey|ImageSearch|IniDelete|IniRead|IniWrite|Input|InputBox|KeyWait|ListHotkeys|ListLines|ListVars|Loop|Menu|MouseClick|MouseClickDrag|MouseGetPos|MouseMove|MsgBox|OnExit|OutputDebug|Pause|PixelGetColor|PixelSearch|PostMessage|Process|Progress|Random|RegDelete|RegRead|RegWrite|Reload|Repeat|Return|Run|RunAs|RunWait|Send|SendEvent|SendInput|SendMessage|SendMode|SendPlay|SendRaw|SetBatchLines|SetCapslockState|SetControlDelay|SetDefaultMouseSpeed|SetEnv|SetFormat|SetKeyDelay|SetMouseDelay|SetNumlockState|SetScrollLockState|SetStoreCapslockMode|SetTimer|SetTitleMatchMode|SetWinDelay|SetWorkingDir|Shutdown|Sleep|Sort|SoundBeep|SoundGet|SoundGetWaveVolume|SoundPlay|SoundSet|SoundSetWaveVolume|SplashImage|SplashTextOff|SplashTextOn|SplitPath|StatusBarGetText|StatusBarWait|StringCaseSense|StringGetPos|StringLeft|StringLen|StringLower|StringMid|StringReplace|StringRight|StringSplit|StringTrimLeft|StringTrimRight|StringUpper|Suspend|SysGet|Thread|ToolTip|Transform|TrayTip|URLDownloadToFile|WinActivate|WinActivateBottom|WinClose|WinGet|WinGetActiveStats|WinGetActiveTitle|WinGetClass|WinGetPos|WinGetText|WinGetTitle|WinHide|WinKill|WinMaximize|WinMenuSelectItem|WinMinimize|WinMinimizeAll|WinMinimizeAllUndo|WinMove|WinRestore|WinSet|WinSetTitle|WinShow|WinWait|WinWaitActive|WinWaitClose|WinWaitNotActive)\b/i, 'constant': /\b(a_ahkpath|a_ahkversion|a_appdata|a_appdatacommon|a_autotrim|a_batchlines|a_caretx|a_carety|a_computername|a_controldelay|a_cursor|a_dd|a_ddd|a_dddd|a_defaultmousespeed|a_desktop|a_desktopcommon|a_detecthiddentext|a_detecthiddenwindows|a_endchar|a_eventinfo|a_exitreason|a_formatfloat|a_formatinteger|a_gui|a_guievent|a_guicontrol|a_guicontrolevent|a_guiheight|a_guiwidth|a_guix|a_guiy|a_hour|a_iconfile|a_iconhidden|a_iconnumber|a_icontip|a_index|a_ipaddress1|a_ipaddress2|a_ipaddress3|a_ipaddress4|a_isadmin|a_iscompiled|a_iscritical|a_ispaused|a_issuspended|a_isunicode|a_keydelay|a_language|a_lasterror|a_linefile|a_linenumber|a_loopfield|a_loopfileattrib|a_loopfiledir|a_loopfileext|a_loopfilefullpath|a_loopfilelongpath|a_loopfilename|a_loopfileshortname|a_loopfileshortpath|a_loopfilesize|a_loopfilesizekb|a_loopfilesizemb|a_loopfiletimeaccessed|a_loopfiletimecreated|a_loopfiletimemodified|a_loopreadline|a_loopregkey|a_loopregname|a_loopregsubkey|a_loopregtimemodified|a_loopregtype|a_mday|a_min|a_mm|a_mmm|a_mmmm|a_mon|a_mousedelay|a_msec|a_mydocuments|a_now|a_nowutc|a_numbatchlines|a_ostype|a_osversion|a_priorhotkey|programfiles|a_programfiles|a_programs|a_programscommon|a_screenheight|a_screenwidth|a_scriptdir|a_scriptfullpath|a_scriptname|a_sec|a_space|a_startmenu|a_startmenucommon|a_startup|a_startupcommon|a_stringcasesense|a_tab|a_temp|a_thisfunc|a_thishotkey|a_thislabel|a_thismenu|a_thismenuitem|a_thismenuitempos|a_tickcount|a_timeidle|a_timeidlephysical|a_timesincepriorhotkey|a_timesincethishotkey|a_titlematchmode|a_titlematchmodespeed|a_username|a_wday|a_windelay|a_windir|a_workingdir|a_yday|a_year|a_yweek|a_yyyy|clipboard|clipboardall|comspec|errorlevel)\b/i, 'builtin': /\b(abs|acos|asc|asin|atan|ceil|chr|class|cos|dllcall|exp|fileexist|Fileopen|floor|il_add|il_create|il_destroy|instr|substr|isfunc|islabel|IsObject|ln|log|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|mod|onmessage|numget|numput|registercallback|regexmatch|regexreplace|round|sin|tan|sqrt|strlen|sb_seticon|sb_setparts|sb_settext|strsplit|tv_add|tv_delete|tv_getchild|tv_getcount|tv_getnext|tv_get|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist|__New|__Call|__Get|__Set)\b/i, 'symbol': /\b(alt|altdown|altup|appskey|backspace|browser_back|browser_favorites|browser_forward|browser_home|browser_refresh|browser_search|browser_stop|bs|capslock|ctrl|ctrlbreak|ctrldown|ctrlup|del|delete|down|end|enter|esc|escape|f1|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f2|f20|f21|f22|f23|f24|f3|f4|f5|f6|f7|f8|f9|home|ins|insert|joy1|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy2|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy3|joy30|joy31|joy32|joy4|joy5|joy6|joy7|joy8|joy9|joyaxes|joybuttons|joyinfo|joyname|joypov|joyr|joyu|joyv|joyx|joyy|joyz|lalt|launch_app1|launch_app2|launch_mail|launch_media|lbutton|lcontrol|lctrl|left|lshift|lwin|lwindown|lwinup|mbutton|media_next|media_play_pause|media_prev|media_stop|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadadd|numpadclear|numpaddel|numpaddiv|numpaddot|numpaddown|numpadend|numpadenter|numpadhome|numpadins|numpadleft|numpadmult|numpadpgdn|numpadpgup|numpadright|numpadsub|numpadup|pgdn|pgup|printscreen|ralt|rbutton|rcontrol|rctrl|right|rshift|rwin|rwindown|rwinup|scrolllock|shift|shiftdown|shiftup|space|tab|up|volume_down|volume_mute|volume_up|wheeldown|wheelleft|wheelright|wheelup|xbutton1|xbutton2)\b/i, 'important': /#\b(AllowSameLineComments|ClipboardTimeout|CommentFlag|ErrorStdOut|EscapeChar|HotkeyInterval|HotkeyModifierTimeout|Hotstring|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Include|IncludeAgain|InstallKeybdHook|InstallMouseHook|KeyHistory|LTrim|MaxHotkeysPerInterval|MaxMem|MaxThreads|MaxThreadsBuffer|MaxThreadsPerHotkey|NoEnv|NoTrayIcon|Persistent|SingleInstance|UseHook|WinActivateForce)\b/i, 'keyword': /\b(Abort|AboveNormal|Add|ahk_class|ahk_group|ahk_id|ahk_pid|All|Alnum|Alpha|AltSubmit|AltTab|AltTabAndMenu|AltTabMenu|AltTabMenuDismiss|AlwaysOnTop|AutoSize|Background|BackgroundTrans|BelowNormal|between|BitAnd|BitNot|BitOr|BitShiftLeft|BitShiftRight|BitXOr|Bold|Border|Button|ByRef|Checkbox|Checked|CheckedGray|Choose|ChooseString|Close|Color|ComboBox|Contains|ControlList|Count|Date|DateTime|Days|DDL|Default|DeleteAll|Delimiter|Deref|Destroy|Digit|Disable|Disabled|DropDownList|Edit|Eject|Else|Enable|Enabled|Error|Exist|Expand|ExStyle|FileSystem|First|Flash|Float|FloatFast|Focus|Font|for|global|Grid|Group|GroupBox|GuiClose|GuiContextMenu|GuiDropFiles|GuiEscape|GuiSize|Hdr|Hidden|Hide|High|HKCC|HKCR|HKCU|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_LOCAL_MACHINE|HKEY_USERS|HKLM|HKU|Hours|HScroll|Icon|IconSmall|ID|IDLast|If|IfEqual|IfExist|IfGreater|IfGreaterOrEqual|IfInString|IfLess|IfLessOrEqual|IfMsgBox|IfNotEqual|IfNotExist|IfNotInString|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Ignore|ImageList|in|Integer|IntegerFast|Interrupt|is|italic|Join|Label|LastFound|LastFoundExist|Limit|Lines|List|ListBox|ListView|local|Lock|Logoff|Low|Lower|Lowercase|MainWindow|Margin|Maximize|MaximizeBox|MaxSize|Minimize|MinimizeBox|MinMax|MinSize|Minutes|MonthCal|Mouse|Move|Multi|NA|No|NoActivate|NoDefault|NoHide|NoIcon|NoMainWindow|norm|Normal|NoSort|NoSortHdr|NoStandard|Not|NoTab|NoTimers|Number|Off|Ok|On|OwnDialogs|Owner|Parse|Password|Picture|Pixel|Pos|Pow|Priority|ProcessName|Radio|Range|Read|ReadOnly|Realtime|Redraw|REG_BINARY|REG_DWORD|REG_EXPAND_SZ|REG_MULTI_SZ|REG_SZ|Region|Relative|Rename|Report|Resize|Restore|Retry|RGB|Screen|Seconds|Section|Serial|SetLabel|ShiftAltTab|Show|Single|Slider|SortDesc|Standard|static|Status|StatusBar|StatusCD|strike|Style|Submit|SysMenu|Tab2|TabStop|Text|Theme|Tile|ToggleCheck|ToggleEnable|ToolWindow|Top|Topmost|TransColor|Transparent|Tray|TreeView|TryAgain|Type|UnCheck|underline|Unicode|Unlock|UpDown|Upper|Uppercase|UseErrorLevel|Vis|VisFirst|Visible|VScroll|Wait|WaitClose|WantCtrlA|WantF2|WantReturn|While|Wrap|Xdigit|xm|xp|xs|Yes|ym|yp|ys)\b/i };PKfvCH54ematerialdjango/static/materialdjango/components/bower_components/prism/components/prism-processing.jsPrism.languages.processing = Prism.languages.extend('clike', { 'keyword': /\b(?:break|catch|case|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\b/, 'operator': /<[<=]?|>[>=]?|&&?|\|\|?|[%?]|[!=+\-*\/]=?/ }); Prism.languages.insertBefore('processing', 'number', { // Special case: XML is a type 'constant': /\b(?!XML\b)[A-Z][A-Z\d_]+\b/, 'type': { pattern: /\b(?:boolean|byte|char|color|double|float|int|XML|[A-Z][A-Za-z\d_]*)\b/, alias: 'variable' } }); // Spaces are allowed between function name and parenthesis Prism.languages.processing['function'].pattern = /[a-z0-9_]+(?=\s*\()/i; // Class-names is not styled by default Prism.languages.processing['class-name'].alias = 'variable';PKfvCHIC%BBamaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-kotlin.js(function (Prism) { Prism.languages.kotlin = Prism.languages.extend('clike', { 'keyword': { // The lookbehind prevents wrong highlighting of e.g. kotlin.properties.get pattern: /(^|[^.])\b(?:abstract|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|else|enum|final|finally|for|fun|get|if|import|in|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|out|override|package|private|protected|public|reified|return|sealed|set|super|tailrec|this|throw|to|try|val|var|when|where|while)\b/, lookbehind: true }, 'function': [ /\w+(?=\s*\()/, { pattern: /(\.)\w+(?=\s*\{)/, lookbehind: true } ], 'number': /\b(?:0[bx][\da-fA-F]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?[fFL]?)\b/, 'operator': /\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/ }); delete Prism.languages.kotlin["class-name"]; Prism.languages.insertBefore('kotlin', 'string', { 'raw-string': { pattern: /(["'])\1\1[\s\S]*?\1{3}/, alias: 'string' // See interpolation below } }); Prism.languages.insertBefore('kotlin', 'keyword', { 'annotation': { pattern: /\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/, alias: 'builtin' } }); Prism.languages.insertBefore('kotlin', 'function', { 'label': { pattern: /\w+@|@\w+/, alias: 'symbol' } }); var interpolation = [ { pattern: /\$\{[^}]+\}/, inside: { delimiter: { pattern: /^\$\{|\}$/, alias: 'variable' }, rest: Prism.util.clone(Prism.languages.kotlin) } }, { pattern: /\$\w+/, alias: 'variable' } ]; Prism.languages.kotlin['string'] = { pattern: Prism.languages.kotlin['string'], inside: { interpolation: interpolation } }; Prism.languages.kotlin['raw-string'].inside = { interpolation: interpolation }; }(Prism));PKfvCHbematerialdjango/static/materialdjango/components/bower_components/prism/components/prism-powershell.jsPrism.languages.powershell = { 'comment': [ { pattern: /(^|[^`])<#[\w\W]*?#>/, lookbehind: true }, { pattern: /(^|[^`])#.+/, lookbehind: true } ], 'string': [ { pattern: /"(`?[\w\W])*?"/, inside: { 'function': { pattern: /[^`]\$\(.*?\)/, // Populated at end of file inside: {} } } }, /'([^']|'')*'/ ], // Matches name spaces as well as casts, attribute decorators. Force starting with letter to avoid matching array indices 'namespace': /\[[a-z][\w\W]*?\]/i, 'boolean': /\$(true|false)\b/i, 'variable': /\$\w+\b/i, // Cmdlets and aliases. Aliases should come last, otherwise "write" gets preferred over "write-host" for example // Get-Command | ?{ $_.ModuleName -match "Microsoft.PowerShell.(Util|Core|Management)" } // Get-Alias | ?{ $_.ReferencedCommand.Module.Name -match "Microsoft.PowerShell.(Util|Core|Management)" } 'function': [ /\b(Add-(Computer|Content|History|Member|PSSnapin|Type)|Checkpoint-Computer|Clear-(Content|EventLog|History|Item|ItemProperty|Variable)|Compare-Object|Complete-Transaction|Connect-PSSession|ConvertFrom-(Csv|Json|StringData)|Convert-Path|ConvertTo-(Csv|Html|Json|Xml)|Copy-(Item|ItemProperty)|Debug-Process|Disable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)|Disconnect-PSSession|Enable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)|Enter-PSSession|Exit-PSSession|Export-(Alias|Clixml|Console|Csv|FormatData|ModuleMember|PSSession)|ForEach-Object|Format-(Custom|List|Table|Wide)|Get-(Alias|ChildItem|Command|ComputerRestorePoint|Content|ControlPanelItem|Culture|Date|Event|EventLog|EventSubscriber|FormatData|Help|History|Host|HotFix|Item|ItemProperty|Job|Location|Member|Module|Process|PSBreakpoint|PSCallStack|PSDrive|PSProvider|PSSession|PSSessionConfiguration|PSSnapin|Random|Service|TraceSource|Transaction|TypeData|UICulture|Unique|Variable|WmiObject)|Group-Object|Import-(Alias|Clixml|Csv|LocalizedData|Module|PSSession)|Invoke-(Command|Expression|History|Item|RestMethod|WebRequest|WmiMethod)|Join-Path|Limit-EventLog|Measure-(Command|Object)|Move-(Item|ItemProperty)|New-(Alias|Event|EventLog|Item|ItemProperty|Module|ModuleManifest|Object|PSDrive|PSSession|PSSessionConfigurationFile|PSSessionOption|PSTransportOption|Service|TimeSpan|Variable|WebServiceProxy)|Out-(Default|File|GridView|Host|Null|Printer|String)|Pop-Location|Push-Location|Read-Host|Receive-(Job|PSSession)|Register-(EngineEvent|ObjectEvent|PSSessionConfiguration|WmiEvent)|Remove-(Computer|Event|EventLog|Item|ItemProperty|Job|Module|PSBreakpoint|PSDrive|PSSession|PSSnapin|TypeData|Variable|WmiObject)|Rename-(Computer|Item|ItemProperty)|Reset-ComputerMachinePassword|Resolve-Path|Restart-(Computer|Service)|Restore-Computer|Resume-(Job|Service)|Save-Help|Select-(Object|String|Xml)|Send-MailMessage|Set-(Alias|Content|Date|Item|ItemProperty|Location|PSBreakpoint|PSDebug|PSSessionConfiguration|Service|StrictMode|TraceSource|Variable|WmiInstance)|Show-(Command|ControlPanelItem|EventLog)|Sort-Object|Split-Path|Start-(Job|Process|Service|Sleep|Transaction)|Stop-(Computer|Job|Process|Service)|Suspend-(Job|Service)|Tee-Object|Test-(ComputerSecureChannel|Connection|ModuleManifest|Path|PSSessionConfigurationFile)|Trace-Command|Unblock-File|Undo-Transaction|Unregister-(Event|PSSessionConfiguration)|Update-(FormatData|Help|List|TypeData)|Use-Transaction|Wait-(Event|Job|Process)|Where-Object|Write-(Debug|Error|EventLog|Host|Output|Progress|Verbose|Warning))\b/i, /\b(ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\b/i ], // per http://technet.microsoft.com/en-us/library/hh847744.aspx 'keyword': /\b(Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\b/i, 'operator': { pattern: /(\W?)(!|-(eq|ne|gt|ge|lt|le|sh[lr]|not|b?(and|x?or)|(Not)?(Like|Match|Contains|In)|Replace|Join|is(Not)?|as)\b|-[-=]?|\+[+=]?|[*\/%]=?)/i, lookbehind: true }, 'punctuation': /[|{}[\];(),.]/ }; // Variable interpolation inside strings, and nested expressions Prism.languages.powershell.string[0].inside.boolean = Prism.languages.powershell.boolean; Prism.languages.powershell.string[0].inside.variable = Prism.languages.powershell.variable; Prism.languages.powershell.string[0].inside.function.inside = Prism.util.clone(Prism.languages.powershell);PKfvCHYxGkk\materialdjango/static/materialdjango/components/bower_components/prism/components/prism-r.jsPrism.languages.r = { 'comment': /#.*/, 'string': /(['"])(?:\\?.)*?\1/, 'percent-operator': { // Includes user-defined operators // and %%, %*%, %/%, %in%, %o%, %x% pattern: /%[^%\s]*%/, alias: 'operator' }, 'boolean': /\b(?:TRUE|FALSE)\b/, 'ellipsis': /\.\.(?:\.|\d+)/, 'number': [ /\b(?:NaN|Inf)\b/, /\b(?:0x[\dA-Fa-f]+(?:\.\d*)?|\d*\.?\d+)(?:[EePp][+-]?\d+)?[iL]?\b/ ], 'keyword': /\b(?:if|else|repeat|while|function|for|in|next|break|NULL|NA|NA_integer_|NA_real_|NA_complex_|NA_character_)\b/, 'operator': /->?>?|<(?:=|=!]=?|::?|&&?|\|\|?|[+*\/^$@~]/, 'punctuation': /[(){}\[\],;]/ };PKfvCHI)`materialdjango/static/materialdjango/components/bower_components/prism/components/prism-nginx.jsPrism.languages.nginx = Prism.languages.extend('clike', { 'comment': { pattern: /(^|[^"{\\])#.*/, lookbehind: true }, 'keyword': /\b(?:CONTENT_|DOCUMENT_|GATEWAY_|HTTP_|HTTPS|if_not_empty|PATH_|QUERY_|REDIRECT_|REMOTE_|REQUEST_|SCGI|SCRIPT_|SERVER_|http|server|events|location|include|accept_mutex|accept_mutex_delay|access_log|add_after_body|add_before_body|add_header|addition_types|aio|alias|allow|ancient_browser|ancient_browser_value|auth|auth_basic|auth_basic_user_file|auth_http|auth_http_header|auth_http_timeout|autoindex|autoindex_exact_size|autoindex_localtime|break|charset|charset_map|charset_types|chunked_transfer_encoding|client_body_buffer_size|client_body_in_file_only|client_body_in_single_buffer|client_body_temp_path|client_body_timeout|client_header_buffer_size|client_header_timeout|client_max_body_size|connection_pool_size|create_full_put_path|daemon|dav_access|dav_methods|debug_connection|debug_points|default_type|deny|devpoll_changes|devpoll_events|directio|directio_alignment|disable_symlinks|empty_gif|env|epoll_events|error_log|error_page|expires|fastcgi_buffer_size|fastcgi_buffers|fastcgi_busy_buffers_size|fastcgi_cache|fastcgi_cache_bypass|fastcgi_cache_key|fastcgi_cache_lock|fastcgi_cache_lock_timeout|fastcgi_cache_methods|fastcgi_cache_min_uses|fastcgi_cache_path|fastcgi_cache_purge|fastcgi_cache_use_stale|fastcgi_cache_valid|fastcgi_connect_timeout|fastcgi_hide_header|fastcgi_ignore_client_abort|fastcgi_ignore_headers|fastcgi_index|fastcgi_intercept_errors|fastcgi_keep_conn|fastcgi_max_temp_file_size|fastcgi_next_upstream|fastcgi_no_cache|fastcgi_param|fastcgi_pass|fastcgi_pass_header|fastcgi_read_timeout|fastcgi_redirect_errors|fastcgi_send_timeout|fastcgi_split_path_info|fastcgi_store|fastcgi_store_access|fastcgi_temp_file_write_size|fastcgi_temp_path|flv|geo|geoip_city|geoip_country|google_perftools_profiles|gzip|gzip_buffers|gzip_comp_level|gzip_disable|gzip_http_version|gzip_min_length|gzip_proxied|gzip_static|gzip_types|gzip_vary|if|if_modified_since|ignore_invalid_headers|image_filter|image_filter_buffer|image_filter_jpeg_quality|image_filter_sharpen|image_filter_transparency|imap_capabilities|imap_client_buffer|include|index|internal|ip_hash|keepalive|keepalive_disable|keepalive_requests|keepalive_timeout|kqueue_changes|kqueue_events|large_client_header_buffers|limit_conn|limit_conn_log_level|limit_conn_zone|limit_except|limit_rate|limit_rate_after|limit_req|limit_req_log_level|limit_req_zone|limit_zone|lingering_close|lingering_time|lingering_timeout|listen|location|lock_file|log_format|log_format_combined|log_not_found|log_subrequest|map|map_hash_bucket_size|map_hash_max_size|master_process|max_ranges|memcached_buffer_size|memcached_connect_timeout|memcached_next_upstream|memcached_pass|memcached_read_timeout|memcached_send_timeout|merge_slashes|min_delete_depth|modern_browser|modern_browser_value|mp4|mp4_buffer_size|mp4_max_buffer_size|msie_padding|msie_refresh|multi_accept|open_file_cache|open_file_cache_errors|open_file_cache_min_uses|open_file_cache_valid|open_log_file_cache|optimize_server_names|override_charset|pcre_jit|perl|perl_modules|perl_require|perl_set|pid|pop3_auth|pop3_capabilities|port_in_redirect|post_action|postpone_output|protocol|proxy|proxy_buffer|proxy_buffer_size|proxy_buffering|proxy_buffers|proxy_busy_buffers_size|proxy_cache|proxy_cache_bypass|proxy_cache_key|proxy_cache_lock|proxy_cache_lock_timeout|proxy_cache_methods|proxy_cache_min_uses|proxy_cache_path|proxy_cache_use_stale|proxy_cache_valid|proxy_connect_timeout|proxy_cookie_domain|proxy_cookie_path|proxy_headers_hash_bucket_size|proxy_headers_hash_max_size|proxy_hide_header|proxy_http_version|proxy_ignore_client_abort|proxy_ignore_headers|proxy_intercept_errors|proxy_max_temp_file_size|proxy_method|proxy_next_upstream|proxy_no_cache|proxy_pass|proxy_pass_error_message|proxy_pass_header|proxy_pass_request_body|proxy_pass_request_headers|proxy_read_timeout|proxy_redirect|proxy_redirect_errors|proxy_send_lowat|proxy_send_timeout|proxy_set_body|proxy_set_header|proxy_ssl_session_reuse|proxy_store|proxy_store_access|proxy_temp_file_write_size|proxy_temp_path|proxy_timeout|proxy_upstream_fail_timeout|proxy_upstream_max_fails|random_index|read_ahead|real_ip_header|recursive_error_pages|request_pool_size|reset_timedout_connection|resolver|resolver_timeout|return|rewrite|root|rtsig_overflow_events|rtsig_overflow_test|rtsig_overflow_threshold|rtsig_signo|satisfy|satisfy_any|secure_link_secret|send_lowat|send_timeout|sendfile|sendfile_max_chunk|server|server_name|server_name_in_redirect|server_names_hash_bucket_size|server_names_hash_max_size|server_tokens|set|set_real_ip_from|smtp_auth|smtp_capabilities|so_keepalive|source_charset|split_clients|ssi|ssi_silent_errors|ssi_types|ssi_value_length|ssl|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_client_certificate|ssl_crl|ssl_dhparam|ssl_engine|ssl_prefer_server_ciphers|ssl_protocols|ssl_session_cache|ssl_session_timeout|ssl_verify_client|ssl_verify_depth|starttls|stub_status|sub_filter|sub_filter_once|sub_filter_types|tcp_nodelay|tcp_nopush|timeout|timer_resolution|try_files|types|types_hash_bucket_size|types_hash_max_size|underscores_in_headers|uninitialized_variable_warn|upstream|use|user|userid|userid_domain|userid_expires|userid_name|userid_p3p|userid_path|userid_service|valid_referers|variables_hash_bucket_size|variables_hash_max_size|worker_connections|worker_cpu_affinity|worker_priority|worker_processes|worker_rlimit_core|worker_rlimit_nofile|worker_rlimit_sigpending|working_directory|xclient|xml_entities|xslt_entities|xslt_stylesheet|xslt_types)\b/i, }); Prism.languages.insertBefore('nginx', 'keyword', { 'variable': /\$[a-z_]+/i });PKfvCH*ݓppbmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-inform7.jsPrism.languages.inform7 = { 'string': { pattern: /"[^"]*"/, inside: { 'substitution': { pattern: /\[[^\]]+\]/, inside: { 'delimiter': { pattern:/\[|\]/, alias: 'punctuation' } // See rest below } } } }, 'comment': /\[[^\]]+\]/, 'title': { pattern: /^[ \t]*(?:volume|book|part(?! of)|chapter|section|table)\b.+/im, alias: 'important' }, 'number': { pattern: /(^|[^-])(?:(?:\b|-)\d+(?:\.\d+)?(?:\^\d+)?\w*|\b(?:one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve))\b(?!-)/i, lookbehind: true }, 'verb': { pattern: /(^|[^-])\b(?:applying to|are|attacking|answering|asking|be(?:ing)?|burning|buying|called|carries|carry(?! out)|carrying|climbing|closing|conceal(?:s|ing)?|consulting|contain(?:s|ing)?|cutting|drinking|dropping|eating|enclos(?:es?|ing)|entering|examining|exiting|getting|giving|going|ha(?:ve|s|ving)|hold(?:s|ing)?|impl(?:y|ies)|incorporat(?:es?|ing)|inserting|is|jumping|kissing|listening|locking|looking|mean(?:s|ing)?|opening|provid(?:es?|ing)|pulling|pushing|putting|relat(?:es?|ing)|removing|searching|see(?:s|ing)?|setting|showing|singing|sleeping|smelling|squeezing|switching|support(?:s|ing)?|swearing|taking|tasting|telling|thinking|throwing|touching|turning|tying|unlock(?:s|ing)?|var(?:y|ies|ying)|waiting|waking|waving|wear(?:s|ing)?)\b(?!-)/i, lookbehind: true, alias: 'operator' }, 'keyword': { pattern: /(^|[^-])\b(?:after|before|carry out|check|continue the action|definition(?= *:)|do nothing|else|end (?:if|unless|the story)|every turn|if|include|instead(?: of)?|let|move|no|now|otherwise|repeat|report|resume the story|rule for|running through|say(?:ing)?|stop the action|test|try(?:ing)?|understand|unless|use|when|while|yes)\b(?!-)/i, lookbehind: true }, 'property': { pattern: /(^|[^-])\b(?:adjacent(?! to)|carried|closed|concealed|contained|dark|described|edible|empty|enclosed|enterable|even|female|fixed in place|full|handled|held|improper-named|incorporated|inedible|invisible|lighted|lit|lock(?:able|ed)|male|marked for listing|mentioned|negative|neuter|non-(?:empty|full|recurring)|odd|opaque|open(?:able)?|plural-named|portable|positive|privately-named|proper-named|provided|publically-named|pushable between rooms|recurring|related|rubbing|scenery|seen|singular-named|supported|swinging|switch(?:able|ed(?: on| off)?)|touch(?:able|ed)|transparent|unconcealed|undescribed|unlit|unlocked|unmarked for listing|unmentioned|unopenable|untouchable|unvisited|variable|visible|visited|wearable|worn)\b(?!-)/i, lookbehind: true, alias: 'symbol' }, 'position': { pattern: /(^|[^-])\b(?:above|adjacent to|back side of|below|between|down|east|everywhere|front side|here|in|inside(?: from)?|north(?:east|west)?|nowhere|on(?: top of)?|other side|outside(?: from)?|parts? of|regionally in|south(?:east|west)?|through|up|west|within)\b(?!-)/i, lookbehind: true, alias: 'keyword' }, 'type': { pattern: /(^|[^-])\b(?:actions?|activit(?:y|ies)|actors?|animals?|backdrops?|containers?|devices?|directions?|doors?|holders?|kinds?|lists?|m[ae]n|nobody|nothing|nouns?|numbers?|objects?|people|persons?|player(?:'s holdall)?|regions?|relations?|rooms?|rule(?:book)?s?|scenes?|someone|something|supporters?|tables?|texts?|things?|time|vehicles?|wom[ae]n)\b(?!-)/i, lookbehind: true, alias: 'variable' }, 'punctuation': /[.,:;(){}]/ }; Prism.languages.inform7['string'].inside['substitution'].inside.rest = Prism.util.clone(Prism.languages.inform7); // We don't want the remaining text in the substitution to be highlighted as the string. Prism.languages.inform7['string'].inside['substitution'].inside.rest.text = { pattern: /\S(?:\s*\S)*/, alias: 'comment' };PKfvCHgP0_materialdjango/static/materialdjango/components/bower_components/prism/components/prism-icon.jsPrism.languages.icon = { 'comment': /#.*/, 'string': /(["'])(?:(?!\1)[^\\\r\n]|\\.|_(?:\r?\n|\r))*\1/, 'number': /\b(?:\d+r[a-z\d]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b|\.\d+\b/i, 'builtin-keyword': { pattern: /&(?:allocated|ascii|clock|collections|cset|current|date|dateline|digits|dump|e|error(?:number|text|value)?|errout|fail|features|file|host|input|lcase|letters|level|line|main|null|output|phi|pi|pos|progname|random|regions|source|storage|subject|time|trace|ucase|version)\b/, alias: 'variable' }, 'directive': { pattern: /\$\w+/, alias: 'builtin' }, 'keyword': /\b(?:break|by|case|create|default|do|else|end|every|fail|global|if|initial|invocable|link|local|next|not|of|procedure|record|repeat|return|static|suspend|then|to|until|while)\b/, 'function': /(?!\d)\w+(?=\s*[({]|\s*!\s*\[)/, 'operator': /[+-]:(?!=)|(?:[\/?@^%&]|\+\+?|--?|==?=?|~==?=?|\*\*?|\|\|\|?|<(?:->?|>?=?)(?::=)?|:(?:=:?)?|[!.\\|~]/, 'punctuation': /[\[\](){},;]/ };PKfvCH;_materialdjango/static/materialdjango/components/bower_components/prism/components/prism-nasm.jsPrism.languages.nasm = { 'comment': /;.*$/m, 'string': /("|'|`)(\\?.)*?\1/m, 'label': { pattern: /(^\s*)[A-Za-z._?$][\w.?$@~#]*:/m, lookbehind: true, alias: 'function' }, 'keyword': [ /\[?BITS (16|32|64)\]?/m, { pattern: /(^\s*)section\s*[a-zA-Z\.]+:?/im, lookbehind: true }, /(?:extern|global)[^;\r\n]*/im, /(?:CPU|FLOAT|DEFAULT).*$/m ], 'register': { pattern: /\b(?:st\d|[xyz]mm\d\d?|[cdt]r\d|r\d\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(bp|sp|si|di)|[cdefgs]s)\b/i, alias: 'variable' }, 'number': /(\b|-|(?=\$))(0[hx][\da-f]*\.?[\da-f]+(p[+-]?\d+)?|\d[\da-f]+[hx]|\$\d[\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\d+|\d*\.?\d+(\.?e[+-]?\d+)?[dt]?)\b/i, 'operator': /[\[\]*+\-\/%<>=&|$!]/ }; PKfvCH>ematerialdjango/static/materialdjango/components/bower_components/prism/components/prism-handlebars.js(function(Prism) { var handlebars_pattern = /\{\{\{[\w\W]+?\}\}\}|\{\{[\w\W]+?\}\}/g; Prism.languages.handlebars = Prism.languages.extend('markup', { 'handlebars': { pattern: handlebars_pattern, inside: { 'delimiter': { pattern: /^\{\{\{?|\}\}\}?$/i, alias: 'punctuation' }, 'string': /(["'])(\\?.)*?\1/, 'number': /\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee][+-]?\d+)?)\b/, 'boolean': /\b(true|false)\b/, 'block': { pattern: /^(\s*~?\s*)[#\/]\S+?(?=\s*~?\s*$|\s)/i, lookbehind: true, alias: 'keyword' }, 'brackets': { pattern: /\[[^\]]+\]/, inside: { punctuation: /\[|\]/, variable: /[\w\W]+/ } }, 'punctuation': /[!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]/, 'variable': /[^!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~\s]+/ } } }); // Comments are inserted at top so that they can // surround markup Prism.languages.insertBefore('handlebars', 'tag', { 'handlebars-comment': { pattern: /\{\{![\w\W]*?\}\}/, alias: ['handlebars','comment'] } }); // Tokenize all inline Handlebars expressions that are wrapped in {{ }} or {{{ }}} // This allows for easy Handlebars + markup highlighting Prism.hooks.add('before-highlight', function(env) { if (env.language !== 'handlebars') { return; } env.tokenStack = []; env.backupCode = env.code; env.code = env.code.replace(handlebars_pattern, function(match) { env.tokenStack.push(match); return '___HANDLEBARS' + env.tokenStack.length + '___'; }); }); // Restore env.code for other plugins (e.g. line-numbers) Prism.hooks.add('before-insert', function(env) { if (env.language === 'handlebars') { env.code = env.backupCode; delete env.backupCode; } }); // Re-insert the tokens after highlighting // and highlight them with defined grammar Prism.hooks.add('after-highlight', function(env) { if (env.language !== 'handlebars') { return; } for (var i = 0, t; t = env.tokenStack[i]; i++) { // The replace prevents $$, $&, $`, $', $n, $nn from being interpreted as special patterns env.highlightedCode = env.highlightedCode.replace('___HANDLEBARS' + (i + 1) + '___', Prism.highlight(t, env.grammar, 'handlebars').replace(/\$/g, '$$$$')); } env.element.innerHTML = env.highlightedCode; }); }(Prism)); PKfvCHuecmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-less.min.jsPrism.languages.less=Prism.languages.extend("css",{comment:[/\/\*[\w\W]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-]+?(?:\([^{}]+\)|[^(){};])*?(?=\s*\{)/i,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\([^{}]*\)|[^{};@])*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/i,punctuation:/[{}();:,]/,operator:/[+\-*\/]/}),Prism.languages.insertBefore("less","punctuation",{"function":Prism.languages.less.function}),Prism.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-]+.*?(?=[(;])/,lookbehind:!0,alias:"function"}});PKfvCHiPIcmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-nasm.min.jsPrism.languages.nasm={comment:/;.*$/m,string:/("|'|`)(\\?.)*?\1/m,label:{pattern:/(^\s*)[A-Za-z._?$][\w.?$@~#]*:/m,lookbehind:!0,alias:"function"},keyword:[/\[?BITS (16|32|64)\]?/m,{pattern:/(^\s*)section\s*[a-zA-Z\.]+:?/im,lookbehind:!0},/(?:extern|global)[^;\r\n]*/im,/(?:CPU|FLOAT|DEFAULT).*$/m],register:{pattern:/\b(?:st\d|[xyz]mm\d\d?|[cdt]r\d|r\d\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(bp|sp|si|di)|[cdefgs]s)\b/i,alias:"variable"},number:/(\b|-|(?=\$))(0[hx][\da-f]*\.?[\da-f]+(p[+-]?\d+)?|\d[\da-f]+[hx]|\$\d[\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\d+|\d*\.?\d+(\.?e[+-]?\d+)?[dt]?)\b/i,operator:/[\[\]*+\-\/%<>=&|$!]/};PKfvCHBCCematerialdjango/static/materialdjango/components/bower_components/prism/components/prism-markup.min.jsPrism.languages.markup={comment://,prolog:/<\?[\w\W]+?\?>/,doctype://,cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=.$<]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\\1|\\?(?!\1)[\w\W])*\1|[^\s'">=]+))?)*\s*\/?>/i,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=(?:('|")[\w\W]*?(\1)|[^\s>]+)/i,inside:{punctuation:/[=>"']/}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},Prism.hooks.add("wrap",function(a){"entity"===a.type&&(a.attributes.title=a.content.replace(/&/,"&"))}),Prism.languages.xml=Prism.languages.markup,Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup;PKfvCHƻ_materialdjango/static/materialdjango/components/bower_components/prism/components/prism-diff.jsPrism.languages.diff = { 'coord': [ // Match all kinds of coord lines (prefixed by "+++", "---" or "***"). /^(?:\*{3}|-{3}|\+{3}).*$/m, // Match "@@ ... @@" coord lines in unified diff. /^@@.*@@$/m, // Match coord lines in normal diff (starts with a number). /^\d+.*$/m ], // Match inserted and deleted lines. Support both +/- and >/< styles. 'deleted': /^[-<].+$/m, 'inserted': /^[+>].+$/m, // Match "different" lines (prefixed with "!") in context diff. 'diff': { 'pattern': /^!(?!!).+$/m, 'alias': 'important' } };PKfvCHbu_materialdjango/static/materialdjango/components/bower_components/prism/components/prism-wiki.jsPrism.languages.wiki = Prism.languages.extend('markup', { 'block-comment': { pattern: /(^|[^\\])\/\*[\w\W]*?\*\//, lookbehind: true, alias: 'comment' }, 'heading': { pattern: /^(=+).+?\1/m, inside: { 'punctuation': /^=+|=+$/, 'important': /.+/ } }, 'emphasis': { // TODO Multi-line pattern: /('{2,5}).+?\1/, inside: { 'bold italic': { pattern: /(''''').+?(?=\1)/, lookbehind: true }, 'bold': { pattern: /(''')[^'](?:.*?[^'])?(?=\1)/, lookbehind: true }, 'italic': { pattern: /('')[^'](?:.*?[^'])?(?=\1)/, lookbehind: true }, 'punctuation': /^''+|''+$/ } }, 'hr': { pattern: /^-{4,}/m, alias: 'punctuation' }, 'url': [ /ISBN +(?:97[89][ -]?)?(?:\d[ -]?){9}[\dx]\b|(?:RFC|PMID) +\d+/i, /\[\[.+?\]\]|\[.+?\]/ ], 'variable': [ /__[A-Z]+__/, // FIXME Nested structures should be handled // {{formatnum:{{#expr:{{{3}}}}}}} /\{{3}.+?\}{3}/, /\{\{.+?}}/ ], 'symbol': [ /^#redirect/im, /~{3,5}/ ], // Handle table attrs: // {| // ! style="text-align:left;"| Item // |} 'table-tag': { pattern: /((?:^|[|!])[|!])[^|\r\n]+\|(?!\|)/m, lookbehind: true, inside: { 'table-bar': { pattern: /\|$/, alias: 'punctuation' }, rest: Prism.languages.markup['tag'].inside } }, 'punctuation': /^(?:\{\||\|\}|\|-|[*#:;!|])|\|\||!!/m }); Prism.languages.insertBefore('wiki', 'tag', { // Prevent highlighting inside , and
     tags
    	'nowiki': {
    		pattern: /<(nowiki|pre|source)\b[\w\W]*?>[\w\W]*?<\/\1>/i,
    		inside: {
    			'tag': {
    				pattern: /<(?:nowiki|pre|source)\b[\w\W]*?>|<\/(?:nowiki|pre|source)>/i,
    				inside: Prism.languages.markup['tag'].inside
    			}
    		}
    	}
    });
    PKfvCHӆkmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-coffeescript.min.js!function(e){var n=/#(?!\{).+/,t={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:n,string:[/'(?:\\?[^\\])*?'/,{pattern:/"(?:\\?[^\\])*?"/,inside:{interpolation:t}}],keyword:/\b(and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:n,interpolation:t}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\?[\s\S])*?`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},rest:e.languages.javascript}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,alias:"string"},{pattern:/"""[\s\S]*?"""/,alias:"string",inside:{interpolation:t}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/})}(Prism);PKfvCH-W*ematerialdjango/static/materialdjango/components/bower_components/prism/components/prism-scheme.min.jsPrism.languages.scheme={comment:/;.*/,string:/"(?:[^"\\\r\n]|\\.)*?"|'[^('\s]*/,keyword:{pattern:/(\()(?:define(?:-syntax|-library|-values)?|(?:case-)?lambda|let(?:\*|rec)?(?:-values)?|else|if|cond|begin|delay(?:-force)?|parameterize|guard|set!|(?:quasi-)?quote|syntax-rules)/,lookbehind:!0},builtin:{pattern:/(\()(?:(?:cons|car|cdr|list|call-with-current-continuation|call\/cc|append|abs|apply|eval)\b|null\?|pair\?|boolean\?|eof-object\?|char\?|procedure\?|number\?|port\?|string\?|vector\?|symbol\?|bytevector\?)/,lookbehind:!0},number:{pattern:/(\s|\))[-+]?[0-9]*\.?[0-9]+(?:\s*[-+]\s*[0-9]*\.?[0-9]+i)?\b/,lookbehind:!0},"boolean":/#[tf]/,operator:{pattern:/(\()(?:[-+*%\/]|[<>]=?|=>?)/,lookbehind:!0},"function":{pattern:/(\()[^\s()]*(?=\s)/,lookbehind:!0},punctuation:/[()]/};PKfvCH&Y>>bmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-lua.min.jsPrism.languages.lua={comment:/^#!.+|--(?:\[(=*)\[[\s\S]*?\]\1\]|.*)/m,string:/(["'])(?:(?!\1)[^\\\r\n]|\\z(?:\r\n|\s)|\\(?:\r\n|[\s\S]))*\1|\[(=*)\[[\s\S]*?\]\2\]/,number:/\b0x[a-f\d]+\.?[a-f\d]*(?:p[+-]?\d+)?\b|\b\d+(?:\.\B|\.?\d*(?:e[+-]?\d+)?\b)|\B\.\d+(?:e[+-]?\d+)?\b/i,keyword:/\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,"function":/(?!\d)\w+(?=\s*(?:[({]))/,operator:[/[-+*%^&|#]|\/\/?|<[<=]?|>[>=]?|[=~]=?/,{pattern:/(^|[^.])\.\.(?!\.)/,lookbehind:!0}],punctuation:/[\[\](){},;]|\.+|:+/};PKfvCHZQcmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-json.min.jsPrism.languages.json={property:/".*?"(?=\s*:)/gi,string:/"(?!:)(\\?[^"])*?"(?!:)/g,number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?)\b/g,punctuation:/[{}[\]);,]/g,operator:/:/g,"boolean":/\b(true|false)\b/gi,"null":/\bnull\b/gi},Prism.languages.jsonp=Prism.languages.json;PKfvCHF44_materialdjango/static/materialdjango/components/bower_components/prism/components/prism-qore.jsPrism.languages.qore = Prism.languages.extend('clike', {
    	'comment': {
    		pattern: /(^|[^\\])(?:\/\*[\w\W]*?\*\/|(?:\/\/|#).*)/,
    		lookbehind: true
    	},
    	// Overridden to allow unescaped multi-line strings
    	'string': /("|')(\\(?:\r\n|[\s\S])|(?!\1)[^\\])*\1/,
    	'variable': /\$(?!\d)\w+\b/,
    	'keyword': /\b(?:abstract|any|assert|binary|bool|boolean|break|byte|case|catch|char|class|code|const|continue|data|default|do|double|else|enum|extends|final|finally|float|for|goto|hash|if|implements|import|inherits|instanceof|int|interface|long|my|native|new|nothing|null|object|our|own|private|reference|rethrow|return|short|soft(?:int|float|number|bool|string|date|list)|static|strictfp|string|sub|super|switch|synchronized|this|throw|throws|transient|try|void|volatile|while)\b/,
    	'number': /\b(?:0b[01]+|0x[\da-f]*\.?[\da-fp\-]+|\d*\.?\d+e?\d*[df]|\d*\.?\d+)\b/i,
    	'boolean': /\b(?:true|false)\b/i,
    	'operator': {
    		pattern: /(^|[^\.])(?:\+[+=]?|-[-=]?|[!=](?:==?|~)?|>>?=?|<(?:=>?|<=?)?|&[&=]?|\|[|=]?|[*\/%^]=?|[~?])/,
    		lookbehind: true
    	},
    	'function': /\$?\b(?!\d)\w+(?=\()/
    });PKfvCH***bmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-nix.min.jsPrism.languages.nix={comment:/\/\*[\s\S]*?\*\/|#.*/,string:{pattern:/"(?:[^"\\]|\\[\s\S])*"|''(?:(?!'')[\s\S]|''(?:'|\\|\$\{))*''/,inside:{interpolation:{pattern:/(^|(?:^|(?!'').)[^\\])\$\{(?:[^}]|\{[^}]*\})*}/,lookbehind:!0,inside:{antiquotation:{pattern:/^\$(?=\{)/,alias:"variable"}}}}},url:[/\b(?:[a-z]{3,7}:\/\/)[\w\-+%~\/.:#=?&]+/,{pattern:/([^\/])(?:[\w\-+%~.:#=?&]*(?!\/\/)[\w\-+%~\/.:#=?&])?(?!\/\/)\/[\w\-+%~\/.:#=?&]*/,lookbehind:!0}],antiquotation:{pattern:/\$(?=\{)/,alias:"variable"},number:/\b\d+\b/,keyword:/\b(?:assert|builtins|else|if|in|inherit|let|null|or|then|with)\b/,"function":/\b(?:abort|add|all|any|attrNames|attrValues|baseNameOf|compareVersions|concatLists|currentSystem|deepSeq|derivation|dirOf|div|elem(?:At)?|fetch(?:url|Tarball)|filter(?:Source)?|fromJSON|genList|getAttr|getEnv|hasAttr|hashString|head|import|intersectAttrs|is(?:Attrs|Bool|Function|Int|List|Null|String)|length|lessThan|listToAttrs|map|mul|parseDrvName|pathExists|read(?:Dir|File)|removeAttrs|replaceStrings|seq|sort|stringLength|sub(?:string)?|tail|throw|to(?:File|JSON|Path|String|XML)|trace|typeOf)\b|\bfoldl'\B/,"boolean":/\b(?:true|false)\b/,operator:/[=!<>]=?|\+\+?|\|\||&&|\/\/|->?|[?@]/,punctuation:/[{}()[\].,:;]/},Prism.languages.nix.string.inside.interpolation.inside.rest=Prism.util.clone(Prism.languages.nix);PKfvCHɑkLLamaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-eiffel.jsPrism.languages.eiffel = {
    	'string': [
    		// Aligned-verbatim-strings
    		/"([^[]*)\[[\s\S]+?\]\1"/,
    		// Non-aligned-verbatim-strings
    		/"([^{]*)\{[\s\S]+?\}\1"/,
    		// Single-line string
    		/"(?:%\s+%|%"|.)*?"/
    	],
    	// (comments including quoted strings not supported)
    	'comment': /--.*/,
    	// normal char | special char | char code
    	'char': /'(?:%'|.)+?'/,
    	'keyword': /\b(?:across|agent|alias|all|and|attached|as|assign|attribute|check|class|convert|create|Current|debug|deferred|detachable|do|else|elseif|end|ensure|expanded|export|external|feature|from|frozen|if|implies|inherit|inspect|invariant|like|local|loop|not|note|obsolete|old|once|or|Precursor|redefine|rename|require|rescue|Result|retry|select|separate|some|then|undefine|until|variant|Void|when|xor)\b/i,
    	'boolean': /\b(?:True|False)\b/i,
    	'number': [
    		// hexa | octal | bin
    		/\b0[xcb][\da-f](?:_*[\da-f])*\b/i,
    		// Decimal
    		/(?:\d(?:_*\d)*)?\.(?:(?:\d(?:_*\d)*)?[eE][+-]?)?\d(?:_*\d)*|\d(?:_*\d)*\.?/
    	],
    	'punctuation': /:=|<<|>>|\(\||\|\)|->|\.(?=\w)|[{}[\];(),:?]/,
    	'operator': /\\\\|\|\.\.\||\.\.|\/[~\/=]?|[><]=?|[-+*^=~]/
    };
    PKfvCHkbmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-crystal.js(function(Prism) {
    	Prism.languages.crystal = Prism.languages.extend('ruby', {
    		keyword: [
    			/\b(?:abstract|alias|as|asm|begin|break|case|class|def|do|else|elsif|end|ensure|enum|extend|for|fun|if|ifdef|include|instance_sizeof|lib|macro|module|next|of|out|pointerof|private|protected|rescue|return|require|self|sizeof|struct|super|then|type|typeof|union|unless|until|when|while|with|yield|__DIR__|__FILE__|__LINE__)\b/,
    			{
    				pattern: /(\.\s*)(?:is_a|responds_to)\?/,
    				lookbehind: true
    			}
    		],
    
    		number: /\b(?:0b[01_]*[01]|0o[0-7_]*[0-7]|0x[0-9a-fA-F_]*[0-9a-fA-F]|(?:[0-9](?:[0-9_]*[0-9])?)(?:\.[0-9_]*[0-9])?(?:[eE][+-]?[0-9_]*[0-9])?)(?:_(?:[uif](?:8|16|32|64))?)?\b/,
    	});
    
    	var rest = Prism.util.clone(Prism.languages.crystal);
    
    	Prism.languages.insertBefore('crystal', 'string', {
    		attribute: {
    			pattern: /@\[.+?\]/,
    			alias: 'attr-name',
    			inside: {
    				delimiter: {
    					pattern: /^@\[|\]$/,
    					alias: 'tag'
    				},
    				rest: rest
    			}
    		},
    
    		expansion: [
    		{
    			pattern: /\{\{.+?\}\}/,
    			inside: {
    				delimiter: {
    					pattern: /^\{\{|\}\}$/,
    					alias: 'tag'
    				},
    				rest: rest
    			}
    		},
    		{
    			pattern: /\{%.+?%\}/,
    			inside: {
    				delimiter: {
    					pattern: /^\{%|%\}$/,
    					alias: 'tag'
    				},
    				rest: rest
    			}
    		}
    		]
    	});
    
    }(Prism));
    PKfvCHq[;q""imaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-autohotkey.min.jsPrism.languages.autohotkey={comment:{pattern:/(^[^";\n]*("[^"\n]*?"[^"\n]*?)*)(;.*$|^\s*\/\*[\s\S]*\n\*\/)/m,lookbehind:!0},string:/"(([^"\n\r]|"")*)"/m,"function":/[^\(\); \t,\n\+\*\-=\?>:\\\/<&%\[\]]+?(?=\()/m,tag:/^[ \t]*[^\s:]+?(?=:(?:[^:]|$))/m,variable:/%\w+%/,number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?)\b/,operator:/\?|\/\/?=?|:=|\|[=|]?|&[=&]?|\+[=+]?|-[=-]?|\*[=*]?|<(?:<=?|>|=)?|>>?=?|[.^!=~]=?|\b(?:AND|NOT|OR)\b/,punctuation:/[\{}[\]\(\):,]/,"boolean":/\b(true|false)\b/,selector:/\b(AutoTrim|BlockInput|Break|Click|ClipWait|Continue|Control|ControlClick|ControlFocus|ControlGet|ControlGetFocus|ControlGetPos|ControlGetText|ControlMove|ControlSend|ControlSendRaw|ControlSetText|CoordMode|Critical|DetectHiddenText|DetectHiddenWindows|Drive|DriveGet|DriveSpaceFree|EnvAdd|EnvDiv|EnvGet|EnvMult|EnvSet|EnvSub|EnvUpdate|Exit|ExitApp|FileAppend|FileCopy|FileCopyDir|FileCreateDir|FileCreateShortcut|FileDelete|FileEncoding|FileGetAttrib|FileGetShortcut|FileGetSize|FileGetTime|FileGetVersion|FileInstall|FileMove|FileMoveDir|FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|FileRemoveDir|FileSelectFile|FileSelectFolder|FileSetAttrib|FileSetTime|FormatTime|GetKeyState|Gosub|Goto|GroupActivate|GroupAdd|GroupClose|GroupDeactivate|Gui|GuiControl|GuiControlGet|Hotkey|ImageSearch|IniDelete|IniRead|IniWrite|Input|InputBox|KeyWait|ListHotkeys|ListLines|ListVars|Loop|Menu|MouseClick|MouseClickDrag|MouseGetPos|MouseMove|MsgBox|OnExit|OutputDebug|Pause|PixelGetColor|PixelSearch|PostMessage|Process|Progress|Random|RegDelete|RegRead|RegWrite|Reload|Repeat|Return|Run|RunAs|RunWait|Send|SendEvent|SendInput|SendMessage|SendMode|SendPlay|SendRaw|SetBatchLines|SetCapslockState|SetControlDelay|SetDefaultMouseSpeed|SetEnv|SetFormat|SetKeyDelay|SetMouseDelay|SetNumlockState|SetScrollLockState|SetStoreCapslockMode|SetTimer|SetTitleMatchMode|SetWinDelay|SetWorkingDir|Shutdown|Sleep|Sort|SoundBeep|SoundGet|SoundGetWaveVolume|SoundPlay|SoundSet|SoundSetWaveVolume|SplashImage|SplashTextOff|SplashTextOn|SplitPath|StatusBarGetText|StatusBarWait|StringCaseSense|StringGetPos|StringLeft|StringLen|StringLower|StringMid|StringReplace|StringRight|StringSplit|StringTrimLeft|StringTrimRight|StringUpper|Suspend|SysGet|Thread|ToolTip|Transform|TrayTip|URLDownloadToFile|WinActivate|WinActivateBottom|WinClose|WinGet|WinGetActiveStats|WinGetActiveTitle|WinGetClass|WinGetPos|WinGetText|WinGetTitle|WinHide|WinKill|WinMaximize|WinMenuSelectItem|WinMinimize|WinMinimizeAll|WinMinimizeAllUndo|WinMove|WinRestore|WinSet|WinSetTitle|WinShow|WinWait|WinWaitActive|WinWaitClose|WinWaitNotActive)\b/i,constant:/\b(a_ahkpath|a_ahkversion|a_appdata|a_appdatacommon|a_autotrim|a_batchlines|a_caretx|a_carety|a_computername|a_controldelay|a_cursor|a_dd|a_ddd|a_dddd|a_defaultmousespeed|a_desktop|a_desktopcommon|a_detecthiddentext|a_detecthiddenwindows|a_endchar|a_eventinfo|a_exitreason|a_formatfloat|a_formatinteger|a_gui|a_guievent|a_guicontrol|a_guicontrolevent|a_guiheight|a_guiwidth|a_guix|a_guiy|a_hour|a_iconfile|a_iconhidden|a_iconnumber|a_icontip|a_index|a_ipaddress1|a_ipaddress2|a_ipaddress3|a_ipaddress4|a_isadmin|a_iscompiled|a_iscritical|a_ispaused|a_issuspended|a_isunicode|a_keydelay|a_language|a_lasterror|a_linefile|a_linenumber|a_loopfield|a_loopfileattrib|a_loopfiledir|a_loopfileext|a_loopfilefullpath|a_loopfilelongpath|a_loopfilename|a_loopfileshortname|a_loopfileshortpath|a_loopfilesize|a_loopfilesizekb|a_loopfilesizemb|a_loopfiletimeaccessed|a_loopfiletimecreated|a_loopfiletimemodified|a_loopreadline|a_loopregkey|a_loopregname|a_loopregsubkey|a_loopregtimemodified|a_loopregtype|a_mday|a_min|a_mm|a_mmm|a_mmmm|a_mon|a_mousedelay|a_msec|a_mydocuments|a_now|a_nowutc|a_numbatchlines|a_ostype|a_osversion|a_priorhotkey|programfiles|a_programfiles|a_programs|a_programscommon|a_screenheight|a_screenwidth|a_scriptdir|a_scriptfullpath|a_scriptname|a_sec|a_space|a_startmenu|a_startmenucommon|a_startup|a_startupcommon|a_stringcasesense|a_tab|a_temp|a_thisfunc|a_thishotkey|a_thislabel|a_thismenu|a_thismenuitem|a_thismenuitempos|a_tickcount|a_timeidle|a_timeidlephysical|a_timesincepriorhotkey|a_timesincethishotkey|a_titlematchmode|a_titlematchmodespeed|a_username|a_wday|a_windelay|a_windir|a_workingdir|a_yday|a_year|a_yweek|a_yyyy|clipboard|clipboardall|comspec|errorlevel)\b/i,builtin:/\b(abs|acos|asc|asin|atan|ceil|chr|class|cos|dllcall|exp|fileexist|Fileopen|floor|il_add|il_create|il_destroy|instr|substr|isfunc|islabel|IsObject|ln|log|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|mod|onmessage|numget|numput|registercallback|regexmatch|regexreplace|round|sin|tan|sqrt|strlen|sb_seticon|sb_setparts|sb_settext|strsplit|tv_add|tv_delete|tv_getchild|tv_getcount|tv_getnext|tv_get|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist|__New|__Call|__Get|__Set)\b/i,symbol:/\b(alt|altdown|altup|appskey|backspace|browser_back|browser_favorites|browser_forward|browser_home|browser_refresh|browser_search|browser_stop|bs|capslock|ctrl|ctrlbreak|ctrldown|ctrlup|del|delete|down|end|enter|esc|escape|f1|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f2|f20|f21|f22|f23|f24|f3|f4|f5|f6|f7|f8|f9|home|ins|insert|joy1|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy2|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy3|joy30|joy31|joy32|joy4|joy5|joy6|joy7|joy8|joy9|joyaxes|joybuttons|joyinfo|joyname|joypov|joyr|joyu|joyv|joyx|joyy|joyz|lalt|launch_app1|launch_app2|launch_mail|launch_media|lbutton|lcontrol|lctrl|left|lshift|lwin|lwindown|lwinup|mbutton|media_next|media_play_pause|media_prev|media_stop|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadadd|numpadclear|numpaddel|numpaddiv|numpaddot|numpaddown|numpadend|numpadenter|numpadhome|numpadins|numpadleft|numpadmult|numpadpgdn|numpadpgup|numpadright|numpadsub|numpadup|pgdn|pgup|printscreen|ralt|rbutton|rcontrol|rctrl|right|rshift|rwin|rwindown|rwinup|scrolllock|shift|shiftdown|shiftup|space|tab|up|volume_down|volume_mute|volume_up|wheeldown|wheelleft|wheelright|wheelup|xbutton1|xbutton2)\b/i,important:/#\b(AllowSameLineComments|ClipboardTimeout|CommentFlag|ErrorStdOut|EscapeChar|HotkeyInterval|HotkeyModifierTimeout|Hotstring|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Include|IncludeAgain|InstallKeybdHook|InstallMouseHook|KeyHistory|LTrim|MaxHotkeysPerInterval|MaxMem|MaxThreads|MaxThreadsBuffer|MaxThreadsPerHotkey|NoEnv|NoTrayIcon|Persistent|SingleInstance|UseHook|WinActivateForce)\b/i,keyword:/\b(Abort|AboveNormal|Add|ahk_class|ahk_group|ahk_id|ahk_pid|All|Alnum|Alpha|AltSubmit|AltTab|AltTabAndMenu|AltTabMenu|AltTabMenuDismiss|AlwaysOnTop|AutoSize|Background|BackgroundTrans|BelowNormal|between|BitAnd|BitNot|BitOr|BitShiftLeft|BitShiftRight|BitXOr|Bold|Border|Button|ByRef|Checkbox|Checked|CheckedGray|Choose|ChooseString|Close|Color|ComboBox|Contains|ControlList|Count|Date|DateTime|Days|DDL|Default|DeleteAll|Delimiter|Deref|Destroy|Digit|Disable|Disabled|DropDownList|Edit|Eject|Else|Enable|Enabled|Error|Exist|Expand|ExStyle|FileSystem|First|Flash|Float|FloatFast|Focus|Font|for|global|Grid|Group|GroupBox|GuiClose|GuiContextMenu|GuiDropFiles|GuiEscape|GuiSize|Hdr|Hidden|Hide|High|HKCC|HKCR|HKCU|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_LOCAL_MACHINE|HKEY_USERS|HKLM|HKU|Hours|HScroll|Icon|IconSmall|ID|IDLast|If|IfEqual|IfExist|IfGreater|IfGreaterOrEqual|IfInString|IfLess|IfLessOrEqual|IfMsgBox|IfNotEqual|IfNotExist|IfNotInString|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Ignore|ImageList|in|Integer|IntegerFast|Interrupt|is|italic|Join|Label|LastFound|LastFoundExist|Limit|Lines|List|ListBox|ListView|local|Lock|Logoff|Low|Lower|Lowercase|MainWindow|Margin|Maximize|MaximizeBox|MaxSize|Minimize|MinimizeBox|MinMax|MinSize|Minutes|MonthCal|Mouse|Move|Multi|NA|No|NoActivate|NoDefault|NoHide|NoIcon|NoMainWindow|norm|Normal|NoSort|NoSortHdr|NoStandard|Not|NoTab|NoTimers|Number|Off|Ok|On|OwnDialogs|Owner|Parse|Password|Picture|Pixel|Pos|Pow|Priority|ProcessName|Radio|Range|Read|ReadOnly|Realtime|Redraw|REG_BINARY|REG_DWORD|REG_EXPAND_SZ|REG_MULTI_SZ|REG_SZ|Region|Relative|Rename|Report|Resize|Restore|Retry|RGB|Screen|Seconds|Section|Serial|SetLabel|ShiftAltTab|Show|Single|Slider|SortDesc|Standard|static|Status|StatusBar|StatusCD|strike|Style|Submit|SysMenu|Tab2|TabStop|Text|Theme|Tile|ToggleCheck|ToggleEnable|ToolWindow|Top|Topmost|TransColor|Transparent|Tray|TreeView|TryAgain|Type|UnCheck|underline|Unicode|Unlock|UpDown|Upper|Uppercase|UseErrorLevel|Vis|VisFirst|Visible|VScroll|Wait|WaitClose|WantCtrlA|WantF2|WantReturn|While|Wrap|Xdigit|xm|xp|xs|Yes|ym|yp|ys)\b/i};PKfvCHW[eCfmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-crystal.min.js!function(e){e.languages.crystal=e.languages.extend("ruby",{keyword:[/\b(?:abstract|alias|as|asm|begin|break|case|class|def|do|else|elsif|end|ensure|enum|extend|for|fun|if|ifdef|include|instance_sizeof|lib|macro|module|next|of|out|pointerof|private|protected|rescue|return|require|self|sizeof|struct|super|then|type|typeof|union|unless|until|when|while|with|yield|__DIR__|__FILE__|__LINE__)\b/,{pattern:/(\.\s*)(?:is_a|responds_to)\?/,lookbehind:!0}],number:/\b(?:0b[01_]*[01]|0o[0-7_]*[0-7]|0x[0-9a-fA-F_]*[0-9a-fA-F]|(?:[0-9](?:[0-9_]*[0-9])?)(?:\.[0-9_]*[0-9])?(?:[eE][+-]?[0-9_]*[0-9])?)(?:_(?:[uif](?:8|16|32|64))?)?\b/});var t=e.util.clone(e.languages.crystal);e.languages.insertBefore("crystal","string",{attribute:{pattern:/@\[.+?\]/,alias:"attr-name",inside:{delimiter:{pattern:/^@\[|\]$/,alias:"tag"},rest:t}},expansion:[{pattern:/\{\{.+?\}\}/,inside:{delimiter:{pattern:/^\{\{|\}\}$/,alias:"tag"},rest:t}},{pattern:/\{%.+?%\}/,inside:{delimiter:{pattern:/^\{%|%\}$/,alias:"tag"},rest:t}}]})}(Prism);PKfvCH!cmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-makefile.jsPrism.languages.makefile = {
    	'comment': {
    		pattern: /(^|[^\\])#(?:\\(?:\r\n|[\s\S])|.)*/,
    		lookbehind: true
    	},
    	'string': /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
    
    	// Built-in target names
    	'builtin': /\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,
    
    	// Targets
    	'symbol': {
    		pattern: /^[^:=\r\n]+(?=\s*:(?!=))/m,
    		inside: {
    			'variable': /\$+(?:[^(){}:#=\s]+|(?=[({]))/
    		}
    	},
    	'variable': /\$+(?:[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,
    
    	'keyword': [
    		// Directives
    		/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,
    		// Functions
    		{
    			pattern: /(\()(?:addsuffix|abspath|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:s|list)?)(?=[ \t])/,
    			lookbehind: true
    		}
    	],
    	'operator': /(?:::|[?:+!])?=|[|@]/,
    	'punctuation': /[:;(){}]/
    };PKfvCH-yByB^materialdjango/static/materialdjango/components/bower_components/prism/components/prism-mel.jsPrism.languages.mel = {
    	'comment': /\/\/.*/,
    	'code': {
    		pattern: /`(?:\\.|[^\\`\r\n])*`/,
    		alias: 'italic',
    		inside: {
    			'delimiter': {
    				pattern: /^`|`$/,
    				alias: 'punctuation'
    			}
    			// See rest below
    		}
    	},
    	'string': /"(?:\\.|[^\\"\r\n])*"/,
    	'variable': /\$\w+/,
    	'number': /(?:\b|-)(?:0x[\da-fA-F]+|\d+\.?\d*)/,
    	'flag': {
    		pattern: /-[^\d\W]\w*/,
    		alias: 'operator'
    	},
    	'keyword': /\b(?:break|case|continue|default|do|else|float|for|global|if|in|int|matrix|proc|return|string|switch|vector|while)\b/,
    	'function': /\w+(?=\()|\b(?:about|abs|addAttr|addAttributeEditorNodeHelp|addDynamic|addNewShelfTab|addPP|addPanelCategory|addPrefixToName|advanceToNextDrivenKey|affectedNet|affects|aimConstraint|air|alias|aliasAttr|align|alignCtx|alignCurve|alignSurface|allViewFit|ambientLight|angle|angleBetween|animCone|animCurveEditor|animDisplay|animView|annotate|appendStringArray|applicationName|applyAttrPreset|applyTake|arcLenDimContext|arcLengthDimension|arclen|arrayMapper|art3dPaintCtx|artAttrCtx|artAttrPaintVertexCtx|artAttrSkinPaintCtx|artAttrTool|artBuildPaintMenu|artFluidAttrCtx|artPuttyCtx|artSelectCtx|artSetPaintCtx|artUserPaintCtx|assignCommand|assignInputDevice|assignViewportFactories|attachCurve|attachDeviceAttr|attachSurface|attrColorSliderGrp|attrCompatibility|attrControlGrp|attrEnumOptionMenu|attrEnumOptionMenuGrp|attrFieldGrp|attrFieldSliderGrp|attrNavigationControlGrp|attrPresetEditWin|attributeExists|attributeInfo|attributeMenu|attributeQuery|autoKeyframe|autoPlace|bakeClip|bakeFluidShading|bakePartialHistory|bakeResults|bakeSimulation|basename|basenameEx|batchRender|bessel|bevel|bevelPlus|binMembership|bindSkin|blend2|blendShape|blendShapeEditor|blendShapePanel|blendTwoAttr|blindDataType|boneLattice|boundary|boxDollyCtx|boxZoomCtx|bufferCurve|buildBookmarkMenu|buildKeyframeMenu|button|buttonManip|CBG|cacheFile|cacheFileCombine|cacheFileMerge|cacheFileTrack|camera|cameraView|canCreateManip|canvas|capitalizeString|catch|catchQuiet|ceil|changeSubdivComponentDisplayLevel|changeSubdivRegion|channelBox|character|characterMap|characterOutlineEditor|characterize|chdir|checkBox|checkBoxGrp|checkDefaultRenderGlobals|choice|circle|circularFillet|clamp|clear|clearCache|clip|clipEditor|clipEditorCurrentTimeCtx|clipSchedule|clipSchedulerOutliner|clipTrimBefore|closeCurve|closeSurface|cluster|cmdFileOutput|cmdScrollFieldExecuter|cmdScrollFieldReporter|cmdShell|coarsenSubdivSelectionList|collision|color|colorAtPoint|colorEditor|colorIndex|colorIndexSliderGrp|colorSliderButtonGrp|colorSliderGrp|columnLayout|commandEcho|commandLine|commandPort|compactHairSystem|componentEditor|compositingInterop|computePolysetVolume|condition|cone|confirmDialog|connectAttr|connectControl|connectDynamic|connectJoint|connectionInfo|constrain|constrainValue|constructionHistory|container|containsMultibyte|contextInfo|control|convertFromOldLayers|convertIffToPsd|convertLightmap|convertSolidTx|convertTessellation|convertUnit|copyArray|copyFlexor|copyKey|copySkinWeights|cos|cpButton|cpCache|cpClothSet|cpCollision|cpConstraint|cpConvClothToMesh|cpForces|cpGetSolverAttr|cpPanel|cpProperty|cpRigidCollisionFilter|cpSeam|cpSetEdit|cpSetSolverAttr|cpSolver|cpSolverTypes|cpTool|cpUpdateClothUVs|createDisplayLayer|createDrawCtx|createEditor|createLayeredPsdFile|createMotionField|createNewShelf|createNode|createRenderLayer|createSubdivRegion|cross|crossProduct|ctxAbort|ctxCompletion|ctxEditMode|ctxTraverse|currentCtx|currentTime|currentTimeCtx|currentUnit|curve|curveAddPtCtx|curveCVCtx|curveEPCtx|curveEditorCtx|curveIntersect|curveMoveEPCtx|curveOnSurface|curveSketchCtx|cutKey|cycleCheck|cylinder|dagPose|date|defaultLightListCheckBox|defaultNavigation|defineDataServer|defineVirtualDevice|deformer|deg_to_rad|delete|deleteAttr|deleteShadingGroupsAndMaterials|deleteShelfTab|deleteUI|deleteUnusedBrushes|delrandstr|detachCurve|detachDeviceAttr|detachSurface|deviceEditor|devicePanel|dgInfo|dgdirty|dgeval|dgtimer|dimWhen|directKeyCtx|directionalLight|dirmap|dirname|disable|disconnectAttr|disconnectJoint|diskCache|displacementToPoly|displayAffected|displayColor|displayCull|displayLevelOfDetail|displayPref|displayRGBColor|displaySmoothness|displayStats|displayString|displaySurface|distanceDimContext|distanceDimension|doBlur|dolly|dollyCtx|dopeSheetEditor|dot|dotProduct|doubleProfileBirailSurface|drag|dragAttrContext|draggerContext|dropoffLocator|duplicate|duplicateCurve|duplicateSurface|dynCache|dynControl|dynExport|dynExpression|dynGlobals|dynPaintEditor|dynParticleCtx|dynPref|dynRelEdPanel|dynRelEditor|dynamicLoad|editAttrLimits|editDisplayLayerGlobals|editDisplayLayerMembers|editRenderLayerAdjustment|editRenderLayerGlobals|editRenderLayerMembers|editor|editorTemplate|effector|emit|emitter|enableDevice|encodeString|endString|endsWith|env|equivalent|equivalentTol|erf|error|eval|evalDeferred|evalEcho|event|exactWorldBoundingBox|exclusiveLightCheckBox|exec|executeForEachObject|exists|exp|expression|expressionEditorListen|extendCurve|extendSurface|extrude|fcheck|fclose|feof|fflush|fgetline|fgetword|file|fileBrowserDialog|fileDialog|fileExtension|fileInfo|filetest|filletCurve|filter|filterCurve|filterExpand|filterStudioImport|findAllIntersections|findAnimCurves|findKeyframe|findMenuItem|findRelatedSkinCluster|finder|firstParentOf|fitBspline|flexor|floatEq|floatField|floatFieldGrp|floatScrollBar|floatSlider|floatSlider2|floatSliderButtonGrp|floatSliderGrp|floor|flow|fluidCacheInfo|fluidEmitter|fluidVoxelInfo|flushUndo|fmod|fontDialog|fopen|formLayout|format|fprint|frameLayout|fread|freeFormFillet|frewind|fromNativePath|fwrite|gamma|gauss|geometryConstraint|getApplicationVersionAsFloat|getAttr|getClassification|getDefaultBrush|getFileList|getFluidAttr|getInputDeviceRange|getMayaPanelTypes|getModifiers|getPanel|getParticleAttr|getPluginResource|getenv|getpid|glRender|glRenderEditor|globalStitch|gmatch|goal|gotoBindPose|grabColor|gradientControl|gradientControlNoAttr|graphDollyCtx|graphSelectContext|graphTrackCtx|gravity|grid|gridLayout|group|groupObjectsByName|HfAddAttractorToAS|HfAssignAS|HfBuildEqualMap|HfBuildFurFiles|HfBuildFurImages|HfCancelAFR|HfConnectASToHF|HfCreateAttractor|HfDeleteAS|HfEditAS|HfPerformCreateAS|HfRemoveAttractorFromAS|HfSelectAttached|HfSelectAttractors|HfUnAssignAS|hardenPointCurve|hardware|hardwareRenderPanel|headsUpDisplay|headsUpMessage|help|helpLine|hermite|hide|hilite|hitTest|hotBox|hotkey|hotkeyCheck|hsv_to_rgb|hudButton|hudSlider|hudSliderButton|hwReflectionMap|hwRender|hwRenderLoad|hyperGraph|hyperPanel|hyperShade|hypot|iconTextButton|iconTextCheckBox|iconTextRadioButton|iconTextRadioCollection|iconTextScrollList|iconTextStaticLabel|ikHandle|ikHandleCtx|ikHandleDisplayScale|ikSolver|ikSplineHandleCtx|ikSystem|ikSystemInfo|ikfkDisplayMethod|illustratorCurves|image|imfPlugins|inheritTransform|insertJoint|insertJointCtx|insertKeyCtx|insertKnotCurve|insertKnotSurface|instance|instanceable|instancer|intField|intFieldGrp|intScrollBar|intSlider|intSliderGrp|interToUI|internalVar|intersect|iprEngine|isAnimCurve|isConnected|isDirty|isParentOf|isSameObject|isTrue|isValidObjectName|isValidString|isValidUiName|isolateSelect|itemFilter|itemFilterAttr|itemFilterRender|itemFilterType|joint|jointCluster|jointCtx|jointDisplayScale|jointLattice|keyTangent|keyframe|keyframeOutliner|keyframeRegionCurrentTimeCtx|keyframeRegionDirectKeyCtx|keyframeRegionDollyCtx|keyframeRegionInsertKeyCtx|keyframeRegionMoveKeyCtx|keyframeRegionScaleKeyCtx|keyframeRegionSelectKeyCtx|keyframeRegionSetKeyCtx|keyframeRegionTrackCtx|keyframeStats|lassoContext|lattice|latticeDeformKeyCtx|launch|launchImageEditor|layerButton|layeredShaderPort|layeredTexturePort|layout|layoutDialog|lightList|lightListEditor|lightListPanel|lightlink|lineIntersection|linearPrecision|linstep|listAnimatable|listAttr|listCameras|listConnections|listDeviceAttachments|listHistory|listInputDeviceAxes|listInputDeviceButtons|listInputDevices|listMenuAnnotation|listNodeTypes|listPanelCategories|listRelatives|listSets|listTransforms|listUnselected|listerEditor|loadFluid|loadNewShelf|loadPlugin|loadPluginLanguageResources|loadPrefObjects|localizedPanelLabel|lockNode|loft|log|longNameOf|lookThru|ls|lsThroughFilter|lsType|lsUI|Mayatomr|mag|makeIdentity|makeLive|makePaintable|makeRoll|makeSingleSurface|makeTubeOn|makebot|manipMoveContext|manipMoveLimitsCtx|manipOptions|manipRotateContext|manipRotateLimitsCtx|manipScaleContext|manipScaleLimitsCtx|marker|match|max|memory|menu|menuBarLayout|menuEditor|menuItem|menuItemToShelf|menuSet|menuSetPref|messageLine|min|minimizeApp|mirrorJoint|modelCurrentTimeCtx|modelEditor|modelPanel|mouse|movIn|movOut|move|moveIKtoFK|moveKeyCtx|moveVertexAlongDirection|multiProfileBirailSurface|mute|nParticle|nameCommand|nameField|namespace|namespaceInfo|newPanelItems|newton|nodeCast|nodeIconButton|nodeOutliner|nodePreset|nodeType|noise|nonLinear|normalConstraint|normalize|nurbsBoolean|nurbsCopyUVSet|nurbsCube|nurbsEditUV|nurbsPlane|nurbsSelect|nurbsSquare|nurbsToPoly|nurbsToPolygonsPref|nurbsToSubdiv|nurbsToSubdivPref|nurbsUVSet|nurbsViewDirectionVector|objExists|objectCenter|objectLayer|objectType|objectTypeUI|obsoleteProc|oceanNurbsPreviewPlane|offsetCurve|offsetCurveOnSurface|offsetSurface|openGLExtension|openMayaPref|optionMenu|optionMenuGrp|optionVar|orbit|orbitCtx|orientConstraint|outlinerEditor|outlinerPanel|overrideModifier|paintEffectsDisplay|pairBlend|palettePort|paneLayout|panel|panelConfiguration|panelHistory|paramDimContext|paramDimension|paramLocator|parent|parentConstraint|particle|particleExists|particleInstancer|particleRenderInfo|partition|pasteKey|pathAnimation|pause|pclose|percent|performanceOptions|pfxstrokes|pickWalk|picture|pixelMove|planarSrf|plane|play|playbackOptions|playblast|plugAttr|plugNode|pluginInfo|pluginResourceUtil|pointConstraint|pointCurveConstraint|pointLight|pointMatrixMult|pointOnCurve|pointOnSurface|pointPosition|poleVectorConstraint|polyAppend|polyAppendFacetCtx|polyAppendVertex|polyAutoProjection|polyAverageNormal|polyAverageVertex|polyBevel|polyBlendColor|polyBlindData|polyBoolOp|polyBridgeEdge|polyCacheMonitor|polyCheck|polyChipOff|polyClipboard|polyCloseBorder|polyCollapseEdge|polyCollapseFacet|polyColorBlindData|polyColorDel|polyColorPerVertex|polyColorSet|polyCompare|polyCone|polyCopyUV|polyCrease|polyCreaseCtx|polyCreateFacet|polyCreateFacetCtx|polyCube|polyCut|polyCutCtx|polyCylinder|polyCylindricalProjection|polyDelEdge|polyDelFacet|polyDelVertex|polyDuplicateAndConnect|polyDuplicateEdge|polyEditUV|polyEditUVShell|polyEvaluate|polyExtrudeEdge|polyExtrudeFacet|polyExtrudeVertex|polyFlipEdge|polyFlipUV|polyForceUV|polyGeoSampler|polyHelix|polyInfo|polyInstallAction|polyLayoutUV|polyListComponentConversion|polyMapCut|polyMapDel|polyMapSew|polyMapSewMove|polyMergeEdge|polyMergeEdgeCtx|polyMergeFacet|polyMergeFacetCtx|polyMergeUV|polyMergeVertex|polyMirrorFace|polyMoveEdge|polyMoveFacet|polyMoveFacetUV|polyMoveUV|polyMoveVertex|polyNormal|polyNormalPerVertex|polyNormalizeUV|polyOptUvs|polyOptions|polyOutput|polyPipe|polyPlanarProjection|polyPlane|polyPlatonicSolid|polyPoke|polyPrimitive|polyPrism|polyProjection|polyPyramid|polyQuad|polyQueryBlindData|polyReduce|polySelect|polySelectConstraint|polySelectConstraintMonitor|polySelectCtx|polySelectEditCtx|polySeparate|polySetToFaceNormal|polySewEdge|polyShortestPathCtx|polySmooth|polySoftEdge|polySphere|polySphericalProjection|polySplit|polySplitCtx|polySplitEdge|polySplitRing|polySplitVertex|polyStraightenUVBorder|polySubdivideEdge|polySubdivideFacet|polyToSubdiv|polyTorus|polyTransfer|polyTriangulate|polyUVSet|polyUnite|polyWedgeFace|popen|popupMenu|pose|pow|preloadRefEd|print|progressBar|progressWindow|projFileViewer|projectCurve|projectTangent|projectionContext|projectionManip|promptDialog|propModCtx|propMove|psdChannelOutliner|psdEditTextureFile|psdExport|psdTextureFile|putenv|pwd|python|querySubdiv|quit|rad_to_deg|radial|radioButton|radioButtonGrp|radioCollection|radioMenuItemCollection|rampColorPort|rand|randomizeFollicles|randstate|rangeControl|readTake|rebuildCurve|rebuildSurface|recordAttr|recordDevice|redo|reference|referenceEdit|referenceQuery|refineSubdivSelectionList|refresh|refreshAE|registerPluginResource|rehash|reloadImage|removeJoint|removeMultiInstance|removePanelCategory|rename|renameAttr|renameSelectionList|renameUI|render|renderGlobalsNode|renderInfo|renderLayerButton|renderLayerParent|renderLayerPostProcess|renderLayerUnparent|renderManip|renderPartition|renderQualityNode|renderSettings|renderThumbnailUpdate|renderWindowEditor|renderWindowSelectContext|renderer|reorder|reorderDeformers|requires|reroot|resampleFluid|resetAE|resetPfxToPolyCamera|resetTool|resolutionNode|retarget|reverseCurve|reverseSurface|revolve|rgb_to_hsv|rigidBody|rigidSolver|roll|rollCtx|rootOf|rot|rotate|rotationInterpolation|roundConstantRadius|rowColumnLayout|rowLayout|runTimeCommand|runup|sampleImage|saveAllShelves|saveAttrPreset|saveFluid|saveImage|saveInitialState|saveMenu|savePrefObjects|savePrefs|saveShelf|saveToolSettings|scale|scaleBrushBrightness|scaleComponents|scaleConstraint|scaleKey|scaleKeyCtx|sceneEditor|sceneUIReplacement|scmh|scriptCtx|scriptEditorInfo|scriptJob|scriptNode|scriptTable|scriptToShelf|scriptedPanel|scriptedPanelType|scrollField|scrollLayout|sculpt|searchPathArray|seed|selLoadSettings|select|selectContext|selectCurveCV|selectKey|selectKeyCtx|selectKeyframeRegionCtx|selectMode|selectPref|selectPriority|selectType|selectedNodes|selectionConnection|separator|setAttr|setAttrEnumResource|setAttrMapping|setAttrNiceNameResource|setConstraintRestPosition|setDefaultShadingGroup|setDrivenKeyframe|setDynamic|setEditCtx|setEditor|setFluidAttr|setFocus|setInfinity|setInputDeviceMapping|setKeyCtx|setKeyPath|setKeyframe|setKeyframeBlendshapeTargetWts|setMenuMode|setNodeNiceNameResource|setNodeTypeFlag|setParent|setParticleAttr|setPfxToPolyCamera|setPluginResource|setProject|setStampDensity|setStartupMessage|setState|setToolTo|setUITemplate|setXformManip|sets|shadingConnection|shadingGeometryRelCtx|shadingLightRelCtx|shadingNetworkCompare|shadingNode|shapeCompare|shelfButton|shelfLayout|shelfTabLayout|shellField|shortNameOf|showHelp|showHidden|showManipCtx|showSelectionInTitle|showShadingGroupAttrEditor|showWindow|sign|simplify|sin|singleProfileBirailSurface|size|sizeBytes|skinCluster|skinPercent|smoothCurve|smoothTangentSurface|smoothstep|snap2to2|snapKey|snapMode|snapTogetherCtx|snapshot|soft|softMod|softModCtx|sort|sound|soundControl|source|spaceLocator|sphere|sphrand|spotLight|spotLightPreviewPort|spreadSheetEditor|spring|sqrt|squareSurface|srtContext|stackTrace|startString|startsWith|stitchAndExplodeShell|stitchSurface|stitchSurfacePoints|strcmp|stringArrayCatenate|stringArrayContains|stringArrayCount|stringArrayInsertAtIndex|stringArrayIntersector|stringArrayRemove|stringArrayRemoveAtIndex|stringArrayRemoveDuplicates|stringArrayRemoveExact|stringArrayToString|stringToStringArray|strip|stripPrefixFromName|stroke|subdAutoProjection|subdCleanTopology|subdCollapse|subdDuplicateAndConnect|subdEditUV|subdListComponentConversion|subdMapCut|subdMapSewMove|subdMatchTopology|subdMirror|subdToBlind|subdToPoly|subdTransferUVsToCache|subdiv|subdivCrease|subdivDisplaySmoothness|substitute|substituteAllString|substituteGeometry|substring|surface|surfaceSampler|surfaceShaderList|swatchDisplayPort|switchTable|symbolButton|symbolCheckBox|sysFile|system|tabLayout|tan|tangentConstraint|texLatticeDeformContext|texManipContext|texMoveContext|texMoveUVShellContext|texRotateContext|texScaleContext|texSelectContext|texSelectShortestPathCtx|texSmudgeUVContext|texWinToolCtx|text|textCurves|textField|textFieldButtonGrp|textFieldGrp|textManip|textScrollList|textToShelf|textureDisplacePlane|textureHairColor|texturePlacementContext|textureWindow|threadCount|threePointArcCtx|timeControl|timePort|timerX|toNativePath|toggle|toggleAxis|toggleWindowVisibility|tokenize|tokenizeList|tolerance|tolower|toolButton|toolCollection|toolDropped|toolHasOptions|toolPropertyWindow|torus|toupper|trace|track|trackCtx|transferAttributes|transformCompare|transformLimits|translator|trim|trunc|truncateFluidCache|truncateHairCache|tumble|tumbleCtx|turbulence|twoPointArcCtx|uiRes|uiTemplate|unassignInputDevice|undo|undoInfo|ungroup|uniform|unit|unloadPlugin|untangleUV|untitledFileName|untrim|upAxis|updateAE|userCtx|uvLink|uvSnapshot|validateShelfName|vectorize|view2dToolCtx|viewCamera|viewClipPlane|viewFit|viewHeadOn|viewLookAt|viewManip|viewPlace|viewSet|visor|volumeAxis|vortex|waitCursor|warning|webBrowser|webBrowserPrefs|whatIs|window|windowPref|wire|wireContext|workspace|wrinkle|wrinkleContext|writeTake|xbmLangPathList|xform)\b/,
    	
    	'operator': [
    		/\+[+=]?|-[-=]?|&&|\|\||[<>]=|[*\/!=]=?|[%^]/,
    		{
    			// We don't want to match <<
    			pattern: /(^|[^<])<(?!<)/,
    			lookbehind: true
    		},
    		{
    			// We don't want to match >>
    			pattern: /(^|[^>])>(?!>)/,
    			lookbehind: true
    		}
    	],
    	'punctuation': /<<|>>|[.,:;?\[\](){}]/
    };
    Prism.languages.mel['code'].inside.rest = Prism.util.clone(Prism.languages.mel);PKfvCH77_materialdjango/static/materialdjango/components/bower_components/prism/components/prism-yaml.jsPrism.languages.yaml = {
    	'scalar': {
    		pattern: /([\-:]\s*(![^\s]+)?[ \t]*[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)[^\r\n]+(?:\3[^\r\n]+)*)/,
    		lookbehind: true,
    		alias: 'string'
    	},
    	'comment': /#.*/,
    	'key': {
    		pattern: /(\s*[:\-,[{\r\n?][ \t]*(![^\s]+)?[ \t]*)[^\r\n{[\]},#]+?(?=\s*:\s)/,
    		lookbehind: true,
    		alias: 'atrule'
    	},
    	'directive': {
    		pattern: /(^[ \t]*)%.+/m,
    		lookbehind: true,
    		alias: 'important'
    	},
    	'datetime': {
    		pattern: /([:\-,[{]\s*(![^\s]+)?[ \t]*)(\d{4}-\d\d?-\d\d?([tT]|[ \t]+)\d\d?:\d{2}:\d{2}(\.\d*)?[ \t]*(Z|[-+]\d\d?(:\d{2})?)?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(:\d{2}(\.\d*)?)?)(?=[ \t]*($|,|]|}))/m,
    		lookbehind: true,
    		alias: 'number'
    	},
    	'boolean': {
    		pattern: /([:\-,[{]\s*(![^\s]+)?[ \t]*)(true|false)[ \t]*(?=$|,|]|})/im,
    		lookbehind: true,
    		alias: 'important'
    	},
    	'null': {
    		pattern: /([:\-,[{]\s*(![^\s]+)?[ \t]*)(null|~)[ \t]*(?=$|,|]|})/im,
    		lookbehind: true,
    		alias: 'important'
    	},
    	'string': {
    		pattern: /([:\-,[{]\s*(![^\s]+)?[ \t]*)("(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')(?=[ \t]*($|,|]|}))/m,
    		lookbehind: true
    	},
    	'number': {
    		pattern: /([:\-,[{]\s*(![^\s]+)?[ \t]*)[+\-]?(0x[\da-f]+|0o[0-7]+|(\d+\.?\d*|\.?\d+)(e[\+\-]?\d+)?|\.inf|\.nan)[ \t]*(?=$|,|]|})/im,
    		lookbehind: true
    	},
    	'tag': /![^\s]+/,
    	'important': /[&*][\w]+/,
    	'punctuation': /---|[:[\]{}\-,|>?]|\.\.\./
    };
    PKfvCHxVqr44\materialdjango/static/materialdjango/components/bower_components/prism/components/prism-c.jsPrism.languages.c = Prism.languages.extend('clike', {
    	'keyword': /\b(asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while)\b/,
    	'operator': /\-[>-]?|\+\+?|!=?|<>?=?|==?|&&?|\|?\||[~^%?*\/]/,
    	'number': /\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)[ful]*\b/i
    });
    
    Prism.languages.insertBefore('c', 'string', {
    	'macro': {
    		// allow for multiline macro definitions
    		// spaces after the # character compile fine with gcc
    		pattern: /(^\s*)#\s*[a-z]+([^\r\n\\]|\\.|\\(?:\r\n?|\n))*/im,
    		lookbehind: true,
    		alias: 'property',
    		inside: {
    			// highlight the path of the include statement as a string
    			'string': {
    				pattern: /(#\s*include\s*)(<.+?>|("|')(\\?.)+?\3)/,
    				lookbehind: true
    			},
    			// highlight macro directives as keywords
    			'directive': {
    				pattern: /(#\s*)\b(define|elif|else|endif|error|ifdef|ifndef|if|import|include|line|pragma|undef|using)\b/,
    				lookbehind: true,
    				alias: 'keyword'
    			}
    		}
    	},
    	// highlight predefined macros as constants
    	'constant': /\b(__FILE__|__LINE__|__DATE__|__TIME__|__TIMESTAMP__|__func__|EOF|NULL|stdin|stdout|stderr)\b/
    });
    
    delete Prism.languages.c['class-name'];
    delete Prism.languages.c['boolean'];
    PKfvCHP#܄amaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-prolog.jsPrism.languages.prolog = {
    	// Syntax depends on the implementation
    	'comment': [
    		/%.+/,
    		/\/\*[\s\S]*?\*\//
    	],
    	// Depending on the implementation, strings may allow escaped newlines and quote-escape
    	'string': /(["'])(?:\1\1|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
    	'builtin': /\b(?:fx|fy|xf[xy]?|yfx?)\b/,
    	'variable': /\b[A-Z_]\w*/,
    	// FIXME: Should we list all null-ary predicates (not followed by a parenthesis) like halt, trace, etc.?
    	'function': /\b[a-z]\w*(?:(?=\()|\/\d+)/,
    	'number': /\b\d+\.?\d*/,
    	// Custom operators are allowed
    	'operator': /[:\\=><\-?*@\/;+^|!$.]+|\b(?:is|mod|not|xor)\b/,
    	'punctuation': /[(){}\[\],]/
    };PKfvCHW{{`materialdjango/static/materialdjango/components/bower_components/prism/components/prism-ocaml.jsPrism.languages.ocaml = {
    	'comment': /\(\*[\s\S]*?\*\)/,
    	'string': [
    		/"(?:\\.|[^\\\r\n"])*"/,
    		/(['`])(?:\\(?:\d+|x[\da-f]+|.)|(?!\1)[^\\\r\n])\1/i
    	],
    	'number': /\b-?(?:0x[\da-f][\da-f_]+|(?:0[bo])?\d[\d_]*\.?[\d_]*(?:e[+-]?[\d_]+)?)/i,
    	'type': {
    		pattern: /\B['`][a-z\d_]*/i,
    		alias: 'variable'
    	},
    	'directive': {
    		pattern: /\B#[a-z\d_]+/i,
    		alias: 'function'
    	},
    	'keyword': /\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|object|of|open|prefix|private|rec|then|sig|struct|to|try|type|val|value|virtual|where|while|with)\b/,
    	'boolean': /\b(?:false|true)\b/,
    	// Custom operators are allowed
    	'operator': /:=|[=<>@^|&+\-*\/$%!?~][!$%&\*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lxor|lsl|lsr|mod|nor|or)\b/,
    	'punctuation': /[(){}\[\]|_.,:;]/
    };PKfvCHematerialdjango/static/materialdjango/components/bower_components/prism/components/prism-python.min.jsPrism.languages.python={"triple-quoted-string":{pattern:/"""[\s\S]+?"""|'''[\s\S]+?'''/,alias:"string"},comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},string:/("|')(?:\\?.)*?\1/,"function":{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_][a-zA-Z0-9_]*(?=\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)[a-z0-9_]+/i,lookbehind:!0},keyword:/\b(?:as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|pass|print|raise|return|try|while|with|yield)\b/,"boolean":/\b(?:True|False)\b/,number:/\b-?(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not)\b/,punctuation:/[{}[\];(),.:]/};PKfvCHdlFFematerialdjango/static/materialdjango/components/bower_components/prism/components/prism-prolog.min.jsPrism.languages.prolog={comment:[/%.+/,/\/\*[\s\S]*?\*\//],string:/(["'])(?:\1\1|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,builtin:/\b(?:fx|fy|xf[xy]?|yfx?)\b/,variable:/\b[A-Z_]\w*/,"function":/\b[a-z]\w*(?:(?=\()|\/\d+)/,number:/\b\d+\.?\d*/,operator:/[:\\=><\-?*@\/;+^|!$.]+|\b(?:is|mod|not|xor)\b/,punctuation:/[(){}\[\],]/};PKfvCHM҈\\imaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-css-extras.min.jsPrism.languages.css.selector={pattern:/[^\{\}\s][^\{\}]*(?=\s*\{)/,inside:{"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+(?:\(.*\))?/,"class":/\.[-:\.\w]+/,id:/#[-:\.\w]+/}},Prism.languages.insertBefore("css","function",{hexcode:/#[\da-f]{3,6}/i,entity:/\\[\da-f]{1,8}/i,number:/[\d%\.]+/});PKfvCH-^materialdjango/static/materialdjango/components/bower_components/prism/components/prism-sql.jsPrism.languages.sql= { 
    	'comment': {
    		pattern: /(^|[^\\])(?:\/\*[\w\W]*?\*\/|(?:--|\/\/|#).*)/,
    		lookbehind: true
    	},
    	'string' : {
    		pattern: /(^|[^@\\])("|')(?:\\?[\s\S])*?\2/,
    		lookbehind: true
    	},
    	'variable': /@[\w.$]+|@("|'|`)(?:\\?[\s\S])+?\1/,
    	'function': /\b(?:COUNT|SUM|AVG|MIN|MAX|FIRST|LAST|UCASE|LCASE|MID|LEN|ROUND|NOW|FORMAT)(?=\s*\()/i, // Should we highlight user defined functions too?
    	'keyword': /\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR VARYING|CHARACTER (?:SET|VARYING)|CHARSET|CHECK|CHECKPOINT|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMN|COLUMNS|COMMENT|COMMIT|COMMITTED|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS|CONTAINSTABLE|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|DATA(?:BASES?)?|DATETIME|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE(?: PRECISION)?|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE KEY|ELSE|ENABLE|ENCLOSED BY|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPE(?:D BY)?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|IDENTITY(?:_INSERT|COL)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTO|INVOKER|ISOLATION LEVEL|JOIN|KEYS?|KILL|LANGUAGE SQL|LAST|LEFT|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MODIFIES SQL DATA|MODIFY|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL(?: CHAR VARYING| CHARACTER(?: VARYING)?| VARCHAR)?|NATURAL|NCHAR(?: VARCHAR)?|NEXT|NO(?: SQL|CHECK|CYCLE)?|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READ(?:S SQL DATA|TEXT)?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEATABLE|REPLICATION|REQUIRE|RESTORE|RESTRICT|RETURNS?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE MODE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|START(?:ING BY)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED BY|TEXT(?:SIZE)?|THEN|TIMESTAMP|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNPIVOT|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?)\b/i,
    	'boolean': /\b(?:TRUE|FALSE|NULL)\b/i,
    	'number': /\b-?(?:0x)?\d*\.?[\da-f]+\b/,
    	'operator': /[-+*\/=%^~]|&&?|\|?\||!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|IN|LIKE|NOT|OR|IS|DIV|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,
    	'punctuation': /[;[\]()`,.]/
    };PKfvCHY^materialdjango/static/materialdjango/components/bower_components/prism/components/prism-ini.jsPrism.languages.ini= {
    	'comment': /^[ \t]*;.*$/m,
    	'important': /\[.*?\]/,
    	'constant': /^[ \t]*[^\s=]+?(?=[ \t]*=)/m,
    	'attr-value': {
    		pattern: /=.*/,
    		inside: {
    			'punctuation': /^[=]/
    		}
    	}
    };PKfvCHҩ޷!!_materialdjango/static/materialdjango/components/bower_components/prism/components/prism-abap.jsPrism.languages.abap = {
    	'comment': /^\*.*/m,
    	'string' : /(`|')(\\?.)*?\1/m,
    	'string-template': {
    		pattern: /(\||\})(\\?.)*?(?=\||\{)/,
    		lookbehind: true,
    		alias: 'string'
    	},
    	/* End Of Line comments should not interfere with strings when the  
    	quote character occurs within them. We assume a string being highlighted
    	inside an EOL comment is more acceptable than the opposite.
    	*/
    	'eol-comment': {
    		pattern: /(^|\s)".*/m,
    		lookbehind: true,
    		alias: 'comment'
    	},
    	'keyword' : {
    		pattern: /(\s|\.|^)(?:SCIENTIFIC_WITH_LEADING_ZERO|SCALE_PRESERVING_SCIENTIFIC|RMC_COMMUNICATION_FAILURE|END-ENHANCEMENT-SECTION|MULTIPLY-CORRESPONDING|SUBTRACT-CORRESPONDING|VERIFICATION-MESSAGE|DIVIDE-CORRESPONDING|ENHANCEMENT-SECTION|CURRENCY_CONVERSION|RMC_SYSTEM_FAILURE|START-OF-SELECTION|MOVE-CORRESPONDING|RMC_INVALID_STATUS|CUSTOMER-FUNCTION|END-OF-DEFINITION|ENHANCEMENT-POINT|SYSTEM-EXCEPTIONS|ADD-CORRESPONDING|SCALE_PRESERVING|SELECTION-SCREEN|CURSOR-SELECTION|END-OF-SELECTION|LOAD-OF-PROGRAM|SCROLL-BOUNDARY|SELECTION-TABLE|EXCEPTION-TABLE|IMPLEMENTATIONS|PARAMETER-TABLE|RIGHT-JUSTIFIED|UNIT_CONVERSION|AUTHORITY-CHECK|LIST-PROCESSING|SIGN_AS_POSTFIX|COL_BACKGROUND|IMPLEMENTATION|INTERFACE-POOL|TRANSFORMATION|IDENTIFICATION|ENDENHANCEMENT|LINE-SELECTION|INITIALIZATION|LEFT-JUSTIFIED|SELECT-OPTIONS|SELECTION-SETS|COMMUNICATION|CORRESPONDING|DECIMAL_SHIFT|PRINT-CONTROL|VALUE-REQUEST|CHAIN-REQUEST|FUNCTION-POOL|FIELD-SYMBOLS|FUNCTIONALITY|INVERTED-DATE|SELECTION-SET|CLASS-METHODS|OUTPUT-LENGTH|CLASS-CODING|COL_NEGATIVE|ERRORMESSAGE|FIELD-GROUPS|HELP-REQUEST|NO-EXTENSION|NO-TOPOFPAGE|REDEFINITION|DISPLAY-MODE|ENDINTERFACE|EXIT-COMMAND|FIELD-SYMBOL|NO-SCROLLING|SHORTDUMP-ID|ACCESSPOLICY|CLASS-EVENTS|COL_POSITIVE|DECLARATIONS|ENHANCEMENTS|FILTER-TABLE|SWITCHSTATES|SYNTAX-CHECK|TRANSPORTING|ASYNCHRONOUS|SYNTAX-TRACE|TOKENIZATION|USER-COMMAND|WITH-HEADING|ABAP-SOURCE|BREAK-POINT|CHAIN-INPUT|COMPRESSION|FIXED-POINT|NEW-SECTION|NON-UNICODE|OCCURRENCES|RESPONSIBLE|SYSTEM-CALL|TRACE-TABLE|ABBREVIATED|CHAR-TO-HEX|END-OF-FILE|ENDFUNCTION|ENVIRONMENT|ASSOCIATION|COL_HEADING|EDITOR-CALL|END-OF-PAGE|ENGINEERING|IMPLEMENTED|INTENSIFIED|RADIOBUTTON|SYSTEM-EXIT|TOP-OF-PAGE|TRANSACTION|APPLICATION|CONCATENATE|DESTINATION|ENHANCEMENT|IMMEDIATELY|NO-GROUPING|PRECOMPILED|REPLACEMENT|TITLE-LINES|ACTIVATION|BYTE-ORDER|CLASS-POOL|CONNECTION|CONVERSION|DEFINITION|DEPARTMENT|EXPIRATION|INHERITING|MESSAGE-ID|NO-HEADING|PERFORMING|QUEUE-ONLY|RIGHTSPACE|SCIENTIFIC|STATUSINFO|STRUCTURES|SYNCPOINTS|WITH-TITLE|ATTRIBUTES|BOUNDARIES|CLASS-DATA|COL_NORMAL|DD\/MM\/YYYY|DESCENDING|INTERFACES|LINE-COUNT|MM\/DD\/YYYY|NON-UNIQUE|PRESERVING|SELECTIONS|STATEMENTS|SUBROUTINE|TRUNCATION|TYPE-POOLS|ARITHMETIC|BACKGROUND|ENDPROVIDE|EXCEPTIONS|IDENTIFIER|INDEX-LINE|OBLIGATORY|PARAMETERS|PERCENTAGE|PUSHBUTTON|RESOLUTION|COMPONENTS|DEALLOCATE|DISCONNECT|DUPLICATES|FIRST-LINE|HEAD-LINES|NO-DISPLAY|OCCURRENCE|RESPECTING|RETURNCODE|SUBMATCHES|TRACE-FILE|ASCENDING|BYPASSING|ENDMODULE|EXCEPTION|EXCLUDING|EXPORTING|INCREMENT|MATCHCODE|PARAMETER|PARTIALLY|PREFERRED|REFERENCE|REPLACING|RETURNING|SELECTION|SEPARATED|SPECIFIED|STATEMENT|TIMESTAMP|TYPE-POOL|ACCEPTING|APPENDAGE|ASSIGNING|COL_GROUP|COMPARING|CONSTANTS|DANGEROUS|IMPORTING|INSTANCES|LEFTSPACE|LOG-POINT|QUICKINFO|READ-ONLY|SCROLLING|SQLSCRIPT|STEP-LOOP|TOP-LINES|TRANSLATE|APPENDING|AUTHORITY|CHARACTER|COMPONENT|CONDITION|DIRECTORY|DUPLICATE|MESSAGING|RECEIVING|SUBSCREEN|ACCORDING|COL_TOTAL|END-LINES|ENDMETHOD|ENDSELECT|EXPANDING|EXTENSION|INCLUDING|INFOTYPES|INTERFACE|INTERVALS|LINE-SIZE|PF-STATUS|PROCEDURE|PROTECTED|REQUESTED|RESUMABLE|RIGHTPLUS|SAP-SPOOL|SECONDARY|STRUCTURE|SUBSTRING|TABLEVIEW|NUMOFCHAR|ADJACENT|ANALYSIS|ASSIGNED|BACKWARD|CHANNELS|CHECKBOX|CONTINUE|CRITICAL|DATAINFO|DD\/MM\/YY|DURATION|ENCODING|ENDCLASS|FUNCTION|LEFTPLUS|LINEFEED|MM\/DD\/YY|OVERFLOW|RECEIVED|SKIPPING|SORTABLE|STANDARD|SUBTRACT|SUPPRESS|TABSTRIP|TITLEBAR|TRUNCATE|UNASSIGN|WHENEVER|ANALYZER|COALESCE|COMMENTS|CONDENSE|DECIMALS|DEFERRED|ENDWHILE|EXPLICIT|KEYWORDS|MESSAGES|POSITION|PRIORITY|RECEIVER|RENAMING|TIMEZONE|TRAILING|ALLOCATE|CENTERED|CIRCULAR|CONTROLS|CURRENCY|DELETING|DESCRIBE|DISTANCE|ENDCATCH|EXPONENT|EXTENDED|GENERATE|IGNORING|INCLUDES|INTERNAL|MAJOR-ID|MODIFIER|NEW-LINE|OPTIONAL|PROPERTY|ROLLBACK|STARTING|SUPPLIED|ABSTRACT|CHANGING|CONTEXTS|CREATING|CUSTOMER|DATABASE|DAYLIGHT|DEFINING|DISTINCT|DIVISION|ENABLING|ENDCHAIN|ESCAPING|HARMLESS|IMPLICIT|INACTIVE|LANGUAGE|MINOR-ID|MULTIPLY|NEW-PAGE|NO-TITLE|POS_HIGH|SEPARATE|TEXTPOOL|TRANSFER|SELECTOR|DBMAXLEN|ITERATOR|SELECTOR|ARCHIVE|BIT-XOR|BYTE-CO|COLLECT|COMMENT|CURRENT|DEFAULT|DISPLAY|ENDFORM|EXTRACT|LEADING|LISTBOX|LOCATOR|MEMBERS|METHODS|NESTING|POS_LOW|PROCESS|PROVIDE|RAISING|RESERVE|SECONDS|SUMMARY|VISIBLE|BETWEEN|BIT-AND|BYTE-CS|CLEANUP|COMPUTE|CONTROL|CONVERT|DATASET|ENDCASE|FORWARD|HEADERS|HOTSPOT|INCLUDE|INVERSE|KEEPING|NO-ZERO|OBJECTS|OVERLAY|PADDING|PATTERN|PROGRAM|REFRESH|SECTION|SUMMING|TESTING|VERSION|WINDOWS|WITHOUT|BIT-NOT|BYTE-CA|BYTE-NA|CASTING|CONTEXT|COUNTRY|DYNAMIC|ENABLED|ENDLOOP|EXECUTE|FRIENDS|HANDLER|HEADING|INITIAL|\*-INPUT|LOGFILE|MAXIMUM|MINIMUM|NO-GAPS|NO-SIGN|PRAGMAS|PRIMARY|PRIVATE|REDUCED|REPLACE|REQUEST|RESULTS|UNICODE|WARNING|ALIASES|BYTE-CN|BYTE-NS|CALLING|COL_KEY|COLUMNS|CONNECT|ENDEXEC|ENTRIES|EXCLUDE|FILTERS|FURTHER|HELP-ID|LOGICAL|MAPPING|MESSAGE|NAMETAB|OPTIONS|PACKAGE|PERFORM|RECEIVE|STATICS|VARYING|BINDING|CHARLEN|GREATER|XSTRLEN|ACCEPT|APPEND|DETAIL|ELSEIF|ENDING|ENDTRY|FORMAT|FRAMES|GIVING|HASHED|HEADER|IMPORT|INSERT|MARGIN|MODULE|NATIVE|OBJECT|OFFSET|REMOTE|RESUME|SAVING|SIMPLE|SUBMIT|TABBED|TOKENS|UNIQUE|UNPACK|UPDATE|WINDOW|YELLOW|ACTUAL|ASPECT|CENTER|CURSOR|DELETE|DIALOG|DIVIDE|DURING|ERRORS|EVENTS|EXTEND|FILTER|HANDLE|HAVING|IGNORE|LITTLE|MEMORY|NO-GAP|OCCURS|OPTION|PERSON|PLACES|PUBLIC|REDUCE|REPORT|RESULT|SINGLE|SORTED|SWITCH|SYNTAX|TARGET|VALUES|WRITER|ASSERT|BLOCKS|BOUNDS|BUFFER|CHANGE|COLUMN|COMMIT|CONCAT|COPIES|CREATE|DDMMYY|DEFINE|ENDIAN|ESCAPE|EXPAND|KERNEL|LAYOUT|LEGACY|LEVELS|MMDDYY|NUMBER|OUTPUT|RANGES|READER|RETURN|SCREEN|SEARCH|SELECT|SHARED|SOURCE|STABLE|STATIC|SUBKEY|SUFFIX|TABLES|UNWIND|YYMMDD|ASSIGN|BACKUP|BEFORE|BINARY|BIT-OR|BLANKS|CLIENT|CODING|COMMON|DEMAND|DYNPRO|EXCEPT|EXISTS|EXPORT|FIELDS|GLOBAL|GROUPS|LENGTH|LOCALE|MEDIUM|METHOD|MODIFY|NESTED|OTHERS|REJECT|SCROLL|SUPPLY|SYMBOL|ENDFOR|STRLEN|ALIGN|BEGIN|BOUND|ENDAT|ENTRY|EVENT|FINAL|FLUSH|GRANT|INNER|SHORT|USING|WRITE|AFTER|BLACK|BLOCK|CLOCK|COLOR|COUNT|DUMMY|EMPTY|ENDDO|ENDON|GREEN|INDEX|INOUT|LEAVE|LEVEL|LINES|MODIF|ORDER|OUTER|RANGE|RESET|RETRY|RIGHT|SMART|SPLIT|STYLE|TABLE|THROW|UNDER|UNTIL|UPPER|UTF-8|WHERE|ALIAS|BLANK|CLEAR|CLOSE|EXACT|FETCH|FIRST|FOUND|GROUP|LLANG|LOCAL|OTHER|REGEX|SPOOL|TITLE|TYPES|VALID|WHILE|ALPHA|BOXED|CATCH|CHAIN|CHECK|CLASS|COVER|ENDIF|EQUIV|FIELD|FLOOR|FRAME|INPUT|LOWER|MATCH|NODES|PAGES|PRINT|RAISE|ROUND|SHIFT|SPACE|SPOTS|STAMP|STATE|TASKS|TIMES|TRMAC|ULINE|UNION|VALUE|WIDTH|EQUAL|LOG10|TRUNC|BLOB|CASE|CEIL|CLOB|COND|EXIT|FILE|GAPS|HOLD|INCL|INTO|KEEP|KEYS|LAST|LINE|LONG|LPAD|MAIL|MODE|OPEN|PINK|READ|ROWS|TEST|THEN|ZERO|AREA|BACK|BADI|BYTE|CAST|EDIT|EXEC|FAIL|FIND|FKEQ|FONT|FREE|GKEQ|HIDE|INIT|ITNO|LATE|LOOP|MAIN|MARK|MOVE|NEXT|NULL|RISK|ROLE|UNIT|WAIT|ZONE|BASE|CALL|CODE|DATA|DATE|FKGE|GKGE|HIGH|KIND|LEFT|LIST|MASK|MESH|NAME|NODE|PACK|PAGE|POOL|SEND|SIGN|SIZE|SOME|STOP|TASK|TEXT|TIME|USER|VARY|WITH|WORD|BLUE|CONV|COPY|DEEP|ELSE|FORM|FROM|HINT|ICON|JOIN|LIKE|LOAD|ONLY|PART|SCAN|SKIP|SORT|TYPE|UNIX|VIEW|WHEN|WORK|ACOS|ASIN|ATAN|COSH|EACH|FRAC|LESS|RTTI|SINH|SQRT|TANH|AVG|BIT|DIV|ISO|LET|OUT|PAD|SQL|ALL|CI_|CPI|END|LOB|LPI|MAX|MIN|NEW|OLE|RUN|SET|\?TO|YES|ABS|ADD|AND|BIG|FOR|HDB|JOB|LOW|NOT|SAP|TRY|VIA|XML|ANY|GET|IDS|KEY|MOD|OFF|PUT|RAW|RED|REF|SUM|TAB|XSD|CNT|COS|EXP|LOG|SIN|TAN|XOR|AT|CO|CP|DO|GT|ID|IF|NS|OR|BT|CA|CS|GE|NA|NB|EQ|IN|LT|NE|NO|OF|ON|PF|TO|AS|BY|CN|IS|LE|NP|UP|E|I|M|O|Z|C|X)\b/i,
    		lookbehind: true
    	},
    	/* Numbers can be only integers. Decimal or Hex appear only as strings */
    	'number' : /\b\d+\b/,
    	/* Operators must always be surrounded by whitespace, they cannot be put 
    	adjacent to operands. 
    	*/
    	'operator' : {
    		pattern: /(\s)(?:\*\*?|<[=>]?|>=?|\?=|[-+\/=])(?=\s)/,
    		lookbehind: true
    	},
    	'string-operator' : {
    		pattern: /(\s)&&?(?=\s)/,
    		lookbehind: true,
    		/* The official editor highlights */
    		alias: "keyword"
    	},
    	'token-operator' : [{
    		/* Special operators used to access structure components, class methods/attributes, etc. */
    		pattern: /(\w)(?:->?|=>|[~|{}])(?=\w)/,
    		lookbehind: true,
    		alias: "punctuation"
    	}, {
    	    /* Special tokens used do delimit string templates */
    	    pattern: /[|{}]/,
    		alias: "punctuation"
    	}],
    	'punctuation' : /[,.:()]/
    };PKfvCHJJJematerialdjango/static/materialdjango/components/bower_components/prism/components/prism-smarty.min.js!function(e){var t=/\{\*[\w\W]+?\*\}|\{[\w\W]+?\}/g,a="{literal}",n="{/literal}",o=!1;e.languages.smarty=e.languages.extend("markup",{smarty:{pattern:t,inside:{delimiter:{pattern:/^\{|\}$/i,alias:"punctuation"},string:/(["'])(?:\\?.)*?\1/,number:/\b-?(?:0x[\dA-Fa-f]+|\d*\.?\d+(?:[Ee][-+]?\d+)?)\b/,variable:[/\$(?!\d)\w+/,/#(?!\d)\w+#/,{pattern:/(\.|->)(?!\d)\w+/,lookbehind:!0},{pattern:/(\[)(?!\d)\w+(?=\])/,lookbehind:!0}],"function":[{pattern:/(\|\s*)@?(?!\d)\w+/,lookbehind:!0},/^\/?(?!\d)\w+/,/(?!\d)\w+(?=\()/],"attr-name":{pattern:/\w+\s*=\s*(?:(?!\d)\w+)?/,inside:{variable:{pattern:/(=\s*)(?!\d)\w+/,lookbehind:!0},operator:/=/}},punctuation:[/[\[\]().,:`]|\->/],operator:[/[+\-*\/%]|==?=?|[!<>]=?|&&|\|\|?/,/\bis\s+(?:not\s+)?(?:div|even|odd)(?:\s+by)?\b/,/\b(?:eq|neq?|gt|lt|gt?e|lt?e|not|mod|or|and)\b/],keyword:/\b(?:false|off|on|no|true|yes)\b/}}}),e.languages.insertBefore("smarty","tag",{"smarty-comment":{pattern:/\{\*[\w\W]*?\*\}/,alias:["smarty","comment"]}}),e.hooks.add("before-highlight",function(e){"smarty"===e.language&&(e.tokenStack=[],e.backupCode=e.code,e.code=e.code.replace(t,function(t){return t===n&&(o=!1),o?t:(t===a&&(o=!0),e.tokenStack.push(t),"___SMARTY"+e.tokenStack.length+"___")}))}),e.hooks.add("before-insert",function(e){"smarty"===e.language&&(e.code=e.backupCode,delete e.backupCode)}),e.hooks.add("after-highlight",function(t){if("smarty"===t.language){for(var a,n=0;a=t.tokenStack[n];n++)t.highlightedCode=t.highlightedCode.replace("___SMARTY"+(n+1)+"___",e.highlight(a,t.grammar,"smarty").replace(/\$/g,"$$$$"));t.element.innerHTML=t.highlightedCode}})}(Prism);PKfvCHD:kkcmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-java.min.jsPrism.languages.java=Prism.languages.extend("clike",{keyword:/\b(abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while)\b/,number:/\b0b[01]+\b|\b0x[\da-f]*\.?[\da-fp\-]+\b|\b\d*\.?\d+(?:e[+-]?\d+)?[df]?\b/i,operator:{pattern:/(^|[^.])(?:\+[+=]?|-[-=]?|!=?|<>?>?=?|==?|&[&=]?|\|[|=]?|\*=?|\/=?|%=?|\^=?|[?:~])/m,lookbehind:!0}});PKfvCHN0_materialdjango/static/materialdjango/components/bower_components/prism/components/prism-dart.jsPrism.languages.dart = Prism.languages.extend('clike', {
    	'string': [
    		/r?("""|''')[\s\S]*?\1/,
    		/r?("|')(\\?.)*?\1/
    	],
    	'keyword': [
    		/\b(?:async|sync|yield)\*/,
    		/\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|default|deferred|do|dynamic|else|enum|export|external|extends|factory|final|finally|for|get|if|implements|import|in|library|new|null|operator|part|rethrow|return|set|static|super|switch|this|throw|try|typedef|var|void|while|with|yield)\b/
    	],
    	'operator': /\bis!|\b(?:as|is)\b|\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?/
    });
    
    Prism.languages.insertBefore('dart','function',{
    	'metadata': {
    		pattern: /@\w+/,
    		alias: 'symbol'
    	}
    });PKfvCH:dmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-swift.min.jsPrism.languages.swift=Prism.languages.extend("clike",{string:{pattern:/("|')(\\(?:\((?:[^()]|\([^)]+\))+\)|\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,inside:{interpolation:{pattern:/\\\((?:[^()]|\([^)]+\))+\)/,inside:{delimiter:{pattern:/^\\\(|\)$/,alias:"variable"}}}}},keyword:/\b(as|associativity|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic(?:Type)?|else|enum|extension|fallthrough|final|for|func|get|guard|if|import|in|infix|init|inout|internal|is|lazy|left|let|mutating|new|none|nonmutating|operator|optional|override|postfix|precedence|prefix|private|Protocol|public|repeat|required|rethrows|return|right|safe|self|Self|set|static|struct|subscript|super|switch|throws?|try|Type|typealias|unowned|unsafe|var|weak|where|while|willSet|__(?:COLUMN__|FILE__|FUNCTION__|LINE__))\b/,number:/\b([\d_]+(\.[\de_]+)?|0x[a-f0-9_]+(\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,constant:/\b(nil|[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,atrule:/@\b(IB(?:Outlet|Designable|Action|Inspectable)|class_protocol|exported|noreturn|NS(?:Copying|Managed)|objc|UIApplicationMain|auto_closure)\b/,builtin:/\b([A-Z]\S+|abs|advance|alignof(?:Value)?|assert|contains|count(?:Elements)?|debugPrint(?:ln)?|distance|drop(?:First|Last)|dump|enumerate|equal|filter|find|first|getVaList|indices|isEmpty|join|last|lexicographicalCompare|map|max(?:Element)?|min(?:Element)?|numericCast|overlaps|partition|print(?:ln)?|reduce|reflect|reverse|sizeof(?:Value)?|sort(?:ed)?|split|startsWith|stride(?:of(?:Value)?)?|suffix|swap|toDebugString|toString|transcode|underestimateCount|unsafeBitCast|with(?:ExtendedLifetime|Unsafe(?:MutablePointers?|Pointers?)|VaList))\b/}),Prism.languages.swift.string.inside.interpolation.inside.rest=Prism.util.clone(Prism.languages.swift);PKfvCHu!KKematerialdjango/static/materialdjango/components/bower_components/prism/components/prism-monkey.min.jsPrism.languages.monkey={string:/"[^"\r\n]*"/,comment:[/^#Rem\s+[\s\S]*?^#End/im,/'.+/],preprocessor:{pattern:/(^[ \t]*)#.+/m,lookbehind:!0,alias:"comment"},"function":/\w+(?=\()/,"type-char":{pattern:/(\w)[?%#$]/,lookbehind:!0,alias:"variable"},number:{pattern:/((?:\.\.)?)(?:(?:\b|\B-\.?|\B\.)\d+((?!\.\.)\.\d*)?|\$[\da-f]+)/i,lookbehind:!0},keyword:/\b(?:Void|Strict|Public|Private|Property|Bool|Int|Float|String|Array|Object|Continue|Exit|Import|Extern|New|Self|Super|Try|Catch|Eachin|True|False|Extends|Abstract|Final|Select|Case|Default|Const|Local|Global|Field|Method|Function|Class|End|If|Then|Else|ElseIf|EndIf|While|Wend|Repeat|Until|Forever|For|To|Step|Next|Return|Module|Interface|Implements|Inline|Throw|Null)\b/i,operator:/\.\.|<[=>]?|>=?|:?=|(?:[+\-*\/&~|]|\b(?:Mod|Shl|Shr)\b)=?|\b(?:And|Not|Or)\b/i,punctuation:/[.,:;()\[\]]/};PKfvCH}RRematerialdjango/static/materialdjango/components/bower_components/prism/components/prism-php-extras.jsPrism.languages.insertBefore('php', 'variable', {
    	'this': /\$this\b/,
    	'global': /\$(?:_(?:SERVER|GET|POST|FILES|REQUEST|SESSION|ENV|COOKIE)|GLOBALS|HTTP_RAW_POST_DATA|argc|argv|php_errormsg|http_response_header)/,
    	'scope': {
    		pattern: /\b[\w\\]+::/,
    		inside: {
    			keyword: /(static|self|parent)/,
    			punctuation: /(::|\\)/
    		}
    	}
    });PKfvCH˺8۹gmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-roboconf.min.jsPrism.languages.roboconf={comment:/#.*/,keyword:{pattern:/(^|\s)(?:(?:facet|instance of)(?=[ \t]+[\w-]+[ \t]*\{)|(?:external|import)\b)/,lookbehind:!0},component:{pattern:/[\w-]+(?=[ \t]*\{)/,alias:"variable"},property:/[\w.-]+(?=[ \t]*:)/,value:{pattern:/(=[ \t]*)[^,;]+/,lookbehind:!0,alias:"attr-value"},optional:{pattern:/\(optional\)/,alias:"builtin"},wildcard:{pattern:/(\.)\*/,lookbehind:!0,alias:"operator"},punctuation:/[{},.;:=]/};PKfvCHKK`materialdjango/static/materialdjango/components/bower_components/prism/components/prism-latex.js(function(Prism) {
    	var funcPattern = /\\([^a-z()[\]]|[a-z\*]+)/i,
    	    insideEqu = {
    		    'equation-command': {
    			    pattern: funcPattern,
    			    alias: 'regex'
    		    }
    	    };
    
    	Prism.languages.latex = {
    		'comment': /%.*/m,
    		// the verbatim environment prints whitespace to the document
    		'cdata':  {
    			pattern: /(\\begin\{((?:verbatim|lstlisting)\*?)\})([\w\W]*?)(?=\\end\{\2\})/,
    			lookbehind: true
    		},
    		/*
    		 * equations can be between $ $ or \( \) or \[ \]
    		 * (all are multiline)
    		 */
    		'equation': [
    			{
    				pattern: /\$(?:\\?[\w\W])*?\$|\\\((?:\\?[\w\W])*?\\\)|\\\[(?:\\?[\w\W])*?\\\]/,
    				inside: insideEqu,
    				alias: 'string'
    			},
    			{
    				pattern: /(\\begin\{((?:equation|math|eqnarray|align|multline|gather)\*?)\})([\w\W]*?)(?=\\end\{\2\})/,
    				lookbehind: true,
    				inside: insideEqu,
    				alias: 'string'
    			}
    		],
    		/*
    		 * arguments which are keywords or references are highlighted
    		 * as keywords
    		 */
    		'keyword': {
    			pattern: /(\\(?:begin|end|ref|cite|label|usepackage|documentclass)(?:\[[^\]]+\])?\{)[^}]+(?=\})/,
    			lookbehind: true
    		},
    		'url': {
    			pattern: /(\\url\{)[^}]+(?=\})/,
    			lookbehind: true
    		},
    		/*
    		 * section or chapter headlines are highlighted as bold so that
    		 * they stand out more
    		 */
    		'headline': {
    			pattern: /(\\(?:part|chapter|section|subsection|frametitle|subsubsection|paragraph|subparagraph|subsubparagraph|subsubsubparagraph)\*?(?:\[[^\]]+\])?\{)[^}]+(?=\}(?:\[[^\]]+\])?)/,
    			lookbehind: true,
    			alias: 'class-name'
    		},
    		'function': {
    			pattern: funcPattern,
    			alias: 'selector'
    		},
    		'punctuation': /[[\]{}&]/
    	};
    })(Prism);
    PKfvCHE"hmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-brainfuck.min.jsPrism.languages.brainfuck={pointer:{pattern:/<|>/,alias:"keyword"},increment:{pattern:/\+/,alias:"inserted"},decrement:{pattern:/-/,alias:"deleted"},branching:{pattern:/\[|\]/,alias:"important"},operator:/[.,]/,comment:/\S+/};PKfvCH4xbmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-css.min.jsPrism.languages.css={comment:/\/\*[\w\W]*?\*\//,atrule:{pattern:/@[\w-]+?.*?(;|(?=\s*\{))/i,inside:{rule:/@[\w-]+/}},url:/url\((?:(["'])(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,selector:/[^\{\}\s][^\{\};]*?(?=\s*\{)/,string:/("|')(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1/,property:/(\b|\B)[\w-]+(?=\s*:)/i,important:/\B!important\b/i,"function":/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:]/},Prism.languages.css.atrule.inside.rest=Prism.util.clone(Prism.languages.css),Prism.languages.markup&&(Prism.languages.insertBefore("markup","tag",{style:{pattern:/()[\w\W]*?(?=<\/style>)/i,lookbehind:!0,inside:Prism.languages.css,alias:"language-css"}}),Prism.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|').*?\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:Prism.languages.markup.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:Prism.languages.css}},alias:"language-css"}},Prism.languages.markup.tag));PKfvCHޚhKK_materialdjango/static/materialdjango/components/bower_components/prism/components/prism-vhdl.jsPrism.languages.vhdl = {
    	'comment': /--.+/,
    	// support for all logic vectors
    	'vhdl-vectors': {
    		'pattern': /\b[oxb]"[\da-f_]+"|"[01uxzwlh-]+"/i,
    		'alias': 'number'
    	},
    	// support for operator overloading included
    	'quoted-function': {
    		pattern: /"\S+?"(?=\()/,
    		alias: 'function'
    	},
    	'string': /"(?:[^\\\r\n]|\\?(?:\r\n|[\s\S]))*?"/,
    	'constant': /\b(?:use|library)\b/i,
    	// support for predefined attributes included
    	'keyword': /\b(?:'active|'ascending|'base|'delayed|'driving|'driving_value|'event|'high|'image|'instance_name|'last_active|'last_event|'last_value|'left|'leftof|'length|'low|'path_name|'pos|'pred|'quiet|'range|'reverse_range|'right|'rightof|'simple_name|'stable|'succ|'transaction|'val|'value|access|after|alias|all|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|new|next|null|of|on|open|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|report|return|select|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with)\b/i,
    	'boolean': /\b(?:true|false)\b/i,
    	'function': /[a-z0-9_]+(?=\()/i,
    	// decimal, based, physical, and exponential numbers supported
    	'number': /'[01uxzwlh-]'|\b(?:\d+#[\da-f_.]+#|\d[\d_.]*)(?:e[-+]?\d+)?/i,
    	'operator': /[<>]=?|:=|[-+*/&=]|\b(?:abs|not|mod|rem|sll|srl|sla|sra|rol|ror|and|or|nand|xnor|xor|nor)\b/i,
    	'punctuation': /[{}[\];(),.:]/
    };
    PKfvCH@}amaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-csharp.jsPrism.languages.csharp = Prism.languages.extend('clike', {
    	'keyword': /\b(abstract|as|async|await|base|bool|break|byte|case|catch|char|checked|class|const|continue|decimal|default|delegate|do|double|else|enum|event|explicit|extern|false|finally|fixed|float|for|foreach|goto|if|implicit|in|int|interface|internal|is|lock|long|namespace|new|null|object|operator|out|override|params|private|protected|public|readonly|ref|return|sbyte|sealed|short|sizeof|stackalloc|static|string|struct|switch|this|throw|true|try|typeof|uint|ulong|unchecked|unsafe|ushort|using|virtual|void|volatile|while|add|alias|ascending|async|await|descending|dynamic|from|get|global|group|into|join|let|orderby|partial|remove|select|set|value|var|where|yield)\b/,
    	'string': [
    		/@("|')(\1\1|\\\1|\\?(?!\1)[\s\S])*\1/,
    		/("|')(\\?.)*?\1/
    	],
    	'number': /\b-?(0x[\da-f]+|\d*\.?\d+f?)\b/i
    });
    
    Prism.languages.insertBefore('csharp', 'keyword', {
    	'preprocessor': {
    		pattern: /(^\s*)#.*/m,
    		lookbehind: true,
    		alias: 'property',
    		inside: {
    			// highlight preprocessor directives as keywords
    			'directive': {
    				pattern: /(\s*#)\b(define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\b/,
    				lookbehind: true,
    				alias: 'keyword'
    			}
    		}
    	}
    });
    PKfvCHﰶbCC`materialdjango/static/materialdjango/components/bower_components/prism/components/prism-mizar.jsPrism.languages.mizar = {
    	'comment': /::.+/,
    	'keyword': /@proof\b|\b(?:according|aggregate|all|and|antonym|are|as|associativity|assume|asymmetry|attr|be|begin|being|by|canceled|case|cases|clusters?|coherence|commutativity|compatibility|connectedness|consider|consistency|constructors|contradiction|correctness|def|deffunc|define|definitions?|defpred|do|does|equals|end|environ|ex|exactly|existence|for|from|func|given|hence|hereby|holds|idempotence|identity|iff?|implies|involutiveness|irreflexivity|is|it|let|means|mode|non|not|notations?|now|of|or|otherwise|over|per|pred|prefix|projectivity|proof|provided|qua|reconsider|redefine|reduce|reducibility|reflexivity|registrations?|requirements|reserve|sch|schemes?|section|selector|set|sethood|st|struct|such|suppose|symmetry|synonym|take|that|the|then|theorems?|thesis|thus|to|transitivity|uniqueness|vocabular(?:y|ies)|when|where|with|wrt)\b/,
    	'parameter': {
    		pattern: /\$(?:10|\d)/,
    		alias: 'variable'
    	},
    	'variable': /\w+(?=:)/,
    	'number': /(?:\b|-)\d+\b/,
    	'operator': /\.\.\.|->|&|\.?=/,
    	'punctuation': /\(#|#\)|[,:;\[\](){}]/
    };PKfvCHn
    amaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-oz.min.jsPrism.languages.oz={comment:/\/\*[\s\S]*?\*\/|%.*/,string:/"(?:[^"\\]|\\[\s\S])*"/,atom:{pattern:/'(?:[^'\\]|\\.)*'/,alias:"builtin"},keyword:/[$_]|\[\]|\b(?:at|attr|case|catch|choice|class|cond|declare|define|dis|else(?:case|if)?|end|export|fail|false|feat|finally|from|fun|functor|if|import|in|local|lock|meth|nil|not|of|or|prepare|proc|prop|raise|require|self|skip|then|thread|true|try|unit)\b/,"function":[/[a-z][A-Za-z\d]*(?=\()/,{pattern:/(\{)[A-Z][A-Za-z\d]*/,lookbehind:!0}],number:/\b(?:0[bx][\da-f]+|\d+\.?\d*(?:e~?\d+)?\b)|&(?:[^\\]|\\(?:\d{3}|.))/i,variable:/\b[A-Z][A-Za-z\d]*|`(?:[^`\\]|\\.)+`/,"attr-name":/\w+(?=:)/,operator:/:(?:=|::?)|<[-:=]?|=(?:=|=?:?|\\=:?|!!?|[|#+\-*\/,~^@]|\b(?:andthen|div|mod|orelse)\b/,punctuation:/[\[\](){}.:;?]/};PKfvCHլybmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-git.min.jsPrism.languages.git={comment:/^#.*/m,deleted:/^[-–].*/m,inserted:/^\+.*/m,string:/("|')(\\?.)*?\1/m,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s(--|-)\w+/m}},coord:/^@@.*@@$/m,commit_sha1:/^commit \w{40}$/m};PKfvCH#/[[fmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-textile.min.js!function(e){var i="(?:\\([^|)]+\\)|\\[[^\\]]+\\]|\\{[^}]+\\})+",n={css:{pattern:/\{[^}]+\}/,inside:{rest:e.languages.css}},"class-id":{pattern:/(\()[^)]+(?=\))/,lookbehind:!0,alias:"attr-value"},lang:{pattern:/(\[)[^\]]+(?=\])/,lookbehind:!0,alias:"attr-value"},punctuation:/[\\\/]\d+|\S/};e.languages.textile=e.languages.extend("markup",{phrase:{pattern:/(^|\r|\n)\S[\s\S]*?(?=$|\r?\n\r?\n|\r\r)/,lookbehind:!0,inside:{"block-tag":{pattern:RegExp("^[a-z]\\w*(?:"+i+"|[<>=()])*\\."),inside:{modifier:{pattern:RegExp("(^[a-z]\\w*)(?:"+i+"|[<>=()])+(?=\\.)"),lookbehind:!0,inside:e.util.clone(n)},tag:/^[a-z]\w*/,punctuation:/\.$/}},list:{pattern:RegExp("^[*#]+(?:"+i+")?\\s+.+","m"),inside:{modifier:{pattern:RegExp("(^[*#]+)"+i),lookbehind:!0,inside:e.util.clone(n)},punctuation:/^[*#]+/}},table:{pattern:RegExp("^(?:(?:"+i+"|[<>=()^~])+\\.\\s*)?(?:\\|(?:(?:"+i+"|[<>=()^~_]|[\\\\/]\\d+)+\\.)?[^|]*)+\\|","m"),inside:{modifier:{pattern:RegExp("(^|\\|(?:\\r?\\n|\\r)?)(?:"+i+"|[<>=()^~_]|[\\\\/]\\d+)+(?=\\.)"),lookbehind:!0,inside:e.util.clone(n)},punctuation:/\||^\./}},inline:{pattern:RegExp("(\\*\\*|__|\\?\\?|[*_%@+\\-^~])(?:"+i+")?.+?\\1"),inside:{bold:{pattern:RegExp("((^\\*\\*?)(?:"+i+")?).+?(?=\\2)"),lookbehind:!0},italic:{pattern:RegExp("((^__?)(?:"+i+")?).+?(?=\\2)"),lookbehind:!0},cite:{pattern:RegExp("(^\\?\\?(?:"+i+")?).+?(?=\\?\\?)"),lookbehind:!0,alias:"string"},code:{pattern:RegExp("(^@(?:"+i+")?).+?(?=@)"),lookbehind:!0,alias:"keyword"},inserted:{pattern:RegExp("(^\\+(?:"+i+")?).+?(?=\\+)"),lookbehind:!0},deleted:{pattern:RegExp("(^-(?:"+i+")?).+?(?=-)"),lookbehind:!0},span:{pattern:RegExp("(^%(?:"+i+")?).+?(?=%)"),lookbehind:!0},modifier:{pattern:RegExp("(^\\*\\*|__|\\?\\?|[*_%@+\\-^~])"+i),lookbehind:!0,inside:e.util.clone(n)},punctuation:/[*_%?@+\-^~]+/}},"link-ref":{pattern:/^\[[^\]]+\]\S+$/m,inside:{string:{pattern:/(\[)[^\]]+(?=\])/,lookbehind:!0},url:{pattern:/(\])\S+$/,lookbehind:!0},punctuation:/[\[\]]/}},link:{pattern:RegExp('"(?:'+i+')?[^"]+":.+?(?=[^\\w/]?(?:\\s|$))'),inside:{text:{pattern:RegExp('(^"(?:'+i+')?)[^"]+(?=")'),lookbehind:!0},modifier:{pattern:RegExp('(^")'+i),lookbehind:!0,inside:e.util.clone(n)},url:{pattern:/(:).+/,lookbehind:!0},punctuation:/[":]/}},image:{pattern:RegExp("!(?:"+i+"|[<>=()])*[^!\\s()]+(?:\\([^)]+\\))?!(?::.+?(?=[^\\w/]?(?:\\s|$)))?"),inside:{source:{pattern:RegExp("(^!(?:"+i+"|[<>=()])*)[^!\\s()]+(?:\\([^)]+\\))?(?=!)"),lookbehind:!0,alias:"url"},modifier:{pattern:RegExp("(^!)(?:"+i+"|[<>=()])+"),lookbehind:!0,inside:e.util.clone(n)},url:{pattern:/(:).+/,lookbehind:!0},punctuation:/[!:]/}},footnote:{pattern:/\b\[\d+\]/,alias:"comment",inside:{punctuation:/\[|\]/}},acronym:{pattern:/\b[A-Z\d]+\([^)]+\)/,inside:{comment:{pattern:/(\()[^)]+(?=\))/,lookbehind:!0},punctuation:/[()]/}},mark:{pattern:/\b\((TM|R|C)\)/,alias:"comment",inside:{punctuation:/[()]/}}}}});var t={inline:e.util.clone(e.languages.textile.phrase.inside.inline),link:e.util.clone(e.languages.textile.phrase.inside.link),image:e.util.clone(e.languages.textile.phrase.inside.image),footnote:e.util.clone(e.languages.textile.phrase.inside.footnote),acronym:e.util.clone(e.languages.textile.phrase.inside.acronym),mark:e.util.clone(e.languages.textile.phrase.inside.mark)};e.languages.textile.phrase.inside.inline.inside.bold.inside=t,e.languages.textile.phrase.inside.inline.inside.italic.inside=t,e.languages.textile.phrase.inside.inline.inside.inserted.inside=t,e.languages.textile.phrase.inside.inline.inside.deleted.inside=t,e.languages.textile.phrase.inside.inline.inside.span.inside=t,e.languages.textile.phrase.inside.table.inside.inline=t.inline,e.languages.textile.phrase.inside.table.inside.link=t.link,e.languages.textile.phrase.inside.table.inside.image=t.image,e.languages.textile.phrase.inside.table.inside.footnote=t.footnote,e.languages.textile.phrase.inside.table.inside.acronym=t.acronym,e.languages.textile.phrase.inside.table.inside.mark=t.mark}(Prism);PKfvCH!Ƅ^materialdjango/static/materialdjango/components/bower_components/prism/components/prism-tcl.jsPrism.languages.tcl = {
    	'comment': {
    		pattern: /(^|[^\\])#.*/,
    		lookbehind: true
    	},
    	'string': /"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*"/,
    	'variable': [
    		{
    			pattern: /(\$)(?:::)?(?:[a-zA-Z0-9]+::)*[a-zA-Z0-9_]+/,
    			lookbehind: true
    		},
    		{
    			pattern: /(\$){[^}]+}/,
    			lookbehind: true
    		},
    		{
    			pattern: /(^\s*set[ \t]+)(?:::)?(?:[a-zA-Z0-9]+::)*[a-zA-Z0-9_]+/m,
    			lookbehind: true
    		}
    	],
    	'function': {
    		pattern: /(^\s*proc[ \t]+)[^\s]+/m,
    		lookbehind: true
    	},
    	'builtin': [
    		{
    			pattern: /(^\s*)(?:proc|return|class|error|eval|exit|for|foreach|if|switch|while|break|continue)\b/m,
    			lookbehind: true
    		},
    		/\b(elseif|else)\b/
    	],
    	'scope': {
    		pattern: /(^\s*)(global|upvar|variable)\b/m,
    		lookbehind: true,
    		alias: 'constant'
    	},
    	'keyword': {
    		pattern: /(^\s*|\[)(after|append|apply|array|auto_(?:execok|import|load|mkindex|qualify|reset)|automkindex_old|bgerror|binary|catch|cd|chan|clock|close|concat|dde|dict|encoding|eof|exec|expr|fblocked|fconfigure|fcopy|file(?:event|name)?|flush|gets|glob|history|http|incr|info|interp|join|lappend|lassign|lindex|linsert|list|llength|load|lrange|lrepeat|lreplace|lreverse|lsearch|lset|lsort|math(?:func|op)|memory|msgcat|namespace|open|package|parray|pid|pkg_mkIndex|platform|puts|pwd|re_syntax|read|refchan|regexp|registry|regsub|rename|Safe_Base|scan|seek|set|socket|source|split|string|subst|Tcl|tcl(?:_endOfWord|_findLibrary|startOf(?:Next|Previous)Word|wordBreak(?:After|Before)|test|vars)|tell|time|tm|trace|unknown|unload|unset|update|uplevel|vwait)\b/m,
    		lookbehind: true
    	},
    	'operator': /!=?|\*\*?|==|&&?|\|\|?|<[=<]?|>[=>]?|[-+~\/%?^]|\b(?:eq|ne|in|ni)\b/,
    	'punctuation': /[{}()\[\]]/
    };
    PKfvCHscmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-twig.min.jsPrism.languages.twig={comment:/\{#[\s\S]*?#\}/,tag:{pattern:/\{\{[\s\S]*?\}\}|\{%[\s\S]*?%\}/,inside:{ld:{pattern:/^(?:\{\{\-?|\{%\-?\s*\w+)/,inside:{punctuation:/^(?:\{\{|\{%)\-?/,keyword:/\w+/}},rd:{pattern:/\-?(?:%\}|\}\})$/,inside:{punctuation:/.*/}},string:{pattern:/("|')(?:\\?.)*?\1/,inside:{punctuation:/^['"]|['"]$/}},keyword:/\b(?:even|if|odd)\b/,"boolean":/\b(?:true|false|null)\b/,number:/\b-?(?:0x[\dA-Fa-f]+|\d*\.?\d+([Ee][-+]?\d+)?)\b/,operator:[{pattern:/(\s)(?:and|b\-and|b\-xor|b\-or|ends with|in|is|matches|not|or|same as|starts with)(?=\s)/,lookbehind:!0},/[=<>]=?|!=|\*\*?|\/\/?|\?:?|[-+~%|]/],property:/\b[a-zA-Z_][a-zA-Z0-9_]*\b/,punctuation:/[()\[\]{}:.,]/}},other:{pattern:/\S(?:[\s\S]*\S)?/,inside:Prism.languages.markup}};PKfvCH͟ϐ
    
    \materialdjango/static/materialdjango/components/bower_components/prism/components/prism-d.jsPrism.languages.d = Prism.languages.extend('clike', {
    	'string': [
    		// r"", x""
    		/\b[rx]"(\\.|[^\\"])*"[cwd]?/,
    		// q"[]", q"()", q"<>", q"{}"
    		/\bq"(?:\[[\s\S]*?\]|\([\s\S]*?\)|<[\s\S]*?>|\{[\s\S]*?\})"/,
    		// q"IDENT
    		// ...
    		// IDENT"
    		/\bq"([_a-zA-Z][_a-zA-Z\d]*)(?:\r?\n|\r)[\s\S]*?(?:\r?\n|\r)\1"/,
    		// q"//", q"||", etc.
    		/\bq"(.)[\s\S]*?\1"/,
    		// Characters
    		/'(?:\\'|\\?[^']+)'/,
    
    		/(["`])(\\.|(?!\1)[^\\])*\1[cwd]?/
    	],
    
    	'number': [
    		// The lookbehind and the negative look-ahead try to prevent bad highlighting of the .. operator
    		// Hexadecimal numbers must be handled separately to avoid problems with exponent "e"
    		/\b0x\.?[a-f\d_]+(?:(?!\.\.)\.[a-f\d_]*)?(?:p[+-]?[a-f\d_]+)?[ulfi]*/i,
    		{
    			pattern: /((?:\.\.)?)(?:\b0b\.?|\b|\.)\d[\d_]*(?:(?!\.\.)\.[\d_]*)?(?:e[+-]?\d[\d_]*)?[ulfi]*/i,
    			lookbehind: true
    		}
    	],
    
    	// In order: $, keywords and special tokens, globally defined symbols
    	'keyword': /\$|\b(?:abstract|alias|align|asm|assert|auto|body|bool|break|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|debug|default|delegate|delete|deprecated|do|double|else|enum|export|extern|false|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat|immutable|import|inout|int|interface|invariant|ireal|lazy|long|macro|mixin|module|new|nothrow|null|out|override|package|pragma|private|protected|public|pure|real|ref|return|scope|shared|short|static|struct|super|switch|synchronized|template|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittest|ushort|version|void|volatile|wchar|while|with|__(?:(?:FILE|MODULE|LINE|FUNCTION|PRETTY_FUNCTION|DATE|EOF|TIME|TIMESTAMP|VENDOR|VERSION)__|gshared|traits|vector|parameters)|string|wstring|dstring|size_t|ptrdiff_t)\b/,
    	'operator': /\|[|=]?|&[&=]?|\+[+=]?|-[-=]?|\.?\.\.|=[>=]?|!(?:i[ns]\b|<>?=?|>=?|=)?|\bi[ns]\b|(?:<[<>]?|>>?>?|\^\^|[*\/%^~])=?/
    });
    
    
    Prism.languages.d.comment = [
    	// Shebang
    	/^\s*#!.+/,
    	// /+ +/
    	{
    		// Allow one level of nesting
    		pattern: /(^|[^\\])\/\+(?:\/\+[\w\W]*?\+\/|[\w\W])*?\+\//,
    		lookbehind: true
    	}
    ].concat(Prism.languages.d.comment);
    
    Prism.languages.insertBefore('d', 'comment', {
    	'token-string': {
    		// Allow one level of nesting
    		pattern: /\bq\{(?:|\{[^}]*\}|[^}])*\}/,
    		alias: 'string'
    	}
    });
    
    Prism.languages.insertBefore('d', 'keyword', {
    	'property': /\B@\w*/
    });
    
    Prism.languages.insertBefore('d', 'function', {
    	'register': {
    		// Iasm registers
    		pattern: /\b(?:[ABCD][LHX]|E[ABCD]X|E?(?:BP|SP|DI|SI)|[ECSDGF]S|CR[0234]|DR[012367]|TR[3-7]|X?MM[0-7]|R[ABCD]X|[BS]PL|R[BS]P|[DS]IL|R[DS]I|R(?:[89]|1[0-5])[BWD]?|XMM(?:[89]|1[0-5])|YMM(?:1[0-5]|\d))\b|\bST(?:\([0-7]\)|\b)/,
    		alias: 'variable'
    	}
    });PKfvCHzÙbmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-tcl.min.jsPrism.languages.tcl={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},string:/"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*"/,variable:[{pattern:/(\$)(?:::)?(?:[a-zA-Z0-9]+::)*[a-zA-Z0-9_]+/,lookbehind:!0},{pattern:/(\$){[^}]+}/,lookbehind:!0},{pattern:/(^\s*set[ \t]+)(?:::)?(?:[a-zA-Z0-9]+::)*[a-zA-Z0-9_]+/m,lookbehind:!0}],"function":{pattern:/(^\s*proc[ \t]+)[^\s]+/m,lookbehind:!0},builtin:[{pattern:/(^\s*)(?:proc|return|class|error|eval|exit|for|foreach|if|switch|while|break|continue)\b/m,lookbehind:!0},/\b(elseif|else)\b/],scope:{pattern:/(^\s*)(global|upvar|variable)\b/m,lookbehind:!0,alias:"constant"},keyword:{pattern:/(^\s*|\[)(after|append|apply|array|auto_(?:execok|import|load|mkindex|qualify|reset)|automkindex_old|bgerror|binary|catch|cd|chan|clock|close|concat|dde|dict|encoding|eof|exec|expr|fblocked|fconfigure|fcopy|file(?:event|name)?|flush|gets|glob|history|http|incr|info|interp|join|lappend|lassign|lindex|linsert|list|llength|load|lrange|lrepeat|lreplace|lreverse|lsearch|lset|lsort|math(?:func|op)|memory|msgcat|namespace|open|package|parray|pid|pkg_mkIndex|platform|puts|pwd|re_syntax|read|refchan|regexp|registry|regsub|rename|Safe_Base|scan|seek|set|socket|source|split|string|subst|Tcl|tcl(?:_endOfWord|_findLibrary|startOf(?:Next|Previous)Word|wordBreak(?:After|Before)|test|vars)|tell|time|tm|trace|unknown|unload|unset|update|uplevel|vwait)\b/m,lookbehind:!0},operator:/!=?|\*\*?|==|&&?|\|\|?|<[=<]?|>[=>]?|[-+~\/%?^]|\b(?:eq|ne|in|ni)\b/,punctuation:/[{}()\[\]]/};PKfvCH
    2՟amaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-monkey.jsPrism.languages.monkey = {
    	'string': /"[^"\r\n]*"/,
    	'comment': [
    		/^#Rem\s+[\s\S]*?^#End/im,
    		/'.+/,
    	],
    	'preprocessor': {
    		pattern: /(^[ \t]*)#.+/m,
    		lookbehind: true,
    		alias: 'comment'
    	},
    	'function': /\w+(?=\()/,
    	'type-char': {
    		pattern: /(\w)[?%#$]/,
    		lookbehind: true,
    		alias: 'variable'
    	},
    	'number': {
    		pattern: /((?:\.\.)?)(?:(?:\b|\B-\.?|\B\.)\d+((?!\.\.)\.\d*)?|\$[\da-f]+)/i,
    		lookbehind: true
    	},
    	'keyword': /\b(?:Void|Strict|Public|Private|Property|Bool|Int|Float|String|Array|Object|Continue|Exit|Import|Extern|New|Self|Super|Try|Catch|Eachin|True|False|Extends|Abstract|Final|Select|Case|Default|Const|Local|Global|Field|Method|Function|Class|End|If|Then|Else|ElseIf|EndIf|While|Wend|Repeat|Until|Forever|For|To|Step|Next|Return|Module|Interface|Implements|Inline|Throw|Null)\b/i,
    	'operator': /\.\.|<[=>]?|>=?|:?=|(?:[+\-*\/&~|]|\b(?:Mod|Shl|Shr)\b)=?|\b(?:And|Not|Or)\b/i,
    	'punctuation': /[.,:;()\[\]]/
    };PKfvCHgK((^materialdjango/static/materialdjango/components/bower_components/prism/components/prism-nix.jsPrism.languages.nix = {
    	'comment': /\/\*[\s\S]*?\*\/|#.*/,
    	'string': {
    		pattern: /"(?:[^"\\]|\\[\s\S])*"|''(?:(?!'')[\s\S]|''(?:'|\\|\$\{))*''/,
    		inside: {
    			'interpolation': {
    				// The lookbehind ensures the ${} is not preceded by \ or ''
    				pattern: /(^|(?:^|(?!'').)[^\\])\$\{(?:[^}]|\{[^}]*\})*}/,
    				lookbehind: true,
    				inside: {
    					'antiquotation': {
    						pattern: /^\$(?=\{)/,
    						alias: 'variable'
    					}
    					// See rest below
    				}
    			}
    		}
    	},
    	'url': [
    		/\b(?:[a-z]{3,7}:\/\/)[\w\-+%~\/.:#=?&]+/,
    		{
    			pattern: /([^\/])(?:[\w\-+%~.:#=?&]*(?!\/\/)[\w\-+%~\/.:#=?&])?(?!\/\/)\/[\w\-+%~\/.:#=?&]*/,
    			lookbehind: true
    		}
    	],
    	'antiquotation': {
    		pattern: /\$(?=\{)/,
    		alias: 'variable'
    	},
    	'number': /\b\d+\b/,
    	'keyword': /\b(?:assert|builtins|else|if|in|inherit|let|null|or|then|with)\b/,
    	'function': /\b(?:abort|add|all|any|attrNames|attrValues|baseNameOf|compareVersions|concatLists|currentSystem|deepSeq|derivation|dirOf|div|elem(?:At)?|fetch(?:url|Tarball)|filter(?:Source)?|fromJSON|genList|getAttr|getEnv|hasAttr|hashString|head|import|intersectAttrs|is(?:Attrs|Bool|Function|Int|List|Null|String)|length|lessThan|listToAttrs|map|mul|parseDrvName|pathExists|read(?:Dir|File)|removeAttrs|replaceStrings|seq|sort|stringLength|sub(?:string)?|tail|throw|to(?:File|JSON|Path|String|XML)|trace|typeOf)\b|\bfoldl'\B/,
    	'boolean': /\b(?:true|false)\b/,
    	'operator': /[=!<>]=?|\+\+?|\|\||&&|\/\/|->?|[?@]/,
    	'punctuation': /[{}()[\].,:;]/
    };
    
    Prism.languages.nix.string.inside.interpolation.inside.rest = Prism.util.clone(Prism.languages.nix);PKfvCHf0@cmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-haxe.min.jsPrism.languages.haxe=Prism.languages.extend("clike",{string:{pattern:/(["'])(?:(?!\1)[^\\]|\\[\s\S])*\1/,inside:{interpolation:{pattern:/(^|[^\\])\$(?:\w+|\{[^}]+\})/,lookbehind:!0,inside:{interpolation:{pattern:/^\$\w*/,alias:"variable"}}}}},keyword:/\bthis\b|\b(?:abstract|as|break|case|cast|catch|class|continue|default|do|dynamic|else|enum|extends|extern|from|for|function|if|implements|import|in|inline|interface|macro|new|null|override|public|private|return|static|super|switch|throw|to|try|typedef|using|var|while)(?!\.)\b/,operator:/\.{3}|\+\+?|-[->]?|[=!]=?|&&?|\|\|?|<[<=]?|>[>=]?|[*\/%~^]/}),Prism.languages.insertBefore("haxe","class-name",{regex:{pattern:/~\/(?:[^\/\\\r\n]|\\.)+\/[igmsu]*/}}),Prism.languages.insertBefore("haxe","keyword",{preprocessor:{pattern:/#\w+/,alias:"builtin"},metadata:{pattern:/@:?\w+/,alias:"symbol"},reification:{pattern:/\$(?:\w+|(?=\{))/,alias:"variable"}}),Prism.languages.haxe.string.inside.interpolation.inside.rest=Prism.util.clone(Prism.languages.haxe),delete Prism.languages.haxe["class-name"];PKfvCH?rrematerialdjango/static/materialdjango/components/bower_components/prism/components/prism-objectivec.jsPrism.languages.objectivec = Prism.languages.extend('c', {
    	'keyword': /\b(asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while|in|self|super)\b|(@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,
    	'string': /("|')(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|@"(\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,
    	'operator': /-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/
    });
    PKfvCHwLwnnamaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-fsharp.jsPrism.languages.fsharp = Prism.languages.extend('clike', {
    	'comment': [
    		{
    			pattern: /(^|[^\\])\(\*[\w\W]*?\*\)/,
    			lookbehind: true
    		},
    		{
    			pattern: /(^|[^\\:])\/\/.*/,
    			lookbehind: true
    		}
    	],
    	'keyword': /\b(?:let|return|use|yield)(?:!\B|\b)|\b(abstract|and|as|assert|base|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|global|if|in|inherit|inline|interface|internal|lazy|match|member|module|mutable|namespace|new|not|null|of|open|or|override|private|public|rec|select|static|struct|then|to|true|try|type|upcast|val|void|when|while|with|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|include|method|mixin|object|parallel|process|protected|pure|sealed|tailcall|trait|virtual|volatile)\b/,
    	'string': /(?:"""[\s\S]*?"""|@"(?:""|[^"])*"|("|')(?:\\\1|\\?(?!\1)[\s\S])*\1)B?/,
    	'number': [
    		/\b-?0x[\da-fA-F]+(un|lf|LF)?\b/,
    		/\b-?0b[01]+(y|uy)?\b/,
    		/\b-?(\d*\.?\d+|\d+\.)([fFmM]|[eE][+-]?\d+)?\b/,
    		/\b-?\d+(y|uy|s|us|l|u|ul|L|UL|I)?\b/
    	]
    });
    Prism.languages.insertBefore('fsharp', 'keyword', {
    	'preprocessor': {
    		pattern: /^[^\r\n\S]*#.*/m,
    		alias: 'property',
    		inside: {
    			'directive': {
    				pattern: /(\s*#)\b(else|endif|if|light|line|nowarn)\b/,
    				lookbehind: true,
    				alias: 'keyword'
    			}
    		}
    	}
    });
    PKfvCHdmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-scala.min.jsPrism.languages.scala=Prism.languages.extend("java",{keyword:/<-|=>|\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\b/,string:/"""[\W\w]*?"""|"(?:[^"\\\r\n]|\\.)*"|'(?:[^\\\r\n']|\\.[^\\']*)'/,builtin:/\b(?:String|Int|Long|Short|Byte|Boolean|Double|Float|Char|Any|AnyRef|AnyVal|Unit|Nothing)\b/,number:/\b(?:0x[\da-f]*\.?[\da-f]+|\d*\.?\d+e?\d*[dfl]?)\b/i,symbol:/'[^\d\s\\]\w*/}),delete Prism.languages.scala["class-name"],delete Prism.languages.scala["function"];PKfvCH֘amaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-scheme.jsPrism.languages.scheme = {
    	'comment' : /;.*/,
    	'string' :  /"(?:[^"\\\r\n]|\\.)*?"|'[^('\s]*/,
    	'keyword' : {
    		pattern : /(\()(?:define(?:-syntax|-library|-values)?|(?:case-)?lambda|let(?:\*|rec)?(?:-values)?|else|if|cond|begin|delay(?:-force)?|parameterize|guard|set!|(?:quasi-)?quote|syntax-rules)/,
    		lookbehind : true
    	},
    	'builtin' : {
    		pattern :  /(\()(?:(?:cons|car|cdr|list|call-with-current-continuation|call\/cc|append|abs|apply|eval)\b|null\?|pair\?|boolean\?|eof-object\?|char\?|procedure\?|number\?|port\?|string\?|vector\?|symbol\?|bytevector\?)/,
    		lookbehind : true
    	},
    	'number' : {
    		pattern: /(\s|\))[-+]?[0-9]*\.?[0-9]+(?:\s*[-+]\s*[0-9]*\.?[0-9]+i)?\b/,
    		lookbehind: true
    	},
    	'boolean' : /#[tf]/,
    	'operator': {
    		pattern: /(\()(?:[-+*%\/]|[<>]=?|=>?)/,
    		lookbehind: true
    	},
    	'function' : {
    		pattern : /(\()[^\s()]*(?=\s)/,
    		lookbehind : true
    	},
    	'punctuation' : /[()]/
    };PKfvCHOI((_materialdjango/static/materialdjango/components/bower_components/prism/components/prism-core.jsvar _self = (typeof window !== 'undefined')
    	? window   // if in browser
    	: (
    		(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)
    		? self // if in worker
    		: {}   // if in node js
    	);
    
    /**
     * Prism: Lightweight, robust, elegant syntax highlighting
     * MIT license http://www.opensource.org/licenses/mit-license.php/
     * @author Lea Verou http://lea.verou.me
     */
    
    var Prism = (function(){
    
    // Private helper vars
    var lang = /\blang(?:uage)?-(\w+)\b/i;
    var uniqueId = 0;
    
    var _ = _self.Prism = {
    	util: {
    		encode: function (tokens) {
    			if (tokens instanceof Token) {
    				return new Token(tokens.type, _.util.encode(tokens.content), tokens.alias);
    			} else if (_.util.type(tokens) === 'Array') {
    				return tokens.map(_.util.encode);
    			} else {
    				return tokens.replace(/&/g, '&').replace(/ text.length) {
    						// Something went terribly wrong, ABORT, ABORT!
    						break tokenloop;
    					}
    
    					if (str instanceof Token) {
    						continue;
    					}
    
    					pattern.lastIndex = 0;
    
    					var match = pattern.exec(str);
    
    					if (match) {
    						if(lookbehind) {
    							lookbehindLength = match[1].length;
    						}
    
    						var from = match.index - 1 + lookbehindLength,
    							match = match[0].slice(lookbehindLength),
    							len = match.length,
    							to = from + len,
    							before = str.slice(0, from + 1),
    							after = str.slice(to + 1);
    
    						var args = [i, 1];
    
    						if (before) {
    							args.push(before);
    						}
    
    						var wrapped = new Token(token, inside? _.tokenize(match, inside) : match, alias);
    
    						args.push(wrapped);
    
    						if (after) {
    							args.push(after);
    						}
    
    						Array.prototype.splice.apply(strarr, args);
    					}
    				}
    			}
    		}
    
    		return strarr;
    	},
    
    	hooks: {
    		all: {},
    
    		add: function (name, callback) {
    			var hooks = _.hooks.all;
    
    			hooks[name] = hooks[name] || [];
    
    			hooks[name].push(callback);
    		},
    
    		run: function (name, env) {
    			var callbacks = _.hooks.all[name];
    
    			if (!callbacks || !callbacks.length) {
    				return;
    			}
    
    			for (var i=0, callback; callback = callbacks[i++];) {
    				callback(env);
    			}
    		}
    	}
    };
    
    var Token = _.Token = function(type, content, alias) {
    	this.type = type;
    	this.content = content;
    	this.alias = alias;
    };
    
    Token.stringify = function(o, language, parent) {
    	if (typeof o == 'string') {
    		return o;
    	}
    
    	if (_.util.type(o) === 'Array') {
    		return o.map(function(element) {
    			return Token.stringify(element, language, o);
    		}).join('');
    	}
    
    	var env = {
    		type: o.type,
    		content: Token.stringify(o.content, language, parent),
    		tag: 'span',
    		classes: ['token', o.type],
    		attributes: {},
    		language: language,
    		parent: parent
    	};
    
    	if (env.type == 'comment') {
    		env.attributes['spellcheck'] = 'true';
    	}
    
    	if (o.alias) {
    		var aliases = _.util.type(o.alias) === 'Array' ? o.alias : [o.alias];
    		Array.prototype.push.apply(env.classes, aliases);
    	}
    
    	_.hooks.run('wrap', env);
    
    	var attributes = '';
    
    	for (var name in env.attributes) {
    		attributes += (attributes ? ' ' : '') + name + '="' + (env.attributes[name] || '') + '"';
    	}
    
    	return '<' + env.tag + ' class="' + env.classes.join(' ') + '" ' + attributes + '>' + env.content + '';
    
    };
    
    if (!_self.document) {
    	if (!_self.addEventListener) {
    		// in Node.js
    		return _self.Prism;
    	}
     	// In worker
    	_self.addEventListener('message', function(evt) {
    		var message = JSON.parse(evt.data),
    		    lang = message.language,
    		    code = message.code,
    		    immediateClose = message.immediateClose;
    
    		_self.postMessage(_.highlight(code, _.languages[lang], lang));
    		if (immediateClose) {
    			_self.close();
    		}
    	}, false);
    
    	return _self.Prism;
    }
    
    //Get current script and highlight
    var script = document.currentScript || [].slice.call(document.getElementsByTagName("script")).pop();
    
    if (script) {
    	_.filename = script.src;
    
    	if (document.addEventListener && !script.hasAttribute('data-manual')) {
    		document.addEventListener('DOMContentLoaded', _.highlightAll);
    	}
    }
    
    return _self.Prism;
    
    })();
    
    if (typeof module !== 'undefined' && module.exports) {
    	module.exports = Prism;
    }
    
    // hack for components to work correctly in node.js
    if (typeof global !== 'undefined') {
    	global.Prism = Prism;
    }
    PKfvCH_dmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-latex.min.js!function(a){var e=/\\([^a-z()[\]]|[a-z\*]+)/i,n={"equation-command":{pattern:e,alias:"regex"}};a.languages.latex={comment:/%.*/m,cdata:{pattern:/(\\begin\{((?:verbatim|lstlisting)\*?)\})([\w\W]*?)(?=\\end\{\2\})/,lookbehind:!0},equation:[{pattern:/\$(?:\\?[\w\W])*?\$|\\\((?:\\?[\w\W])*?\\\)|\\\[(?:\\?[\w\W])*?\\\]/,inside:n,alias:"string"},{pattern:/(\\begin\{((?:equation|math|eqnarray|align|multline|gather)\*?)\})([\w\W]*?)(?=\\end\{\2\})/,lookbehind:!0,inside:n,alias:"string"}],keyword:{pattern:/(\\(?:begin|end|ref|cite|label|usepackage|documentclass)(?:\[[^\]]+\])?\{)[^}]+(?=\})/,lookbehind:!0},url:{pattern:/(\\url\{)[^}]+(?=\})/,lookbehind:!0},headline:{pattern:/(\\(?:part|chapter|section|subsection|frametitle|subsubsection|paragraph|subparagraph|subsubparagraph|subsubsubparagraph)\*?(?:\[[^\]]+\])?\{)[^}]+(?=\}(?:\[[^\]]+\])?)/,lookbehind:!0,alias:"class-name"},"function":{pattern:e,alias:"selector"},punctuation:/[[\]{}&]/}}(Prism);PKfvCH/Odmaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-ocaml.min.jsPrism.languages.ocaml={comment:/\(\*[\s\S]*?\*\)/,string:[/"(?:\\.|[^\\\r\n"])*"/,/(['`])(?:\\(?:\d+|x[\da-f]+|.)|(?!\1)[^\\\r\n])\1/i],number:/\b-?(?:0x[\da-f][\da-f_]+|(?:0[bo])?\d[\d_]*\.?[\d_]*(?:e[+-]?[\d_]+)?)/i,type:{pattern:/\B['`][a-z\d_]*/i,alias:"variable"},directive:{pattern:/\B#[a-z\d_]+/i,alias:"function"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|object|of|open|prefix|private|rec|then|sig|struct|to|try|type|val|value|virtual|where|while|with)\b/,"boolean":/\b(?:false|true)\b/,operator:/:=|[=<>@^|&+\-*\/$%!?~][!$%&\*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lxor|lsl|lsr|mod|nor|or)\b/,punctuation:/[(){}\[\]|_.,:;]/};PKfvCH
    :ematerialdjango/static/materialdjango/components/bower_components/prism/components/prism-keyman.min.jsPrism.languages.keyman={comment:/\bc\s.*/i,"function":/\[\s*((CTRL|SHIFT|ALT|LCTRL|RCTRL|LALT|RALT|CAPS|NCAPS)\s+)*([TKU]_[a-z0-9_?]+|".+?"|'.+?')\s*\]/i,string:/("|')((?!\1).)*\1/,bold:[/&(baselayout|bitmap|capsononly|capsalwaysoff|shiftfreescaps|copyright|ethnologuecode|hotkey|includecodes|keyboardversion|kmw_embedcss|kmw_embedjs|kmw_helpfile|kmw_helptext|kmw_rtl|language|layer|layoutfile|message|mnemoniclayout|name|oldcharposmatching|platform|targets|version|visualkeyboard|windowslanguages)\b/i,/\b(bitmap|bitmaps|caps on only|caps always off|shift frees caps|copyright|hotkey|language|layout|message|name|version)\b/i],keyword:/\b(any|baselayout|beep|call|context|deadkey|dk|if|index|layer|notany|nul|outs|platform|return|reset|save|set|store|use)\b/i,atrule:/\b(ansi|begin|unicode|group|using keys|match|nomatch)\b/i,number:/\b(U\+[\dA-F]+|d\d+|x[\da-f]+|\d+)\b/i,operator:/[+>\\,()]/,tag:/\$(keyman|kmfl|weaver|keymanweb|keymanonly):/i};PKfvCHvqޗematerialdjango/static/materialdjango/components/bower_components/prism/components/prism-pascal.min.jsPrism.languages.pascal={comment:[/\(\*[\s\S]+?\*\)/,/\{[\s\S]+?\}/,/\/\/.*/],string:/(?:'(?:''|[^'\r\n])*'|#[&$%]?[a-f\d]+)+|\^[a-z]/i,keyword:[{pattern:/(^|[^&])\b(?:absolute|array|asm|begin|case|const|constructor|destructor|do|downto|else|end|file|for|function|goto|if|implementation|inherited|inline|interface|label|nil|object|of|operator|packed|procedure|program|record|reintroduce|repeat|self|set|string|then|to|type|unit|until|uses|var|while|with)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:dispose|exit|false|new|true)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:class|dispinterface|except|exports|finalization|finally|initialization|inline|library|on|out|packed|property|raise|resourcestring|threadvar|try)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:absolute|abstract|alias|assembler|bitpacked|break|cdecl|continue|cppdecl|cvar|default|deprecated|dynamic|enumerator|experimental|export|external|far|far16|forward|generic|helper|implements|index|interrupt|iochecks|local|message|name|near|nodefault|noreturn|nostackframe|oldfpccall|otherwise|overload|override|pascal|platform|private|protected|public|published|read|register|reintroduce|result|safecall|saveregisters|softfloat|specialize|static|stdcall|stored|strict|unaligned|unimplemented|varargs|virtual|write)\b/i,lookbehind:!0}],number:[/[+-]?(?:[&%]\d+|\$[a-f\d]+)/i,/([+-]|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?/i],operator:[/\.\.|\*\*|:=|<[<=>]?|>[>=]?|[+\-*\/]=?|[@^=]/i,{pattern:/(^|[^&])\b(?:and|as|div|exclude|in|include|is|mod|not|or|shl|shr|xor)\b/,lookbehind:!0}],punctuation:/\(\.|\.\)|[()\[\]:;,.]/};PKfvCH3\materialdjango/static/materialdjango/components/bower_components/prism/components/prism-j.jsPrism.languages.j = {
    	'comment': /\bNB\..*/,
    	'string': /'(?:''|[^'\r\n])*'/,
    	'keyword': /\b(?:(?:adverb|conjunction|CR|def|define|dyad|LF|monad|noun|verb)\b|(?:assert|break|case|catch[dt]?|continue|do|else|elseif|end|fcase|for|for_\w+|goto_\w+|if|label_\w+|return|select|throw|try|while|whilst)\.)/,
    	'verb': {
    		// Negative look-ahead prevents bad highlighting
    		// of ^: ;. =. =: !. !:
    		pattern: /(?!\^:|;\.|[=!][.:])(?:\{(?:\.|::?)?|p(?:\.\.?|:)|[=!\]]|[<>+*\-%$|,#][.:]?|[\^?]\.?|[;\[]:?|[~}"i][.:]|[ACeEIjLor]\.|(?:[_\/\\qsux]|_?\d):)/,
    		alias: 'keyword'
    	},
    	'number': /\b_?(?:(?!\d:)\d+(?:\.\d+)?(?:(?:[ejpx]|ad|ar)_?\d+(?:\.\d+)?)*(?:b_?[\da-z]+(?:\.[\da-z]+)?)?|_(?!\.))/,
    	'adverb': {
    		pattern: /[~}]|[\/\\]\.?|[bfM]\.|t[.:]/,
    		alias: 'builtin'
    	},
    	'operator': /[=a][.:]|_\./,
    	'conjunction': {
    		pattern: /&(?:\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\.|`:?|[\^LS]:|"/,
    		alias: 'variable'
    	},
    	'punctuation': /[()]/
    };PKfvCHfamaterialdjango/static/materialdjango/components/bower_components/prism/components/prism-go.min.jsPrism.languages.go=Prism.languages.extend("clike",{keyword:/\b(break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,builtin:/\b(bool|byte|complex(64|128)|error|float(32|64)|rune|string|u?int(8|16|32|64|)|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(ln)?|real|recover)\b/,"boolean":/\b(_|iota|nil|true|false)\b/,operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,number:/\b(-?(0x[a-f\d]+|(\d+\.?\d*|\.\d+)(e[-+]?\d+)?)i?)\b/i,string:/("|'|`)(\\?.|\r|\n)*?\1/}),delete Prism.languages.go["class-name"];PKfvCHm$$_materialdjango/static/materialdjango/components/bower_components/prism/components/prism-jade.js(function(Prism) {
    	// TODO:
    	// - Add CSS highlighting inside 
    
          
          
    
          
    Resize the window
    Here's another sentence; it's not very long.
    print example
    This link's destination is visible when this page is printed. This is another sentence which is meant to help fill this box.
    PK rGts Zmaterialdjango/static/materialdjango/components/bower_components/iron-ajax/CONTRIBUTING.md # Polymer Elements ## Guide for Contributors Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: ### Filing Issues **If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: 1. **Who will use the feature?** _“As someone filling out a form…”_ 2. **When will they use the feature?** _“When I enter an invalid value…”_ 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ **If you are filing an issue to report a bug**, please provide: 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: ```markdown The `paper-foo` element causes the page to turn pink when clicked. ## Expected outcome The page stays the same color. ## Actual outcome The page turns pink. ## Steps to reproduce 1. Put a `paper-foo` element in the page. 2. Open the page in a web browser. 3. Click the `paper-foo` element. ``` 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [http://jsbin.com/cagaye](http://jsbin.com/cagaye/edit?html,output). 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. ### Submitting Pull Requests **Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. When submitting pull requests, please provide: 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues using the following syntax: ```markdown (For a single issue) Fixes #20 (For multiple issues) Fixes #32, #40 ``` 2. **A succinct description of the design** used to fix any related issues. For example: ```markdown This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. ``` 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! PKRG55Vmaterialdjango/static/materialdjango/components/bower_components/iron-ajax/.bower.json{ "name": "iron-ajax", "version": "1.1.1", "description": "Makes it easy to make ajax calls and parse the response", "private": true, "authors": [ "The Polymer Authors" ], "keywords": [ "web-components", "polymer", "ajax" ], "main": "iron-ajax.html", "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-ajax.git" }, "license": "http://polymer.github.io/LICENSE.txt", "homepage": "https://github.com/PolymerElements/iron-ajax", "ignore": [], "dependencies": { "promise-polyfill": "polymerlabs/promise-polyfill#^1.0.0", "polymer": "Polymer/polymer#^1.0.0" }, "devDependencies": { "iron-component-page": "polymerelements/iron-component-page#^1.0.0", "iron-image": "polymerelements/iron-image#^1.0.0", "paper-styles": "polymerelements/paper-styles#^1.0.0", "test-fixture": "polymerelements/test-fixture#^1.0.0", "web-component-tester": "polymer/web-component-tester#^3.4.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" }, "_release": "1.1.1", "_resolution": { "type": "version", "tag": "v1.1.1", "commit": "885ba9c0bf163ebac47e730be4bc231f84b3712a" }, "_source": "git://github.com/PolymerElements/iron-ajax.git", "_target": "^1.0.0", "_originalSource": "PolymerElements/iron-ajax" }PK rGdLeeUmaterialdjango/static/materialdjango/components/bower_components/iron-ajax/index.html iron-ajax PK rGG?Smaterialdjango/static/materialdjango/components/bower_components/iron-ajax/hero.svg PK rGq !2!2Ymaterialdjango/static/materialdjango/components/bower_components/iron-ajax/iron-ajax.html PK rGxVmaterialdjango/static/materialdjango/components/bower_components/iron-ajax/.travis.ymllanguage: node_js sudo: false before_script: - npm install web-component-tester - npm install bower - 'export PATH=$PWD/node_modules/.bin:$PATH' - bower install env: global: - secure: hRC0relOOVO3kqrrnBe1sAaYIMRzcDJTdzemzNxHMt/6f1+4RDt+VsSZtDZ7ax5v6RIUioiCFDgP7GVAzeGkK6AmBoLjzbcUXodS4KDY1oJfhXpuuHrFFN//ZOIsfFXcqf2641cC0vmpg2ztTYfGEVknpmf+9ruWAauBEgzsIhM= - secure: jH6XJuB05Tkg4433BXfIOeLR6XkkuUz4yUpv+WjOBe2dCsN3sYYg/7u6FFVw4hKrPt58mKfp2KC1DhPws9GR+/F6ky99a27y+Al0AZL+lVdy+lPJ05SjX3sr2mXA8He7y+EnbCZdu73X8R2KZNvj021JbnZufBqUzmzDq/amtU4= node_js: 4 addons: firefox: '42.0' apt: sources: - google-chrome packages: - google-chrome-stable script: - xvfb-run wct - "if [ \"${TRAVIS_PULL_REQUEST}\" = \"false\" ]; then wct -s 'default'; fi" PK rG&pvBBTmaterialdjango/static/materialdjango/components/bower_components/iron-ajax/README.md [![Build Status](https://travis-ci.org/PolymerElements/iron-ajax.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-ajax) _[Demo and API Docs](https://elements.polymer-project.org/elements/iron-ajax)_ ##<iron-ajax> The `iron-ajax` element exposes network request functionality. With `auto` set to `true`, the element performs a request whenever its `url`, `params` or `body` properties are changed. Automatically generated requests will be debounced in the case that multiple attributes are changed sequentially. Note: The `params` attribute must be double quoted JSON. You can trigger a request explicitly by calling `generateRequest` on the element. ##<iron-request> iron-request can be used to perform XMLHttpRequests. ... this.$.xhr.send({url: url, params: params}); PK rGKBUmaterialdjango/static/materialdjango/components/bower_components/iron-ajax/.gitignorebower_components PK rG=Umaterialdjango/static/materialdjango/components/bower_components/iron-ajax/bower.json{ "name": "iron-ajax", "version": "1.1.1", "description": "Makes it easy to make ajax calls and parse the response", "private": true, "authors": [ "The Polymer Authors" ], "keywords": [ "web-components", "polymer", "ajax" ], "main": "iron-ajax.html", "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-ajax.git" }, "license": "http://polymer.github.io/LICENSE.txt", "homepage": "https://github.com/PolymerElements/iron-ajax", "ignore": [], "dependencies": { "promise-polyfill": "polymerlabs/promise-polyfill#^1.0.0", "polymer": "Polymer/polymer#^1.0.0" }, "devDependencies": { "iron-component-page": "polymerelements/iron-component-page#^1.0.0", "iron-image": "polymerelements/iron-image#^1.0.0", "paper-styles": "polymerelements/paper-styles#^1.0.0", "test-fixture": "polymerelements/test-fixture#^1.0.0", "web-component-tester": "polymer/web-component-tester#^3.4.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" } } PK rG PK rGw\\Zmaterialdjango/static/materialdjango/components/bower_components/iron-ajax/test/index.html PK rGںii^materialdjango/static/materialdjango/components/bower_components/iron-ajax/test/iron-ajax.html iron-ajax PK rG4""amaterialdjango/static/materialdjango/components/bower_components/iron-ajax/test/iron-request.html iron-request PK rGbwZmaterialdjango/static/materialdjango/components/bower_components/iron-ajax/demo/index.html iron-ajax

    Video Feed

    PK)Hts ]materialdjango/static/materialdjango/components/bower_components/paper-slider/CONTRIBUTING.md # Polymer Elements ## Guide for Contributors Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: ### Filing Issues **If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: 1. **Who will use the feature?** _“As someone filling out a form…”_ 2. **When will they use the feature?** _“When I enter an invalid value…”_ 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ **If you are filing an issue to report a bug**, please provide: 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: ```markdown The `paper-foo` element causes the page to turn pink when clicked. ## Expected outcome The page stays the same color. ## Actual outcome The page turns pink. ## Steps to reproduce 1. Put a `paper-foo` element in the page. 2. Open the page in a web browser. 3. Click the `paper-foo` element. ``` 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [http://jsbin.com/cagaye](http://jsbin.com/cagaye/edit?html,output). 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. ### Submitting Pull Requests **Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. When submitting pull requests, please provide: 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues using the following syntax: ```markdown (For a single issue) Fixes #20 (For multiple issues) Fixes #32, #40 ``` 2. **A succinct description of the design** used to fix any related issues. For example: ```markdown This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. ``` 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! PK?HŋYmaterialdjango/static/materialdjango/components/bower_components/paper-slider/.bower.json{ "name": "paper-slider", "version": "1.0.9", "description": "A material design-style slider", "license": "http://polymer.github.io/LICENSE.txt", "authors": "The Polymer Authors", "keywords": [ "web-components", "polymer", "slider", "control" ], "main": "paper-slider.html", "repository": { "type": "git", "url": "git://github.com/PolymerElements/paper-slider.git" }, "ignore": [], "dependencies": { "polymer": "Polymer/polymer#^1.1.0", "paper-input": "PolymerElements/paper-input#^1.0.0", "paper-progress": "PolymerElements/paper-progress#^1.0.0", "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", "paper-styles": "PolymerElements/paper-styles#^1.0.0", "iron-behaviors": "PolymerElements/iron-behaviors#^1.0.0", "paper-behaviors": "PolymerElements/paper-behaviors#^1.0.0", "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#^1.0.0", "iron-form-element-behavior": "PolymerElements/iron-form-element-behavior#^1.0.0" }, "devDependencies": { "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", "test-fixture": "PolymerElements/test-fixture#^1.0.0", "iron-test-helpers": "polymerelements/iron-test-helpers#^1.0.0", "web-component-tester": "polymer/web-component-tester#^3.4.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" }, "homepage": "https://github.com/PolymerElements/paper-slider", "_release": "1.0.9", "_resolution": { "type": "version", "tag": "v1.0.9", "commit": "5814b574e9440cec40619157f00b7aa2ced20c8d" }, "_source": "git://github.com/PolymerElements/paper-slider.git", "_target": "^1.0.0", "_originalSource": "PolymerElements/paper-slider" }PK)H.VV_materialdjango/static/materialdjango/components/bower_components/paper-slider/paper-slider.html PK)H/Xmaterialdjango/static/materialdjango/components/bower_components/paper-slider/index.html paper-slider PK!G.1^materialdjango/static/materialdjango/components/bower_components/paper-slider/paper-slider.css/** @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: inline-block; width: 200px; cursor: default; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } :host(:not([disabled])) #sliderBar { --paper-progress-active-color: var(--paper-slider-active-color, --google-blue-700); } :host(:not([disabled])) #sliderBar { --paper-progress-secondary-color: var(--paper-slider-secondary-color, --google-blue-300); } :host([disabled]) #sliderBar { --paper-progress-active-color: var(--paper-slider-disabled-active-color, --google-grey-500); } :host([disabled]) #sliderBar { --paper-progress-secondary-color: var(--paper-slider-disabled-secondary-color, --google-grey-300); } :host(:focus) { outline: none; } #sliderContainer { position: relative; width: calc(100% - 32px); height: 32px; } #sliderContainer.editable { float: left; width: calc(100% - 72px); margin: 12px 0; } .bar-container { position: absolute; top: 0; left: 16px; height: 100%; width: 100%; overflow: hidden; } .ring > .bar-container { left: 20px; width: calc(100% - 4px); transition: left 0.18s ease, width 0.18s ease; } .ring.expand:not(.pin) > .bar-container { left: 30px; width: calc(100% - 14px); } .ring.expand.dragging > .bar-container { transition: none; } #sliderBar { position: absolute; top: 15px; left: 0; height: 2px; width: 100%; padding: 8px 0; margin: -8px 0; background-color: var(--paper-slider-bar-color, transparent); } .ring #sliderBar { left: -4px; width: calc(100% + 4px); } .ring.expand:not(.pin) #sliderBar { left: -14px; width: calc(100% + 14px); } .slider-markers { position: absolute; top: 15px; left: 15px; height: 2px; width: calc(100% + 2px); box-sizing: border-box; pointer-events: none; } .slider-markers::after, .slider-marker::after { content: ""; display: block; width: 2px; height: 2px; border-radius: 50%; background-color: black; } #sliderKnob { @apply(--layout-center-justified); @apply(--layout-center); @apply(--layout-horizontal); position: absolute; left: 0; top: 0; width: 32px; height: 32px; } .transiting > #sliderKnob { transition: left 0.08s ease; } #sliderKnob:focus { outline: none; } #sliderKnob.dragging { transition: none; } .snaps > #sliderKnob.dragging { transition: -webkit-transform 0.08s ease; transition: transform 0.08s ease; } #sliderKnobInner { width: 12px; height: 12px; border-radius: 50%; background-color: var(--paper-slider-knob-color, --google-blue-700); -moz-box-sizing: border-box; box-sizing: border-box; transition-property: height, width, background-color, border; transition-duration: 0.1s; transition-timing-function: ease; } .expand:not(.pin) > #sliderKnob > #sliderKnobInner { width: 100%; height: 100%; -webkit-transform: translateZ(0); transform: translateZ(0); } .ring > #sliderKnob > #sliderKnobInner { background-color: var(--paper-slider-knob-start-color, transparent); border: 2px solid var(--paper-slider-knob-start-border-color, #c8c8c8); } #sliderKnobInner::before { background-color: var(--paper-slider-pin-color, --google-blue-700); } .pin > #sliderKnob > #sliderKnobInner::before { content: ""; position: absolute; top: 0; left: 0; width: 26px; height: 26px; margin-left: 3px; border-radius: 50% 50% 50% 0; -webkit-transform: rotate(-45deg) scale(0) translate(0); transform: rotate(-45deg) scale(0) translate(0); } #sliderKnobInner::before, #sliderKnobInner::after { transition: -webkit-transform .2s ease, background-color .18s ease; transition: transform .2s ease, background-color .18s ease; } .pin.ring > #sliderKnob > #sliderKnobInner::before { background-color: var(--paper-slider-pin-start-color, #c8c8c8); } .pin.expand > #sliderKnob > #sliderKnobInner::before { -webkit-transform: rotate(-45deg) scale(1) translate(17px, -17px); transform: rotate(-45deg) scale(1) translate(17px, -17px); } .pin > #sliderKnob > #sliderKnobInner::after { content: attr(value); position: absolute; top: 0; left: 0; width: 32px; height: 26px; text-align: center; color: var(--paper-slider-font-color, #fff); font-size: 10px; -webkit-transform: scale(0) translate(0); transform: scale(0) translate(0); } .pin.expand > #sliderKnob > #sliderKnobInner::after { -webkit-transform: scale(1) translate(0, -17px); transform: scale(1) translate(0, -17px); } /* editable: paper-input */ .slider-input { width: 40px; float: right; overflow: hidden; } .slider-input { --paper-input-container-input: { text-align: center; }; } /* disabled state */ #sliderContainer.disabled { pointer-events: none; } .disabled > #sliderKnob > #sliderKnobInner { width: 8px; height: 8px; background-color: var(--paper-slider-disabled-knob-color, --google-grey-500); } .disabled.ring > #sliderKnob > #sliderKnobInner { background-color: transparent; } paper-ripple { color: var(--paper-slider-knob-color, --google-blue-700); } PK)H  Vmaterialdjango/static/materialdjango/components/bower_components/paper-slider/hero.svg PK)H<_1Ymaterialdjango/static/materialdjango/components/bower_components/paper-slider/.travis.ymllanguage: node_js sudo: false before_script: - npm install web-component-tester - npm install bower - 'export PATH=$PWD/node_modules/.bin:$PATH' - bower install env: global: - secure: W9pv3wK5AyI038GpPZpFo5yii72up1pTHM9yu8TI4th6Q/TiUQCa8GbjAMhUcbMDl3Y4i50WjckykSox+c506Zs5Pe5vDCaKpHT/iOHYqjIaQEDGGvvKWxSTJr82HY2taNhkH7seksg7oKq8dL7DCBLyKJUl03hGmRqZABjIw9fWjSNUb9PVdlZass5nJaqw954t76GYBWcQ71fntm8uCnSrQoviHEprvfwZMNnK0mhd79VmBohl83jpFU8FaYEWLc5IFY29u7McLxgynZBggwhGSrvdDrOYG4jtn26RNx4mNCcJGxejzadvf4K6H2S45SGnsCIjJRJbl8MV+ni18VqC/BuCF2J4k8QqSRtWi2mSq/l9DOgIiwViPRjPRxoK+a+/6qA7pQ1aMXBWWF4FjngvgoZHcY2J5FptbRltDtalrUSbUVmmKNoWwaJa4Sb5OopJdr0herGds946qzQKW1FLqkcDTtF6c4fZqK12WVEIXZLXiP9sV9+dBJDXT4oWzgjo2GHAiMEzV6Xk3oZ/RHmWJ34Bemy7M5zYKDHErLhD6/UXiA/tYlTqqgu/4Jdxs07ilWmaVd3kTYywRYuTzR4yO3xq8ElpEnpby2WobGiVCsuzQwOe4fWSvV4wS8TpSdigoGxYQ+FPrrbc7jhgRodyZP1xF/mTHlIvNmaTYYc= - secure: xLLhaBejrIuYAxwQoFPsrvnBpeDVY8IYdThJ36fJnD4V0jpqS7m8b2rw5fYrtwWvmEAQlqJ20/hnjfp9kKXr6Qpkj2im9d0KWdw4xAyD2KxiG/u5pBn1Y+zE9iGjq+NGa58EJDNaxQSnaXmVnk55tyT9W3ailkiO/lEtaofXXXGqiW9Nxa9D0GtbbNWBypcoc7X/HXCcg5hVpdVjEFh3Y+nFWIdqJEO0V7oKujfb5yFhu5PRU7siTzdN+nLoPXPMlkBa3aWwPLdM1D9HKXN1jBX6dM9dH3oz20K/TCPpbO5u675vfuTT9iP9XuLy4LB/cl7S6bcopvhU5ipkQvLEieeq73EP1hz5vwdSWgleXkNhWBInhzeHLTI04M49ZxIc0NEay2Tvx9tQl5e8BT1/WglpjnHvqx/VoF7zkHRfWyWeObL6YyFVFiJ0Gz3ExJTUCruQRBen+g2Cqr1qwBN4bFPhgxzHW58ECdsDFvfpZT3I7h/wnCzNVOZx+A74nVwDpl6zg+/+GWpqZF2ILGbRDTcjp1A/eH+FMwnQccRLiBcXm4v4y8pFfaNzjRwswUQjnMV5KyIV+dSyQQAh9sBedFJjeWm1HSy3UXFZvyc6gQIG5GR5uGWkyxYHdCxBFMYFj2xmEzoLwF7omu5CXF0TUdYxb5hvUBMEqEEKIwte2VE= node_js: 4 addons: firefox: latest apt: sources: - google-chrome packages: - google-chrome-stable script: - xvfb-run wct - "if [ \"${TRAVIS_PULL_REQUEST}\" = \"false\" ]; then wct -s 'default'; fi" PK)HZ# # Wmaterialdjango/static/materialdjango/components/bower_components/paper-slider/README.md [![Build Status](https://travis-ci.org/PolymerElements/paper-slider.svg?branch=master)](https://travis-ci.org/PolymerElements/paper-slider) _[Demo and API Docs](https://elements.polymer-project.org/elements/paper-slider)_ ##<paper-slider> Material design: [Sliders](https://www.google.com/design/spec/components/sliders.html) `paper-slider` allows user to select a value from a range of values by moving the slider thumb. The interactive nature of the slider makes it a great choice for settings that reflect intensity levels, such as volume, brightness, or color saturation. Example: Use `min` and `max` to specify the slider range. Default is 0 to 100. Example: ### Styling The following custom properties and mixins are available for styling: Custom property | Description | Default ----------------|-------------|---------- `--paper-slider-bar-color` | The background color of the slider | `transparent` `--paper-slider-active-color` | The progress bar color | `--google-blue-700` `--paper-slider-secondary-color` | The secondary progress bar color | `--google-blue-300` `--paper-slider-knob-color` | The knob color | `--google-blue-700` `--paper-slider-disabled-knob-color` | The disabled knob color | `--paper-grey-400` `--paper-slider-pin-color` | The pin color | `--google-blue-700` `--paper-slider-font-color` | The pin's text color | `#fff` `--paper-slider-disabled-active-color` | The disabled progress bar color | `--paper-grey-400` `--paper-slider-disabled-secondary-color` | The disabled secondary progress bar color | `--paper-grey-400` `--paper-slider-knob-start-color` | The fill color of the knob at the far left | `transparent` `--paper-slider-knob-start-border-color` | The border color of the knob at the far left | `--paper-grey-400` `--paper-slider-pin-start-color` | The color of the pin at the far left | `--paper-grey-400` `--paper-slider-height` | Height of the progress bar | `2px` `--paper-slider-input` | Mixin applied to the input in editable mode | `{}` PK)HKBXmaterialdjango/static/materialdjango/components/bower_components/paper-slider/.gitignorebower_components PK)H"rrXmaterialdjango/static/materialdjango/components/bower_components/paper-slider/bower.json{ "name": "paper-slider", "version": "1.0.9", "description": "A material design-style slider", "license": "http://polymer.github.io/LICENSE.txt", "authors": "The Polymer Authors", "keywords": [ "web-components", "polymer", "slider", "control" ], "main": "paper-slider.html", "repository": { "type": "git", "url": "git://github.com/PolymerElements/paper-slider.git" }, "ignore": [], "dependencies": { "polymer": "Polymer/polymer#^1.1.0", "paper-input": "PolymerElements/paper-input#^1.0.0", "paper-progress": "PolymerElements/paper-progress#^1.0.0", "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", "paper-styles": "PolymerElements/paper-styles#^1.0.0", "iron-behaviors": "PolymerElements/iron-behaviors#^1.0.0", "paper-behaviors": "PolymerElements/paper-behaviors#^1.0.0", "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#^1.0.0", "iron-form-element-behavior": "PolymerElements/iron-form-element-behavior#^1.0.0" }, "devDependencies": { "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", "test-fixture": "PolymerElements/test-fixture#^1.0.0", "iron-test-helpers": "polymerelements/iron-test-helpers#^1.0.0", "web-component-tester": "polymer/web-component-tester#^3.4.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" } } PK)Hq&!$ww]materialdjango/static/materialdjango/components/bower_components/paper-slider/test/index.html Tests PK)HS \materialdjango/static/materialdjango/components/bower_components/paper-slider/test/a11y.html paper-slider a11y test PK)H;󞬊]materialdjango/static/materialdjango/components/bower_components/paper-slider/test/basic.html paper-slider test PK)H\\]materialdjango/static/materialdjango/components/bower_components/paper-slider/demo/index.html paper-slider demo

    Default

    Oxygen


    Argon


    Hydrogen


    Nitrogen


    Sprinkles

    Editable

    R
    G
    B
    α

    Labelled pins

    Brightness

    Ratings:

    Grade:

    PKFHy [materialdjango/static/materialdjango/components/bower_components/iron-image/CONTRIBUTING.md # Polymer Elements ## Guide for Contributors Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: ### Filing Issues **If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: 1. **Who will use the feature?** _“As someone filling out a form…”_ 2. **When will they use the feature?** _“When I enter an invalid value…”_ 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ **If you are filing an issue to report a bug**, please provide: 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: ```markdown The `paper-foo` element causes the page to turn pink when clicked. ## Expected outcome The page stays the same color. ## Actual outcome The page turns pink. ## Steps to reproduce 1. Put a `paper-foo` element in the page. 2. Open the page in a web browser. 3. Click the `paper-foo` element. ``` 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. ### Submitting Pull Requests **Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. When submitting pull requests, please provide: 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: ```markdown (For a single issue) Fixes #20 (For multiple issues) Fixes #32, fixes #40 ``` 2. **A succinct description of the design** used to fix any related issues. For example: ```markdown This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. ``` 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! PK[HL~66Wmaterialdjango/static/materialdjango/components/bower_components/iron-image/.bower.json{ "name": "iron-image", "version": "1.2.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.1.0" }, "devDependencies": { "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", "paper-styles": "PolymerElements/paper-styles#^1.0.4", "test-fixture": "PolymerElements/test-fixture#^1.0.0", "web-component-tester": "^4.0.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" }, "main": "iron-image.html", "ignore": [], "homepage": "https://github.com/PolymerElements/iron-image", "_release": "1.2.2", "_resolution": { "type": "version", "tag": "v1.2.2", "commit": "2b9e5466ce0809a8503c369c9c500ec487dee224" }, "_source": "git://github.com/PolymerElements/iron-image.git", "_target": "^1.0.0", "_originalSource": "PolymerElements/iron-image" }PKFHL}--[materialdjango/static/materialdjango/components/bower_components/iron-image/iron-image.html PKFH_ʩGVmaterialdjango/static/materialdjango/components/bower_components/iron-image/index.html iron-image PKFHHGGWmaterialdjango/static/materialdjango/components/bower_components/iron-image/.travis.ymllanguage: node_js sudo: false before_script: - npm install -g bower polylint web-component-tester - bower install - polylint env: global: - secure: citR35FLXNRA4C4o5Gl7gb6yvFhOq3rTd9+IQ8i9Zcf2TV2Ip2wCNANNXOvJV8szsu2fhZLttSclpW+MVePsW3ORYWOVm9neZeTczzNZkUExRKOztAyaujzzIgRd+f5ClJOsjUfGVLWKKWgKMJ8UT4pNRgqwKe4V73oW7LhYpto= - secure: bWeuwHFJSBQu3v2K5I2++tCWh3K05I8NEfi6mywbrxuiOCGNvCWFLTO42+aqUp/yAnolNIKYR5NJFtty5CX2YD4oaRbryk2gzv7UtpIXRx9Jqhe7b/UBzfHIxPoT12TFS/iub+oRnZPAVPPoDrXwwoHkWltZHZwpOVTp86T6DPI= - CXX=g++-4.8 node_js: stable addons: firefox: latest apt: sources: - google-chrome - ubuntu-toolchain-r-test packages: - google-chrome-stable - g++-4.8 sauce_connect: true script: - xvfb-run wct - "if [ \"${TRAVIS_PULL_REQUEST}\" = \"false\" ]; then wct -s 'default'; fi" PKFH]V Umaterialdjango/static/materialdjango/components/bower_components/iron-image/README.md [![Build status](https://travis-ci.org/PolymerElements/iron-image.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-image) _[Demo and API docs](https://elements.polymer-project.org/elements/iron-image)_ ##<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 ``` | Custom property | Description | Default | | --- | --- | --- | | `--iron-image-placeholder` | Mixin applied to #placeholder | `{}` | | `--iron-image-width` | Sets the width of the wrapped image | `auto` | | `--iron-image-height` | Sets the height of the wrapped image | `auto` | PKFHKBVmaterialdjango/static/materialdjango/components/bower_components/iron-image/.gitignorebower_components PKFHL 0Vmaterialdjango/static/materialdjango/components/bower_components/iron-image/bower.json{ "name": "iron-image", "version": "1.2.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.1.0" }, "devDependencies": { "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", "paper-styles": "PolymerElements/paper-styles#^1.0.4", "test-fixture": "PolymerElements/test-fixture#^1.0.0", "web-component-tester": "^4.0.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" }, "main": "iron-image.html", "ignore": [] } PKFHӣz2z2`materialdjango/static/materialdjango/components/bower_components/iron-image/test/iron-image.html iron-image PKFHRg#cc[materialdjango/static/materialdjango/components/bower_components/iron-image/test/index.html PKFH~4M0M0\materialdjango/static/materialdjango/components/bower_components/iron-image/demo/polymer.svg PKFH۝ [materialdjango/static/materialdjango/components/bower_components/iron-image/demo/index.html iron-image

    A plain iron-image.

    sizing="cover" expands the image to cover all of its specified size.

    sizing="contain" expands the image to fit within its specified size.

    Use the --iron-image-width property to set the width of the image wrapped by the iron-image.

    Use the --iron-image-height property to set the height of the image wrapped by the iron-image.

    No placeholder is shown by default.

    The preload attribute shows a placeholder element in front of the image before it has loaded. Use the --iron-image-placeholder CSS mixin to style it.

    Use the placeholder attribute to specify a background image for the placeholder element.

    PKFH%\materialdjango/static/materialdjango/components/bower_components/iron-image/demo/loading.pngPNG  IHDRXNIDATx^=oU'EJP"KkH H"Tp:sx֙}w3'c !s}?,g΀v#a@@#DFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFU ejDFUhA^A/_on..~5{upuf8>f8>v/3!hAnoP98bOnoO˻/ibMiYxzpx^E8f2km,Nd ݾ;:Alj\_뷛cڥU{vlAFs;s\ϑ@ˋ;}{>=ahʗlb3=?g:M6[;+Lڙ~~ْA ]J׫TD8}$X"H? l;v~ږA2kڙ]Ks|ָ٥z&A'_xۥN+ Ⱥ6. Aef>,2l%Xlc߱E^?7k 査)YP]}[q-HhǼ߇̝Ulǵ]61on&}|cy]M[>7 ֠L s_V2>C,Ikǟ?kM;eos_L q~_æ тz]a5π kN fk4a||a>1||0>c||c>1?B:function(e){function f(a,b,c){return 3*a*(1-c)*(1-c)*c+3*b*(1-c)*c*c+c*c*c}if(0==e||1==e)return e;for(var g=0,h=1;;){var i=(g+h)/2,j=f(a,c,i);if(Math.abs(e-j)<.001)return f(b,d,i);e>j?g=i:h=i}}}function h(a,b){return function(c){if(c>=1)return 1;var d=1/a;return c+=b*d,c-c%d}}function i(a){var b=z.exec(a);if(b)return g.apply(this,b.slice(1).map(Number));var c=A.exec(a);if(c)return h(Number(c[1]),{start:u,middle:v,end:w}[c[2]]);var d=x[a];return d?d:B}function j(a){return Math.abs(k(a)/a.playbackRate)}function k(a){return a.duration*a.iterations}function l(a,b,c){return null==b?C:b=c.delay+a?E:F}function m(a,b,c,d,e){switch(d){case D:return"backwards"==b||"both"==b?0:null;case F:return c-e;case E:return"forwards"==b||"both"==b?a:null;case C:return null}}function n(a,b,c,d){return(d.playbackRate<0?b-a:b)*d.playbackRate+c}function o(a,b,c,d,e){return 1/0===c||c===-1/0||c-d==b&&e.iterations&&(e.iterations+e.iterationStart)%1==0?a:c%a}function p(a,b,c,d){return 0===c?0:b==a?d.iterationStart+d.iterations-1:Math.floor(c/a)}function q(a,b,c,d){var e=a%2>=1,f="normal"==d.direction||d.direction==(e?"alternate-reverse":"alternate"),g=f?c:b-c,h=g/b;return b*d.easing(h)}function r(a,b,c){var d=l(a,b,c),e=m(a,c.fill,b,d,c.delay);if(null===e)return null;if(0===a)return d===D?0:1;var f=c.iterationStart*c.duration,g=n(a,e,f,c),h=o(c.duration,k(c),g,f,c),i=p(c.duration,h,g,c);return q(i,c.duration,h,c)/c.duration}var s="backwards|forwards|both|none".split("|"),t="reverse|alternate|alternate-reverse".split("|");c.prototype={_setMember:function(b,c){this["_"+b]=c,this._effect&&(this._effect._timingInput[b]=c,this._effect._timing=a.normalizeTimingInput(a.normalizeTimingInput(this._effect._timingInput)),this._effect.activeDuration=a.calculateActiveDuration(this._effect._timing),this._effect._animation&&this._effect._animation._rebuildUnderlyingAnimation())},get playbackRate(){return this._playbackRate},set delay(a){this._setMember("delay",a)},get delay(){return this._delay},set endDelay(a){this._setMember("endDelay",a)},get endDelay(){return this._endDelay},set fill(a){this._setMember("fill",a)},get fill(){return this._fill},set iterationStart(a){this._setMember("iterationStart",a)},get iterationStart(){return this._iterationStart},set duration(a){this._setMember("duration",a)},get duration(){return this._duration},set direction(a){this._setMember("direction",a)},get direction(){return this._direction},set easing(a){this._setMember("easing",a)},get easing(){return this._easing},set iterations(a){this._setMember("iterations",a)},get iterations(){return this._iterations}};var u=1,v=.5,w=0,x={ease:g(.25,.1,.25,1),"ease-in":g(.42,0,1,1),"ease-out":g(0,0,.58,1),"ease-in-out":g(.42,0,.58,1),"step-start":h(1,u),"step-middle":h(1,v),"step-end":h(1,w)},y="\\s*(-?\\d+\\.?\\d*|-?\\.\\d+)\\s*",z=new RegExp("cubic-bezier\\("+y+","+y+","+y+","+y+"\\)"),A=/steps\(\s*(\d+)\s*,\s*(start|middle|end)\s*\)/,B=function(a){return a},C=0,D=1,E=2,F=3;a.cloneTimingInput=b,a.makeTiming=d,a.numericTimingToObject=e,a.normalizeTimingInput=f,a.calculateActiveDuration=j,a.calculateTimeFraction=r,a.calculatePhase=l,a.toTimingFunction=i}(c,f),function(a){function b(a,b){return a in h?h[a][b]||b:b}function c(a,c,d){var g=e[a];if(g){f.style[a]=c;for(var h in g){var i=g[h],j=f.style[i];d[i]=b(i,j)}}else d[a]=b(a,c)}function d(b){function d(){var a=e.length;null==e[a-1].offset&&(e[a-1].offset=1),a>1&&null==e[0].offset&&(e[0].offset=0);for(var b=0,c=e[0].offset,d=1;a>d;d++){var f=e[d].offset;if(null!=f){for(var g=1;d-b>g;g++)e[b+g].offset=c+(f-c)*g/(d-b);b=d,c=f}}}if(!Array.isArray(b)&&null!==b)throw new TypeError("Keyframes must be null or an array of keyframes");if(null==b)return[];for(var e=b.map(function(b){var d={};for(var e in b){var f=b[e];if("offset"==e){if(null!=f&&(f=Number(f),!isFinite(f)))throw new TypeError("keyframe offsets must be numbers.")}else{if("composite"==e)throw{type:DOMException.NOT_SUPPORTED_ERR,name:"NotSupportedError",message:"add compositing is not supported"};f="easing"==e?a.toTimingFunction(f):""+f}c(e,f,d)}return void 0==d.offset&&(d.offset=null),void 0==d.easing&&(d.easing=a.toTimingFunction("linear")),d}),f=!0,g=-1/0,h=0;hi)throw{code:DOMException.INVALID_MODIFICATION_ERR,name:"InvalidModificationError",message:"Keyframes are not loosely sorted by offset. Sort or specify offsets."};g=i}else f=!1}return e=e.filter(function(a){return a.offset>=0&&a.offset<=1}),f||d(),e}var e={background:["backgroundImage","backgroundPosition","backgroundSize","backgroundRepeat","backgroundAttachment","backgroundOrigin","backgroundClip","backgroundColor"],border:["borderTopColor","borderTopStyle","borderTopWidth","borderRightColor","borderRightStyle","borderRightWidth","borderBottomColor","borderBottomStyle","borderBottomWidth","borderLeftColor","borderLeftStyle","borderLeftWidth"],borderBottom:["borderBottomWidth","borderBottomStyle","borderBottomColor"],borderColor:["borderTopColor","borderRightColor","borderBottomColor","borderLeftColor"],borderLeft:["borderLeftWidth","borderLeftStyle","borderLeftColor"],borderRadius:["borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius"],borderRight:["borderRightWidth","borderRightStyle","borderRightColor"],borderTop:["borderTopWidth","borderTopStyle","borderTopColor"],borderWidth:["borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth"],flex:["flexGrow","flexShrink","flexBasis"],font:["fontFamily","fontSize","fontStyle","fontVariant","fontWeight","lineHeight"],margin:["marginTop","marginRight","marginBottom","marginLeft"],outline:["outlineColor","outlineStyle","outlineWidth"],padding:["paddingTop","paddingRight","paddingBottom","paddingLeft"]},f=document.createElementNS("http://www.w3.org/1999/xhtml","div"),g={thin:"1px",medium:"3px",thick:"5px"},h={borderBottomWidth:g,borderLeftWidth:g,borderRightWidth:g,borderTopWidth:g,fontSize:{"xx-small":"60%","x-small":"75%",small:"89%",medium:"100%",large:"120%","x-large":"150%","xx-large":"200%"},fontWeight:{normal:"400",bold:"700"},outlineWidth:g,textShadow:{none:"0px 0px 0px transparent"},boxShadow:{none:"0px 0px 0px 0px transparent"}};a.normalizeKeyframes=d}(c,f),function(a){var b={};a.isDeprecated=function(a,c,d,e){var f=e?"are":"is",g=new Date,h=new Date(c);return h.setMonth(h.getMonth()+3),h>g?(a in b||console.warn("Web Animations: "+a+" "+f+" deprecated and will stop working on "+h.toDateString()+". "+d),b[a]=!0,!1):!0},a.deprecated=function(b,c,d,e){var f=e?"are":"is";if(a.isDeprecated(b,c,d,e))throw new Error(b+" "+f+" no longer supported. "+d)}}(c),function(){if(document.documentElement.animate){var a=document.documentElement.animate([],0),b=!0;if(a&&(b=!1,"play|currentTime|pause|reverse|playbackRate|cancel|finish|startTime|playState".split("|").forEach(function(c){void 0===a[c]&&(b=!0)})),!b)return}!function(a,b){function c(a){for(var b={},c=0;c=c&&0==a.startTime||c>=1&&1==a.endTime||c>=a.startTime&&c<=a.endTime}).forEach(function(d){var e=c-d.startTime,f=d.endTime-d.startTime,g=0==f?0:d.easing(e/f);b.apply(a,d.property,d.interpolation(g))});else for(var d in g)"offset"!=d&&"easing"!=d&&"composite"!=d&&b.clear(a,d)}}}(c,d,f),function(a){function b(a,b,c){e[c]=e[c]||[],e[c].push([a,b])}function c(a,c,d){for(var e=0;ethis._surrogateStyle.length;)this._length--,Object.defineProperty(this,this._length,{configurable:!0,enumerable:!1,value:void 0})},_set:function(a,b){this._style[a]=b,this._isAnimatedProperty[a]=!0},_clear:function(a){this._style[a]=this._surrogateStyle[a],delete this._isAnimatedProperty[a]}};for(var h in f)c.prototype[h]=function(a,b){return function(){var c=this._surrogateStyle[a].apply(this._surrogateStyle,arguments);return b&&(this._isAnimatedProperty[arguments[0]]||this._style[a].apply(this._style,arguments),this._updateIndices()),c}}(h,h in g);for(var i in document.documentElement.style)i in e||i in f||!function(a){b(c.prototype,a,{get:function(){return this._surrogateStyle[a]},set:function(b){this._surrogateStyle[a]=b,this._updateIndices(),this._isAnimatedProperty[a]||(this._style[a]=b)}})}(i);a.apply=function(b,c,e){d(b),b.style._set(a.propertyName(c),e)},a.clear=function(b,c){b._webAnimationsPatchedStyle&&b.style._clear(a.propertyName(c))}}(d,f),function(a){window.Element.prototype.animate=function(b,c){return a.timeline._play(a.KeyframeEffect(this,b,c))}}(d),function(a){function b(a,c,d){if("number"==typeof a&&"number"==typeof c)return a*(1-d)+c*d;if("boolean"==typeof a&&"boolean"==typeof c)return.5>d?a:c;if(a.length==c.length){for(var e=[],f=0;fj;j++)g.push(c[j]*(Math.cos(e*h)-f*i)+d[j]*i);return g}var d=function(){function a(a,b){for(var c=[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],d=0;4>d;d++)for(var e=0;4>e;e++)for(var f=0;4>f;f++)c[d][e]+=b[d][f]*a[f][e];return c}function b(a){return 0==a[0][2]&&0==a[0][3]&&0==a[1][2]&&0==a[1][3]&&0==a[2][0]&&0==a[2][1]&&1==a[2][2]&&0==a[2][3]&&0==a[3][2]&&1==a[3][3]}function c(c,d,e,f,g){for(var h=[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]],i=0;4>i;i++)h[i][3]=g[i];for(var i=0;3>i;i++)for(var j=0;3>j;j++)h[3][i]+=c[j]*h[j][i];var k=f[0],l=f[1],m=f[2],n=f[3],o=[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]];o[0][0]=1-2*(l*l+m*m),o[0][1]=2*(k*l-m*n),o[0][2]=2*(k*m+l*n),o[1][0]=2*(k*l+m*n),o[1][1]=1-2*(k*k+m*m),o[1][2]=2*(l*m-k*n),o[2][0]=2*(k*m-l*n),o[2][1]=2*(l*m+k*n),o[2][2]=1-2*(k*k+l*l),h=a(h,o);var p=[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]];e[2]&&(p[2][1]=e[2],h=a(h,p)),e[1]&&(p[2][1]=0,p[2][0]=e[0],h=a(h,p)),e[0]&&(p[2][0]=0,p[1][0]=e[0],h=a(h,p));for(var i=0;3>i;i++)for(var j=0;3>j;j++)h[i][j]*=d[i];return b(h)?[h[0][0],h[0][1],h[1][0],h[1][1],h[3][0],h[3][1]]:h[0].concat(h[1],h[2],h[3])}return c}();a.composeMatrix=d,a.quat=c}(d,f),function(a,b){a.sequenceNumber=0;var c=function(a,b,c){this.target=a,this.currentTime=b,this.timelineTime=c,this.type="finish",this.bubbles=!1,this.cancelable=!1,this.currentTarget=a,this.defaultPrevented=!1,this.eventPhase=Event.AT_TARGET,this.timeStamp=Date.now()};b.Animation=function(b){this._sequenceNumber=a.sequenceNumber++,this._currentTime=0,this._startTime=null,this._paused=!1,this._playbackRate=1,this._inTimeline=!0,this._finishedFlag=!1,this.onfinish=null,this._finishHandlers=[],this._effect=b,this._inEffect=this._effect._update(0),this._idle=!0,this._currentTimePending=!1},b.Animation.prototype={_ensureAlive:function(){this._inEffect=this._effect._update(this.playbackRate<0&&0===this.currentTime?-1:this.currentTime),this._inTimeline||!this._inEffect&&this._finishedFlag||(this._inTimeline=!0,b.timeline._animations.push(this))},_tickCurrentTime:function(a,b){a!=this._currentTime&&(this._currentTime=a,this._isFinished&&!b&&(this._currentTime=this._playbackRate>0?this._totalDuration:0),this._ensureAlive())},get currentTime(){return this._idle||this._currentTimePending?null:this._currentTime},set currentTime(a){a=+a,isNaN(a)||(b.restart(),this._paused||null==this._startTime||(this._startTime=this._timeline.currentTime-a/this._playbackRate),this._currentTimePending=!1,this._currentTime!=a&&(this._tickCurrentTime(a,!0),b.invalidateEffects()))},get startTime(){return this._startTime},set startTime(a){a=+a,isNaN(a)||this._paused||this._idle||(this._startTime=a,this._tickCurrentTime((this._timeline.currentTime-this._startTime)*this.playbackRate),b.invalidateEffects())},get playbackRate(){return this._playbackRate},set playbackRate(a){if(a!=this._playbackRate){var b=this.currentTime;this._playbackRate=a,this._startTime=null,"paused"!=this.playState&&"idle"!=this.playState&&this.play(),null!=b&&(this.currentTime=b)}},get _isFinished(){return!this._idle&&(this._playbackRate>0&&this._currentTime>=this._totalDuration||this._playbackRate<0&&this._currentTime<=0)},get _totalDuration(){return this._effect._totalDuration},get playState(){return this._idle?"idle":null==this._startTime&&!this._paused&&0!=this.playbackRate||this._currentTimePending?"pending":this._paused?"paused":this._isFinished?"finished":"running"},play:function(){this._paused=!1,(this._isFinished||this._idle)&&(this._currentTime=this._playbackRate>0?0:this._totalDuration,this._startTime=null,b.invalidateEffects()),this._finishedFlag=!1,b.restart(),this._idle=!1,this._ensureAlive()},pause:function(){this._isFinished||this._paused||this._idle||(this._currentTimePending=!0),this._startTime=null,this._paused=!0},finish:function(){this._idle||(this.currentTime=this._playbackRate>0?this._totalDuration:0,this._startTime=this._totalDuration-this.currentTime,this._currentTimePending=!1)},cancel:function(){this._inEffect&&(this._inEffect=!1,this._idle=!0,this.currentTime=0,this._startTime=null,this._effect._update(null),b.invalidateEffects(),b.restart())},reverse:function(){this.playbackRate*=-1,this.play()},addEventListener:function(a,b){"function"==typeof b&&"finish"==a&&this._finishHandlers.push(b)},removeEventListener:function(a,b){if("finish"==a){var c=this._finishHandlers.indexOf(b);c>=0&&this._finishHandlers.splice(c,1)}},_fireEvents:function(a){var b=this._isFinished;if((b||this._idle)&&!this._finishedFlag){var d=new c(this,this._currentTime,a),e=this._finishHandlers.concat(this.onfinish?[this.onfinish]:[]);setTimeout(function(){e.forEach(function(a){a.call(d.target,d)})},0)}this._finishedFlag=b},_tick:function(a){return this._idle||this._paused||(null==this._startTime?this.startTime=a-this._currentTime/this.playbackRate:this._isFinished||this._tickCurrentTime((a-this._startTime)*this.playbackRate)),this._currentTimePending=!1,this._fireEvents(a),!this._idle&&(this._inEffect||!this._finishedFlag)}}}(c,d,f),function(a,b){function c(a){var b=i;i=[],a0&&(s.currentTime+=q*(Math.floor((a-s.currentTime)/q)+1)),g(s.currentTime)}return f(),r.apply(this,arguments)}});var s=new e;b.timeline=s}(c,d,f),function(a){function b(a,b){for(var c=0,d=0;do;o++){for(var p=0,q=0;3>q;q++)p+=b[3][q]*m[q][o];n.push(p)}return n.push(1),m.push(n),m}function d(a){return[[a[0][0],a[1][0],a[2][0],a[3][0]],[a[0][1],a[1][1],a[2][1],a[3][1]],[a[0][2],a[1][2],a[2][2],a[3][2]],[a[0][3],a[1][3],a[2][3],a[3][3]]]}function e(a,b){for(var c=[],d=0;4>d;d++){for(var e=0,f=0;4>f;f++)e+=a[f]*b[f][d];c.push(e)}return c}function f(a){var b=g(a);return[a[0]/b,a[1]/b,a[2]/b]}function g(a){return Math.sqrt(a[0]*a[0]+a[1]*a[1]+a[2]*a[2])}function h(a,b,c,d){return[c*a[0]+d*b[0],c*a[1]+d*b[1],c*a[2]+d*b[2]]}function i(a,b){return[a[1]*b[2]-a[2]*b[1],a[2]*b[0]-a[0]*b[2],a[0]*b[1]-a[1]*b[0]]}function j(j){var k=[j.slice(0,4),j.slice(4,8),j.slice(8,12),j.slice(12,16)];if(1!==k[3][3])return null;for(var l=[],m=0;4>m;m++)l.push(k[m].slice());for(var m=0;3>m;m++)l[m][3]=0;if(0===a(l))return!1;var n,o=[];if(k[0][3]||k[1][3]||k[2][3]){o.push(k[0][3]),o.push(k[1][3]),o.push(k[2][3]),o.push(k[3][3]);var p=c(l),q=d(p);n=e(o,q)}else n=[0,0,0,1];var r=k[3].slice(0,3),s=[];s.push(k[0].slice(0,3));var t=[];t.push(g(s[0])),s[0]=f(s[0]);var u=[];s.push(k[1].slice(0,3)),u.push(b(s[0],s[1])),s[1]=h(s[1],s[0],1,-u[0]),t.push(g(s[1])),s[1]=f(s[1]),u[0]/=t[1],s.push(k[2].slice(0,3)),u.push(b(s[0],s[2])),s[2]=h(s[2],s[0],1,-u[1]),u.push(b(s[1],s[2])),s[2]=h(s[2],s[1],1,-u[2]),t.push(g(s[2])),s[2]=f(s[2]),u[1]/=t[2],u[2]/=t[2];var v=i(s[1],s[2]);if(b(s[0],v)<0)for(var m=0;3>m;m++)t[m]*=-1,s[m][0]*=-1,s[m][1]*=-1,s[m][2]*=-1;var w,x,y=s[0][0]+s[1][1]+s[2][2]+1;return y>1e-4?(w=.5/Math.sqrt(y),x=[(s[2][1]-s[1][2])*w,(s[0][2]-s[2][0])*w,(s[1][0]-s[0][1])*w,.25/w]):s[0][0]>s[1][1]&&s[0][0]>s[2][2]?(w=2*Math.sqrt(1+s[0][0]-s[1][1]-s[2][2]),x=[.25*w,(s[0][1]+s[1][0])/w,(s[0][2]+s[2][0])/w,(s[2][1]-s[1][2])/w]):s[1][1]>s[2][2]?(w=2*Math.sqrt(1+s[1][1]-s[0][0]-s[2][2]),x=[(s[0][1]+s[1][0])/w,.25*w,(s[1][2]+s[2][1])/w,(s[0][2]-s[2][0])/w]):(w=2*Math.sqrt(1+s[2][2]-s[0][0]-s[1][1]),x=[(s[0][2]+s[2][0])/w,(s[1][2]+s[2][1])/w,.25*w,(s[1][0]-s[0][1])/w]),[r,t,u,x,n]}return j}();a.dot=b,a.makeMatrixDecomposition=f}(d,f),function(a){function b(a,b){var c=a.exec(b);return c?(c=a.ignoreCase?c[0].toLowerCase():c[0],[c,b.substr(c.length)]):void 0}function c(a,b){b=b.replace(/^\s*/,"");var c=a(b);return c?[c[0],c[1].replace(/^\s*/,"")]:void 0}function d(a,d,e){a=c.bind(null,a);for(var f=[];;){var g=a(e);if(!g)return[f,e];if(f.push(g[0]),e=g[1],g=b(d,e),!g||""==g[1])return[f,e];e=g[1]}}function e(a,b){for(var c=0,d=0;d=c))break;var e=a(b.substr(0,d));return void 0==e?void 0:[e,b.substr(d)]}function f(a,b){for(var c=a,d=b;c&&d;)c>d?c%=d:d%=c;return c=a*b/(c+d)}function g(a){return function(b){var c=a(b);return c&&(c[0]=void 0),c}}function h(a,b){return function(c){var d=a(c);return d?d:[b,c]}}function i(b,c){for(var d=[],e=0;ek;k++){var l=b(d[k%d.length],e[k%e.length]);if(!l)return;g.push(l[0]),h.push(l[1]),i.push(l[2])}return[g,h,function(b){var d=b.map(function(a,b){return i[b](a)}).join(c);return a?a(d):d}]}function k(a,b,c){for(var d=[],e=[],f=[],g=0,h=0;h=c?a:c>=1?b:"visible"}]:void 0}a.addPropertiesHandler(String,b,["visibility"])}(d),function(a){function b(a){a=a.trim(),e.fillStyle="#000",e.fillStyle=a;var b=e.fillStyle;if(e.fillStyle="#fff",e.fillStyle=a,b==e.fillStyle){e.fillRect(0,0,1,1);var c=e.getImageData(0,0,1,1).data;e.clearRect(0,0,1,1);var d=c[3]/255;return[c[0]*d,c[1]*d,c[2]*d,d]}}function c(b,c){return[b,c,function(b){function c(a){return Math.max(0,Math.min(255,a))}if(b[3])for(var d=0;3>d;d++)b[d]=Math.round(c(b[d]/b[3]));return b[3]=a.numberToString(a.clamp(0,1,b[3])),"rgba("+b.join(",")+")"}]}var d=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");d.width=d.height=1;var e=d.getContext("2d");a.addPropertiesHandler(b,c,["background-color","border-bottom-color","border-left-color","border-right-color","border-top-color","color","outline-color","text-decoration-color"]),a.consumeColor=a.consumeParenthesised.bind(null,b),a.mergeColors=c }(d,f),function(a,b){function c(a,b){if(b=b.trim().toLowerCase(),"0"==b&&"px".search(a)>=0)return{px:0};if(/^[^(]*$|^calc/.test(b)){b=b.replace(/calc\(/g,"(");var c={};b=b.replace(a,function(a){return c[a]=null,"U"+a});for(var d="U("+a.source+")",e=b.replace(/[-+]?(\d*\.)?\d+/g,"N").replace(new RegExp("N"+d,"g"),"D").replace(/\s[+-]\s/g,"O").replace(/\s/g,""),f=[/N\*(D)/g,/(N|D)[*/]N/g,/(N|D)O\1/g,/\((N|D)\)/g],g=0;g1?"calc("+c+")":c}]}var f="px|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc",g=c.bind(null,new RegExp(f,"g")),h=c.bind(null,new RegExp(f+"|%","g")),i=c.bind(null,/deg|rad|grad|turn/g);a.parseLength=g,a.parseLengthOrPercent=h,a.consumeLengthOrPercent=a.consumeParenthesised.bind(null,h),a.parseAngle=i,a.mergeDimensions=e;var j=a.consumeParenthesised.bind(null,g),k=a.consumeRepeated.bind(void 0,j,/^/),l=a.consumeRepeated.bind(void 0,k,/^,/);a.consumeSizePairList=l;var m=function(a){var b=l(a);return b&&""==b[1]?b[0]:void 0},n=a.mergeNestedRepeated.bind(void 0,d," "),o=a.mergeNestedRepeated.bind(void 0,n,",");a.mergeNonNegativeSizePair=n,a.addPropertiesHandler(m,o,["background-size"]),a.addPropertiesHandler(h,d,["border-bottom-width","border-image-width","border-left-width","border-right-width","border-top-width","flex-basis","font-size","height","line-height","max-height","max-width","outline-width","width"]),a.addPropertiesHandler(h,e,["border-bottom-left-radius","border-bottom-right-radius","border-top-left-radius","border-top-right-radius","bottom","left","letter-spacing","margin-bottom","margin-left","margin-right","margin-top","min-height","min-width","outline-offset","padding-bottom","padding-left","padding-right","padding-top","perspective","right","shape-margin","text-indent","top","vertical-align","word-spacing"])}(d,f),function(a){function b(b){return a.consumeLengthOrPercent(b)||a.consumeToken(/^auto/,b)}function c(c){var d=a.consumeList([a.ignore(a.consumeToken.bind(null,/^rect/)),a.ignore(a.consumeToken.bind(null,/^\(/)),a.consumeRepeated.bind(null,b,/^,/),a.ignore(a.consumeToken.bind(null,/^\)/))],c);return d&&4==d[0].length?d[0]:void 0}function d(b,c){return"auto"==b||"auto"==c?[!0,!1,function(d){var e=d?b:c;if("auto"==e)return"auto";var f=a.mergeDimensions(e,e);return f[2](f[0])}]:a.mergeDimensions(b,c)}function e(a){return"rect("+a+")"}var f=a.mergeWrappedNestedRepeated.bind(null,e,d,", ");a.parseBox=c,a.mergeBoxes=f,a.addPropertiesHandler(c,f,["clip"])}(d,f),function(a){function b(a){return function(b){var c=0;return a.map(function(a){return a===j?b[c++]:a})}}function c(a){return a}function d(b){if(b=b.toLowerCase().trim(),"none"==b)return[];for(var c,d=/\s*(\w+)\(([^)]*)\)/g,e=[],f=0;c=d.exec(b);){if(c.index!=f)return;f=c.index+c[0].length;var g=c[1],h=m[g];if(!h)return;var i=c[2].split(","),j=h[0];if(j.lengthb||b>900||b%100!==0?void 0:b}function c(b){return b=100*Math.round(b/100),b=a.clamp(100,900,b),400===b?"normal":700===b?"bold":String(b)}function d(a,b){return[a,b,c]}a.addPropertiesHandler(b,d,["font-weight"])}(d),function(a){function b(a){var b={};for(var c in a)b[c]=-a[c];return b}function c(b){return a.consumeToken(/^(left|center|right|top|bottom)\b/i,b)||a.consumeLengthOrPercent(b)}function d(b,d){var e=a.consumeRepeated(c,/^/,d);if(e&&""==e[1]){var f=e[0];if(f[0]=f[0]||"center",f[1]=f[1]||"center",3==b&&(f[2]=f[2]||{px:0}),f.length==b){if(/top|bottom/.test(f[0])||/left|right/.test(f[1])){var h=f[0];f[0]=f[1],f[1]=h}if(/left|right|center|Object/.test(f[0])&&/top|bottom|center|Object/.test(f[1]))return f.map(function(a){return"object"==typeof a?a:g[a]})}}}function e(d){var e=a.consumeRepeated(c,/^/,d);if(e){for(var f=e[0],h=[{"%":50},{"%":50}],i=0,j=!1,k=0;ka||a>1||0>c||c>1?B:function(e){function f(a,b,c){return 3*a*(1-c)*(1-c)*c+3*b*(1-c)*c*c+c*c*c}if(0==e||1==e)return e;for(var g=0,h=1;;){var i=(g+h)/2,j=f(a,c,i);if(Math.abs(e-j)<.001)return f(b,d,i);e>j?g=i:h=i}}}function h(a,b){return function(c){if(c>=1)return 1;var d=1/a;return c+=b*d,c-c%d}}function i(a){var b=z.exec(a);if(b)return g.apply(this,b.slice(1).map(Number));var c=A.exec(a);if(c)return h(Number(c[1]),{start:u,middle:v,end:w}[c[2]]);var d=x[a];return d?d:B}function j(a){return Math.abs(k(a)/a.playbackRate)}function k(a){return a.duration*a.iterations}function l(a,b,c){return null==b?C:b=c.delay+a?E:F}function m(a,b,c,d,e){switch(d){case D:return"backwards"==b||"both"==b?0:null;case F:return c-e;case E:return"forwards"==b||"both"==b?a:null;case C:return null}}function n(a,b,c,d){return(d.playbackRate<0?b-a:b)*d.playbackRate+c}function o(a,b,c,d,e){return 1/0===c||c===-1/0||c-d==b&&e.iterations&&(e.iterations+e.iterationStart)%1==0?a:c%a}function p(a,b,c,d){return 0===c?0:b==a?d.iterationStart+d.iterations-1:Math.floor(c/a)}function q(a,b,c,d){var e=a%2>=1,f="normal"==d.direction||d.direction==(e?"alternate-reverse":"alternate"),g=f?c:b-c,h=g/b;return b*d.easing(h)}function r(a,b,c){var d=l(a,b,c),e=m(a,c.fill,b,d,c.delay);if(null===e)return null;if(0===a)return d===D?0:1;var f=c.iterationStart*c.duration,g=n(a,e,f,c),h=o(c.duration,k(c),g,f,c),i=p(c.duration,h,g,c);return q(i,c.duration,h,c)/c.duration}var s="backwards|forwards|both|none".split("|"),t="reverse|alternate|alternate-reverse".split("|");c.prototype={_setMember:function(b,c){this["_"+b]=c,this._effect&&(this._effect._timingInput[b]=c,this._effect._timing=a.normalizeTimingInput(a.normalizeTimingInput(this._effect._timingInput)),this._effect.activeDuration=a.calculateActiveDuration(this._effect._timing),this._effect._animation&&this._effect._animation._rebuildUnderlyingAnimation())},get playbackRate(){return this._playbackRate},set delay(a){this._setMember("delay",a)},get delay(){return this._delay},set endDelay(a){this._setMember("endDelay",a)},get endDelay(){return this._endDelay},set fill(a){this._setMember("fill",a)},get fill(){return this._fill},set iterationStart(a){this._setMember("iterationStart",a)},get iterationStart(){return this._iterationStart},set duration(a){this._setMember("duration",a)},get duration(){return this._duration},set direction(a){this._setMember("direction",a)},get direction(){return this._direction},set easing(a){this._setMember("easing",a)},get easing(){return this._easing},set iterations(a){this._setMember("iterations",a)},get iterations(){return this._iterations}};var u=1,v=.5,w=0,x={ease:g(.25,.1,.25,1),"ease-in":g(.42,0,1,1),"ease-out":g(0,0,.58,1),"ease-in-out":g(.42,0,.58,1),"step-start":h(1,u),"step-middle":h(1,v),"step-end":h(1,w)},y="\\s*(-?\\d+\\.?\\d*|-?\\.\\d+)\\s*",z=new RegExp("cubic-bezier\\("+y+","+y+","+y+","+y+"\\)"),A=/steps\(\s*(\d+)\s*,\s*(start|middle|end)\s*\)/,B=function(a){return a},C=0,D=1,E=2,F=3;a.cloneTimingInput=b,a.makeTiming=d,a.numericTimingToObject=e,a.normalizeTimingInput=f,a.calculateActiveDuration=j,a.calculateTimeFraction=r,a.calculatePhase=l,a.toTimingFunction=i}(c,f),function(a){function b(a,b){return a in h?h[a][b]||b:b}function c(a,c,d){var g=e[a];if(g){f.style[a]=c;for(var h in g){var i=g[h],j=f.style[i];d[i]=b(i,j)}}else d[a]=b(a,c)}function d(b){function d(){var a=e.length;null==e[a-1].offset&&(e[a-1].offset=1),a>1&&null==e[0].offset&&(e[0].offset=0);for(var b=0,c=e[0].offset,d=1;a>d;d++){var f=e[d].offset;if(null!=f){for(var g=1;d-b>g;g++)e[b+g].offset=c+(f-c)*g/(d-b);b=d,c=f}}}if(!Array.isArray(b)&&null!==b)throw new TypeError("Keyframes must be null or an array of keyframes");if(null==b)return[];for(var e=b.map(function(b){var d={};for(var e in b){var f=b[e];if("offset"==e){if(null!=f&&(f=Number(f),!isFinite(f)))throw new TypeError("keyframe offsets must be numbers.")}else{if("composite"==e)throw{type:DOMException.NOT_SUPPORTED_ERR,name:"NotSupportedError",message:"add compositing is not supported"};f="easing"==e?a.toTimingFunction(f):""+f}c(e,f,d)}return void 0==d.offset&&(d.offset=null),void 0==d.easing&&(d.easing=a.toTimingFunction("linear")),d}),f=!0,g=-1/0,h=0;hi)throw{code:DOMException.INVALID_MODIFICATION_ERR,name:"InvalidModificationError",message:"Keyframes are not loosely sorted by offset. Sort or specify offsets."};g=i}else f=!1}return e=e.filter(function(a){return a.offset>=0&&a.offset<=1}),f||d(),e}var e={background:["backgroundImage","backgroundPosition","backgroundSize","backgroundRepeat","backgroundAttachment","backgroundOrigin","backgroundClip","backgroundColor"],border:["borderTopColor","borderTopStyle","borderTopWidth","borderRightColor","borderRightStyle","borderRightWidth","borderBottomColor","borderBottomStyle","borderBottomWidth","borderLeftColor","borderLeftStyle","borderLeftWidth"],borderBottom:["borderBottomWidth","borderBottomStyle","borderBottomColor"],borderColor:["borderTopColor","borderRightColor","borderBottomColor","borderLeftColor"],borderLeft:["borderLeftWidth","borderLeftStyle","borderLeftColor"],borderRadius:["borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius"],borderRight:["borderRightWidth","borderRightStyle","borderRightColor"],borderTop:["borderTopWidth","borderTopStyle","borderTopColor"],borderWidth:["borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth"],flex:["flexGrow","flexShrink","flexBasis"],font:["fontFamily","fontSize","fontStyle","fontVariant","fontWeight","lineHeight"],margin:["marginTop","marginRight","marginBottom","marginLeft"],outline:["outlineColor","outlineStyle","outlineWidth"],padding:["paddingTop","paddingRight","paddingBottom","paddingLeft"]},f=document.createElementNS("http://www.w3.org/1999/xhtml","div"),g={thin:"1px",medium:"3px",thick:"5px"},h={borderBottomWidth:g,borderLeftWidth:g,borderRightWidth:g,borderTopWidth:g,fontSize:{"xx-small":"60%","x-small":"75%",small:"89%",medium:"100%",large:"120%","x-large":"150%","xx-large":"200%"},fontWeight:{normal:"400",bold:"700"},outlineWidth:g,textShadow:{none:"0px 0px 0px transparent"},boxShadow:{none:"0px 0px 0px 0px transparent"}};a.normalizeKeyframes=d}(c,f),function(a){var b={};a.isDeprecated=function(a,c,d,e){var f=e?"are":"is",g=new Date,h=new Date(c);return h.setMonth(h.getMonth()+3),h>g?(a in b||console.warn("Web Animations: "+a+" "+f+" deprecated and will stop working on "+h.toDateString()+". "+d),b[a]=!0,!1):!0},a.deprecated=function(b,c,d,e){var f=e?"are":"is";if(a.isDeprecated(b,c,d,e))throw new Error(b+" "+f+" no longer supported. "+d)}}(c),function(){if(document.documentElement.animate){var a=document.documentElement.animate([],0),b=!0;if(a&&(b=!1,"play|currentTime|pause|reverse|playbackRate|cancel|finish|startTime|playState".split("|").forEach(function(c){void 0===a[c]&&(b=!0)})),!b)return}!function(a,b){function c(a){for(var b={},c=0;c=c&&0==a.startTime||c>=1&&1==a.endTime||c>=a.startTime&&c<=a.endTime}).forEach(function(d){var e=c-d.startTime,f=d.endTime-d.startTime,g=0==f?0:d.easing(e/f);b.apply(a,d.property,d.interpolation(g))});else for(var d in g)"offset"!=d&&"easing"!=d&&"composite"!=d&&b.clear(a,d)}}}(c,d,f),function(a){function b(a,b,c){e[c]=e[c]||[],e[c].push([a,b])}function c(a,c,d){for(var e=0;ed?a:c;if(a.length==c.length){for(var e=[],f=0;f0?this._totalDuration:0),this._ensureAlive())},get currentTime(){return this._idle||this._currentTimePending?null:this._currentTime},set currentTime(a){a=+a,isNaN(a)||(b.restart(),this._paused||null==this._startTime||(this._startTime=this._timeline.currentTime-a/this._playbackRate),this._currentTimePending=!1,this._currentTime!=a&&(this._tickCurrentTime(a,!0),b.invalidateEffects()))},get startTime(){return this._startTime},set startTime(a){a=+a,isNaN(a)||this._paused||this._idle||(this._startTime=a,this._tickCurrentTime((this._timeline.currentTime-this._startTime)*this.playbackRate),b.invalidateEffects())},get playbackRate(){return this._playbackRate},set playbackRate(a){if(a!=this._playbackRate){var b=this.currentTime;this._playbackRate=a,this._startTime=null,"paused"!=this.playState&&"idle"!=this.playState&&this.play(),null!=b&&(this.currentTime=b)}},get _isFinished(){return!this._idle&&(this._playbackRate>0&&this._currentTime>=this._totalDuration||this._playbackRate<0&&this._currentTime<=0)},get _totalDuration(){return this._effect._totalDuration},get playState(){return this._idle?"idle":null==this._startTime&&!this._paused&&0!=this.playbackRate||this._currentTimePending?"pending":this._paused?"paused":this._isFinished?"finished":"running"},play:function(){this._paused=!1,(this._isFinished||this._idle)&&(this._currentTime=this._playbackRate>0?0:this._totalDuration,this._startTime=null,b.invalidateEffects()),this._finishedFlag=!1,b.restart(),this._idle=!1,this._ensureAlive()},pause:function(){this._isFinished||this._paused||this._idle||(this._currentTimePending=!0),this._startTime=null,this._paused=!0},finish:function(){this._idle||(this.currentTime=this._playbackRate>0?this._totalDuration:0,this._startTime=this._totalDuration-this.currentTime,this._currentTimePending=!1)},cancel:function(){this._inEffect&&(this._inEffect=!1,this._idle=!0,this.currentTime=0,this._startTime=null,this._effect._update(null),b.invalidateEffects(),b.restart())},reverse:function(){this.playbackRate*=-1,this.play()},addEventListener:function(a,b){"function"==typeof b&&"finish"==a&&this._finishHandlers.push(b)},removeEventListener:function(a,b){if("finish"==a){var c=this._finishHandlers.indexOf(b);c>=0&&this._finishHandlers.splice(c,1)}},_fireEvents:function(a){var b=this._isFinished;if((b||this._idle)&&!this._finishedFlag){var d=new c(this,this._currentTime,a),e=this._finishHandlers.concat(this.onfinish?[this.onfinish]:[]);setTimeout(function(){e.forEach(function(a){a.call(d.target,d)})},0)}this._finishedFlag=b},_tick:function(a){return this._idle||this._paused||(null==this._startTime?this.startTime=a-this._currentTime/this.playbackRate:this._isFinished||this._tickCurrentTime((a-this._startTime)*this.playbackRate)),this._currentTimePending=!1,this._fireEvents(a),!this._idle&&(this._inEffect||!this._finishedFlag)}}}(c,d,f),function(a,b){function c(a){var b=i;i=[],a0&&(s.currentTime+=q*(Math.floor((a-s.currentTime)/q)+1)),g(s.currentTime)}return f(),r.apply(this,arguments)}});var s=new e;b.timeline=s}(c,d,f),function(a){function b(a,b){var c=a.exec(b);return c?(c=a.ignoreCase?c[0].toLowerCase():c[0],[c,b.substr(c.length)]):void 0}function c(a,b){b=b.replace(/^\s*/,"");var c=a(b);return c?[c[0],c[1].replace(/^\s*/,"")]:void 0}function d(a,d,e){a=c.bind(null,a);for(var f=[];;){var g=a(e);if(!g)return[f,e];if(f.push(g[0]),e=g[1],g=b(d,e),!g||""==g[1])return[f,e];e=g[1]}}function e(a,b){for(var c=0,d=0;d=c))break;var e=a(b.substr(0,d));return void 0==e?void 0:[e,b.substr(d)]}function f(a,b){for(var c=a,d=b;c&&d;)c>d?c%=d:d%=c;return c=a*b/(c+d)}function g(a){return function(b){var c=a(b);return c&&(c[0]=void 0),c}}function h(a,b){return function(c){var d=a(c);return d?d:[b,c]}}function i(b,c){for(var d=[],e=0;ek;k++){var l=b(d[k%d.length],e[k%e.length]);if(!l)return;g.push(l[0]),h.push(l[1]),i.push(l[2])}return[g,h,function(b){var d=b.map(function(a,b){return i[b](a)}).join(c);return a?a(d):d}]}function k(a,b,c){for(var d=[],e=[],f=[],g=0,h=0;h=c?a:c>=1?b:"visible"}]:void 0}a.addPropertiesHandler(String,b,["visibility"])}(d),function(a){function b(a){a=a.trim(),e.fillStyle="#000",e.fillStyle=a;var b=e.fillStyle;if(e.fillStyle="#fff",e.fillStyle=a,b==e.fillStyle){e.fillRect(0,0,1,1);var c=e.getImageData(0,0,1,1).data;e.clearRect(0,0,1,1);var d=c[3]/255;return[c[0]*d,c[1]*d,c[2]*d,d]}}function c(b,c){return[b,c,function(b){function c(a){return Math.max(0,Math.min(255,a))}if(b[3])for(var d=0;3>d;d++)b[d]=Math.round(c(b[d]/b[3]));return b[3]=a.numberToString(a.clamp(0,1,b[3])),"rgba("+b.join(",")+")"}]}var d=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");d.width=d.height=1;var e=d.getContext("2d");a.addPropertiesHandler(b,c,["background-color","border-bottom-color","border-left-color","border-right-color","border-top-color","color","outline-color","text-decoration-color"]),a.consumeColor=a.consumeParenthesised.bind(null,b),a.mergeColors=c}(d,f),function(a,b){function c(a,b){if(b=b.trim().toLowerCase(),"0"==b&&"px".search(a)>=0)return{px:0};if(/^[^(]*$|^calc/.test(b)){b=b.replace(/calc\(/g,"(");var c={};b=b.replace(a,function(a){return c[a]=null,"U"+a});for(var d="U("+a.source+")",e=b.replace(/[-+]?(\d*\.)?\d+/g,"N").replace(new RegExp("N"+d,"g"),"D").replace(/\s[+-]\s/g,"O").replace(/\s/g,""),f=[/N\*(D)/g,/(N|D)[*/]N/g,/(N|D)O\1/g,/\((N|D)\)/g],g=0;g1?"calc("+c+")":c}]}var f="px|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc",g=c.bind(null,new RegExp(f,"g")),h=c.bind(null,new RegExp(f+"|%","g")),i=c.bind(null,/deg|rad|grad|turn/g);a.parseLength=g,a.parseLengthOrPercent=h,a.consumeLengthOrPercent=a.consumeParenthesised.bind(null,h),a.parseAngle=i,a.mergeDimensions=e;var j=a.consumeParenthesised.bind(null,g),k=a.consumeRepeated.bind(void 0,j,/^/),l=a.consumeRepeated.bind(void 0,k,/^,/);a.consumeSizePairList=l;var m=function(a){var b=l(a);return b&&""==b[1]?b[0]:void 0},n=a.mergeNestedRepeated.bind(void 0,d," "),o=a.mergeNestedRepeated.bind(void 0,n,",");a.mergeNonNegativeSizePair=n,a.addPropertiesHandler(m,o,["background-size"]),a.addPropertiesHandler(h,d,["border-bottom-width","border-image-width","border-left-width","border-right-width","border-top-width","flex-basis","font-size","height","line-height","max-height","max-width","outline-width","width"]),a.addPropertiesHandler(h,e,["border-bottom-left-radius","border-bottom-right-radius","border-top-left-radius","border-top-right-radius","bottom","left","letter-spacing","margin-bottom","margin-left","margin-right","margin-top","min-height","min-width","outline-offset","padding-bottom","padding-left","padding-right","padding-top","perspective","right","shape-margin","text-indent","top","vertical-align","word-spacing"])}(d,f),function(a){function b(b){return a.consumeLengthOrPercent(b)||a.consumeToken(/^auto/,b)}function c(c){var d=a.consumeList([a.ignore(a.consumeToken.bind(null,/^rect/)),a.ignore(a.consumeToken.bind(null,/^\(/)),a.consumeRepeated.bind(null,b,/^,/),a.ignore(a.consumeToken.bind(null,/^\)/))],c);return d&&4==d[0].length?d[0]:void 0}function d(b,c){return"auto"==b||"auto"==c?[!0,!1,function(d){var e=d?b:c;if("auto"==e)return"auto";var f=a.mergeDimensions(e,e);return f[2](f[0])}]:a.mergeDimensions(b,c)}function e(a){return"rect("+a+")"}var f=a.mergeWrappedNestedRepeated.bind(null,e,d,", ");a.parseBox=c,a.mergeBoxes=f,a.addPropertiesHandler(c,f,["clip"])}(d,f),function(a){function b(a){return function(b){var c=0;return a.map(function(a){return a===j?b[c++]:a})}}function c(a){return a}function d(b){if(b=b.toLowerCase().trim(),"none"==b)return[];for(var c,d=/\s*(\w+)\(([^)]*)\)/g,e=[],f=0;c=d.exec(b);){if(c.index!=f)return;f=c.index+c[0].length;var g=c[1],h=m[g];if(!h)return;var i=c[2].split(","),j=h[0];if(j.length62[q2q3U1CQ_x|s|*UKNq"#UVgbX`C=%XƪMA#$>VFT,y"neu*i'NF/ёnOz9`)q.Ѫ/޼~7_W9Hl` ypg,J ʬV fTER%'2qVen{ع+<6.M5#"_|ϯ/?^6_o_x| a~.i`3#iC|FRH5$b,(r]k^.N1ʳeV=ٛ7fѰ~ gf]n9֍؏YbEYUƻ~ʖA/5B`2Be:Ѧ,1[:mKᗆ mDjolU鶪klNq֖5m{u E`bc~0撇6;כr~"a1'W9}x΂VzU?\K^s8q?@RjCۭ6Ȇ%Zֈݞ iIbcNb'u .ICGd[a0sˠ \f{t~?|A;$'r^(y!N"NBiو>m۴1]v~lgLN68uiFك0״Tn@@; { ,^h ᣨTJwL..~5嚤aH/a S6No~[MA^!YCd EI75:4XtI|{gH)cj߷8y5g gz0T0i$R@X> }O#k|S<ɡߣ-u4j;+xwhf8f2G_Fʻ?}!{V>YX1j -O1{XPІ qC1 n G^vZoj?@&yV9>Fe X|H!|?.$["Uw%KY 3 ^y(s99"\9UDkb۷Nh؍4{[aϼ,z]&*p[ql(rg(T Z{=z9J"M{TN:"Y!Wmg!#Džߢv2M_uw'UAӧ[f0"o?_?^9&ӋX"ⅰhU[AA*F%DKɗc\B,! %hH v]%Z3&ucdX-y/b|f%WC> Aa+A=5k* l ɳP蜅EZpMWJI4&@É.Ù6*aù?dgM DR۔#<Cb#}# lS(xK&(urڞs~N\!!}Z8.'=R$ H?52[ݶ0$X`4N{Eeڿe;K9YdgΖA; CZ|ٓ躴LG8M0m)kϢrl[rݶnm_.MϮ0Y-^^[V{!j?p|7=}3_P3_1=>9Jov:Ё{4L[}_/:ܹqpOI;M1})=+(|n21_c948}}qqGspd}o2XUJϣ>AoZX?ޓ pfN-Q6Ej_qapjZ}:p@4RiY6 3KvȹD<쫧g`doq!vw.]QRp<뺤J=2@ce ":pm` cl+cŰ U`1Kj 2/8Q4T)yq^"w6G XgohuuQysm.z`ʪ7fX[EE]$.Yn;kT7UI5]gX"[LW f#j<&7[KFPg 諭LѥlC5u|þ"jBf Y-(mNZt7KZWR)t!Ը=]߽82-,,ke$dNu\VSCj s{OŬ)+JRLQN+h %):"n->^ސ fPKg9G8Ø&Wp8LdLʺN,*H#2fέ}廑У-kzYyûN ~_tk)A>{g EKQk(QG_m=~w.+O}рO5Ru.=s>o1|:uK!k IÀ-n.AQ}pװB)Ѥ@AB0XX׹Ē{E I`,Unӽ,i^&ݨyX׆D0HJfшN9~  "zv>W`X3szRLZNvJWWA,+2020M쮎ٕ~ X8x:Jy,Ȫ6╾.J֏8o6!dnta[~DGskLh#IeRhdjsϥdo"uPfE!4@"?%__:Qi!$2Ȧ"\-pb5D?/;_K3F^S۫u7D4|CW{p&t8$' d6~hSݪ|Uv~(>щGݢ"g~{k9,bɾN/s<~m4Ue0W̓7 YtJOϚtY: aۡXs^s+ 4 95[1K޸W;7e@fkw YugyV:%|QrpI! ڶA&~vjhids95g GkڴZgS*RÚ,}@utZ2nïTJu0ww*.u"շ;tJg u\vĒ"G/ŷ=bZ~Tӝ1}&>nGmKvg e gɜE6eUKy6 7{$ž9otJŖ#E7"w ep/ZE& 0TWbA/Z0y)ApSٲ`,Ǐ;gK. &8-HO(-6Pwv{Gv–\\1[⍖m)*-Ƿ󤟽UxD>8pkݮDݖΛ F'lrIߐ &D{QC?p>}P.VjRyF,_mE=ks7WD kE% 1ˉ7W[s\9oN͋Hʒl_?Rn꜔8@h4vp' d#>55j>DlwNe jl ))m{3e MR\*!Q]$2baJu|QLCS*?M= 8)VFCFvZ"E$H22iG*r)a(D8%S֪ed*Q>BXTIi ׵JXnVޑ,TKYS=Svb{bG,"yUD*ж3 i}noR-Z{;D fsDzٰ3b[x%: iT.nk=j%/(,2bNw|o ۶FH1ptY@IAGpW&`gU+,^JPh %uܹ3}Q'zQ^7JsAhWtv8̜1"k'pȨ|mYIjRN Ry*yrvg >p/ v%Kzb&l,t DFZ^;eۖWܸ Cbm{0׌ǣq=Cm3l1A)~ E: +$M(măk GWϫ@р?+ р/4`6JC4ѐZcy|a|Xh,_,_j,57˗kGO˰mЄ 5?i<%h1Jþ4{c`+﵅Ɨo OX|m|qfthAHaAL+/ D2/3ocP-Y>p|avCPW🾗*Ӛv 2Þ[CMhձO#uo^eU.tc c #|U@4hP1I#6i\M/2619 ifn1 y7`C9P[6)b+LB7r #Y6s'/^JCbSC HqO|9C2_*r.ΉY3TQ0t^\֢ 7 H攛aHC1Cqx^1u8Yew(# l.v0`x>d4oPY.g1ԥbM]*4 C3lt6Ƈ2*;2*(8fMD_! WV:J]BI1F vބс7aD2 lS멀-q₾6 ~~?`崌63nf͸9izisgeuy訊 "+T7R}LBa} a%0F{Ȉ0KZW7e Cr؈FY1$ 9 jHhyNT@uȃm=/ijh]r<َ(0B^My\O$zyӁaAhk@K1-F lsEY3:Rá=]Xe19^j93}ׁPk (Ž Xx9O rI#-aNǫ6G~e~W]m/~k'i`T&Qb ?}[[`@tD-*BR22 {0r }+O# ֘HXYXEddzW~}>ߦ~)+NNz.B]44x/ۢtKQ, S໬іGqSԲ=ijX {2<)E"K&PhoGjHPZGUvg/ѽ#͵-\1E$n~EYۑw^JNKF]N""Ohڃ֐6 0*"c;ҕtM:N@o|z#84¡M.QcZM7Bf;%P7hr_!JCfPQ5J Jm}~w^5y 27@xκ1ӣ=]B)N,0+G[T`=;k7վiT挌.˹pelfbv:{<0>*&vUVJEEF3K"t#=CsG!=#IYrfض@^6}Tr{mY ,w/NўYϘ 8}/>zտlpK|٭QA%eNU /?7lJ)7vE^Ъ OjyVS?Tʄk sO%8\j1 44}rFdB[():nKӜH`)MN&'|7Y/' l /,4Nft߼09|s cSIB S,I* ;eifj4Jq g4Y&>XUrv1n0g}R_JN/!D$쨸Ǽk4r$Z7ӽV&:2P/gg| ͍Ñ5P?Řڎ<|\}7yO$[6|E|A^C1-7L? ̗D׫`xmI{\0a`vHv ƫ1]AK%HX+ruӻD:~ԛ y..ѾG/a#덎J]O:v,OҦi۬}T}b6Dv0.K[rlk{2y.w0Q,xلY\[OOUB tô~k,<_ ޾{6L\  eyhjY &Y|8TYw1wzy v44Ï;Qk1hXߠ3̖&[w:?`osJQIN1Kvw>Jq^¶zd=Ozb'O86t@Mt8sMNJbn}kěfn)6Thx ( m.J +yF鞓ʃ#=/ϴ?G-LkOYUarnr\mD֑"N'aO !NMV__$wQ`YOe=5'R{32j&h;Fh@i?i9ؼ:joFS0o+}}~8|P)5R3'?EK NyJ;(ldb(r쮄Q&ת,k(2Pl"B{R*:#/6OBﺎF|V3C⭛pl]C6~uW(;w4oEJ;Irw"뮀.nOtöꧠO틂,1 V A]Z=EEO`$*4Akr!*' M)#S @Ԇif݄~(6iZff0ֺGDeHG R2wYIj C}L!E?~tP8<=Hnj'/D 0hJ aja`KҭZ1 )o̧ M^-L~V 1JZ1uӤ&n*"%s+JU]X>Sq42n#^=ȿ% ~43PU QqzrN(9}ܩ1+' ,QUFVq7/`YӊOr]EcE1ݿ u?s0= ~&~MqZD }?_Ԩa߽k(]U# # zF/Ưew&LY*=|柇ll =xpBNRbE -E8%>a.)R  B?5 WhQ=RRQHzܔ ^7h 2fq,SʟNh.O "Ө>z)HRta[?ߣ=+TW?j+Nyv˳KpuZ)iAD@|iAEuؤ+REÕ^WJNSy:yLHE{uĭٝpfwlI~P=_o,; >&n Gj׉Xd}3QvN|g֦5~FVW#WNRZ}Mb7y^;&<=GN"o)=Z-5S= [ĮC SR ѫgVV?Z QhsXL7;Q6-VV˭ެ^c8aœI>yz%߮? = -b +/cȐ^pdkW?"𾥽6lZ*pF[;L'unz}Cm2Rzՠs9c_CAdv$dcYdS-'EAv|.GϸOHT֑=hnOh\jT<OEVT+oIh:zDZՖ;lo#PwrCFgPKIGv|%fmaterialdjango/static/materialdjango/components/bower_components/web-animations-js/web-animations.html PKIGLTff\materialdjango/static/materialdjango/components/bower_components/web-animations-js/README.md Quick Start ----------- To provide native Chrome Web Animation features (`Element.animate` and Playback Control) in other browsers, use `web-animations.min.js`. To explore all of the proposed Web Animations API, use `web-animations-next.min.js`. What is Web Animations? ----------------------- Web Animations is a new JavaScript API for driving animated content on the web. By unifying the animation features of SVG and CSS, Web Animations unlocks features previously only usable declaratively, and exposes powerful, high-performance animation capabilities to developers. For more details see the [W3C specification](http://w3c.github.io/web-animations/). What is the polyfill? --------------------- The polyfill is a JavaScript implementation of the Web Animations API. It works on modern versions of all major browsers. For more details about browser support see . Getting Started --------------- Here's a simple example of an animation that scales and changes the opacity of a `
    ` over 0.5 seconds. The animation alternates producing a pulsing effect.
    Hello world!
    Web Animations supports off-main-thread animations, and also allows procedural generation of animations and fine-grained control of animation playback. See for ideas and inspiration! Native Fallback --------------- When the polyfill runs on a browser that implements `Element.animate` and `Animation` Playback Control it will detect and use the underlying native features. Different Build Targets ----------------------- ### web-animations.min.js Tracks the Web Animations features that are supported natively in browsers. Today that means Element.animate and Playback Control in Chrome. If you’re not sure what features you will need, start with this. ### web-animations-next.min.js Contains all of web-animations.min.js plus features that are still undergoing discussion or have yet to be implemented natively. ### web-animations-next-lite.min.js A cut down version of web-animations-next, it removes several lesser used property handlers and some of the larger and less used features such as matrix interpolation/decomposition. ### Build Target Comparison | | web-animations | web-animations-next | web-animations-next-lite | |------------------------|:--------------:|:-------------------:|:------------------------:| |Size (gzipped) | 12.5kb | 14kb | 10.5kb | |Element.animate | ✔ | ✔ | ✔ | |Timing input (easings, duration, fillMode, etc.) for animation effects| ✔ | ✔ | ✔ | |Playback control | ✔ | ✔ | ✔ | |Support for animating lengths, transforms and opacity| ✔ | ✔ | ✔ | |Support for animating other CSS properties| ✔ | ✔ | 🚫 | |Matrix fallback for transform animations | ✔ | ✔ | 🚫 | |KeyframeEffect constructor | 🚫 | ✔ | ✔ | |Simple GroupEffects & SequenceEffects | 🚫 | ✔ | ✔ | |Custom Effects | 🚫 | ✔ | ✔ | |Timing input (easings, duration, fillMode, etc.) for groups
    | 🚫 | 🚫\* | 🚫 | |Additive animation | 🚫\* | 🚫\* | 🚫 | |Motion path | 🚫\* | 🚫\* | 🚫 | |Modifiable keyframe effect timing| 🚫 | 🚫\* | 🚫\* | |Modifiable group timing | 🚫 | 🚫\* | 🚫\* | |Usable inline style\*\* | ✔ | ✔ | 🚫 | \* support is planned for these features. \*\* see inline style caveat below. Caveats ------- Some things won’t ever be faithful to the native implementation due to browser and CSS API limitations. These include: ### Inline Style Inline style modification is the mechanism used by the polyfill to animate properties. Both web-animations and web-animations-next incorporate a module that emulates a vanilla inline style object, so that style modification from JavaScript can still work in the presence of animations. However, to keep the size of web-animations-next-lite as small as possible, the style emulation module is not included. When using this version of the polyfill, JavaScript inline style modification will be overwritten by animations. Due to browser constraints inline style modification is not supported on iOS 7 or Safari 6 (or earlier versions). ### Prefix handling The polyfill will automatically detect the correctly prefixed name to use when writing animated properties back to the platform. Where possible, the polyfill will only accept unprefixed versions of experimental features. For example: var effect = new KeyframeEffect(elem, {"transform": "translate(100px, 100px)"}, 2000); will work in all browsers that implement a conforming version of transform, but var effect = new KeyframeEffect(elem, {"-webkit-transform": "translate(100px, 100px)"}, 2000); will not work anywhere. API and Specification Feedback ------------------------------ File an issue on GitHub: . Alternatively, send an email to with subject line “[web-animations] … message topic …” ([archives](http://lists.w3.org/Archives/Public/public-fx/)). Polyfill Issues --------------- Report any issues with this implementation on GitHub: . Breaking changes ---------------- When we make a potentially breaking change to the polyfill's API surface (like a rename) we will, where possible, continue supporting the old version, deprecated, for three months, and ensure that there are console warnings to indicate that a change is pending. After three months, the old version of the API surface (e.g. the old version of a function name) will be removed. *If you see deprecation warnings you can't avoid it by not updating*. We also announce anything that isn't a bug fix on [web-animations-changes@googlegroups.com](https://groups.google.com/forum/#!forum/web-animations-changes). PKIG^sXXhmaterialdjango/static/materialdjango/components/bower_components/web-animations-js/web-animations.min.js// Copyright 2014 Google Inc. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. !function(a,b){b["true"]=a,function(){if(document.documentElement.animate){var a=document.documentElement.animate([],0),b=!0;if(a&&(b=!1,"play|currentTime|pause|reverse|playbackRate|cancel|finish|startTime|playState".split("|").forEach(function(c){void 0===a[c]&&(b=!0)})),!b)return}var c={},d={},e={},f=null;!function(a){function b(a){if("number"==typeof a)return a;var b={};for(var c in a)b[c]=a[c];return b}function c(){this._delay=0,this._endDelay=0,this._fill="none",this._iterationStart=0,this._iterations=1,this._duration=0,this._playbackRate=1,this._direction="normal",this._easing="linear"}function d(b,d){var e=new c;return d&&(e.fill="both",e.duration="auto"),"number"!=typeof b||isNaN(b)?void 0!==b&&Object.getOwnPropertyNames(b).forEach(function(c){if("auto"!=b[c]){if(("number"==typeof e[c]||"duration"==c)&&("number"!=typeof b[c]||isNaN(b[c])))return;if("fill"==c&&-1==s.indexOf(b[c]))return;if("direction"==c&&-1==t.indexOf(b[c]))return;if("playbackRate"==c&&1!==b[c]&&a.isDeprecated("AnimationEffectTiming.playbackRate","2014-11-28","Use Animation.playbackRate instead."))return;e[c]=b[c]}}):e.duration=b,e}function e(a){return"number"==typeof a&&(a=isNaN(a)?{duration:0}:{duration:a}),a}function f(b,c){b=a.numericTimingToObject(b);var e=d(b,c);return e._easing=i(e.easing),e}function g(a,b,c,d){return 0>a||a>1||0>c||c>1?B:function(e){function f(a,b,c){return 3*a*(1-c)*(1-c)*c+3*b*(1-c)*c*c+c*c*c}if(0==e||1==e)return e;for(var g=0,h=1;;){var i=(g+h)/2,j=f(a,c,i);if(Math.abs(e-j)<.001)return f(b,d,i);e>j?g=i:h=i}}}function h(a,b){return function(c){if(c>=1)return 1;var d=1/a;return c+=b*d,c-c%d}}function i(a){var b=z.exec(a);if(b)return g.apply(this,b.slice(1).map(Number));var c=A.exec(a);if(c)return h(Number(c[1]),{start:u,middle:v,end:w}[c[2]]);var d=x[a];return d?d:B}function j(a){return Math.abs(k(a)/a.playbackRate)}function k(a){return a.duration*a.iterations}function l(a,b,c){return null==b?C:b=c.delay+a?E:F}function m(a,b,c,d,e){switch(d){case D:return"backwards"==b||"both"==b?0:null;case F:return c-e;case E:return"forwards"==b||"both"==b?a:null;case C:return null}}function n(a,b,c,d){return(d.playbackRate<0?b-a:b)*d.playbackRate+c}function o(a,b,c,d,e){return 1/0===c||c===-1/0||c-d==b&&e.iterations&&(e.iterations+e.iterationStart)%1==0?a:c%a}function p(a,b,c,d){return 0===c?0:b==a?d.iterationStart+d.iterations-1:Math.floor(c/a)}function q(a,b,c,d){var e=a%2>=1,f="normal"==d.direction||d.direction==(e?"alternate-reverse":"alternate"),g=f?c:b-c,h=g/b;return b*d.easing(h)}function r(a,b,c){var d=l(a,b,c),e=m(a,c.fill,b,d,c.delay);if(null===e)return null;if(0===a)return d===D?0:1;var f=c.iterationStart*c.duration,g=n(a,e,f,c),h=o(c.duration,k(c),g,f,c),i=p(c.duration,h,g,c);return q(i,c.duration,h,c)/c.duration}var s="backwards|forwards|both|none".split("|"),t="reverse|alternate|alternate-reverse".split("|");c.prototype={_setMember:function(b,c){this["_"+b]=c,this._effect&&(this._effect._timingInput[b]=c,this._effect._timing=a.normalizeTimingInput(a.normalizeTimingInput(this._effect._timingInput)),this._effect.activeDuration=a.calculateActiveDuration(this._effect._timing),this._effect._animation&&this._effect._animation._rebuildUnderlyingAnimation())},get playbackRate(){return this._playbackRate},set delay(a){this._setMember("delay",a)},get delay(){return this._delay},set endDelay(a){this._setMember("endDelay",a)},get endDelay(){return this._endDelay},set fill(a){this._setMember("fill",a)},get fill(){return this._fill},set iterationStart(a){this._setMember("iterationStart",a)},get iterationStart(){return this._iterationStart},set duration(a){this._setMember("duration",a)},get duration(){return this._duration},set direction(a){this._setMember("direction",a)},get direction(){return this._direction},set easing(a){this._setMember("easing",a)},get easing(){return this._easing},set iterations(a){this._setMember("iterations",a)},get iterations(){return this._iterations}};var u=1,v=.5,w=0,x={ease:g(.25,.1,.25,1),"ease-in":g(.42,0,1,1),"ease-out":g(0,0,.58,1),"ease-in-out":g(.42,0,.58,1),"step-start":h(1,u),"step-middle":h(1,v),"step-end":h(1,w)},y="\\s*(-?\\d+\\.?\\d*|-?\\.\\d+)\\s*",z=new RegExp("cubic-bezier\\("+y+","+y+","+y+","+y+"\\)"),A=/steps\(\s*(\d+)\s*,\s*(start|middle|end)\s*\)/,B=function(a){return a},C=0,D=1,E=2,F=3;a.cloneTimingInput=b,a.makeTiming=d,a.numericTimingToObject=e,a.normalizeTimingInput=f,a.calculateActiveDuration=j,a.calculateTimeFraction=r,a.calculatePhase=l,a.toTimingFunction=i}(c,f),function(a){function b(a,b){return a in h?h[a][b]||b:b}function c(a,c,d){var g=e[a];if(g){f.style[a]=c;for(var h in g){var i=g[h],j=f.style[i];d[i]=b(i,j)}}else d[a]=b(a,c)}function d(b){function d(){var a=e.length;null==e[a-1].offset&&(e[a-1].offset=1),a>1&&null==e[0].offset&&(e[0].offset=0);for(var b=0,c=e[0].offset,d=1;a>d;d++){var f=e[d].offset;if(null!=f){for(var g=1;d-b>g;g++)e[b+g].offset=c+(f-c)*g/(d-b);b=d,c=f}}}if(!Array.isArray(b)&&null!==b)throw new TypeError("Keyframes must be null or an array of keyframes");if(null==b)return[];for(var e=b.map(function(b){var d={};for(var e in b){var f=b[e];if("offset"==e){if(null!=f&&(f=Number(f),!isFinite(f)))throw new TypeError("keyframe offsets must be numbers.")}else{if("composite"==e)throw{type:DOMException.NOT_SUPPORTED_ERR,name:"NotSupportedError",message:"add compositing is not supported"};f="easing"==e?a.toTimingFunction(f):""+f}c(e,f,d)}return void 0==d.offset&&(d.offset=null),void 0==d.easing&&(d.easing=a.toTimingFunction("linear")),d}),f=!0,g=-1/0,h=0;hi)throw{code:DOMException.INVALID_MODIFICATION_ERR,name:"InvalidModificationError",message:"Keyframes are not loosely sorted by offset. Sort or specify offsets."};g=i}else f=!1}return e=e.filter(function(a){return a.offset>=0&&a.offset<=1}),f||d(),e}var e={background:["backgroundImage","backgroundPosition","backgroundSize","backgroundRepeat","backgroundAttachment","backgroundOrigin","backgroundClip","backgroundColor"],border:["borderTopColor","borderTopStyle","borderTopWidth","borderRightColor","borderRightStyle","borderRightWidth","borderBottomColor","borderBottomStyle","borderBottomWidth","borderLeftColor","borderLeftStyle","borderLeftWidth"],borderBottom:["borderBottomWidth","borderBottomStyle","borderBottomColor"],borderColor:["borderTopColor","borderRightColor","borderBottomColor","borderLeftColor"],borderLeft:["borderLeftWidth","borderLeftStyle","borderLeftColor"],borderRadius:["borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius"],borderRight:["borderRightWidth","borderRightStyle","borderRightColor"],borderTop:["borderTopWidth","borderTopStyle","borderTopColor"],borderWidth:["borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth"],flex:["flexGrow","flexShrink","flexBasis"],font:["fontFamily","fontSize","fontStyle","fontVariant","fontWeight","lineHeight"],margin:["marginTop","marginRight","marginBottom","marginLeft"],outline:["outlineColor","outlineStyle","outlineWidth"],padding:["paddingTop","paddingRight","paddingBottom","paddingLeft"]},f=document.createElementNS("http://www.w3.org/1999/xhtml","div"),g={thin:"1px",medium:"3px",thick:"5px"},h={borderBottomWidth:g,borderLeftWidth:g,borderRightWidth:g,borderTopWidth:g,fontSize:{"xx-small":"60%","x-small":"75%",small:"89%",medium:"100%",large:"120%","x-large":"150%","xx-large":"200%"},fontWeight:{normal:"400",bold:"700"},outlineWidth:g,textShadow:{none:"0px 0px 0px transparent"},boxShadow:{none:"0px 0px 0px 0px transparent"}};a.normalizeKeyframes=d}(c,f),function(a){var b={};a.isDeprecated=function(a,c,d,e){var f=e?"are":"is",g=new Date,h=new Date(c);return h.setMonth(h.getMonth()+3),h>g?(a in b||console.warn("Web Animations: "+a+" "+f+" deprecated and will stop working on "+h.toDateString()+". "+d),b[a]=!0,!1):!0},a.deprecated=function(b,c,d,e){var f=e?"are":"is";if(a.isDeprecated(b,c,d,e))throw new Error(b+" "+f+" no longer supported. "+d)}}(c),function(a,b){function c(a){for(var b={},c=0;c=c&&0==a.startTime||c>=1&&1==a.endTime||c>=a.startTime&&c<=a.endTime}).forEach(function(d){var e=c-d.startTime,f=d.endTime-d.startTime,g=0==f?0:d.easing(e/f);b.apply(a,d.property,d.interpolation(g))});else for(var d in g)"offset"!=d&&"easing"!=d&&"composite"!=d&&b.clear(a,d)}}}(c,d,f),function(a){function b(a,b,c){e[c]=e[c]||[],e[c].push([a,b])}function c(a,c,d){for(var e=0;ethis._surrogateStyle.length;)this._length--,Object.defineProperty(this,this._length,{configurable:!0,enumerable:!1,value:void 0})},_set:function(a,b){this._style[a]=b,this._isAnimatedProperty[a]=!0},_clear:function(a){this._style[a]=this._surrogateStyle[a],delete this._isAnimatedProperty[a]}};for(var h in f)c.prototype[h]=function(a,b){return function(){var c=this._surrogateStyle[a].apply(this._surrogateStyle,arguments);return b&&(this._isAnimatedProperty[arguments[0]]||this._style[a].apply(this._style,arguments),this._updateIndices()),c}}(h,h in g);for(var i in document.documentElement.style)i in e||i in f||!function(a){b(c.prototype,a,{get:function(){return this._surrogateStyle[a]},set:function(b){this._surrogateStyle[a]=b,this._updateIndices(),this._isAnimatedProperty[a]||(this._style[a]=b)}})}(i);a.apply=function(b,c,e){d(b),b.style._set(a.propertyName(c),e)},a.clear=function(b,c){b._webAnimationsPatchedStyle&&b.style._clear(a.propertyName(c))}}(d,f),function(a){window.Element.prototype.animate=function(b,c){return a.timeline._play(a.KeyframeEffect(this,b,c))}}(d),function(a){function b(a,c,d){if("number"==typeof a&&"number"==typeof c)return a*(1-d)+c*d;if("boolean"==typeof a&&"boolean"==typeof c)return.5>d?a:c;if(a.length==c.length){for(var e=[],f=0;fj;j++)g.push(c[j]*(Math.cos(e*h)-f*i)+d[j]*i);return g}var d=function(){function a(a,b){for(var c=[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],d=0;4>d;d++)for(var e=0;4>e;e++)for(var f=0;4>f;f++)c[d][e]+=b[d][f]*a[f][e];return c}function b(a){return 0==a[0][2]&&0==a[0][3]&&0==a[1][2]&&0==a[1][3]&&0==a[2][0]&&0==a[2][1]&&1==a[2][2]&&0==a[2][3]&&0==a[3][2]&&1==a[3][3]}function c(c,d,e,f,g){for(var h=[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]],i=0;4>i;i++)h[i][3]=g[i];for(var i=0;3>i;i++)for(var j=0;3>j;j++)h[3][i]+=c[j]*h[j][i];var k=f[0],l=f[1],m=f[2],n=f[3],o=[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]];o[0][0]=1-2*(l*l+m*m),o[0][1]=2*(k*l-m*n),o[0][2]=2*(k*m+l*n),o[1][0]=2*(k*l+m*n),o[1][1]=1-2*(k*k+m*m),o[1][2]=2*(l*m-k*n),o[2][0]=2*(k*m-l*n),o[2][1]=2*(l*m+k*n),o[2][2]=1-2*(k*k+l*l),h=a(h,o);var p=[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]];e[2]&&(p[2][1]=e[2],h=a(h,p)),e[1]&&(p[2][1]=0,p[2][0]=e[0],h=a(h,p)),e[0]&&(p[2][0]=0,p[1][0]=e[0],h=a(h,p));for(var i=0;3>i;i++)for(var j=0;3>j;j++)h[i][j]*=d[i];return b(h)?[h[0][0],h[0][1],h[1][0],h[1][1],h[3][0],h[3][1]]:h[0].concat(h[1],h[2],h[3])}return c}();a.composeMatrix=d,a.quat=c}(d,f),function(a,b){a.sequenceNumber=0;var c=function(a,b,c){this.target=a,this.currentTime=b,this.timelineTime=c,this.type="finish",this.bubbles=!1,this.cancelable=!1,this.currentTarget=a,this.defaultPrevented=!1,this.eventPhase=Event.AT_TARGET,this.timeStamp=Date.now()};b.Animation=function(b){this._sequenceNumber=a.sequenceNumber++,this._currentTime=0,this._startTime=null,this._paused=!1,this._playbackRate=1,this._inTimeline=!0,this._finishedFlag=!1,this.onfinish=null,this._finishHandlers=[],this._effect=b,this._inEffect=this._effect._update(0),this._idle=!0,this._currentTimePending=!1},b.Animation.prototype={_ensureAlive:function(){this._inEffect=this._effect._update(this.playbackRate<0&&0===this.currentTime?-1:this.currentTime),this._inTimeline||!this._inEffect&&this._finishedFlag||(this._inTimeline=!0,b.timeline._animations.push(this))},_tickCurrentTime:function(a,b){a!=this._currentTime&&(this._currentTime=a,this._isFinished&&!b&&(this._currentTime=this._playbackRate>0?this._totalDuration:0),this._ensureAlive())},get currentTime(){return this._idle||this._currentTimePending?null:this._currentTime},set currentTime(a){a=+a,isNaN(a)||(b.restart(),this._paused||null==this._startTime||(this._startTime=this._timeline.currentTime-a/this._playbackRate),this._currentTimePending=!1,this._currentTime!=a&&(this._tickCurrentTime(a,!0),b.invalidateEffects()))},get startTime(){return this._startTime},set startTime(a){a=+a,isNaN(a)||this._paused||this._idle||(this._startTime=a,this._tickCurrentTime((this._timeline.currentTime-this._startTime)*this.playbackRate),b.invalidateEffects())},get playbackRate(){return this._playbackRate},set playbackRate(a){if(a!=this._playbackRate){var b=this.currentTime;this._playbackRate=a,this._startTime=null,"paused"!=this.playState&&"idle"!=this.playState&&this.play(),null!=b&&(this.currentTime=b)}},get _isFinished(){return!this._idle&&(this._playbackRate>0&&this._currentTime>=this._totalDuration||this._playbackRate<0&&this._currentTime<=0)},get _totalDuration(){return this._effect._totalDuration},get playState(){return this._idle?"idle":null==this._startTime&&!this._paused&&0!=this.playbackRate||this._currentTimePending?"pending":this._paused?"paused":this._isFinished?"finished":"running"},play:function(){this._paused=!1,(this._isFinished||this._idle)&&(this._currentTime=this._playbackRate>0?0:this._totalDuration,this._startTime=null,b.invalidateEffects()),this._finishedFlag=!1,b.restart(),this._idle=!1,this._ensureAlive()},pause:function(){this._isFinished||this._paused||this._idle||(this._currentTimePending=!0),this._startTime=null,this._paused=!0},finish:function(){this._idle||(this.currentTime=this._playbackRate>0?this._totalDuration:0,this._startTime=this._totalDuration-this.currentTime,this._currentTimePending=!1)},cancel:function(){this._inEffect&&(this._inEffect=!1,this._idle=!0,this.currentTime=0,this._startTime=null,this._effect._update(null),b.invalidateEffects(),b.restart())},reverse:function(){this.playbackRate*=-1,this.play()},addEventListener:function(a,b){"function"==typeof b&&"finish"==a&&this._finishHandlers.push(b)},removeEventListener:function(a,b){if("finish"==a){var c=this._finishHandlers.indexOf(b);c>=0&&this._finishHandlers.splice(c,1)}},_fireEvents:function(a){var b=this._isFinished;if((b||this._idle)&&!this._finishedFlag){var d=new c(this,this._currentTime,a),e=this._finishHandlers.concat(this.onfinish?[this.onfinish]:[]);setTimeout(function(){e.forEach(function(a){a.call(d.target,d)})},0)}this._finishedFlag=b},_tick:function(a){return this._idle||this._paused||(null==this._startTime?this.startTime=a-this._currentTime/this.playbackRate:this._isFinished||this._tickCurrentTime((a-this._startTime)*this.playbackRate)),this._currentTimePending=!1,this._fireEvents(a),!this._idle&&(this._inEffect||!this._finishedFlag)}}}(c,d,f),function(a,b){function c(a){var b=i;i=[],a0&&(s.currentTime+=q*(Math.floor((a-s.currentTime)/q)+1)),g(s.currentTime)}return f(),r.apply(this,arguments)}});var s=new e;b.timeline=s}(c,d,f),function(a){function b(a,b){for(var c=0,d=0;do;o++){for(var p=0,q=0;3>q;q++)p+=b[3][q]*m[q][o];n.push(p)}return n.push(1),m.push(n),m}function d(a){return[[a[0][0],a[1][0],a[2][0],a[3][0]],[a[0][1],a[1][1],a[2][1],a[3][1]],[a[0][2],a[1][2],a[2][2],a[3][2]],[a[0][3],a[1][3],a[2][3],a[3][3]]]}function e(a,b){for(var c=[],d=0;4>d;d++){for(var e=0,f=0;4>f;f++)e+=a[f]*b[f][d];c.push(e)}return c}function f(a){var b=g(a);return[a[0]/b,a[1]/b,a[2]/b]}function g(a){return Math.sqrt(a[0]*a[0]+a[1]*a[1]+a[2]*a[2])}function h(a,b,c,d){return[c*a[0]+d*b[0],c*a[1]+d*b[1],c*a[2]+d*b[2]]}function i(a,b){return[a[1]*b[2]-a[2]*b[1],a[2]*b[0]-a[0]*b[2],a[0]*b[1]-a[1]*b[0]]}function j(j){var k=[j.slice(0,4),j.slice(4,8),j.slice(8,12),j.slice(12,16)];if(1!==k[3][3])return null;for(var l=[],m=0;4>m;m++)l.push(k[m].slice());for(var m=0;3>m;m++)l[m][3]=0;if(0===a(l))return!1;var n,o=[];if(k[0][3]||k[1][3]||k[2][3]){o.push(k[0][3]),o.push(k[1][3]),o.push(k[2][3]),o.push(k[3][3]);var p=c(l),q=d(p);n=e(o,q)}else n=[0,0,0,1];var r=k[3].slice(0,3),s=[];s.push(k[0].slice(0,3));var t=[];t.push(g(s[0])),s[0]=f(s[0]);var u=[];s.push(k[1].slice(0,3)),u.push(b(s[0],s[1])),s[1]=h(s[1],s[0],1,-u[0]),t.push(g(s[1])),s[1]=f(s[1]),u[0]/=t[1],s.push(k[2].slice(0,3)),u.push(b(s[0],s[2])),s[2]=h(s[2],s[0],1,-u[1]),u.push(b(s[1],s[2])),s[2]=h(s[2],s[1],1,-u[2]),t.push(g(s[2])),s[2]=f(s[2]),u[1]/=t[2],u[2]/=t[2];var v=i(s[1],s[2]);if(b(s[0],v)<0)for(var m=0;3>m;m++)t[m]*=-1,s[m][0]*=-1,s[m][1]*=-1,s[m][2]*=-1;var w,x,y=s[0][0]+s[1][1]+s[2][2]+1;return y>1e-4?(w=.5/Math.sqrt(y),x=[(s[2][1]-s[1][2])*w,(s[0][2]-s[2][0])*w,(s[1][0]-s[0][1])*w,.25/w]):s[0][0]>s[1][1]&&s[0][0]>s[2][2]?(w=2*Math.sqrt(1+s[0][0]-s[1][1]-s[2][2]),x=[.25*w,(s[0][1]+s[1][0])/w,(s[0][2]+s[2][0])/w,(s[2][1]-s[1][2])/w]):s[1][1]>s[2][2]?(w=2*Math.sqrt(1+s[1][1]-s[0][0]-s[2][2]),x=[(s[0][1]+s[1][0])/w,.25*w,(s[1][2]+s[2][1])/w,(s[0][2]-s[2][0])/w]):(w=2*Math.sqrt(1+s[2][2]-s[0][0]-s[1][1]),x=[(s[0][2]+s[2][0])/w,(s[1][2]+s[2][1])/w,.25*w,(s[1][0]-s[0][1])/w]),[r,t,u,x,n]}return j}();a.dot=b,a.makeMatrixDecomposition=f}(d,f),function(a){function b(a,b){var c=a.exec(b);return c?(c=a.ignoreCase?c[0].toLowerCase():c[0],[c,b.substr(c.length)]):void 0}function c(a,b){b=b.replace(/^\s*/,"");var c=a(b);return c?[c[0],c[1].replace(/^\s*/,"")]:void 0}function d(a,d,e){a=c.bind(null,a);for(var f=[];;){var g=a(e);if(!g)return[f,e];if(f.push(g[0]),e=g[1],g=b(d,e),!g||""==g[1])return[f,e];e=g[1]}}function e(a,b){for(var c=0,d=0;d=c))break;var e=a(b.substr(0,d));return void 0==e?void 0:[e,b.substr(d)]}function f(a,b){for(var c=a,d=b;c&&d;)c>d?c%=d:d%=c;return c=a*b/(c+d)}function g(a){return function(b){var c=a(b);return c&&(c[0]=void 0),c}}function h(a,b){return function(c){var d=a(c);return d?d:[b,c]}}function i(b,c){for(var d=[],e=0;ek;k++){var l=b(d[k%d.length],e[k%e.length]);if(!l)return;g.push(l[0]),h.push(l[1]),i.push(l[2])}return[g,h,function(b){var d=b.map(function(a,b){return i[b](a)}).join(c);return a?a(d):d}]}function k(a,b,c){for(var d=[],e=[],f=[],g=0,h=0;h=c?a:c>=1?b:"visible"}]:void 0}a.addPropertiesHandler(String,b,["visibility"])}(d),function(a){function b(a){a=a.trim(),e.fillStyle="#000",e.fillStyle=a;var b=e.fillStyle;if(e.fillStyle="#fff",e.fillStyle=a,b==e.fillStyle){e.fillRect(0,0,1,1);var c=e.getImageData(0,0,1,1).data;e.clearRect(0,0,1,1);var d=c[3]/255;return[c[0]*d,c[1]*d,c[2]*d,d]}}function c(b,c){return[b,c,function(b){function c(a){return Math.max(0,Math.min(255,a))}if(b[3])for(var d=0;3>d;d++)b[d]=Math.round(c(b[d]/b[3]));return b[3]=a.numberToString(a.clamp(0,1,b[3])),"rgba("+b.join(",")+")"}]}var d=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");d.width=d.height=1;var e=d.getContext("2d");a.addPropertiesHandler(b,c,["background-color","border-bottom-color","border-left-color","border-right-color","border-top-color","color","outline-color","text-decoration-color"]),a.consumeColor=a.consumeParenthesised.bind(null,b),a.mergeColors=c }(d,f),function(a,b){function c(a,b){if(b=b.trim().toLowerCase(),"0"==b&&"px".search(a)>=0)return{px:0};if(/^[^(]*$|^calc/.test(b)){b=b.replace(/calc\(/g,"(");var c={};b=b.replace(a,function(a){return c[a]=null,"U"+a});for(var d="U("+a.source+")",e=b.replace(/[-+]?(\d*\.)?\d+/g,"N").replace(new RegExp("N"+d,"g"),"D").replace(/\s[+-]\s/g,"O").replace(/\s/g,""),f=[/N\*(D)/g,/(N|D)[*/]N/g,/(N|D)O\1/g,/\((N|D)\)/g],g=0;g1?"calc("+c+")":c}]}var f="px|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc",g=c.bind(null,new RegExp(f,"g")),h=c.bind(null,new RegExp(f+"|%","g")),i=c.bind(null,/deg|rad|grad|turn/g);a.parseLength=g,a.parseLengthOrPercent=h,a.consumeLengthOrPercent=a.consumeParenthesised.bind(null,h),a.parseAngle=i,a.mergeDimensions=e;var j=a.consumeParenthesised.bind(null,g),k=a.consumeRepeated.bind(void 0,j,/^/),l=a.consumeRepeated.bind(void 0,k,/^,/);a.consumeSizePairList=l;var m=function(a){var b=l(a);return b&&""==b[1]?b[0]:void 0},n=a.mergeNestedRepeated.bind(void 0,d," "),o=a.mergeNestedRepeated.bind(void 0,n,",");a.mergeNonNegativeSizePair=n,a.addPropertiesHandler(m,o,["background-size"]),a.addPropertiesHandler(h,d,["border-bottom-width","border-image-width","border-left-width","border-right-width","border-top-width","flex-basis","font-size","height","line-height","max-height","max-width","outline-width","width"]),a.addPropertiesHandler(h,e,["border-bottom-left-radius","border-bottom-right-radius","border-top-left-radius","border-top-right-radius","bottom","left","letter-spacing","margin-bottom","margin-left","margin-right","margin-top","min-height","min-width","outline-offset","padding-bottom","padding-left","padding-right","padding-top","perspective","right","shape-margin","text-indent","top","vertical-align","word-spacing"])}(d,f),function(a){function b(b){return a.consumeLengthOrPercent(b)||a.consumeToken(/^auto/,b)}function c(c){var d=a.consumeList([a.ignore(a.consumeToken.bind(null,/^rect/)),a.ignore(a.consumeToken.bind(null,/^\(/)),a.consumeRepeated.bind(null,b,/^,/),a.ignore(a.consumeToken.bind(null,/^\)/))],c);return d&&4==d[0].length?d[0]:void 0}function d(b,c){return"auto"==b||"auto"==c?[!0,!1,function(d){var e=d?b:c;if("auto"==e)return"auto";var f=a.mergeDimensions(e,e);return f[2](f[0])}]:a.mergeDimensions(b,c)}function e(a){return"rect("+a+")"}var f=a.mergeWrappedNestedRepeated.bind(null,e,d,", ");a.parseBox=c,a.mergeBoxes=f,a.addPropertiesHandler(c,f,["clip"])}(d,f),function(a){function b(a){return function(b){var c=0;return a.map(function(a){return a===j?b[c++]:a})}}function c(a){return a}function d(b){if(b=b.toLowerCase().trim(),"none"==b)return[];for(var c,d=/\s*(\w+)\(([^)]*)\)/g,e=[],f=0;c=d.exec(b);){if(c.index!=f)return;f=c.index+c[0].length;var g=c[1],h=m[g];if(!h)return;var i=c[2].split(","),j=h[0];if(j.lengthb||b>900||b%100!==0?void 0:b}function c(b){return b=100*Math.round(b/100),b=a.clamp(100,900,b),400===b?"normal":700===b?"bold":String(b)}function d(a,b){return[a,b,c]}a.addPropertiesHandler(b,d,["font-weight"])}(d),function(a){function b(a){var b={};for(var c in a)b[c]=-a[c];return b}function c(b){return a.consumeToken(/^(left|center|right|top|bottom)\b/i,b)||a.consumeLengthOrPercent(b)}function d(b,d){var e=a.consumeRepeated(c,/^/,d);if(e&&""==e[1]){var f=e[0];if(f[0]=f[0]||"center",f[1]=f[1]||"center",3==b&&(f[2]=f[2]||{px:0}),f.length==b){if(/top|bottom/.test(f[0])||/left|right/.test(f[1])){var h=f[0];f[0]=f[1],f[1]=h}if(/left|right|center|Object/.test(f[0])&&/top|bottom|center|Object/.test(f[1]))return f.map(function(a){return"object"==typeof a?a:g[a]})}}}function e(d){var e=a.consumeRepeated(c,/^/,d);if(e){for(var f=e[0],h=[{"%":50},{"%":50}],i=0,j=!1,k=0;kC C dmaterialdjango/static/materialdjango/components/bower_components/hydrolysis/hydrolysis-analyzer.html PK=H@ғ``Rmaterialdjango/static/materialdjango/components/bower_components/hydrolysis/API.md## Objects
    hydrolysis : object

    Static analysis for Polymer.

    ## Functions
    isSiblingOrAunt()boolean

    Returns true if patha is a sibling or aunt of pathb.

    redirectSibling()string

    Change localPath from a sibling of basePath to be a child of basePath joined with redirect.

    ProtocolRedirect(config)

    A single redirect configuration

    ## hydrolysis : object Static analysis for Polymer. **Kind**: global namespace * [hydrolysis](#hydrolysis) : object * [.Analyzer](#hydrolysis.Analyzer) * [new Analyzer(attachAST, [loader])](#new_hydrolysis.Analyzer_new) * _instance_ * [.elements](#hydrolysis.Analyzer+elements) : Array.<ElementDescriptor> * [.elementsByTagName](#hydrolysis.Analyzer+elementsByTagName) : Object.<string, ElementDescriptor> * [.features](#hydrolysis.Analyzer+features) : Array.<FeatureDescriptor> * [.behaviors](#hydrolysis.Analyzer+behaviors) : Array.<BehaviorDescriptor> * [.behaviorsByName](#hydrolysis.Analyzer+behaviorsByName) : Object.<string, BehaviorDescriptor> * [.html](#hydrolysis.Analyzer+html) : Object.<string, AnalyzedDocument> * [.parsedDocuments](#hydrolysis.Analyzer+parsedDocuments) : Object * [.parsedScripts](#hydrolysis.Analyzer+parsedScripts) : Object.<string, Array.<ParsedJS>> * [._content](#hydrolysis.Analyzer+_content) : Object * [._getDependencies(href, [found], [transitive])](#hydrolysis.Analyzer+_getDependencies) ⇒ Array.<string> * [.elementsForFolder(href)](#hydrolysis.Analyzer+elementsForFolder) ⇒ Array.<ElementDescriptor> * [.behaviorsForFolder(href)](#hydrolysis.Analyzer+behaviorsForFolder) ⇒ Array.<BehaviorDescriptor> * [.metadataTree(href)](#hydrolysis.Analyzer+metadataTree) ⇒ Promise * [.getLoadedAst(href, [loaded])](#hydrolysis.Analyzer+getLoadedAst) ⇒ Promise.<DocumentAST> * [.nodeWalkDocuments(predicate)](#hydrolysis.Analyzer+nodeWalkDocuments) ⇒ Object * [.nodeWalkAllDocuments(predicate)](#hydrolysis.Analyzer+nodeWalkAllDocuments) ⇒ Object * [.annotate()](#hydrolysis.Analyzer+annotate) * [.clean()](#hydrolysis.Analyzer+clean) * _static_ * [.analyze(href, [options])](#hydrolysis.Analyzer.analyze) ⇒ Promise.<Analyzer> * [.FileLoader](#hydrolysis.FileLoader) * [new FileLoader()](#new_hydrolysis.FileLoader_new) * [.addResolver(resolver)](#hydrolysis.FileLoader+addResolver) * [.request(url)](#hydrolysis.FileLoader+request) ⇒ Promise.<string> * [.FSResolver](#hydrolysis.FSResolver) * [new FSResolver(config)](#new_hydrolysis.FSResolver_new) * [.NoopResolver](#hydrolysis.NoopResolver) * [new NoopResolver(config)](#new_hydrolysis.NoopResolver_new) * [.accept(uri, deferred)](#hydrolysis.NoopResolver+accept) ⇒ boolean * [.RedirectResolver](#hydrolysis.RedirectResolver) * [new RedirectResolver(config, redirects)](#new_hydrolysis.RedirectResolver_new) * [.XHRResolver](#hydrolysis.XHRResolver) * [new XHRResolver(config)](#new_hydrolysis.XHRResolver_new) * [.DocumentAST](#hydrolysis.DocumentAST) : Object * [.JSAST](#hydrolysis.JSAST) : Object * [.ParsedJS](#hydrolysis.ParsedJS) : Object * [.ElementDescriptor](#hydrolysis.ElementDescriptor) : Object * [.FeatureDescriptor](#hydrolysis.FeatureDescriptor) : Object * [.BehaviorDescriptor](#hydrolysis.BehaviorDescriptor) : Object * [.DocumentDescriptor](#hydrolysis.DocumentDescriptor) : Object * [.AnalyzedDocument](#hydrolysis.AnalyzedDocument) : Object * [.LoadOptions](#hydrolysis.LoadOptions) : Object * [.Resolver](#hydrolysis.Resolver) : Object ### hydrolysis.Analyzer **Kind**: static class of [hydrolysis](#hydrolysis) * [.Analyzer](#hydrolysis.Analyzer) * [new Analyzer(attachAST, [loader])](#new_hydrolysis.Analyzer_new) * _instance_ * [.elements](#hydrolysis.Analyzer+elements) : Array.<ElementDescriptor> * [.elementsByTagName](#hydrolysis.Analyzer+elementsByTagName) : Object.<string, ElementDescriptor> * [.features](#hydrolysis.Analyzer+features) : Array.<FeatureDescriptor> * [.behaviors](#hydrolysis.Analyzer+behaviors) : Array.<BehaviorDescriptor> * [.behaviorsByName](#hydrolysis.Analyzer+behaviorsByName) : Object.<string, BehaviorDescriptor> * [.html](#hydrolysis.Analyzer+html) : Object.<string, AnalyzedDocument> * [.parsedDocuments](#hydrolysis.Analyzer+parsedDocuments) : Object * [.parsedScripts](#hydrolysis.Analyzer+parsedScripts) : Object.<string, Array.<ParsedJS>> * [._content](#hydrolysis.Analyzer+_content) : Object * [._getDependencies(href, [found], [transitive])](#hydrolysis.Analyzer+_getDependencies) ⇒ Array.<string> * [.elementsForFolder(href)](#hydrolysis.Analyzer+elementsForFolder) ⇒ Array.<ElementDescriptor> * [.behaviorsForFolder(href)](#hydrolysis.Analyzer+behaviorsForFolder) ⇒ Array.<BehaviorDescriptor> * [.metadataTree(href)](#hydrolysis.Analyzer+metadataTree) ⇒ Promise * [.getLoadedAst(href, [loaded])](#hydrolysis.Analyzer+getLoadedAst) ⇒ Promise.<DocumentAST> * [.nodeWalkDocuments(predicate)](#hydrolysis.Analyzer+nodeWalkDocuments) ⇒ Object * [.nodeWalkAllDocuments(predicate)](#hydrolysis.Analyzer+nodeWalkAllDocuments) ⇒ Object * [.annotate()](#hydrolysis.Analyzer+annotate) * [.clean()](#hydrolysis.Analyzer+clean) * _static_ * [.analyze(href, [options])](#hydrolysis.Analyzer.analyze) ⇒ Promise.<Analyzer> #### new Analyzer(attachAST, [loader]) A database of Polymer metadata defined in HTML | Param | Type | Description | | --- | --- | --- | | attachAST | boolean | If true, attach a parse5 compliant AST | | [loader] | FileLoader | An optional `FileLoader` used to load external resources | #### analyzer.elements : Array.<ElementDescriptor> A list of all elements the `Analyzer` has metadata for. **Kind**: instance property of [Analyzer](#hydrolysis.Analyzer) #### analyzer.elementsByTagName : Object.<string, ElementDescriptor> A view into `elements`, keyed by tag name. **Kind**: instance property of [Analyzer](#hydrolysis.Analyzer) #### analyzer.features : Array.<FeatureDescriptor> A list of API features added to `Polymer.Base` encountered by the analyzer. **Kind**: instance property of [Analyzer](#hydrolysis.Analyzer) #### analyzer.behaviors : Array.<BehaviorDescriptor> The behaviors collected by the analysis pass. **Kind**: instance property of [Analyzer](#hydrolysis.Analyzer) #### analyzer.behaviorsByName : Object.<string, BehaviorDescriptor> The behaviors collected by the analysis pass by name. **Kind**: instance property of [Analyzer](#hydrolysis.Analyzer) #### analyzer.html : Object.<string, AnalyzedDocument> A map, keyed by absolute path, of Document metadata. **Kind**: instance property of [Analyzer](#hydrolysis.Analyzer) #### analyzer.parsedDocuments : Object A map, keyed by path, of HTML document ASTs. **Kind**: instance property of [Analyzer](#hydrolysis.Analyzer) #### analyzer.parsedScripts : Object.<string, Array.<ParsedJS>> A map, keyed by path, of JS script ASTs. If the path is an HTML file with multiple scripts, the entry will be an array of scripts. **Kind**: instance property of [Analyzer](#hydrolysis.Analyzer) #### analyzer._content : Object A map, keyed by path, of document content. **Kind**: instance property of [Analyzer](#hydrolysis.Analyzer) #### analyzer._getDependencies(href, [found], [transitive]) ⇒ Array.<string> List all the html dependencies for the document at `href`. **Kind**: instance method of [Analyzer](#hydrolysis.Analyzer) **Returns**: Array.<string> - A list of all the html dependencies. | Param | Type | Description | | --- | --- | --- | | href | string | The href to get dependencies for. | | [found] | Object.<string, boolean> | An object keyed by URL of the already resolved dependencies. | | [transitive] | boolean | Whether to load transitive dependencies. Defaults to true. | #### analyzer.elementsForFolder(href) ⇒ Array.<ElementDescriptor> Returns the elements defined in the folder containing `href`. **Kind**: instance method of [Analyzer](#hydrolysis.Analyzer) | Param | Type | Description | | --- | --- | --- | | href | string | path to search. | #### analyzer.behaviorsForFolder(href) ⇒ Array.<BehaviorDescriptor> Returns the behaviors defined in the folder containing `href`. **Kind**: instance method of [Analyzer](#hydrolysis.Analyzer) | Param | Type | Description | | --- | --- | --- | | href | string | path to search. | #### analyzer.metadataTree(href) ⇒ Promise Returns a promise that resolves to a POJO representation of the import tree, in a format that maintains the ordering of the HTML imports spec. **Kind**: instance method of [Analyzer](#hydrolysis.Analyzer) | Param | Type | Description | | --- | --- | --- | | href | string | the import to get metadata for. | #### analyzer.getLoadedAst(href, [loaded]) ⇒ Promise.<DocumentAST> Returns a promise resolving to a form of the AST with all links replaced with the document they link to. .css and .script files become <style> and <script>, respectively. The elements in the loaded document are unmodified from their original documents. **Kind**: instance method of [Analyzer](#hydrolysis.Analyzer) | Param | Type | Description | | --- | --- | --- | | href | string | The document to load. | | [loaded] | Object.<string, boolean> | An object keyed by already loaded documents. | #### analyzer.nodeWalkDocuments(predicate) ⇒ Object Calls `dom5.nodeWalkAll` on each document that `Anayzler` has laoded. **Kind**: instance method of [Analyzer](#hydrolysis.Analyzer) | Param | Type | Description | | --- | --- | --- | | predicate | Object | A dom5 predicate. | #### analyzer.nodeWalkAllDocuments(predicate) ⇒ Object Calls `dom5.nodeWalkAll` on each document that `Anayzler` has laoded. **Kind**: instance method of [Analyzer](#hydrolysis.Analyzer) | Param | Type | Description | | --- | --- | --- | | predicate | Object | A dom5 predicate. | #### analyzer.annotate() Annotates all loaded metadata with its documentation. **Kind**: instance method of [Analyzer](#hydrolysis.Analyzer) #### analyzer.clean() Removes redundant properties from the collected descriptors. **Kind**: instance method of [Analyzer](#hydrolysis.Analyzer) #### Analyzer.analyze(href, [options]) ⇒ Promise.<Analyzer> Shorthand for transitively loading and processing all imports beginning at `href`. In order to properly filter paths, `href` _must_ be an absolute URI. **Kind**: static method of [Analyzer](#hydrolysis.Analyzer) **Returns**: Promise.<Analyzer> - A promise that will resolve once `href` and its dependencies have been loaded and analyzed. | Param | Type | Description | | --- | --- | --- | | href | string | The root import to begin loading from. | | [options] | LoadOptions | Any additional options for the load. | ### hydrolysis.FileLoader **Kind**: static class of [hydrolysis](#hydrolysis) * [.FileLoader](#hydrolysis.FileLoader) * [new FileLoader()](#new_hydrolysis.FileLoader_new) * [.addResolver(resolver)](#hydrolysis.FileLoader+addResolver) * [.request(url)](#hydrolysis.FileLoader+request) ⇒ Promise.<string> #### new FileLoader() A FileLoader lets you resolve URLs with a set of potential resolvers. #### fileLoader.addResolver(resolver) Add an instance of a Resolver class to the list of url resolvers Ordering of resolvers is most to least recently added The first resolver to "accept" the url wins. **Kind**: instance method of [FileLoader](#hydrolysis.FileLoader) | Param | Type | Description | | --- | --- | --- | | resolver | Resolver | The resolver to add. | #### fileLoader.request(url) ⇒ Promise.<string> Return a promise for an absolute url Url requests are deduplicated by the loader, returning the same Promise for identical urls **Kind**: instance method of [FileLoader](#hydrolysis.FileLoader) **Returns**: Promise.<string> - A promise that resolves to the contents of the URL. | Param | Type | Description | | --- | --- | --- | | url | string | The absolute url to request. | ### hydrolysis.FSResolver **Kind**: static class of [hydrolysis](#hydrolysis) #### new FSResolver(config) Resolves requests via the file system. | Param | Type | Description | | --- | --- | --- | | config | Object | configuration options. | | config.host | string | Hostname to match for absolute urls. Matches "/" by default | | config.basePath | string | Prefix directory for components in url. Defaults to "/". | | config.root | string | Filesystem root to search. Defaults to the current working directory. | | config.redirect | string | Where to redirect lookups to siblings. | ### hydrolysis.NoopResolver **Kind**: static class of [hydrolysis](#hydrolysis) * [.NoopResolver](#hydrolysis.NoopResolver) * [new NoopResolver(config)](#new_hydrolysis.NoopResolver_new) * [.accept(uri, deferred)](#hydrolysis.NoopResolver+accept) ⇒ boolean #### new NoopResolver(config) A resolver that resolves to null any uri matching config. | Param | Type | Description | | --- | --- | --- | | config | string | The url to `accept`. | #### noopResolver.accept(uri, deferred) ⇒ boolean **Kind**: instance method of [NoopResolver](#hydrolysis.NoopResolver) **Returns**: boolean - Whether the URI is handled by this resolver. | Param | Type | Description | | --- | --- | --- | | uri | string | The absolute URI being requested. | | deferred | Deferred | The deferred promise that should be resolved if this resolver handles the URI. | ### hydrolysis.RedirectResolver **Kind**: static class of [hydrolysis](#hydrolysis) #### new RedirectResolver(config, redirects) Resolves protocol://hostname/path to the local filesystem. | Param | Type | Description | | --- | --- | --- | | config | Object | configuration options. | | config.root | string | Filesystem root to search. Defaults to the current working directory. | | redirects | [Array.<ProtocolRedirect>](#ProtocolRedirect) | A list of protocol redirects for the resolver. They are checked for matching first-to-last. | ### hydrolysis.XHRResolver **Kind**: static class of [hydrolysis](#hydrolysis) #### new XHRResolver(config) Construct a resolver that requests resources over XHR. | Param | Type | Description | | --- | --- | --- | | config | Object | configuration arguments. | | config.responseType | string | Type of object to be returned by the XHR. Defaults to 'text', accepts 'document', 'arraybuffer', and 'json'. | ### hydrolysis.DocumentAST : Object Parse5's representation of a parsed html document **Kind**: static typedef of [hydrolysis](#hydrolysis) ### hydrolysis.JSAST : Object espree's representation of a parsed html document **Kind**: static typedef of [hydrolysis](#hydrolysis) ### hydrolysis.ParsedJS : Object Package of a parsed JS script **Kind**: static typedef of [hydrolysis](#hydrolysis) **Properties** | Name | Type | Description | | --- | --- | --- | | ast | JSAST | The script's AST | | scriptElement | DocumentAST | If inline, the script's containing tag. | ### hydrolysis.ElementDescriptor : Object The metadata for a single polymer element **Kind**: static typedef of [hydrolysis](#hydrolysis) ### hydrolysis.FeatureDescriptor : Object The metadata for a Polymer feature. **Kind**: static typedef of [hydrolysis](#hydrolysis) ### hydrolysis.BehaviorDescriptor : Object The metadata for a Polymer behavior mixin. **Kind**: static typedef of [hydrolysis](#hydrolysis) ### hydrolysis.DocumentDescriptor : Object The metadata for all features and elements defined in one document **Kind**: static typedef of [hydrolysis](#hydrolysis) **Properties** | Name | Type | Description | | --- | --- | --- | | elements | Array.<ElementDescriptor> | The elements from the document | | features | Array.<FeatureDescriptor> | The features from the document | | behaviors | Array.<FeatureDescriptor> | The behaviors from the document | ### hydrolysis.AnalyzedDocument : Object The metadata of an entire HTML document, in promises. **Kind**: static typedef of [hydrolysis](#hydrolysis) **Properties** | Name | Type | Description | | --- | --- | --- | | href | string | The url of the document. | | htmlLoaded | Promise.<ParsedImport> | The parsed representation of the doc. Use the `ast` property to get the full `parse5` ast | | depsLoaded | Promise.<Array.<string>> | Resolves to the list of this Document's transitive import dependencies | | depHrefs | Array.<string> | The direct dependencies of the document. | | metadataLoaded | Promise.<DocumentDescriptor> | Resolves to the list of this Document's import dependencies | ### hydrolysis.LoadOptions : Object Options for `Analyzer.analzye` **Kind**: static typedef of [hydrolysis](#hydrolysis) **Properties** | Name | Type | Description | | --- | --- | --- | | noAnnotations | boolean | Whether `annotate()` should be skipped. | | clean | boolean | Whether the generated descriptors should be cleaned of redundant data. | | filter | function | A predicate function that indicates which files should be ignored by the loader. By default all files not located under the dirname of `href` will be ignored. | ### hydrolysis.Resolver : Object An object that knows how to resolve resources. **Kind**: static typedef of [hydrolysis](#hydrolysis) **Properties** | Name | Type | Description | | --- | --- | --- | | accept | function | Attempt to resolve `deferred` with the contents the specified URL. Returns false if the Resolver is unable to resolve the URL. | ## isSiblingOrAunt() ⇒ boolean Returns true if `patha` is a sibling or aunt of `pathb`. **Kind**: global function ## redirectSibling() ⇒ string Change `localPath` from a sibling of `basePath` to be a child of `basePath` joined with `redirect`. **Kind**: global function ## ProtocolRedirect(config) A single redirect configuration **Kind**: global function | Param | Type | Description | | --- | --- | --- | | config | Object | The configuration object | | config.protocol | string | The protocol this redirect matches. | | config.hostname | string | The host name this redirect matches. | | config.path | string | The part of the path to match and replace with 'redirectPath' | | config.redirectPath | string | The local filesystem path that should replace "protocol://hosname/path/" | * [ProtocolRedirect(config)](#ProtocolRedirect) * [.protocol](#ProtocolRedirect+protocol) : string * [.hostname](#ProtocolRedirect+hostname) : string * [.path](#ProtocolRedirect+path) : string * [.redirectPath](#ProtocolRedirect+redirectPath) : string ### protocolRedirect.protocol : string The protocol this redirect matches. **Kind**: instance property of [ProtocolRedirect](#ProtocolRedirect) ### protocolRedirect.hostname : string The host name this redirect matches. **Kind**: instance property of [ProtocolRedirect](#ProtocolRedirect) ### protocolRedirect.path : string The part of the path to match and replace with 'redirectPath' **Kind**: instance property of [ProtocolRedirect](#ProtocolRedirect) ### protocolRedirect.redirectPath : string The local filesystem path that should replace "protocol://hosname/path/" **Kind**: instance property of [ProtocolRedirect](#ProtocolRedirect) PK=Hi%/%/Ymaterialdjango/static/materialdjango/components/bower_components/hydrolysis/hydrolysis.jsrequire=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o} elements The elements from the document * @property {Array} features The features from the document * @property {Array} behaviors The behaviors from the document */ /** * The metadata of an entire HTML document, in promises. * @typedef {Object} AnalyzedDocument * @memberof hydrolysis * @property {string} href The url of the document. * @property {Promise} htmlLoaded The parsed representation of * the doc. Use the `ast` property to get the full `parse5` ast * * @property {Promise>} depsLoaded Resolves to the list of this * Document's transitive import dependencies * * @property {Array} depHrefs The direct dependencies of the document. * * @property {Promise} metadataLoaded Resolves to the list of * this Document's import dependencies */ /** * A database of Polymer metadata defined in HTML * * @constructor * @memberOf hydrolysis * @param {boolean} attachAST If true, attach a parse5 compliant AST * @param {FileLoader=} loader An optional `FileLoader` used to load external * resources */ var Analyzer = function Analyzer(attachAST, loader) { this.loader = loader; /** * A list of all elements the `Analyzer` has metadata for. * @member {Array.} */ this.elements = []; /** * A view into `elements`, keyed by tag name. * @member {Object.} */ this.elementsByTagName = {}; /** * A list of API features added to `Polymer.Base` encountered by the * analyzer. * @member {Array} */ this.features = []; /** * The behaviors collected by the analysis pass. * * @member {Array} */ this.behaviors = []; /** * The behaviors collected by the analysis pass by name. * * @member {Object} */ this.behaviorsByName = {}; /** * A map, keyed by absolute path, of Document metadata. * @member {Object} */ this.html = {}; /** * A map, keyed by path, of HTML document ASTs. * @type {Object} */ this.parsedDocuments = {}; /** * A map, keyed by path, of JS script ASTs. * * If the path is an HTML file with multiple scripts, the entry will be an array of scripts. * * @type {Object>} */ this.parsedScripts = {}; /** * A map, keyed by path, of document content. * @type {Object} */ this._content = {}; }; /** * Options for `Analyzer.analzye` * @typedef {Object} LoadOptions * @memberof hydrolysis * @property {boolean} noAnnotations Whether `annotate()` should be skipped. * @property {String=} content Content to resolve `href` to instead of loading * from the file system. * @property {boolean} clean Whether the generated descriptors should be cleaned * of redundant data. * @property {string=} resolver. * `xhr` to use XMLHttpRequest * `fs` to use the local filesystem. * `permissive` to use the local filesystem and return empty files when a * path can't be found. * Default is `fs` in node and `xhr` in the browser. * @property {function(string): boolean} filter A predicate function that * indicates which files should be ignored by the loader. By default all * files not located under the dirname of `href` will be ignored. */ /** * Shorthand for transitively loading and processing all imports beginning at * `href`. * * In order to properly filter paths, `href` _must_ be an absolute URI. * * @param {string} href The root import to begin loading from. * @param {LoadOptions=} options Any additional options for the load. * @return {Promise} A promise that will resolve once `href` and its * dependencies have been loaded and analyzed. */ Analyzer.analyze = function analyze(href, options) { options = options || {}; options.filter = options.filter || _defaultFilter(href); var loader = new FileLoader(); var resolver = options.resolver; if (resolver === undefined) { if (typeof window === 'undefined') { resolver = 'fs'; } else { resolver = 'xhr'; } } var PrimaryResolver; if (resolver === 'fs') { PrimaryResolver = require('./loader/fs-resolver'); } else if (resolver === 'xhr') { PrimaryResolver = require('./loader/xhr-resolver'); } else if (resolver === 'permissive') { PrimaryResolver = require('./loader/error-swallowing-fs-resolver'); } else { throw new Error("Resolver must be one of 'fs' or 'xhr'"); } loader.addResolver(new PrimaryResolver(options)); if (options.content) { loader.addResolver(new StringResolver({url: href, content: options.content})); } loader.addResolver(new NoopResolver({test: options.filter})); var analyzer = new this(null, loader); return analyzer.metadataTree(href).then(function(root) { if (!options.noAnnotations) { analyzer.annotate(); } if (options.clean) { analyzer.clean(); } return Promise.resolve(analyzer); }); }; /** * @private * @param {string} href * @return {function(string): boolean} */ function _defaultFilter(href) { // Everything up to the last `/` or `\`. var base = href.match(/^(.*?)[^\/\\]*$/)[1]; return function(uri) { return uri.indexOf(base) !== 0; }; } Analyzer.prototype.load = function load(href) { return this.loader.request(href).then(function(content) { return new Promise(function(resolve, reject) { setTimeout(function() { this._content[href] = content; resolve(this._parseHTML(content, href)); }.bind(this), 0); }.bind(this)).catch(function(err){ console.error("Error processing document at " + href); throw err; }); }.bind(this)); }; /** * Returns an `AnalyzedDocument` representing the provided document * @private * @param {string} htmlImport Raw text of an HTML document * @param {string} href The document's URL. * @return {AnalyzedDocument} An `AnalyzedDocument` */ Analyzer.prototype._parseHTML = function _parseHTML(htmlImport, href) { if (href in this.html) { return this.html[href]; } var depsLoaded = []; var depHrefs = []; var metadataLoaded = Promise.resolve(EMPTY_METADATA); var parsed; try { parsed = importParse(htmlImport, href); } catch (err) { console.error('Error parsing!'); throw err; } var htmlLoaded = Promise.resolve(parsed); if (parsed.script) { metadataLoaded = this._processScripts(parsed.script, href); } var commentText = parsed.comment.map(function(comment){ return dom5.getTextContent(comment); }); var pseudoElements = docs.parsePseudoElements(commentText); pseudoElements.forEach(function(element){ element.contentHref = href; this.elements.push(element); this.elementsByTagName[element.is] = element; }.bind(this)); metadataLoaded = metadataLoaded.then(function(metadata){ var metadataEntry = { elements: pseudoElements, features: [], behaviors: [] }; return [metadata, metadataEntry].reduce(reduceMetadata); }); depsLoaded.push(metadataLoaded); if (this.loader) { var baseUri = href; if (parsed.base.length > 1) { console.error("Only one base tag per document!"); throw "Multiple base tags in " + href; } else if (parsed.base.length == 1) { var baseHref = dom5.getAttribute(parsed.base[0], "href"); if (baseHref) { baseHref = baseHref + "/"; baseUri = url.resolve(baseUri, baseHref); } } parsed.import.forEach(function(link) { var linkurl = dom5.getAttribute(link, 'href'); if (linkurl) { var resolvedUrl = url.resolve(baseUri, linkurl); depHrefs.push(resolvedUrl); depsLoaded.push(this._dependenciesLoadedFor(resolvedUrl, href)); } }.bind(this)); parsed.style.forEach(function(styleElement) { if (polymerExternalStyle(styleElement)) { var styleHref = dom5.getAttribute(styleElement, 'href'); if (href) { styleHref = url.resolve(baseUri, styleHref); depsLoaded.push(this.loader.request(styleHref).then(function(content){ this._content[styleHref] = content; }.bind(this))); } } }.bind(this)); } depsLoaded = Promise.all(depsLoaded) .then(function() {return depHrefs;}) .catch(function(err) {throw err;}); this.parsedDocuments[href] = parsed.ast; this.html[href] = { href: href, htmlLoaded: htmlLoaded, metadataLoaded: metadataLoaded, depHrefs: depHrefs, depsLoaded: depsLoaded }; return this.html[href]; }; Analyzer.prototype._processScripts = function _processScripts(scripts, href) { var scriptPromises = []; scripts.forEach(function(script) { scriptPromises.push(this._processScript(script, href)); }.bind(this)); return Promise.all(scriptPromises).then(function(metadataList) { return metadataList.reduce(reduceMetadata, EMPTY_METADATA); }); }; Analyzer.prototype._processScript = function _processScript(script, href) { var src = dom5.getAttribute(script, 'src'); var parsedJs; if (!src) { try { parsedJs = jsParse((script.childNodes.length) ? script.childNodes[0].value : ''); } catch (err) { // Figure out the correct line number for the error. var line = 0; var col = 0; if (script.__ownerDocument && script.__ownerDocument == href) { line = script.__locationDetail.line - 1; col = script.__locationDetail.column - 1; } line += err.lineNumber; col += err.column; var message = "Error parsing script in " + href + " at " + line + ":" + col; message += "\n" + err.stack; var fixedErr = new Error(message); fixedErr.location = {line: line, column: col}; fixedErr.ownerDocument = script.__ownerDocument; return Promise.reject(fixedErr); } if (parsedJs.elements) { parsedJs.elements.forEach(function(element) { element.scriptElement = script; element.contentHref = href; this.elements.push(element); if (element.is in this.elementsByTagName) { console.warn('Ignoring duplicate element definition: ' + element.is); } else { this.elementsByTagName[element.is] = element; } }.bind(this)); } if (parsedJs.features) { parsedJs.features.forEach(function(feature){ feature.contentHref = href; feature.scriptElement = script; }); this.features = this.features.concat(parsedJs.features); } if (parsedJs.behaviors) { parsedJs.behaviors.forEach(function(behavior){ behavior.contentHref = href; this.behaviorsByName[behavior.is] = behavior; this.behaviorsByName[behavior.symbol] = behavior; }.bind(this)); this.behaviors = this.behaviors.concat(parsedJs.behaviors); } if (!Object.hasOwnProperty.call(this.parsedScripts, href)) { this.parsedScripts[href] = []; } var scriptElement; if (script.__ownerDocument && script.__ownerDocument == href) { scriptElement = script; } this.parsedScripts[href].push({ ast: parsedJs.parsedScript, scriptElement: scriptElement }); return parsedJs; } if (this.loader) { var resolvedSrc = url.resolve(href, src); return this.loader.request(resolvedSrc).then(function(content) { this._content[resolvedSrc] = content; var resolvedScript = Object.create(script); resolvedScript.childNodes = [{value: content}]; resolvedScript.attrs = resolvedScript.attrs.slice(); dom5.removeAttribute(resolvedScript, 'src'); return this._processScript(resolvedScript, resolvedSrc); }.bind(this)).catch(function(err) {throw err;}); } else { return Promise.resolve(EMPTY_METADATA); } }; Analyzer.prototype._dependenciesLoadedFor = function _dependenciesLoadedFor(href, root) { var found = {}; if (root !== undefined) { found[root] = true; } return this._getDependencies(href, found).then(function(deps) { var depMetadataLoaded = []; var depPromises = deps.map(function(depHref){ return this.load(depHref).then(function(htmlMonomer) { return htmlMonomer.metadataLoaded; }); }.bind(this)); return Promise.all(depPromises); }.bind(this)); }; /** * List all the html dependencies for the document at `href`. * @param {string} href The href to get dependencies for. * @param {Object.=} found An object keyed by URL of the * already resolved dependencies. * @param {boolean=} transitive Whether to load transitive * dependencies. Defaults to true. * @return {Array.} A list of all the html dependencies. */ Analyzer.prototype._getDependencies = function _getDependencies(href, found, transitive) { if (found === undefined) { found = {}; found[href] = true; } if (transitive === undefined) { transitive = true; } var deps = []; return this.load(href).then(function(htmlMonomer) { var transitiveDeps = []; htmlMonomer.depHrefs.forEach(function(depHref){ if (found[depHref]) { return; } deps.push(depHref); found[depHref] = true; if (transitive) { transitiveDeps.push(this._getDependencies(depHref, found)); } }.bind(this)); return Promise.all(transitiveDeps); }.bind(this)).then(function(transitiveDeps) { var alldeps = transitiveDeps.reduce(function(a, b) { return a.concat(b); }, []).concat(deps); return alldeps; }); }; function matchesDocumentFolder(descriptor, href) { if (!descriptor.contentHref) { return false; } var descriptorDoc = url.parse(descriptor.contentHref); if (!descriptorDoc || !descriptorDoc.pathname) { return false; } var searchDoc = url.parse(href); if (!searchDoc || !searchDoc.pathname) { return false; } var searchPath = searchDoc.pathname; var lastSlash = searchPath.lastIndexOf("/"); if (lastSlash > 0) { searchPath = searchPath.slice(0, lastSlash); } return descriptorDoc.pathname.indexOf(searchPath) === 0; } /** * Returns the elements defined in the folder containing `href`. * @param {string} href path to search. * @return {Array.} */ Analyzer.prototype.elementsForFolder = function elementsForFolder(href) { return this.elements.filter(function(element){ return matchesDocumentFolder(element, href); }); }; /** * Returns the behaviors defined in the folder containing `href`. * @param {string} href path to search. * @return {Array.} */ Analyzer.prototype.behaviorsForFolder = function behaviorsForFolder(href) { return this.behaviors.filter(function(behavior){ return matchesDocumentFolder(behavior, href); }); }; /** * Returns a promise that resolves to a POJO representation of the import * tree, in a format that maintains the ordering of the HTML imports spec. * @param {string} href the import to get metadata for. * @return {Promise} */ Analyzer.prototype.metadataTree = function metadataTree(href) { return this.load(href).then(function(monomer){ var loadedHrefs = {}; loadedHrefs[href] = true; return this._metadataTree(monomer, loadedHrefs); }.bind(this)); }; Analyzer.prototype._metadataTree = function _metadataTree(htmlMonomer, loadedHrefs) { if (loadedHrefs === undefined) { loadedHrefs = {}; } return htmlMonomer.metadataLoaded.then(function(metadata) { metadata = { elements: metadata.elements, features: metadata.features, href: htmlMonomer.href }; return htmlMonomer.depsLoaded.then(function(hrefs) { var depMetadata = []; hrefs.forEach(function(href) { var metadataPromise = Promise.resolve(true); if (depMetadata.length > 0) { metadataPromise = depMetadata[depMetadata.length - 1]; } metadataPromise = metadataPromise.then(function() { if (!loadedHrefs[href]) { loadedHrefs[href] = true; return this._metadataTree(this.html[href], loadedHrefs); } else { return Promise.resolve({}); } }.bind(this)); depMetadata.push(metadataPromise); }.bind(this)); return Promise.all(depMetadata).then(function(importMetadata) { metadata.imports = importMetadata; return htmlMonomer.htmlLoaded.then(function(parsedHtml) { metadata.html = parsedHtml; if (metadata.elements) { metadata.elements.forEach(function(element) { attachDomModule(parsedHtml, element); }); } return metadata; }); }); }.bind(this)); }.bind(this)); }; function matchingImport(importElement) { var matchesTag = dom5.predicates.hasTagName(importElement.tagName); var matchesHref = dom5.predicates.hasAttrValue('href', dom5.getAttribute(importElement, 'href')); var matchesRel = dom5.predicates.hasAttrValue('rel', dom5.getAttribute(importElement, 'rel')); return dom5.predicates.AND(matchesTag, matchesHref, matchesRel); } // TODO(ajo): Refactor out of vulcanize into dom5. var polymerExternalStyle = dom5.predicates.AND( dom5.predicates.hasTagName('link'), dom5.predicates.hasAttrValue('rel', 'import'), dom5.predicates.hasAttrValue('type', 'css') ); var externalScript = dom5.predicates.AND( dom5.predicates.hasTagName('script'), dom5.predicates.hasAttr('src') ); var isHtmlImportNode = dom5.predicates.AND( dom5.predicates.hasTagName('link'), dom5.predicates.hasAttrValue('rel', 'import'), dom5.predicates.NOT( dom5.predicates.hasAttrValue('type', 'css') ) ); Analyzer.prototype._inlineStyles = function _inlineStyles(ast, href) { var cssLinks = dom5.queryAll(ast, polymerExternalStyle); cssLinks.forEach(function(link) { var linkHref = dom5.getAttribute(link, 'href'); var uri = url.resolve(href, linkHref); var content = this._content[uri]; var style = dom5.constructors.element('style'); dom5.setTextContent(style, '\n' + content + '\n'); dom5.replace(link, style); }.bind(this)); return cssLinks.length > 0; }; Analyzer.prototype._inlineScripts = function _inlineScripts(ast, href) { var scripts = dom5.queryAll(ast, externalScript); scripts.forEach(function(script) { var scriptHref = dom5.getAttribute(script, 'src'); var uri = url.resolve(href, scriptHref); var content = this._content[uri]; var inlined = dom5.constructors.element('script'); dom5.setTextContent(inlined, '\n' + content + '\n'); dom5.replace(script, inlined); }.bind(this)); return scripts.length > 0; }; Analyzer.prototype._inlineImports = function _inlineImports(ast, href, loaded) { var imports = dom5.queryAll(ast, isHtmlImportNode); imports.forEach(function(htmlImport) { var importHref = dom5.getAttribute(htmlImport, 'href'); var uri = url.resolve(href, importHref); if (loaded[uri]) { dom5.remove(htmlImport); return; } var content = this.getLoadedAst(uri, loaded); dom5.replace(htmlImport, content); }.bind(this)); return imports.length > 0; }; /** * Returns a promise resolving to a form of the AST with all links replaced * with the document they link to. .css and .script files become <style> and * <script>, respectively. * * The elements in the loaded document are unmodified from their original * documents. * * @param {string} href The document to load. * @param {Object.=} loaded An object keyed by already loaded documents. * @return {Promise.} */ Analyzer.prototype.getLoadedAst = function getLoadedAst(href, loaded) { if (!loaded) { loaded = {}; } loaded[href] = true; var parsedDocument = this.parsedDocuments[href]; var analyzedDocument = this.html[href]; var astCopy = dom5.parse(dom5.serialize(parsedDocument)); // Whenever we inline something, reset inlined to true to know that anoather // inlining pass is needed; this._inlineStyles(astCopy, href); this._inlineScripts(astCopy, href); this._inlineImports(astCopy, href, loaded); return astCopy; }; /** * Calls `dom5.nodeWalkAll` on each document that `Anayzler` has laoded. * @param {Object} predicate A dom5 predicate. * @return {Object} */ Analyzer.prototype.nodeWalkDocuments = function nodeWalkDocuments(predicate) { for (var href in this.parsedDocuments) { var match = dom5.nodeWalk(this.parsedDocuments[href], predicate); if (match) { return match; } } return null; }; /** * Calls `dom5.nodeWalkAll` on each document that `Anayzler` has laoded. * @param {Object} predicate A dom5 predicate. * @return {Object} */ Analyzer.prototype.nodeWalkAllDocuments = function nodeWalkDocuments(predicate) { var results = []; for (var href in this.parsedDocuments) { var newNodes = dom5.nodeWalkAll(this.parsedDocuments[href], predicate); results = results.concat(newNodes); } return results; }; /** Annotates all loaded metadata with its documentation. */ Analyzer.prototype.annotate = function annotate() { if (this.features.length > 0) { var featureEl = docs.featureElement(this.features); this.elements.unshift(featureEl); this.elementsByTagName[featureEl.is] = featureEl; } var behaviorsByName = this.behaviorsByName; var elementHelper = function(descriptor){ docs.annotateElement(descriptor, behaviorsByName); }; this.elements.forEach(elementHelper); this.behaviors.forEach(elementHelper); // Same shape. this.behaviors.forEach(function(behavior){ if (behavior.is !== behavior.symbol && behavior.symbol) { this.behaviorsByName[behavior.symbol] = undefined; } }.bind(this)); }; function attachDomModule(parsedImport, element) { var domModules = parsedImport['dom-module']; for (var i = 0, domModule; i < domModules.length; i++) { domModule = domModules[i]; if (dom5.getAttribute(domModule, 'id') === element.is) { element.domModule = domModule; return; } } } /** Removes redundant properties from the collected descriptors. */ Analyzer.prototype.clean = function clean() { this.elements.forEach(docs.cleanElement); }; module.exports = Analyzer; }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) //# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9hbmFseXplci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dFxuICogVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHRcbiAqIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dFxuICogQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc29cbiAqIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0XG4gKi9cbi8vIGpzaGludCBub2RlOiB0cnVlXG4ndXNlIHN0cmljdCc7XG4vLyBqc2hpbnQgLVcwNzlcbnZhciBQcm9taXNlID0gZ2xvYmFsLlByb21pc2UgfHwgcmVxdWlyZSgnZXM2LXByb21pc2UnKS5Qcm9taXNlO1xuLy8ganNoaW50ICtXMDc5XG5cbnZhciBkb201ID0gcmVxdWlyZSgnZG9tNScpO1xudmFyIHVybCA9IHJlcXVpcmUoJ3VybCcpO1xuXG52YXIgZG9jcyA9IHJlcXVpcmUoJy4vYXN0LXV0aWxzL2RvY3MnKTtcbnZhciBGaWxlTG9hZGVyID0gcmVxdWlyZSgnLi9sb2FkZXIvZmlsZS1sb2FkZXInKTtcbnZhciBpbXBvcnRQYXJzZSA9IHJlcXVpcmUoJy4vYXN0LXV0aWxzL2ltcG9ydC1wYXJzZScpO1xudmFyIGpzUGFyc2UgPSByZXF1aXJlKCcuL2FzdC11dGlscy9qcy1wYXJzZScpO1xudmFyIE5vb3BSZXNvbHZlciA9IHJlcXVpcmUoJy4vbG9hZGVyL25vb3AtcmVzb2x2ZXInKTtcbnZhciBTdHJpbmdSZXNvbHZlciA9IHJlcXVpcmUoJy4vbG9hZGVyL3N0cmluZy1yZXNvbHZlcicpO1xuXG5mdW5jdGlvbiByZWR1Y2VNZXRhZGF0YShtMSwgbTIpIHtcbiAgcmV0dXJuIHtcbiAgICBlbGVtZW50czogIG0xLmVsZW1lbnRzLmNvbmNhdChtMi5lbGVtZW50cyksXG4gICAgZmVhdHVyZXM6ICBtMS5mZWF0dXJlcy5jb25jYXQobTIuZmVhdHVyZXMpLFxuICAgIGJlaGF2aW9yczogbTEuYmVoYXZpb3JzLmNvbmNhdChtMi5iZWhhdmlvcnMpLFxuICB9O1xufVxuXG52YXIgRU1QVFlfTUVUQURBVEEgPSB7ZWxlbWVudHM6IFtdLCBmZWF0dXJlczogW10sIGJlaGF2aW9yczogW119O1xuXG4vKipcbiAqIFBhcnNlNSdzIHJlcHJlc2VudGF0aW9uIG9mIGEgcGFyc2VkIGh0bWwgZG9jdW1lbnRcbiAqIEB0eXBlZGVmIHtPYmplY3R9IERvY3VtZW50QVNUXG4gKiBAbWVtYmVyb2YgaHlkcm9seXNpc1xuICovXG5cbi8qKlxuICogZXNwcmVlJ3MgcmVwcmVzZW50YXRpb24gb2YgYSBwYXJzZWQgaHRtbCBkb2N1bWVudFxuICogQHR5cGVkZWYge09iamVjdH0gSlNBU1RcbiAqIEBtZW1iZXJvZiBoeWRyb2x5c2lzXG4gKi9cblxuLyoqXG4gKiBQYWNrYWdlIG9mIGEgcGFyc2VkIEpTIHNjcmlwdFxuICogQHR5cGVkZWYge09iamVjdH0gUGFyc2VkSlNcbiAqIEBwcm9wZXJ0eSB7SlNBU1R9IGFzdCBUaGUgc2NyaXB0J3MgQVNUXG4gKiBAcHJvcGVydHkge0RvY3VtZW50QVNUfSBzY3JpcHRFbGVtZW50IElmIGlubGluZSwgdGhlIHNjcmlwdCdzIGNvbnRhaW5pbmcgdGFnLlxuICogQG1lbWJlcm9mIGh5ZHJvbHlzaXNcbiAqL1xuXG4vKipcbiAqIFRoZSBtZXRhZGF0YSBmb3IgYSBzaW5nbGUgcG9seW1lciBlbGVtZW50XG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBFbGVtZW50RGVzY3JpcHRvclxuICogQG1lbWJlcm9mIGh5ZHJvbHlzaXNcbiAqL1xuXG4vKipcbiAqIFRoZSBtZXRhZGF0YSBmb3IgYSBQb2x5bWVyIGZlYXR1cmUuXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBGZWF0dXJlRGVzY3JpcHRvclxuICogQG1lbWJlcm9mIGh5ZHJvbHlzaXNcbiAqL1xuXG4vKipcbiAqIFRoZSBtZXRhZGF0YSBmb3IgYSBQb2x5bWVyIGJlaGF2aW9yIG1peGluLlxuICogQHR5cGVkZWYge09iamVjdH0gQmVoYXZpb3JEZXNjcmlwdG9yXG4gKiBAbWVtYmVyb2YgaHlkcm9seXNpc1xuICovXG5cbi8qKlxuICogVGhlIG1ldGFkYXRhIGZvciBhbGwgZmVhdHVyZXMgYW5kIGVsZW1lbnRzIGRlZmluZWQgaW4gb25lIGRvY3VtZW50XG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBEb2N1bWVudERlc2NyaXB0b3JcbiAqIEBtZW1iZXJvZiBoeWRyb2x5c2lzXG4gKiBAcHJvcGVydHkge0FycmF5PEVsZW1lbnREZXNjcmlwdG9yPn0gZWxlbWVudHMgVGhlIGVsZW1lbnRzIGZyb20gdGhlIGRvY3VtZW50XG4gKiBAcHJvcGVydHkge0FycmF5PEZlYXR1cmVEZXNjcmlwdG9yPn0gIGZlYXR1cmVzIFRoZSBmZWF0dXJlcyBmcm9tIHRoZSBkb2N1bWVudFxuICogQHByb3BlcnR5IHtBcnJheTxGZWF0dXJlRGVzY3JpcHRvcj59ICBiZWhhdmlvcnMgVGhlIGJlaGF2aW9ycyBmcm9tIHRoZSBkb2N1bWVudFxuICovXG5cbi8qKlxuICogVGhlIG1ldGFkYXRhIG9mIGFuIGVudGlyZSBIVE1MIGRvY3VtZW50LCBpbiBwcm9taXNlcy5cbiAqIEB0eXBlZGVmIHtPYmplY3R9IEFuYWx5emVkRG9jdW1lbnRcbiAqIEBtZW1iZXJvZiBoeWRyb2x5c2lzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gaHJlZiBUaGUgdXJsIG9mIHRoZSBkb2N1bWVudC5cbiAqIEBwcm9wZXJ0eSB7UHJvbWlzZTxQYXJzZWRJbXBvcnQ+fSAgaHRtbExvYWRlZCBUaGUgcGFyc2VkIHJlcHJlc2VudGF0aW9uIG9mXG4gKiAgICAgdGhlIGRvYy4gVXNlIHRoZSBgYXN0YCBwcm9wZXJ0eSB0byBnZXQgdGhlIGZ1bGwgYHBhcnNlNWAgYXN0XG4gKlxuICogQHByb3BlcnR5IHtQcm9taXNlPEFycmF5PHN0cmluZz4+fSBkZXBzTG9hZGVkIFJlc29sdmVzIHRvIHRoZSBsaXN0IG9mIHRoaXNcbiAqICAgICBEb2N1bWVudCdzIHRyYW5zaXRpdmUgaW1wb3J0IGRlcGVuZGVuY2llc1xuICpcbiAqIEBwcm9wZXJ0eSB7QXJyYXk8c3RyaW5nPn0gZGVwSHJlZnMgVGhlIGRpcmVjdCBkZXBlbmRlbmNpZXMgb2YgdGhlIGRvY3VtZW50LlxuICpcbiAqIEBwcm9wZXJ0eSB7UHJvbWlzZTxEb2N1bWVudERlc2NyaXB0b3I+fSBtZXRhZGF0YUxvYWRlZCBSZXNvbHZlcyB0byB0aGUgbGlzdCBvZlxuICogICAgIHRoaXMgRG9jdW1lbnQncyBpbXBvcnQgZGVwZW5kZW5jaWVzXG4gKi9cblxuLyoqXG4gKiBBIGRhdGFiYXNlIG9mIFBvbHltZXIgbWV0YWRhdGEgZGVmaW5lZCBpbiBIVE1MXG4gKlxuICogQGNvbnN0cnVjdG9yXG4gKiBAbWVtYmVyT2YgaHlkcm9seXNpc1xuICogQHBhcmFtICB7Ym9vbGVhbn0gYXR0YWNoQVNUICBJZiB0cnVlLCBhdHRhY2ggYSBwYXJzZTUgY29tcGxpYW50IEFTVFxuICogQHBhcmFtICB7RmlsZUxvYWRlcj19IGxvYWRlciBBbiBvcHRpb25hbCBgRmlsZUxvYWRlcmAgdXNlZCB0byBsb2FkIGV4dGVybmFsXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlc1xuICovXG52YXIgQW5hbHl6ZXIgPSBmdW5jdGlvbiBBbmFseXplcihhdHRhY2hBU1QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkZXIpIHtcbiAgdGhpcy5sb2FkZXIgPSBsb2FkZXI7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBhbGwgZWxlbWVudHMgdGhlIGBBbmFseXplcmAgaGFzIG1ldGFkYXRhIGZvci5cbiAgICogQG1lbWJlciB7QXJyYXkuPEVsZW1lbnREZXNjcmlwdG9yPn1cbiAgICovXG4gIHRoaXMuZWxlbWVudHMgPSBbXTtcblxuICAvKipcbiAgICogQSB2aWV3IGludG8gYGVsZW1lbnRzYCwga2V5ZWQgYnkgdGFnIG5hbWUuXG4gICAqIEBtZW1iZXIge09iamVjdC48c3RyaW5nLEVsZW1lbnREZXNjcmlwdG9yPn1cbiAgICovXG4gIHRoaXMuZWxlbWVudHNCeVRhZ05hbWUgPSB7fTtcblxuICAvKipcbiAgICogQSBsaXN0IG9mIEFQSSBmZWF0dXJlcyBhZGRlZCB0byBgUG9seW1lci5CYXNlYCBlbmNvdW50ZXJlZCBieSB0aGVcbiAgICogYW5hbHl6ZXIuXG4gICAqIEBtZW1iZXIge0FycmF5PEZlYXR1cmVEZXNjcmlwdG9yPn1cbiAgICovXG4gIHRoaXMuZmVhdHVyZXMgPSBbXTtcblxuICAvKipcbiAgICogVGhlIGJlaGF2aW9ycyBjb2xsZWN0ZWQgYnkgdGhlIGFuYWx5c2lzIHBhc3MuXG4gICAqXG4gICAqIEBtZW1iZXIge0FycmF5PEJlaGF2aW9yRGVzY3JpcHRvcj59XG4gICAqL1xuICB0aGlzLmJlaGF2aW9ycyA9IFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgYmVoYXZpb3JzIGNvbGxlY3RlZCBieSB0aGUgYW5hbHlzaXMgcGFzcyBieSBuYW1lLlxuICAgKlxuICAgKiBAbWVtYmVyIHtPYmplY3Q8c3RyaW5nLEJlaGF2aW9yRGVzY3JpcHRvcj59XG4gICAqL1xuICB0aGlzLmJlaGF2aW9yc0J5TmFtZSA9IHt9O1xuXG4gIC8qKlxuICAgKiBBIG1hcCwga2V5ZWQgYnkgYWJzb2x1dGUgcGF0aCwgb2YgRG9jdW1lbnQgbWV0YWRhdGEuXG4gICAqIEBtZW1iZXIge09iamVjdDxzdHJpbmcsQW5hbHl6ZWREb2N1bWVudD59XG4gICAqL1xuICB0aGlzLmh0bWwgPSB7fTtcblxuICAvKipcbiAgICogQSBtYXAsIGtleWVkIGJ5IHBhdGgsIG9mIEhUTUwgZG9jdW1lbnQgQVNUcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHRoaXMucGFyc2VkRG9jdW1lbnRzID0ge307XG5cbiAgLyoqXG4gICAqIEEgbWFwLCBrZXllZCBieSBwYXRoLCBvZiBKUyBzY3JpcHQgQVNUcy5cbiAgICpcbiAgICogSWYgdGhlIHBhdGggaXMgYW4gSFRNTCBmaWxlIHdpdGggbXVsdGlwbGUgc2NyaXB0cywgdGhlIGVudHJ5IHdpbGwgYmUgYW4gYXJyYXkgb2Ygc2NyaXB0cy5cbiAgICpcbiAgICogQHR5cGUge09iamVjdDxzdHJpbmcsQXJyYXk8UGFyc2VkSlM+Pn1cbiAgICovXG4gIHRoaXMucGFyc2VkU2NyaXB0cyA9IHt9O1xuXG5cblxuICAvKipcbiAgICogQSBtYXAsIGtleWVkIGJ5IHBhdGgsIG9mIGRvY3VtZW50IGNvbnRlbnQuXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICB0aGlzLl9jb250ZW50ID0ge307XG59O1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBBbmFseXplci5hbmFsenllYFxuICogQHR5cGVkZWYge09iamVjdH0gTG9hZE9wdGlvbnNcbiAqIEBtZW1iZXJvZiBoeWRyb2x5c2lzXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IG5vQW5ub3RhdGlvbnMgV2hldGhlciBgYW5ub3RhdGUoKWAgc2hvdWxkIGJlIHNraXBwZWQuXG4gKiBAcHJvcGVydHkge1N0cmluZz19IGNvbnRlbnQgQ29udGVudCB0byByZXNvbHZlIGBocmVmYCB0byBpbnN0ZWFkIG9mIGxvYWRpbmdcbiAqICAgICBmcm9tIHRoZSBmaWxlIHN5c3RlbS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gY2xlYW4gV2hldGhlciB0aGUgZ2VuZXJhdGVkIGRlc2NyaXB0b3JzIHNob3VsZCBiZSBjbGVhbmVkXG4gKiAgICAgb2YgcmVkdW5kYW50IGRhdGEuXG4gKiBAcHJvcGVydHkge3N0cmluZz19IHJlc29sdmVyLlxuICogICAgIGB4aHJgIHRvIHVzZSBYTUxIdHRwUmVxdWVzdFxuICogICAgIGBmc2AgdG8gdXNlIHRoZSBsb2NhbCBmaWxlc3lzdGVtLlxuICogICAgIGBwZXJtaXNzaXZlYCB0byB1c2UgdGhlIGxvY2FsIGZpbGVzeXN0ZW0gYW5kIHJldHVybiBlbXB0eSBmaWxlcyB3aGVuIGFcbiAqICAgICBwYXRoIGNhbid0IGJlIGZvdW5kLlxuICogICAgIERlZmF1bHQgaXMgYGZzYCBpbiBub2RlIGFuZCBgeGhyYCBpbiB0aGUgYnJvd3Nlci5cbiAqIEBwcm9wZXJ0eSB7ZnVuY3Rpb24oc3RyaW5nKTogYm9vbGVhbn0gZmlsdGVyIEEgcHJlZGljYXRlIGZ1bmN0aW9uIHRoYXRcbiAqICAgICBpbmRpY2F0ZXMgd2hpY2ggZmlsZXMgc2hvdWxkIGJlIGlnbm9yZWQgYnkgdGhlIGxvYWRlci4gQnkgZGVmYXVsdCBhbGxcbiAqICAgICBmaWxlcyBub3QgbG9jYXRlZCB1bmRlciB0aGUgZGlybmFtZSBvZiBgaHJlZmAgd2lsbCBiZSBpZ25vcmVkLlxuICovXG5cbi8qKlxuICogU2hvcnRoYW5kIGZvciB0cmFuc2l0aXZlbHkgbG9hZGluZyBhbmQgcHJvY2Vzc2luZyBhbGwgaW1wb3J0cyBiZWdpbm5pbmcgYXRcbiAqIGBocmVmYC5cbiAqXG4gKiBJbiBvcmRlciB0byBwcm9wZXJseSBmaWx0ZXIgcGF0aHMsIGBocmVmYCBfbXVzdF8gYmUgYW4gYWJzb2x1dGUgVVJJLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBocmVmIFRoZSByb290IGltcG9ydCB0byBiZWdpbiBsb2FkaW5nIGZyb20uXG4gKiBAcGFyYW0ge0xvYWRPcHRpb25zPX0gb3B0aW9ucyBBbnkgYWRkaXRpb25hbCBvcHRpb25zIGZvciB0aGUgbG9hZC5cbiAqIEByZXR1cm4ge1Byb21pc2U8QW5hbHl6ZXI+fSBBIHByb21pc2UgdGhhdCB3aWxsIHJlc29sdmUgb25jZSBgaHJlZmAgYW5kIGl0c1xuICogICAgIGRlcGVuZGVuY2llcyBoYXZlIGJlZW4gbG9hZGVkIGFuZCBhbmFseXplZC5cbiAqL1xuQW5hbHl6ZXIuYW5hbHl6ZSA9IGZ1bmN0aW9uIGFuYWx5emUoaHJlZiwgb3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgb3B0aW9ucy5maWx0ZXIgPSBvcHRpb25zLmZpbHRlciB8fCBfZGVmYXVsdEZpbHRlcihocmVmKTtcblxuICB2YXIgbG9hZGVyID0gbmV3IEZpbGVMb2FkZXIoKTtcblxuICB2YXIgcmVzb2x2ZXIgPSBvcHRpb25zLnJlc29sdmVyO1xuICBpZiAocmVzb2x2ZXIgPT09IHVuZGVmaW5lZCkge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmVzb2x2ZXIgPSAnZnMnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXNvbHZlciA9ICd4aHInO1xuICAgIH1cbiAgfVxuICB2YXIgUHJpbWFyeVJlc29sdmVyO1xuICBpZiAocmVzb2x2ZXIgPT09ICdmcycpIHtcbiAgICBQcmltYXJ5UmVzb2x2ZXIgPSByZXF1aXJlKCcuL2xvYWRlci9mcy1yZXNvbHZlcicpO1xuICB9IGVsc2UgaWYgKHJlc29sdmVyID09PSAneGhyJykge1xuICAgIFByaW1hcnlSZXNvbHZlciA9IHJlcXVpcmUoJy4vbG9hZGVyL3hoci1yZXNvbHZlcicpO1xuICB9IGVsc2UgaWYgKHJlc29sdmVyID09PSAncGVybWlzc2l2ZScpIHtcbiAgICBQcmltYXJ5UmVzb2x2ZXIgPSByZXF1aXJlKCcuL2xvYWRlci9lcnJvci1zd2FsbG93aW5nLWZzLXJlc29sdmVyJyk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiUmVzb2x2ZXIgbXVzdCBiZSBvbmUgb2YgJ2ZzJyBvciAneGhyJ1wiKTtcbiAgfVxuXG4gIGxvYWRlci5hZGRSZXNvbHZlcihuZXcgUHJpbWFyeVJlc29sdmVyKG9wdGlvbnMpKTtcbiAgaWYgKG9wdGlvbnMuY29udGVudCkge1xuICAgIGxvYWRlci5hZGRSZXNvbHZlcihuZXcgU3RyaW5nUmVzb2x2ZXIoe3VybDogaHJlZiwgY29udGVudDogb3B0aW9ucy5jb250ZW50fSkpO1xuICB9XG4gIGxvYWRlci5hZGRSZXNvbHZlcihuZXcgTm9vcFJlc29sdmVyKHt0ZXN0OiBvcHRpb25zLmZpbHRlcn0pKTtcblxuICB2YXIgYW5hbHl6ZXIgPSBuZXcgdGhpcyhudWxsLCBsb2FkZXIpO1xuICByZXR1cm4gYW5hbHl6ZXIubWV0YWRhdGFUcmVlKGhyZWYpLnRoZW4oZnVuY3Rpb24ocm9vdCkge1xuICAgIGlmICghb3B0aW9ucy5ub0Fubm90YXRpb25zKSB7XG4gICAgICBhbmFseXplci5hbm5vdGF0ZSgpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5jbGVhbikge1xuICAgICAgYW5hbHl6ZXIuY2xlYW4oKTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShhbmFseXplcik7XG4gIH0pO1xufTtcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtzdHJpbmd9IGhyZWZcbiAqIEByZXR1cm4ge2Z1bmN0aW9uKHN0cmluZyk6IGJvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIF9kZWZhdWx0RmlsdGVyKGhyZWYpIHtcbiAgLy8gRXZlcnl0aGluZyB1cCB0byB0aGUgbGFzdCBgL2Agb3IgYFxcYC5cbiAgdmFyIGJhc2UgPSBocmVmLm1hdGNoKC9eKC4qPylbXlxcL1xcXFxdKiQvKVsxXTtcbiAgcmV0dXJuIGZ1bmN0aW9uKHVyaSkge1xuICAgIHJldHVybiB1cmkuaW5kZXhPZihiYXNlKSAhPT0gMDtcbiAgfTtcbn1cblxuQW5hbHl6ZXIucHJvdG90eXBlLmxvYWQgPSBmdW5jdGlvbiBsb2FkKGhyZWYpIHtcbiAgcmV0dXJuIHRoaXMubG9hZGVyLnJlcXVlc3QoaHJlZikudGhlbihmdW5jdGlvbihjb250ZW50KSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgdGhpcy5fY29udGVudFtocmVmXSA9IGNvbnRlbnQ7XG4gICAgICAgIHJlc29sdmUodGhpcy5fcGFyc2VIVE1MKGNvbnRlbnQsIGhyZWYpKTtcbiAgICAgIH0uYmluZCh0aGlzKSwgMCk7XG4gICAgfS5iaW5kKHRoaXMpKS5jYXRjaChmdW5jdGlvbihlcnIpe1xuICAgICAgY29uc29sZS5lcnJvcihcIkVycm9yIHByb2Nlc3NpbmcgZG9jdW1lbnQgYXQgXCIgKyBocmVmKTtcbiAgICAgIHRocm93IGVycjtcbiAgICB9KTtcbiAgfS5iaW5kKHRoaXMpKTtcbn07XG5cbi8qKlxuICogUmV0dXJucyBhbiBgQW5hbHl6ZWREb2N1bWVudGAgcmVwcmVzZW50aW5nIHRoZSBwcm92aWRlZCBkb2N1bWVudFxuICogQHByaXZhdGVcbiAqIEBwYXJhbSAge3N0cmluZ30gaHRtbEltcG9ydCBSYXcgdGV4dCBvZiBhbiBIVE1MIGRvY3VtZW50XG4gKiBAcGFyYW0gIHtzdHJpbmd9IGhyZWYgICAgICAgVGhlIGRvY3VtZW50J3MgVVJMLlxuICogQHJldHVybiB7QW5hbHl6ZWREb2N1bWVudH0gICAgICAgQW4gIGBBbmFseXplZERvY3VtZW50YFxuICovXG5BbmFseXplci5wcm90b3R5cGUuX3BhcnNlSFRNTCA9IGZ1bmN0aW9uIF9wYXJzZUhUTUwoaHRtbEltcG9ydCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZikge1xuICBpZiAoaHJlZiBpbiB0aGlzLmh0bWwpIHtcbiAgICByZXR1cm4gdGhpcy5odG1sW2hyZWZdO1xuICB9XG4gIHZhciBkZXBzTG9hZGVkID0gW107XG4gIHZhciBkZXBIcmVmcyA9IFtdO1xuICB2YXIgbWV0YWRhdGFMb2FkZWQgPSBQcm9taXNlLnJlc29sdmUoRU1QVFlfTUVUQURBVEEpO1xuICB2YXIgcGFyc2VkO1xuICB0cnkge1xuICAgIHBhcnNlZCA9IGltcG9ydFBhcnNlKGh0bWxJbXBvcnQsIGhyZWYpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjb25zb2xlLmVycm9yKCdFcnJvciBwYXJzaW5nIScpO1xuICAgIHRocm93IGVycjtcbiAgfVxuICB2YXIgaHRtbExvYWRlZCA9IFByb21pc2UucmVzb2x2ZShwYXJzZWQpO1xuICBpZiAocGFyc2VkLnNjcmlwdCkge1xuICAgIG1ldGFkYXRhTG9hZGVkID0gdGhpcy5fcHJvY2Vzc1NjcmlwdHMocGFyc2VkLnNjcmlwdCwgaHJlZik7XG4gIH1cbiAgdmFyIGNvbW1lbnRUZXh0ID0gcGFyc2VkLmNvbW1lbnQubWFwKGZ1bmN0aW9uKGNvbW1lbnQpe1xuICAgIHJldHVybiBkb201LmdldFRleHRDb250ZW50KGNvbW1lbnQpO1xuICB9KTtcbiAgdmFyIHBzZXVkb0VsZW1lbnRzID0gZG9jcy5wYXJzZVBzZXVkb0VsZW1lbnRzKGNvbW1lbnRUZXh0KTtcbiAgcHNldWRvRWxlbWVudHMuZm9yRWFjaChmdW5jdGlvbihlbGVtZW50KXtcbiAgICBlbGVtZW50LmNvbnRlbnRIcmVmID0gaHJlZjtcbiAgICB0aGlzLmVsZW1lbnRzLnB1c2goZWxlbWVudCk7XG4gICAgdGhpcy5lbGVtZW50c0J5VGFnTmFtZVtlbGVtZW50LmlzXSA9IGVsZW1lbnQ7XG4gIH0uYmluZCh0aGlzKSk7XG4gIG1ldGFkYXRhTG9hZGVkID0gbWV0YWRhdGFMb2FkZWQudGhlbihmdW5jdGlvbihtZXRhZGF0YSl7XG4gICAgdmFyIG1ldGFkYXRhRW50cnkgPSB7XG4gICAgICBlbGVtZW50czogcHNldWRvRWxlbWVudHMsXG4gICAgICBmZWF0dXJlczogW10sXG4gICAgICBiZWhhdmlvcnM6IFtdXG4gICAgfTtcbiAgICByZXR1cm4gW21ldGFkYXRhLCBtZXRhZGF0YUVudHJ5XS5yZWR1Y2UocmVkdWNlTWV0YWRhdGEpO1xuICB9KTtcbiAgZGVwc0xvYWRlZC5wdXNoKG1ldGFkYXRhTG9hZGVkKTtcblxuXG4gIGlmICh0aGlzLmxvYWRlcikge1xuICAgIHZhciBiYXNlVXJpID0gaHJlZjtcbiAgICBpZiAocGFyc2VkLmJhc2UubGVuZ3RoID4gMSkge1xuICAgICAgY29uc29sZS5lcnJvcihcIk9ubHkgb25lIGJhc2UgdGFnIHBlciBkb2N1bWVudCFcIik7XG4gICAgICB0aHJvdyBcIk11bHRpcGxlIGJhc2UgdGFncyBpbiBcIiArIGhyZWY7XG4gICAgfSBlbHNlIGlmIChwYXJzZWQuYmFzZS5sZW5ndGggPT0gMSkge1xuICAgICAgdmFyIGJhc2VIcmVmID0gZG9tNS5nZXRBdHRyaWJ1dGUocGFyc2VkLmJhc2VbMF0sIFwiaHJlZlwiKTtcbiAgICAgIGlmIChiYXNlSHJlZikge1xuICAgICAgICBiYXNlSHJlZiA9IGJhc2VIcmVmICsgXCIvXCI7XG4gICAgICAgIGJhc2VVcmkgPSB1cmwucmVzb2x2ZShiYXNlVXJpLCBiYXNlSHJlZik7XG4gICAgICB9XG4gICAgfVxuICAgIHBhcnNlZC5pbXBvcnQuZm9yRWFjaChmdW5jdGlvbihsaW5rKSB7XG4gICAgICB2YXIgbGlua3VybCA9IGRvbTUuZ2V0QXR0cmlidXRlKGxpbmssICdocmVmJyk7XG4gICAgICBpZiAobGlua3VybCkge1xuICAgICAgICB2YXIgcmVzb2x2ZWRVcmwgPSB1cmwucmVzb2x2ZShiYXNlVXJpLCBsaW5rdXJsKTtcbiAgICAgICAgZGVwSHJlZnMucHVzaChyZXNvbHZlZFVybCk7XG4gICAgICAgIGRlcHNMb2FkZWQucHVzaCh0aGlzLl9kZXBlbmRlbmNpZXNMb2FkZWRGb3IocmVzb2x2ZWRVcmwsIGhyZWYpKTtcbiAgICAgIH1cbiAgICB9LmJpbmQodGhpcykpO1xuICAgIHBhcnNlZC5zdHlsZS5mb3JFYWNoKGZ1bmN0aW9uKHN0eWxlRWxlbWVudCkge1xuICAgICAgaWYgKHBvbHltZXJFeHRlcm5hbFN0eWxlKHN0eWxlRWxlbWVudCkpIHtcbiAgICAgICAgdmFyIHN0eWxlSHJlZiA9IGRvbTUuZ2V0QXR0cmlidXRlKHN0eWxlRWxlbWVudCwgJ2hyZWYnKTtcbiAgICAgICAgaWYgKGhyZWYpIHtcbiAgICAgICAgICBzdHlsZUhyZWYgPSB1cmwucmVzb2x2ZShiYXNlVXJpLCBzdHlsZUhyZWYpO1xuICAgICAgICAgIGRlcHNMb2FkZWQucHVzaCh0aGlzLmxvYWRlci5yZXF1ZXN0KHN0eWxlSHJlZikudGhlbihmdW5jdGlvbihjb250ZW50KXtcbiAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRbc3R5bGVIcmVmXSA9IGNvbnRlbnQ7XG4gICAgICAgICAgfS5iaW5kKHRoaXMpKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LmJpbmQodGhpcykpO1xuICB9XG4gIGRlcHNMb2FkZWQgPSBQcm9taXNlLmFsbChkZXBzTG9hZGVkKVxuICAgICAgICAudGhlbihmdW5jdGlvbigpIHtyZXR1cm4gZGVwSHJlZnM7fSlcbiAgICAgICAgLmNhdGNoKGZ1bmN0aW9uKGVycikge3Rocm93IGVycjt9KTtcbiAgdGhpcy5wYXJzZWREb2N1bWVudHNbaHJlZl0gPSBwYXJzZWQuYXN0O1xuICB0aGlzLmh0bWxbaHJlZl0gPSB7XG4gICAgICBocmVmOiBocmVmLFxuICAgICAgaHRtbExvYWRlZDogaHRtbExvYWRlZCxcbiAgICAgIG1ldGFkYXRhTG9hZGVkOiBtZXRhZGF0YUxvYWRlZCxcbiAgICAgIGRlcEhyZWZzOiBkZXBIcmVmcyxcbiAgICAgIGRlcHNMb2FkZWQ6IGRlcHNMb2FkZWRcbiAgfTtcbiAgcmV0dXJuIHRoaXMuaHRtbFtocmVmXTtcbn07XG5cbkFuYWx5emVyLnByb3RvdHlwZS5fcHJvY2Vzc1NjcmlwdHMgPSBmdW5jdGlvbiBfcHJvY2Vzc1NjcmlwdHMoc2NyaXB0cywgaHJlZikge1xuICB2YXIgc2NyaXB0UHJvbWlzZXMgPSBbXTtcbiAgc2NyaXB0cy5mb3JFYWNoKGZ1bmN0aW9uKHNjcmlwdCkge1xuICAgIHNjcmlwdFByb21pc2VzLnB1c2godGhpcy5fcHJvY2Vzc1NjcmlwdChzY3JpcHQsIGhyZWYpKTtcbiAgfS5iaW5kKHRoaXMpKTtcbiAgcmV0dXJuIFByb21pc2UuYWxsKHNjcmlwdFByb21pc2VzKS50aGVuKGZ1bmN0aW9uKG1ldGFkYXRhTGlzdCkge1xuICAgIHJldHVybiBtZXRhZGF0YUxpc3QucmVkdWNlKHJlZHVjZU1ldGFkYXRhLCBFTVBUWV9NRVRBREFUQSk7XG4gIH0pO1xufTtcblxuQW5hbHl6ZXIucHJvdG90eXBlLl9wcm9jZXNzU2NyaXB0ID0gZnVuY3Rpb24gX3Byb2Nlc3NTY3JpcHQoc2NyaXB0LCBocmVmKSB7XG4gIHZhciBzcmMgPSBkb201LmdldEF0dHJpYnV0ZShzY3JpcHQsICdzcmMnKTtcbiAgdmFyIHBhcnNlZEpzO1xuICBpZiAoIXNyYykge1xuICAgIHRyeSB7XG4gICAgICBwYXJzZWRKcyA9IGpzUGFyc2UoKHNjcmlwdC5jaGlsZE5vZGVzLmxlbmd0aCkgPyBzY3JpcHQuY2hpbGROb2Rlc1swXS52YWx1ZSA6ICcnKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIC8vIEZpZ3VyZSBvdXQgdGhlIGNvcnJlY3QgbGluZSBudW1iZXIgZm9yIHRoZSBlcnJvci5cbiAgICAgIHZhciBsaW5lID0gMDtcbiAgICAgIHZhciBjb2wgPSAwO1xuICAgICAgaWYgKHNjcmlwdC5fX293bmVyRG9jdW1lbnQgJiYgc2NyaXB0Ll9fb3duZXJEb2N1bWVudCA9PSBocmVmKSB7XG4gICAgICAgIGxpbmUgPSBzY3JpcHQuX19sb2NhdGlvbkRldGFpbC5saW5lIC0gMTtcbiAgICAgICAgY29sID0gc2NyaXB0Ll9fbG9jYXRpb25EZXRhaWwuY29sdW1uIC0gMTtcbiAgICAgIH1cbiAgICAgIGxpbmUgKz0gZXJyLmxpbmVOdW1iZXI7XG4gICAgICBjb2wgKz0gZXJyLmNvbHVtbjtcbiAgICAgIHZhciBtZXNzYWdlID0gXCJFcnJvciBwYXJzaW5nIHNjcmlwdCBpbiBcIiArIGhyZWYgKyBcIiBhdCBcIiArIGxpbmUgKyBcIjpcIiArIGNvbDtcbiAgICAgIG1lc3NhZ2UgKz0gXCJcXG5cIiArIGVyci5zdGFjaztcbiAgICAgIHZhciBmaXhlZEVyciA9IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgICAgIGZpeGVkRXJyLmxvY2F0aW9uID0ge2xpbmU6IGxpbmUsIGNvbHVtbjogY29sfTtcbiAgICAgIGZpeGVkRXJyLm93bmVyRG9jdW1lbnQgPSBzY3JpcHQuX19vd25lckRvY3VtZW50O1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGZpeGVkRXJyKTtcbiAgICB9XG4gICAgaWYgKHBhcnNlZEpzLmVsZW1lbnRzKSB7XG4gICAgICBwYXJzZWRKcy5lbGVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudC5zY3JpcHRFbGVtZW50ID0gc2NyaXB0O1xuICAgICAgICBlbGVtZW50LmNvbnRlbnRIcmVmID0gaHJlZjtcbiAgICAgICAgdGhpcy5lbGVtZW50cy5wdXNoKGVsZW1lbnQpO1xuICAgICAgICBpZiAoZWxlbWVudC5pcyBpbiB0aGlzLmVsZW1lbnRzQnlUYWdOYW1lKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKCdJZ25vcmluZyBkdXBsaWNhdGUgZWxlbWVudCBkZWZpbml0aW9uOiAnICsgZWxlbWVudC5pcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5lbGVtZW50c0J5VGFnTmFtZVtlbGVtZW50LmlzXSA9IGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgIH0uYmluZCh0aGlzKSk7XG4gICAgfVxuICAgIGlmIChwYXJzZWRKcy5mZWF0dXJlcykge1xuICAgICAgcGFyc2VkSnMuZmVhdHVyZXMuZm9yRWFjaChmdW5jdGlvbihmZWF0dXJlKXtcbiAgICAgICAgZmVhdHVyZS5jb250ZW50SHJlZiA9IGhyZWY7XG4gICAgICAgIGZlYXR1cmUuc2NyaXB0RWxlbWVudCA9IHNjcmlwdDtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5mZWF0dXJlcyA9IHRoaXMuZmVhdHVyZXMuY29uY2F0KHBhcnNlZEpzLmZlYXR1cmVzKTtcbiAgICB9XG4gICAgaWYgKHBhcnNlZEpzLmJlaGF2aW9ycykge1xuICAgICAgcGFyc2VkSnMuYmVoYXZpb3JzLmZvckVhY2goZnVuY3Rpb24oYmVoYXZpb3Ipe1xuICAgICAgICBiZWhhdmlvci5jb250ZW50SHJlZiA9IGhyZWY7XG4gICAgICAgIHRoaXMuYmVoYXZpb3JzQnlOYW1lW2JlaGF2aW9yLmlzXSA9IGJlaGF2aW9yO1xuICAgICAgICB0aGlzLmJlaGF2aW9yc0J5TmFtZVtiZWhhdmlvci5zeW1ib2xdID0gYmVoYXZpb3I7XG4gICAgICB9LmJpbmQodGhpcykpO1xuICAgICAgdGhpcy5iZWhhdmlvcnMgPSB0aGlzLmJlaGF2aW9ycy5jb25jYXQocGFyc2VkSnMuYmVoYXZpb3JzKTtcbiAgICB9XG4gICAgaWYgKCFPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLnBhcnNlZFNjcmlwdHMsIGhyZWYpKSB7XG4gICAgICB0aGlzLnBhcnNlZFNjcmlwdHNbaHJlZl0gPSBbXTtcbiAgICB9XG4gICAgdmFyIHNjcmlwdEVsZW1lbnQ7XG4gICAgaWYgKHNjcmlwdC5fX293bmVyRG9jdW1lbnQgJiYgc2NyaXB0Ll9fb3duZXJEb2N1bWVudCA9PSBocmVmKSB7XG4gICAgICBzY3JpcHRFbGVtZW50ID0gc2NyaXB0O1xuICAgIH1cbiAgICB0aGlzLnBhcnNlZFNjcmlwdHNbaHJlZl0ucHVzaCh7XG4gICAgICBhc3Q6IHBhcnNlZEpzLnBhcnNlZFNjcmlwdCxcbiAgICAgIHNjcmlwdEVsZW1lbnQ6IHNjcmlwdEVsZW1lbnRcbiAgICB9KTtcbiAgICByZXR1cm4gcGFyc2VkSnM7XG4gIH1cbiAgaWYgKHRoaXMubG9hZGVyKSB7XG4gICAgdmFyIHJlc29sdmVkU3JjID0gdXJsLnJlc29sdmUoaHJlZiwgc3JjKTtcbiAgICByZXR1cm4gdGhpcy5sb2FkZXIucmVxdWVzdChyZXNvbHZlZFNyYykudGhlbihmdW5jdGlvbihjb250ZW50KSB7XG4gICAgICB0aGlzLl9jb250ZW50W3Jlc29sdmVkU3JjXSA9IGNvbnRlbnQ7XG4gICAgICB2YXIgcmVzb2x2ZWRTY3JpcHQgPSBPYmplY3QuY3JlYXRlKHNjcmlwdCk7XG4gICAgICByZXNvbHZlZFNjcmlwdC5jaGlsZE5vZGVzID0gW3t2YWx1ZTogY29udGVudH1dO1xuICAgICAgcmVzb2x2ZWRTY3JpcHQuYXR0cnMgPSByZXNvbHZlZFNjcmlwdC5hdHRycy5zbGljZSgpO1xuICAgICAgZG9tNS5yZW1vdmVBdHRyaWJ1dGUocmVzb2x2ZWRTY3JpcHQsICdzcmMnKTtcbiAgICAgIHJldHVybiB0aGlzLl9wcm9jZXNzU2NyaXB0KHJlc29sdmVkU2NyaXB0LCByZXNvbHZlZFNyYyk7XG4gICAgfS5iaW5kKHRoaXMpKS5jYXRjaChmdW5jdGlvbihlcnIpIHt0aHJvdyBlcnI7fSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShFTVBUWV9NRVRBREFUQSk7XG4gIH1cbn07XG5cbkFuYWx5emVyLnByb3RvdHlwZS5fZGVwZW5kZW5jaWVzTG9hZGVkRm9yID0gZnVuY3Rpb24gX2RlcGVuZGVuY2llc0xvYWRlZEZvcihocmVmLCByb290KSB7XG4gIHZhciBmb3VuZCA9IHt9O1xuICBpZiAocm9vdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgZm91bmRbcm9vdF0gPSB0cnVlO1xuICB9XG4gIHJldHVybiB0aGlzLl9nZXREZXBlbmRlbmNpZXMoaHJlZiwgZm91bmQpLnRoZW4oZnVuY3Rpb24oZGVwcykge1xuICAgIHZhciBkZXBNZXRhZGF0YUxvYWRlZCA9IFtdO1xuICAgIHZhciBkZXBQcm9taXNlcyA9IGRlcHMubWFwKGZ1bmN0aW9uKGRlcEhyZWYpe1xuICAgICAgcmV0dXJuIHRoaXMubG9hZChkZXBIcmVmKS50aGVuKGZ1bmN0aW9uKGh0bWxNb25vbWVyKSB7XG4gICAgICAgIHJldHVybiBodG1sTW9ub21lci5tZXRhZGF0YUxvYWRlZDtcbiAgICAgIH0pO1xuICAgIH0uYmluZCh0aGlzKSk7XG4gICAgcmV0dXJuIFByb21pc2UuYWxsKGRlcFByb21pc2VzKTtcbiAgfS5iaW5kKHRoaXMpKTtcbn07XG5cbi8qKlxuICogTGlzdCBhbGwgdGhlIGh0bWwgZGVwZW5kZW5jaWVzIGZvciB0aGUgZG9jdW1lbnQgYXQgYGhyZWZgLlxuICogQHBhcmFtICB7c3RyaW5nfSAgICAgICAgICAgICAgICAgICBocmVmICAgICAgVGhlIGhyZWYgdG8gZ2V0IGRlcGVuZGVuY2llcyBmb3IuXG4gKiBAcGFyYW0gIHtPYmplY3QuPHN0cmluZyxib29sZWFuPj19IGZvdW5kICAgICBBbiBvYmplY3Qga2V5ZWQgYnkgVVJMIG9mIHRoZVxuICogICAgIGFscmVhZHkgcmVzb2x2ZWQgZGVwZW5kZW5jaWVzLlxuICogQHBhcmFtICB7Ym9vbGVhbj19ICAgICAgICAgICAgICAgIHRyYW5zaXRpdmUgV2hldGhlciB0byBsb2FkIHRyYW5zaXRpdmVcbiAqICAgICBkZXBlbmRlbmNpZXMuIERlZmF1bHRzIHRvIHRydWUuXG4gKiBAcmV0dXJuIHtBcnJheS48c3RyaW5nPn0gIEEgbGlzdCBvZiBhbGwgdGhlIGh0bWwgZGVwZW5kZW5jaWVzLlxuICovXG5BbmFseXplci5wcm90b3R5cGUuX2dldERlcGVuZGVuY2llcyA9IGZ1bmN0aW9uIF9nZXREZXBlbmRlbmNpZXMoaHJlZiwgZm91bmQsIHRyYW5zaXRpdmUpIHtcbiAgaWYgKGZvdW5kID09PSB1bmRlZmluZWQpIHtcbiAgICBmb3VuZCA9IHt9O1xuICAgIGZvdW5kW2hyZWZdID0gdHJ1ZTtcbiAgfVxuICBpZiAodHJhbnNpdGl2ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdHJhbnNpdGl2ZSA9IHRydWU7XG4gIH1cbiAgdmFyIGRlcHMgPSBbXTtcbiAgcmV0dXJuIHRoaXMubG9hZChocmVmKS50aGVuKGZ1bmN0aW9uKGh0bWxNb25vbWVyKSB7XG4gICAgdmFyIHRyYW5zaXRpdmVEZXBzID0gW107XG4gICAgaHRtbE1vbm9tZXIuZGVwSHJlZnMuZm9yRWFjaChmdW5jdGlvbihkZXBIcmVmKXtcbiAgICAgIGlmIChmb3VuZFtkZXBIcmVmXSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBkZXBzLnB1c2goZGVwSHJlZik7XG4gICAgICBmb3VuZFtkZXBIcmVmXSA9IHRydWU7XG4gICAgICBpZiAodHJhbnNpdGl2ZSkge1xuICAgICAgICB0cmFuc2l0aXZlRGVwcy5wdXNoKHRoaXMuX2dldERlcGVuZGVuY2llcyhkZXBIcmVmLCBmb3VuZCkpO1xuICAgICAgfVxuICAgIH0uYmluZCh0aGlzKSk7XG4gICAgcmV0dXJuIFByb21pc2UuYWxsKHRyYW5zaXRpdmVEZXBzKTtcbiAgfS5iaW5kKHRoaXMpKS50aGVuKGZ1bmN0aW9uKHRyYW5zaXRpdmVEZXBzKSB7XG4gICAgdmFyIGFsbGRlcHMgPSB0cmFuc2l0aXZlRGVwcy5yZWR1Y2UoZnVuY3Rpb24oYSwgYikge1xuICAgICAgcmV0dXJuIGEuY29uY2F0KGIpO1xuICAgIH0sIFtdKS5jb25jYXQoZGVwcyk7XG4gICAgcmV0dXJuIGFsbGRlcHM7XG4gIH0pO1xufTtcblxuZnVuY3Rpb24gbWF0Y2hlc0RvY3VtZW50Rm9sZGVyKGRlc2NyaXB0b3IsIGhyZWYpIHtcbiAgaWYgKCFkZXNjcmlwdG9yLmNvbnRlbnRIcmVmKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciBkZXNjcmlwdG9yRG9jID0gdXJsLnBhcnNlKGRlc2NyaXB0b3IuY29udGVudEhyZWYpO1xuICBpZiAoIWRlc2NyaXB0b3JEb2MgfHwgIWRlc2NyaXB0b3JEb2MucGF0aG5hbWUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIHNlYXJjaERvYyA9IHVybC5wYXJzZShocmVmKTtcbiAgaWYgKCFzZWFyY2hEb2MgfHwgIXNlYXJjaERvYy5wYXRobmFtZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgc2VhcmNoUGF0aCA9IHNlYXJjaERvYy5wYXRobmFtZTtcbiAgdmFyIGxhc3RTbGFzaCA9IHNlYXJjaFBhdGgubGFzdEluZGV4T2YoXCIvXCIpO1xuICBpZiAobGFzdFNsYXNoID4gMCkge1xuICAgIHNlYXJjaFBhdGggPSBzZWFyY2hQYXRoLnNsaWNlKDAsIGxhc3RTbGFzaCk7XG4gIH1cbiAgcmV0dXJuIGRlc2NyaXB0b3JEb2MucGF0aG5hbWUuaW5kZXhPZihzZWFyY2hQYXRoKSA9PT0gMDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBlbGVtZW50cyBkZWZpbmVkIGluIHRoZSBmb2xkZXIgY29udGFpbmluZyBgaHJlZmAuXG4gKiBAcGFyYW0ge3N0cmluZ30gaHJlZiBwYXRoIHRvIHNlYXJjaC5cbiAqIEByZXR1cm4ge0FycmF5LjxFbGVtZW50RGVzY3JpcHRvcj59XG4gKi9cbkFuYWx5emVyLnByb3RvdHlwZS5lbGVtZW50c0ZvckZvbGRlciA9IGZ1bmN0aW9uIGVsZW1lbnRzRm9yRm9sZGVyKGhyZWYpIHtcbiAgcmV0dXJuIHRoaXMuZWxlbWVudHMuZmlsdGVyKGZ1bmN0aW9uKGVsZW1lbnQpe1xuICAgIHJldHVybiBtYXRjaGVzRG9jdW1lbnRGb2xkZXIoZWxlbWVudCwgaHJlZik7XG4gIH0pO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBiZWhhdmlvcnMgZGVmaW5lZCBpbiB0aGUgZm9sZGVyIGNvbnRhaW5pbmcgYGhyZWZgLlxuICogQHBhcmFtIHtzdHJpbmd9IGhyZWYgcGF0aCB0byBzZWFyY2guXG4gKiBAcmV0dXJuIHtBcnJheS48QmVoYXZpb3JEZXNjcmlwdG9yPn1cbiAqL1xuQW5hbHl6ZXIucHJvdG90eXBlLmJlaGF2aW9yc0ZvckZvbGRlciA9IGZ1bmN0aW9uIGJlaGF2aW9yc0ZvckZvbGRlcihocmVmKSB7XG4gIHJldHVybiB0aGlzLmJlaGF2aW9ycy5maWx0ZXIoZnVuY3Rpb24oYmVoYXZpb3Ipe1xuICAgIHJldHVybiBtYXRjaGVzRG9jdW1lbnRGb2xkZXIoYmVoYXZpb3IsIGhyZWYpO1xuICB9KTtcbn07XG5cbi8qKlxuICogUmV0dXJucyBhIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byBhIFBPSk8gcmVwcmVzZW50YXRpb24gb2YgdGhlIGltcG9ydFxuICogdHJlZSwgaW4gYSBmb3JtYXQgdGhhdCBtYWludGFpbnMgdGhlIG9yZGVyaW5nIG9mIHRoZSBIVE1MIGltcG9ydHMgc3BlYy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBocmVmIHRoZSBpbXBvcnQgdG8gZ2V0IG1ldGFkYXRhIGZvci5cbiAqIEByZXR1cm4ge1Byb21pc2V9XG4gKi9cbkFuYWx5emVyLnByb3RvdHlwZS5tZXRhZGF0YVRyZWUgPSBmdW5jdGlvbiBtZXRhZGF0YVRyZWUoaHJlZikge1xuICByZXR1cm4gdGhpcy5sb2FkKGhyZWYpLnRoZW4oZnVuY3Rpb24obW9ub21lcil7XG4gICAgdmFyIGxvYWRlZEhyZWZzID0ge307XG4gICAgbG9hZGVkSHJlZnNbaHJlZl0gPSB0cnVlO1xuICAgIHJldHVybiB0aGlzLl9tZXRhZGF0YVRyZWUobW9ub21lciwgbG9hZGVkSHJlZnMpO1xuICB9LmJpbmQodGhpcykpO1xufTtcblxuQW5hbHl6ZXIucHJvdG90eXBlLl9tZXRhZGF0YVRyZWUgPSBmdW5jdGlvbiBfbWV0YWRhdGFUcmVlKGh0bWxNb25vbWVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlZEhyZWZzKSB7XG4gIGlmIChsb2FkZWRIcmVmcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgbG9hZGVkSHJlZnMgPSB7fTtcbiAgfVxuICByZXR1cm4gaHRtbE1vbm9tZXIubWV0YWRhdGFMb2FkZWQudGhlbihmdW5jdGlvbihtZXRhZGF0YSkge1xuICAgIG1ldGFkYXRhID0ge1xuICAgICAgZWxlbWVudHM6IG1ldGFkYXRhLmVsZW1lbnRzLFxuICAgICAgZmVhdHVyZXM6IG1ldGFkYXRhLmZlYXR1cmVzLFxuICAgICAgaHJlZjogaHRtbE1vbm9tZXIuaHJlZlxuICAgIH07XG4gICAgcmV0dXJuIGh0bWxNb25vbWVyLmRlcHNMb2FkZWQudGhlbihmdW5jdGlvbihocmVmcykge1xuICAgICAgdmFyIGRlcE1ldGFkYXRhID0gW107XG4gICAgICBocmVmcy5mb3JFYWNoKGZ1bmN0aW9uKGhyZWYpIHtcbiAgICAgICAgdmFyIG1ldGFkYXRhUHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgaWYgKGRlcE1ldGFkYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBtZXRhZGF0YVByb21pc2UgPSBkZXBNZXRhZGF0YVtkZXBNZXRhZGF0YS5sZW5ndGggLSAxXTtcbiAgICAgICAgfVxuICAgICAgICBtZXRhZGF0YVByb21pc2UgPSBtZXRhZGF0YVByb21pc2UudGhlbihmdW5jdGlvbigpIHtcbiAgICAgICAgICBpZiAoIWxvYWRlZEhyZWZzW2hyZWZdKSB7XG4gICAgICAgICAgICBsb2FkZWRIcmVmc1tocmVmXSA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbWV0YWRhdGFUcmVlKHRoaXMuaHRtbFtocmVmXSwgbG9hZGVkSHJlZnMpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0uYmluZCh0aGlzKSk7XG4gICAgICAgIGRlcE1ldGFkYXRhLnB1c2gobWV0YWRhdGFQcm9taXNlKTtcbiAgICAgIH0uYmluZCh0aGlzKSk7XG4gICAgICByZXR1cm4gUHJvbWlzZS5hbGwoZGVwTWV0YWRhdGEpLnRoZW4oZnVuY3Rpb24oaW1wb3J0TWV0YWRhdGEpIHtcbiAgICAgICAgbWV0YWRhdGEuaW1wb3J0cyA9IGltcG9ydE1ldGFkYXRhO1xuICAgICAgICByZXR1cm4gaHRtbE1vbm9tZXIuaHRtbExvYWRlZC50aGVuKGZ1bmN0aW9uKHBhcnNlZEh0bWwpIHtcbiAgICAgICAgICBtZXRhZGF0YS5odG1sID0gcGFyc2VkSHRtbDtcbiAgICAgICAgICBpZiAobWV0YWRhdGEuZWxlbWVudHMpIHtcbiAgICAgICAgICAgIG1ldGFkYXRhLmVsZW1lbnRzLmZvckVhY2goZnVuY3Rpb24oZWxlbWVudCkge1xuICAgICAgICAgICAgICBhdHRhY2hEb21Nb2R1bGUocGFyc2VkSHRtbCwgZWxlbWVudCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG1ldGFkYXRhO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0uYmluZCh0aGlzKSk7XG4gIH0uYmluZCh0aGlzKSk7XG59O1xuXG5mdW5jdGlvbiBtYXRjaGluZ0ltcG9ydChpbXBvcnRFbGVtZW50KSB7XG4gIHZhciBtYXRjaGVzVGFnID0gZG9tNS5wcmVkaWNhdGVzLmhhc1RhZ05hbWUoaW1wb3J0RWxlbWVudC50YWdOYW1lKTtcbiAgdmFyIG1hdGNoZXNIcmVmID0gZG9tNS5wcmVkaWNhdGVzLmhhc0F0dHJWYWx1ZSgnaHJlZicsIGRvbTUuZ2V0QXR0cmlidXRlKGltcG9ydEVsZW1lbnQsICdocmVmJykpO1xuICB2YXIgbWF0Y2hlc1JlbCA9IGRvbTUucHJlZGljYXRlcy5oYXNBdHRyVmFsdWUoJ3JlbCcsIGRvbTUuZ2V0QXR0cmlidXRlKGltcG9ydEVsZW1lbnQsICdyZWwnKSk7XG4gIHJldHVybiBkb201LnByZWRpY2F0ZXMuQU5EKG1hdGNoZXNUYWcsIG1hdGNoZXNIcmVmLCBtYXRjaGVzUmVsKTtcbn1cblxuLy8gVE9ETyhham8pOiBSZWZhY3RvciBvdXQgb2YgdnVsY2FuaXplIGludG8gZG9tNS5cbnZhciBwb2x5bWVyRXh0ZXJuYWxTdHlsZSA9IGRvbTUucHJlZGljYXRlcy5BTkQoXG4gIGRvbTUucHJlZGljYXRlcy5oYXNUYWdOYW1lKCdsaW5rJyksXG4gIGRvbTUucHJlZGljYXRlcy5oYXNBdHRyVmFsdWUoJ3JlbCcsICdpbXBvcnQnKSxcbiAgZG9tNS5wcmVkaWNhdGVzLmhhc0F0dHJWYWx1ZSgndHlwZScsICdjc3MnKVxuKTtcblxudmFyIGV4dGVybmFsU2NyaXB0ID0gZG9tNS5wcmVkaWNhdGVzLkFORChcbiAgZG9tNS5wcmVkaWNhdGVzLmhhc1RhZ05hbWUoJ3NjcmlwdCcpLFxuICBkb201LnByZWRpY2F0ZXMuaGFzQXR0cignc3JjJylcbik7XG5cbnZhciBpc0h0bWxJbXBvcnROb2RlID0gZG9tNS5wcmVkaWNhdGVzLkFORChcbiAgZG9tNS5wcmVkaWNhdGVzLmhhc1RhZ05hbWUoJ2xpbmsnKSxcbiAgZG9tNS5wcmVkaWNhdGVzLmhhc0F0dHJWYWx1ZSgncmVsJywgJ2ltcG9ydCcpLFxuICBkb201LnByZWRpY2F0ZXMuTk9UKFxuICAgIGRvbTUucHJlZGljYXRlcy5oYXNBdHRyVmFsdWUoJ3R5cGUnLCAnY3NzJylcbiAgKVxuKTtcblxuQW5hbHl6ZXIucHJvdG90eXBlLl9pbmxpbmVTdHlsZXMgPSBmdW5jdGlvbiBfaW5saW5lU3R5bGVzKGFzdCwgaHJlZikge1xuICB2YXIgY3NzTGlua3MgPSBkb201LnF1ZXJ5QWxsKGFzdCwgcG9seW1lckV4dGVybmFsU3R5bGUpO1xuICBjc3NMaW5rcy5mb3JFYWNoKGZ1bmN0aW9uKGxpbmspIHtcbiAgICB2YXIgbGlua0hyZWYgPSBkb201LmdldEF0dHJpYnV0ZShsaW5rLCAnaHJlZicpO1xuICAgIHZhciB1cmkgPSB1cmwucmVzb2x2ZShocmVmLCBsaW5rSHJlZik7XG4gICAgdmFyIGNvbnRlbnQgPSB0aGlzLl9jb250ZW50W3VyaV07XG4gICAgdmFyIHN0eWxlID0gZG9tNS5jb25zdHJ1Y3RvcnMuZWxlbWVudCgnc3R5bGUnKTtcbiAgICBkb201LnNldFRleHRDb250ZW50KHN0eWxlLCAnXFxuJyArIGNvbnRlbnQgKyAnXFxuJyk7XG4gICAgZG9tNS5yZXBsYWNlKGxpbmssIHN0eWxlKTtcbiAgfS5iaW5kKHRoaXMpKTtcbiAgcmV0dXJuIGNzc0xpbmtzLmxlbmd0aCA+IDA7XG59O1xuXG5BbmFseXplci5wcm90b3R5cGUuX2lubGluZVNjcmlwdHMgPSBmdW5jdGlvbiBfaW5saW5lU2NyaXB0cyhhc3QsIGhyZWYpIHtcbiAgdmFyIHNjcmlwdHMgPSBkb201LnF1ZXJ5QWxsKGFzdCwgZXh0ZXJuYWxTY3JpcHQpO1xuICBzY3JpcHRzLmZvckVhY2goZnVuY3Rpb24oc2NyaXB0KSB7XG4gICAgdmFyIHNjcmlwdEhyZWYgPSBkb201LmdldEF0dHJpYnV0ZShzY3JpcHQsICdzcmMnKTtcbiAgICB2YXIgdXJpID0gdXJsLnJlc29sdmUoaHJlZiwgc2NyaXB0SHJlZik7XG4gICAgdmFyIGNvbnRlbnQgPSB0aGlzLl9jb250ZW50W3VyaV07XG4gICAgdmFyIGlubGluZWQgPSBkb201LmNvbnN0cnVjdG9ycy5lbGVtZW50KCdzY3JpcHQnKTtcbiAgICBkb201LnNldFRleHRDb250ZW50KGlubGluZWQsICdcXG4nICsgY29udGVudCArICdcXG4nKTtcbiAgICBkb201LnJlcGxhY2Uoc2NyaXB0LCBpbmxpbmVkKTtcbiAgfS5iaW5kKHRoaXMpKTtcbiAgcmV0dXJuIHNjcmlwdHMubGVuZ3RoID4gMDtcbn07XG5cbkFuYWx5emVyLnByb3RvdHlwZS5faW5saW5lSW1wb3J0cyA9IGZ1bmN0aW9uIF9pbmxpbmVJbXBvcnRzKGFzdCwgaHJlZiwgbG9hZGVkKSB7XG4gIHZhciBpbXBvcnRzID0gZG9tNS5xdWVyeUFsbChhc3QsIGlzSHRtbEltcG9ydE5vZGUpO1xuICBpbXBvcnRzLmZvckVhY2goZnVuY3Rpb24oaHRtbEltcG9ydCkge1xuICAgIHZhciBpbXBvcnRIcmVmID0gZG9tNS5nZXRBdHRyaWJ1dGUoaHRtbEltcG9ydCwgJ2hyZWYnKTtcbiAgICB2YXIgdXJpID0gdXJsLnJlc29sdmUoaHJlZiwgaW1wb3J0SHJlZik7XG4gICAgaWYgKGxvYWRlZFt1cmldKSB7XG4gICAgICBkb201LnJlbW92ZShodG1sSW1wb3J0KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIGNvbnRlbnQgPSB0aGlzLmdldExvYWRlZEFzdCh1cmksIGxvYWRlZCk7XG4gICAgZG9tNS5yZXBsYWNlKGh0bWxJbXBvcnQsIGNvbnRlbnQpO1xuICB9LmJpbmQodGhpcykpO1xuICByZXR1cm4gaW1wb3J0cy5sZW5ndGggPiAwO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIGEgcHJvbWlzZSByZXNvbHZpbmcgdG8gYSBmb3JtIG9mIHRoZSBBU1Qgd2l0aCBhbGwgbGlua3MgcmVwbGFjZWRcbiAqIHdpdGggdGhlIGRvY3VtZW50IHRoZXkgbGluayB0by4gLmNzcyBhbmQgLnNjcmlwdCBmaWxlcyBiZWNvbWUgJmx0O3N0eWxlJmd0OyBhbmRcbiAqICZsdDtzY3JpcHQmZ3Q7LCByZXNwZWN0aXZlbHkuXG4gKlxuICogVGhlIGVsZW1lbnRzIGluIHRoZSBsb2FkZWQgZG9jdW1lbnQgYXJlIHVubW9kaWZpZWQgZnJvbSB0aGVpciBvcmlnaW5hbFxuICogZG9jdW1lbnRzLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBocmVmIFRoZSBkb2N1bWVudCB0byBsb2FkLlxuICogQHBhcmFtIHtPYmplY3QuPHN0cmluZyxib29sZWFuPj19IGxvYWRlZCBBbiBvYmplY3Qga2V5ZWQgYnkgYWxyZWFkeSBsb2FkZWQgZG9jdW1lbnRzLlxuICogQHJldHVybiB7UHJvbWlzZS48RG9jdW1lbnRBU1Q+fVxuICovXG5BbmFseXplci5wcm90b3R5cGUuZ2V0TG9hZGVkQXN0ID0gZnVuY3Rpb24gZ2V0TG9hZGVkQXN0KGhyZWYsIGxvYWRlZCkge1xuICBpZiAoIWxvYWRlZCkge1xuICAgIGxvYWRlZCA9IHt9O1xuICB9XG4gIGxvYWRlZFtocmVmXSA9IHRydWU7XG4gIHZhciBwYXJzZWREb2N1bWVudCA9IHRoaXMucGFyc2VkRG9jdW1lbnRzW2hyZWZdO1xuICB2YXIgYW5hbHl6ZWREb2N1bWVudCA9IHRoaXMuaHRtbFtocmVmXTtcbiAgdmFyIGFzdENvcHkgPSBkb201LnBhcnNlKGRvbTUuc2VyaWFsaXplKHBhcnNlZERvY3VtZW50KSk7XG4gIC8vIFdoZW5ldmVyIHdlIGlubGluZSBzb21ldGhpbmcsIHJlc2V0IGlubGluZWQgdG8gdHJ1ZSB0byBrbm93IHRoYXQgYW5vYXRoZXJcbiAgLy8gaW5saW5pbmcgcGFzcyBpcyBuZWVkZWQ7XG4gIHRoaXMuX2lubGluZVN0eWxlcyhhc3RDb3B5LCBocmVmKTtcbiAgdGhpcy5faW5saW5lU2NyaXB0cyhhc3RDb3B5LCBocmVmKTtcbiAgdGhpcy5faW5saW5lSW1wb3J0cyhhc3RDb3B5LCBocmVmLCBsb2FkZWQpO1xuICByZXR1cm4gYXN0Q29weTtcbn07XG5cbi8qKlxuICogQ2FsbHMgYGRvbTUubm9kZVdhbGtBbGxgIG9uIGVhY2ggZG9jdW1lbnQgdGhhdCBgQW5heXpsZXJgIGhhcyBsYW9kZWQuXG4gKiBAcGFyYW0gIHtPYmplY3R9IHByZWRpY2F0ZSBBIGRvbTUgcHJlZGljYXRlLlxuICogQHJldHVybiB7T2JqZWN0fVxuICovXG5BbmFseXplci5wcm90b3R5cGUubm9kZVdhbGtEb2N1bWVudHMgPSBmdW5jdGlvbiBub2RlV2Fsa0RvY3VtZW50cyhwcmVkaWNhdGUpIHtcbiAgZm9yICh2YXIgaHJlZiBpbiB0aGlzLnBhcnNlZERvY3VtZW50cykge1xuICAgIHZhciBtYXRjaCA9IGRvbTUubm9kZVdhbGsodGhpcy5wYXJzZWREb2N1bWVudHNbaHJlZl0sIHByZWRpY2F0ZSk7XG4gICAgaWYgKG1hdGNoKSB7XG4gICAgICByZXR1cm4gbWF0Y2g7XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufTtcblxuLyoqXG4gKiBDYWxscyBgZG9tNS5ub2RlV2Fsa0FsbGAgb24gZWFjaCBkb2N1bWVudCB0aGF0IGBBbmF5emxlcmAgaGFzIGxhb2RlZC5cbiAqIEBwYXJhbSAge09iamVjdH0gcHJlZGljYXRlIEEgZG9tNSBwcmVkaWNhdGUuXG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKi9cbkFuYWx5emVyLnByb3RvdHlwZS5ub2RlV2Fsa0FsbERvY3VtZW50cyA9IGZ1bmN0aW9uIG5vZGVXYWxrRG9jdW1lbnRzKHByZWRpY2F0ZSkge1xuICB2YXIgcmVzdWx0cyA9IFtdO1xuICBmb3IgKHZhciBocmVmIGluIHRoaXMucGFyc2VkRG9jdW1lbnRzKSB7XG4gICAgdmFyIG5ld05vZGVzID0gZG9tNS5ub2RlV2Fsa0FsbCh0aGlzLnBhcnNlZERvY3VtZW50c1tocmVmXSwgcHJlZGljYXRlKTtcbiAgICByZXN1bHRzID0gcmVzdWx0cy5jb25jYXQobmV3Tm9kZXMpO1xuICB9XG4gIHJldHVybiByZXN1bHRzO1xufTtcblxuLyoqIEFubm90YXRlcyBhbGwgbG9hZGVkIG1ldGFkYXRhIHdpdGggaXRzIGRvY3VtZW50YXRpb24uICovXG5BbmFseXplci5wcm90b3R5cGUuYW5ub3RhdGUgPSBmdW5jdGlvbiBhbm5vdGF0ZSgpIHtcbiAgaWYgKHRoaXMuZmVhdHVyZXMubGVuZ3RoID4gMCkge1xuICAgIHZhciBmZWF0dXJlRWwgPSBkb2NzLmZlYXR1cmVFbGVtZW50KHRoaXMuZmVhdHVyZXMpO1xuICAgIHRoaXMuZWxlbWVudHMudW5zaGlmdChmZWF0dXJlRWwpO1xuICAgIHRoaXMuZWxlbWVudHNCeVRhZ05hbWVbZmVhdHVyZUVsLmlzXSA9IGZlYXR1cmVFbDtcbiAgfVxuICB2YXIgYmVoYXZpb3JzQnlOYW1lID0gdGhpcy5iZWhhdmlvcnNCeU5hbWU7XG4gIHZhciBlbGVtZW50SGVscGVyID0gZnVuY3Rpb24oZGVzY3JpcHRvcil7XG4gICAgZG9jcy5hbm5vdGF0ZUVsZW1lbnQoZGVzY3JpcHRvciwgYmVoYXZpb3JzQnlOYW1lKTtcbiAgfTtcbiAgdGhpcy5lbGVtZW50cy5mb3JFYWNoKGVsZW1lbnRIZWxwZXIpO1xuICB0aGlzLmJlaGF2aW9ycy5mb3JFYWNoKGVsZW1lbnRIZWxwZXIpOyAvLyBTYW1lIHNoYXBlLlxuICB0aGlzLmJlaGF2aW9ycy5mb3JFYWNoKGZ1bmN0aW9uKGJlaGF2aW9yKXtcbiAgICBpZiAoYmVoYXZpb3IuaXMgIT09IGJlaGF2aW9yLnN5bWJvbCAmJiBiZWhhdmlvci5zeW1ib2wpIHtcbiAgICAgIHRoaXMuYmVoYXZpb3JzQnlOYW1lW2JlaGF2aW9yLnN5bWJvbF0gPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9LmJpbmQodGhpcykpO1xufTtcblxuZnVuY3Rpb24gYXR0YWNoRG9tTW9kdWxlKHBhcnNlZEltcG9ydCwgZWxlbWVudCkge1xuICB2YXIgZG9tTW9kdWxlcyA9IHBhcnNlZEltcG9ydFsnZG9tLW1vZHVsZSddO1xuICBmb3IgKHZhciBpID0gMCwgZG9tTW9kdWxlOyBpIDwgZG9tTW9kdWxlcy5sZW5ndGg7IGkrKykge1xuICAgIGRvbU1vZHVsZSA9IGRvbU1vZHVsZXNbaV07XG4gICAgaWYgKGRvbTUuZ2V0QXR0cmlidXRlKGRvbU1vZHVsZSwgJ2lkJykgPT09IGVsZW1lbnQuaXMpIHtcbiAgICAgIGVsZW1lbnQuZG9tTW9kdWxlID0gZG9tTW9kdWxlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxufVxuXG4vKiogUmVtb3ZlcyByZWR1bmRhbnQgcHJvcGVydGllcyBmcm9tIHRoZSBjb2xsZWN0ZWQgZGVzY3JpcHRvcnMuICovXG5BbmFseXplci5wcm90b3R5cGUuY2xlYW4gPSBmdW5jdGlvbiBjbGVhbigpIHtcbiAgdGhpcy5lbGVtZW50cy5mb3JFYWNoKGRvY3MuY2xlYW5FbGVtZW50KTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gQW5hbHl6ZXI7XG4iXX0= },{"./ast-utils/docs":6,"./ast-utils/import-parse":11,"./ast-utils/js-parse":12,"./loader/error-swallowing-fs-resolver":14,"./loader/file-loader":15,"./loader/fs-resolver":16,"./loader/noop-resolver":17,"./loader/string-resolver":19,"./loader/xhr-resolver":20,"dom5":31,"es6-promise":32,"url":81}],2:[function(require,module,exports){ /** * @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 */ // jshint node: true 'use strict'; var esutil = require('./esutil'); var astValue = require('./ast-value'); var analyzeProperties = function(node) { var analyzedProps = []; if (node.type != 'ObjectExpression') { return analyzedProps; } for (var i = 0; i < node.properties.length; i++) { var property = node.properties[i]; var prop = esutil.toPropertyDescriptor(property); prop.published = true; if (property.value.type == 'ObjectExpression') { /** * Parse the expression inside a property object block. * property: { * key: { * type: String, * notify: true, * value: -1, * readOnly: true, * reflectToAttribute: true * } * } */ for (var j = 0; j < property.value.properties.length; j++) { var propertyArg = property.value.properties[j]; var propertyKey = esutil.objectKeyToString(propertyArg.key); switch(propertyKey) { case 'type': { prop.type = esutil.objectKeyToString(propertyArg.value); if (prop.type === undefined) { throw { message: 'Invalid type in property object.', location: propertyArg.loc.start }; } } break; case 'notify': { prop.notify = astValue.expressionToValue(propertyArg.value); if (prop.notify === undefined) prop.notify = astValue.CANT_CONVERT; } break; case 'observer': { prop.observer = astValue.expressionToValue(propertyArg.value); prop.observerNode = propertyArg.value; if (prop.observer === undefined) prop.observer = astValue.CANT_CONVERT; } break; case 'readOnly': { prop.readOnly = astValue.expressionToValue(propertyArg.value); if (prop.readOnly === undefined) prop.readOnly = astValue.CANT_CONVERT; } break; case 'reflectToAttribute': { prop.reflectToAttribute = astValue.expressionToValue(propertyArg); if (prop.reflectToAttribute === undefined) prop.reflectToAttribute = astValue.CANT_CONVERT; } break; case 'value': { prop.default = astValue.expressionToValue(propertyArg.value); if (prop.default === undefined) prop.default = astValue.CANT_CONVERT; } break; default: break; } } } if (!prop.type) { throw { message: 'Unable to determine name for property key.', location: node.loc.start }; } analyzedProps.push(prop); } return analyzedProps; }; module.exports = analyzeProperties; },{"./ast-value":3,"./esutil":8}],3:[function(require,module,exports){ /** * @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 */ // jshint node: true 'use strict'; // useful tool to visualize AST: http://esprima.org/demo/parse.html /** * converts literal: {"type": "Literal", "value": 5, "raw": "5" } * to string */ function literalToValue(literal) { return literal.value; } /** * converts unary to string * unary: { type: 'UnaryExpression', operator: '-', argument: { ... } } */ function unaryToValue(unary) { var argValue = expressionToValue(unary.argument); if (argValue === undefined) return; return unary.operator + argValue; } /** * converts identifier to its value * identifier { "type": "Identifier", "name": "Number } */ function identifierToValue(identifier) { return identifier.name; } /** * Function is a block statement. */ function functionDeclarationToValue(fn) { if (fn.body.type == "BlockStatement") return blockStatementToValue(fn.body); } function functionExpressionToValue(fn) { if (fn.body.type == "BlockStatement") return blockStatementToValue(fn.body); } /** * Block statement: find last return statement, and return its value */ function blockStatementToValue(block) { for (var i=block.body.length - 1; i>= 0; i--) { if (block.body[i].type === "ReturnStatement") return returnStatementToValue(block.body[i]); } } /** * Evaluates return's argument */ function returnStatementToValue(ret) { return expressionToValue(ret.argument); } /** * Enclose containing values in [] */ function arrayExpressionToValue(arry) { var value = '['; for (var i=0; i} The behaviors we've found. */ var behaviors = []; var currentBehavior = null; var propertyHandlers = null; /** * merges behavior with preexisting behavior with the same name. * here to support multiple @polymerBehavior tags referring * to same behavior. See iron-multi-selectable for example. */ function mergeBehavior(newBehavior) { var isBehaviorImpl = function(b) { // filter out BehaviorImpl return b.indexOf(newBehavior.is) === -1; }; for (var i=0; i behaviors[i].desc.length) behaviors[i].desc = newBehavior.desc; } else { behaviors[i].desc = newBehavior.desc; } } // merge demos behaviors[i].demos = (behaviors[i].demos || []).concat(newBehavior.demos || []); // merge events, behaviors[i].events = (behaviors[i].events || []).concat(newBehavior.events || []); // merge properties behaviors[i].properties = (behaviors[i].properties || []).concat(newBehavior.properties || []); // merge observers behaviors[i].observers = (behaviors[i].observers || []).concat(newBehavior.observers || []); // merge behaviors behaviors[i].behaviors = (behaviors[i].behaviors || []).concat(newBehavior.behaviors || []) .filter(isBehaviorImpl); return behaviors[i]; } return newBehavior; } /** * gets the expression representing a behavior from a node. */ function behaviorExpression(node) { switch(node.type) { case 'ExpressionStatement': return node.expression.right; case 'VariableDeclaration': return node.declarations.length > 0 ? node.declarations[0].init : null; } } /** * checks whether an expression is a simple array containing only member * expressions or identifiers. */ function isSimpleBehaviorArray(expression) { if (!expression || expression.type !== 'ArrayExpression') return false; for (var i=0; i < expression.elements.length; i++) { if (expression.elements[i].type !== 'MemberExpression' && expression.elements[i].type !== 'Identifier') { return false; } } return true; } var templatizer = "Polymer.Templatizer"; var visitors = { /** * Look for object declarations with @behavior in the docs. */ enterVariableDeclaration: function(node, parent) { if (node.declarations.length !== 1) return; // Ambiguous. this._initBehavior(node, function () { return esutil.objectKeyToString(node.declarations[0].id); }); }, /** * Look for object assignments with @polymerBehavior in the docs. */ enterAssignmentExpression: function(node, parent) { this._initBehavior(parent, function () { return esutil.objectKeyToString(node.left); }); }, _parseChainedBehaviors: function(node) { // if current behavior is part of an array, it gets extended by other behaviors // inside the array. Ex: // Polymer.IronMultiSelectableBehavior = [ {....}, Polymer.IronSelectableBehavior] // We add these to behaviors array var expression = behaviorExpression(node); var chained = []; if (expression && expression.type === 'ArrayExpression') { for (var i=0; i < expression.elements.length; i++) { if (expression.elements[i].type === 'MemberExpression' || expression.elements[i].type === 'Identifier') { chained.push(astValue.expressionToValue(expression.elements[i])); } } if (chained.length > 0) currentBehavior.behaviors = chained; } }, _initBehavior: function(node, getName) { var comment = esutil.getAttachedComment(node); var symbol = getName(); // Quickly filter down to potential candidates. if (!comment || comment.indexOf('@polymerBehavior') === -1) { if (symbol !== templatizer) { return; } } currentBehavior = { type: 'behavior', desc: comment, events: esutil.getEventComments(node).map( function(event) { return { desc: event}; }) }; propertyHandlers = declarationPropertyHandlers(currentBehavior); docs.annotateBehavior(currentBehavior); // Make sure that we actually parsed a behavior tag! if (!jsdoc.hasTag(currentBehavior.jsdoc, 'polymerBehavior') && symbol !== templatizer) { currentBehavior = null; propertyHandlers = null; return; } var name = jsdoc.getTag(currentBehavior.jsdoc, 'polymerBehavior', 'name'); currentBehavior.symbol = symbol; if (!name) { name = currentBehavior.symbol; } if (!name) { console.warn('Unable to determine name for @polymerBehavior:', comment); } currentBehavior.is = name; this._parseChainedBehaviors(node); currentBehavior = mergeBehavior(currentBehavior); propertyHandlers = declarationPropertyHandlers(currentBehavior); // Some behaviors are just lists of other behaviors. If this is one then // add it to behaviors right away. if (isSimpleBehaviorArray(behaviorExpression(node))) { // TODO(ajo): Add a test to confirm the presence of `properties` if (!currentBehavior.observers) currentBehavior.observers = []; if (!currentBehavior.properties) currentBehavior.properties = []; if (behaviors.indexOf(currentBehavior) === -1) behaviors.push(currentBehavior); currentBehavior = null; propertyHandlers = null; } }, /** * We assume that the object expression after such an assignment is the * behavior's declaration. Seems to be a decent assumption for now. */ enterObjectExpression: function(node, parent) { if (!currentBehavior || currentBehavior.properties) return; currentBehavior.properties = currentBehavior.properties || []; currentBehavior.observers = currentBehavior.observers || []; for (var i = 0; i < node.properties.length; i++) { var prop = node.properties[i]; var name = esutil.objectKeyToString(prop.key); if (!name) { throw { message: 'Cant determine name for property key.', location: node.loc.start }; } if (name in propertyHandlers) { propertyHandlers[name](prop.value); } else { currentBehavior.properties.push(esutil.toPropertyDescriptor(prop)); } } behaviors.push(currentBehavior); currentBehavior = null; }, }; return {visitors: visitors, behaviors: behaviors}; }; },{"./analyze-properties":2,"./ast-value.js":3,"./declaration-property-handlers":5,"./docs":6,"./esutil":8,"./jsdoc":13,"estraverse":44}],5:[function(require,module,exports){ /** * @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 */ // jshint node: true 'use strict'; var astValue = require('./ast-value'); var analyzeProperties = require('./analyze-properties'); /** * Returns an object containing functions that will annotate `declaration` with * the polymer-specificmeaning of the value nodes for the named properties. * * @param {ElementDescriptor} declaration The descriptor to annotate. * @return {object.} An object containing property * handlers. */ function declarationPropertyHandlers(declaration) { return { is: function(node) { if (node.type == 'Literal') { declaration.is = node.value; } }, properties: function(node) { var props = analyzeProperties(node); for (var i=0; i= 0; i--) { var behavior = from.behaviors[i]; var definedBehavior = behaviorsByName[behavior] || behaviorsByName[behavior.symbol]; if (!definedBehavior) { console.warn("Behavior " + behavior + " not found when mixing " + "properties into " + to.is + "!"); return; } copyProperties(definedBehavior, to, behaviorsByName); } } function mixinBehaviors(descriptor, behaviorsByName) { if (descriptor.behaviors) { for (var i = descriptor.behaviors.length - 1; i >= 0; i--) { var behavior = descriptor.behaviors[i]; if (!behaviorsByName[behavior]) { console.warn("Behavior " + behavior + " not found when mixing " + "properties into " + descriptor.is + "!"); break; } var definedBehavior = behaviorsByName[behavior]; copyProperties(definedBehavior, descriptor, behaviorsByName); } } } /** * Annotates documentation found within a Hydrolysis element descriptor. Also * supports behaviors. * * If the element was processed via `hydrolize`, the element's documentation * will also be extracted via its . * * @param {Object} descriptor The element descriptor. * @return {Object} The descriptor that was given. */ function annotateElement(descriptor, behaviorsByName) { if (!descriptor.desc && descriptor.type === 'element') { descriptor.desc = _findElementDocs(descriptor.is, descriptor.domModule, descriptor.scriptElement); } annotate(descriptor); // The `` is too low level for most needs, and it is _not_ // serializable. So we drop it now that we've extracted all the useful bits // from it. // TODO: Don't worry about serializability here, provide an API to get JSON. delete descriptor.domModule; mixinBehaviors(descriptor, behaviorsByName); // Descriptors that should have their `desc` properties parsed as JSDoc. descriptor.properties.forEach(function(property) { // Feature properties are special, configuration is really just a matter of // inheritance... annotateProperty(property, descriptor.abstract); }); // It may seem like overkill to always sort, but we have an assumption that // these properties are typically being consumed by user-visible tooling. // As such, it's good to have consistent output/ordering to aid the user. descriptor.properties.sort(function(a, b) { // Private properties are always last. if (a.private && !b.private) { return 1; } else if (!a.private && b.private) { return -1; // Otherwise, we're just sorting alphabetically. } else { return a.name.localeCompare(b.name); } }); annotateElementHeader(descriptor); return descriptor; } /** * Annotates behavior descriptor. * @param {Object} descriptor behavior descriptor * @return {Object} descriptor passed in as param */ function annotateBehavior(descriptor, behaviorsByName) { annotate(descriptor); annotateElementHeader(descriptor); return descriptor; } /** * Annotates event documentation */ function _annotateEvent(descriptor) { annotate(descriptor); // process @event var eventTag = jsdoc.getTag(descriptor.jsdoc, 'event'); descriptor.name = eventTag ? eventTag.description : "N/A"; // process @params descriptor.params = (descriptor.jsdoc.tags || []) .filter( function(tag) { return tag.tag === 'param'; }) .map( function(tag) { return { type: tag.type || "N/A", desc: tag.description, name: tag.name || "N/A" }; }); // process @params return descriptor; } /** * Annotates documentation found about a Hydrolysis property descriptor. * * @param {Object} descriptor The property descriptor. * @param {boolean} ignoreConfiguration If true, `configuration` is not set. * @return {Object} The descriptior that was given. */ function annotateProperty(descriptor, ignoreConfiguration) { annotate(descriptor); if (descriptor.name[0] === '_' || jsdoc.hasTag(descriptor.jsdoc, 'private')) { descriptor.private = true; } if (!ignoreConfiguration && ELEMENT_CONFIGURATION.indexOf(descriptor.name) !== -1) { descriptor.private = true; descriptor.configuration = true; } // @type JSDoc wins descriptor.type = jsdoc.getTag(descriptor.jsdoc, 'type', 'type') || descriptor.type; if (descriptor.type.match(/^function/i)) { _annotateFunctionProperty(descriptor); } // @default JSDoc wins var defaultTag = jsdoc.getTag(descriptor.jsdoc, 'default'); if (defaultTag !== null) { var newDefault = (defaultTag.name || '') + (defaultTag.description || ''); if (newDefault !== '') { descriptor.default = newDefault; } } return descriptor; } /** @param {Object} descriptor */ function _annotateFunctionProperty(descriptor) { descriptor.function = true; var returnTag = jsdoc.getTag(descriptor.jsdoc, 'return'); if (returnTag) { descriptor.return = { type: returnTag.type, desc: returnTag.description, }; } var paramsByName = {}; (descriptor.params || []).forEach(function(param) { paramsByName[param.name] = param; }); (descriptor.jsdoc && descriptor.jsdoc.tags || []).forEach(function(tag) { if (tag.tag !== 'param') return; var param = paramsByName[tag.name]; if (!param) { return; } param.type = tag.type || param.type; param.desc = tag.description; }); } /** * Converts raw features into an abstract `Polymer.Base` element. * * Note that docs on this element _are not processed_. You must call * `annotateElement` on it yourself if you wish that. * * @param {Array} features * @return {ElementDescriptor} */ function featureElement(features) { var properties = features.reduce(function(result, feature) { return result.concat(feature.properties); }, []); return { type: 'element', is: 'Polymer.Base', abstract: true, properties: properties, desc: '`Polymer.Base` acts as a base prototype for all Polymer ' + 'elements. It is composed via various calls to ' + '`Polymer.Base._addFeature()`.\n' + '\n' + 'The properties reflected here are the combined view of all ' + 'features found in this library. There may be more properties ' + 'added via other libraries, as well.', }; } /** * Cleans redundant properties from a descriptor, assuming that you have already * called `annotate`. * * @param {Object} descriptor */ function clean(descriptor) { if (!descriptor.jsdoc) return; // The doctext was written to `descriptor.desc` delete descriptor.jsdoc.description; delete descriptor.jsdoc.orig; var cleanTags = []; (descriptor.jsdoc.tags || []).forEach(function(tag) { // Drop any tags we've consumed. if (HANDLED_TAGS.indexOf(tag.tag) !== -1) return; cleanTags.push(tag); }); if (cleanTags.length === 0) { // No tags? no docs left! delete descriptor.jsdoc; } else { descriptor.jsdoc.tags = cleanTags; } } /** * Cleans redundant properties from an element, assuming that you have already * called `annotateElement`. * * @param {ElementDescriptor|BehaviorDescriptor} element */ function cleanElement(element) { clean(element); element.properties.forEach(cleanProperty); } /** * Cleans redundant properties from a property, assuming that you have already * called `annotateProperty`. * * @param {PropertyDescriptor} property */ function cleanProperty(property) { clean(property); } /** * Parse elements defined only in comments. * @param {comments} Array A list of comments to parse. * @return {ElementDescriptor} A list of pseudo-elements. */ function parsePseudoElements(comments) { var elements = []; comments.forEach(function(comment) { var parsed = jsdoc.parseJsdoc(comment); var pseudoTag = jsdoc.getTag(parsed, 'pseudoElement', 'name'); if (pseudoTag) { parsed.is = pseudoTag; parsed.jsdoc = {description: parsed.description, tags: parsed.tags}; parsed.properties = []; parsed.desc = parsed.description; parsed.description = undefined; parsed.tags = undefined; annotateElementHeader(parsed); elements.push(parsed); } }); return elements; } /** * @param {string} elementId * @param {DocumentAST} domModule * @param {DocumentAST} scriptElement The script that the element was defined in. */ function _findElementDocs(elementId, domModule, scriptElement) { // Note that we concatenate docs from all sources if we find them. // element can be defined in: // html comment right before dom-module // html commnet right before script defining the module, if dom-module is empty var found = []; // Do we have a HTML comment on the `` or ` PK=Hw"LYmaterialdjango/static/materialdjango/components/bower_components/hydrolysis/.editorconfig# 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 # Polymer EditorConfig root = true [*] charset = utf-8 indent_size = 2 indent_style = space trim_trailing_whitespace = true [*.md] trim_trailing_whitespace = falsePK=HބVmaterialdjango/static/materialdjango/components/bower_components/hydrolysis/bower.json{ "name": "hydrolysis", "main": "hydrolysis.js", "ignore": [ "lib/", "examples/", "demo/", "test/", ".gitignore", "gulpfile.js", "package.json" ], "repository": { "type": "git", "url": "git://github.com/Polymer/hydrolysis.git" }, "devDependencies": { "polymer": "Polymer/polymer#^0.9.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", "web-component-tester": "*" }, "version": "1.22.0" } PKєrGts cmaterialdjango/static/materialdjango/components/bower_components/iron-jsonp-library/CONTRIBUTING.md # Polymer Elements ## Guide for Contributors Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: ### Filing Issues **If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: 1. **Who will use the feature?** _“As someone filling out a form…”_ 2. **When will they use the feature?** _“When I enter an invalid value…”_ 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ **If you are filing an issue to report a bug**, please provide: 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: ```markdown The `paper-foo` element causes the page to turn pink when clicked. ## Expected outcome The page stays the same color. ## Actual outcome The page turns pink. ## Steps to reproduce 1. Put a `paper-foo` element in the page. 2. Open the page in a web browser. 3. Click the `paper-foo` element. ``` 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [http://jsbin.com/cagaye](http://jsbin.com/cagaye/edit?html,output). 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. ### Submitting Pull Requests **Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. When submitting pull requests, please provide: 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues using the following syntax: ```markdown (For a single issue) Fixes #20 (For multiple issues) Fixes #32, #40 ``` 2. **A succinct description of the design** used to fix any related issues. For example: ```markdown This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. ``` 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! PKQG E==_materialdjango/static/materialdjango/components/bower_components/iron-jsonp-library/.bower.json{ "name": "iron-jsonp-library", "version": "1.0.4", "description": "Loads jsonp libraries", "authors": [ "Aleks Totic ", "The Polymer Authors" ], "keywords": [ "web-component", "polymer", "behavior" ], "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-jsonp-library.git" }, "main": "iron-jsonp-library.html", "license": "http://polymer.github.io/LICENSE.txt", "homepage": "https://github.com/PolymerElements/iron-jsonp-library/", "ignore": [ "/.*", "/test/" ], "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": "polymer/web-component-tester#^3.4.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", "paper-styles": "PolymerElements/paper-styles#^1.0.2", "paper-spinner": "PolymerElements/paper-spinner#^1.0.1" }, "_release": "1.0.4", "_resolution": { "type": "version", "tag": "v1.0.4", "commit": "3e00dc977ef257c80fc4edb2069e185ffc1a6834" }, "_source": "git://github.com/PolymerElements/iron-jsonp-library.git", "_target": "^1.0.0", "_originalSource": "PolymerElements/iron-jsonp-library" }PKєrGL{*cc^materialdjango/static/materialdjango/components/bower_components/iron-jsonp-library/index.html PKєrGkz\materialdjango/static/materialdjango/components/bower_components/iron-jsonp-library/hero.svg PKєrGuפkmaterialdjango/static/materialdjango/components/bower_components/iron-jsonp-library/iron-jsonp-library.html PKєrG 55]materialdjango/static/materialdjango/components/bower_components/iron-jsonp-library/README.md [![Build Status](https://travis-ci.org/PolymerElements/iron-jsonp-library.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-jsonp-library) _[Demo and API Docs](https://elements.polymer-project.org/elements/iron-jsonp-library)_ ##<iron-jsonp-library> Loads specified jsonp library. Example: Will emit 'api-load' event when loaded, and set 'loaded' to true Implemented by Polymer.IronJsonpLibraryBehavior. Use it to create specific library loader elements. ##Polymer.IronJsonpLibraryBehavior `Polymer.IronJsonpLibraryBehavior` loads a jsonp library. Multiple components can request same library, only one copy will load. Some libraries require a specific global function be defined. If this is the case, specify the `callbackName` property. You should use an HTML Import to load library dependencies when possible instead of using this element. PKєrG=^materialdjango/static/materialdjango/components/bower_components/iron-jsonp-library/bower.json{ "name": "iron-jsonp-library", "version": "1.0.4", "description": "Loads jsonp libraries", "authors": [ "Aleks Totic ", "The Polymer Authors" ], "keywords": [ "web-component", "polymer", "behavior" ], "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-jsonp-library.git" }, "main": "iron-jsonp-library.html", "license": "http://polymer.github.io/LICENSE.txt", "homepage": "https://github.com/PolymerElements/iron-jsonp-library/", "ignore": [ "/.*", "/test/" ], "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": "polymer/web-component-tester#^3.4.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", "paper-styles": "PolymerElements/paper-styles#^1.0.2", "paper-spinner": "PolymerElements/paper-spinner#^1.0.1" } } PKєrGkd33cmaterialdjango/static/materialdjango/components/bower_components/iron-jsonp-library/demo/index.html iron-jsonp-library Demo

    <iron-jsonp-library>



    PKC Gts \materialdjango/static/materialdjango/components/bower_components/paper-badge/CONTRIBUTING.md # Polymer Elements ## Guide for Contributors Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: ### Filing Issues **If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: 1. **Who will use the feature?** _“As someone filling out a form…”_ 2. **When will they use the feature?** _“When I enter an invalid value…”_ 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ **If you are filing an issue to report a bug**, please provide: 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: ```markdown The `paper-foo` element causes the page to turn pink when clicked. ## Expected outcome The page stays the same color. ## Actual outcome The page turns pink. ## Steps to reproduce 1. Put a `paper-foo` element in the page. 2. Open the page in a web browser. 3. Click the `paper-foo` element. ``` 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [http://jsbin.com/cagaye](http://jsbin.com/cagaye/edit?html,output). 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. ### Submitting Pull Requests **Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. When submitting pull requests, please provide: 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues using the following syntax: ```markdown (For a single issue) Fixes #20 (For multiple issues) Fixes #32, #40 ``` 2. **A succinct description of the design** used to fix any related issues. For example: ```markdown This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. ``` 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! PKRGXmaterialdjango/static/materialdjango/components/bower_components/paper-badge/.bower.json{ "name": "paper-badge", "version": "1.1.1", "description": "Material design status message for elements", "authors": [ "The Polymer Authors" ], "keywords": [ "web-components", "polymer", "badge", "notification" ], "main": "paper-badge.html", "repository": { "type": "git", "url": "git://github.com/PolymerElements/paper-badge.git" }, "license": "http://polymer.github.io/LICENSE.txt", "homepage": "https://github.com/PolymerElements/paper-badge", "ignore": [], "dependencies": { "polymer": "Polymer/polymer#^1.1.0", "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#^1.0.0", "paper-styles": "PolymerElements/paper-styles#^1.0.0" }, "devDependencies": { "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", "paper-icon-button": "PolymerElements/paper-icon-button#^1.0.0", "test-fixture": "PolymerElements/test-fixture#^1.0.0", "web-component-tester": "polymer/web-component-tester#^3.4.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" }, "_release": "1.1.1", "_resolution": { "type": "version", "tag": "v1.1.1", "commit": "2a984d50134cd438df59d16fae43f57ee248f3b7" }, "_source": "git://github.com/PolymerElements/paper-badge.git", "_target": "^1.0.0", "_originalSource": "PolymerElements/paper-badge" }PKC G >Wmaterialdjango/static/materialdjango/components/bower_components/paper-badge/index.html paper-badge PKC GaVV]materialdjango/static/materialdjango/components/bower_components/paper-badge/paper-badge.html PKC G%Xmaterialdjango/static/materialdjango/components/bower_components/paper-badge/.travis.ymllanguage: node_js sudo: false before_script: - npm install web-component-tester - npm install bower - 'export PATH=$PWD/node_modules/.bin:$PATH' - bower install env: global: - secure: dPqKRp4Pdm7IhvADy5UJPUJoAMEi8Z9ZpPuA+ceovO5+l9hutdvNPSS2VNcPqeSMsjya4ByHHe3MClbApR3lR5qD1TxEsV1MO7sf7oZ+L4RxyKPiemkiuNrW5sHR22/KX9ny/fKgqu24utxBZEzEsftpdQJOTmITCNiI+WwkQgEqIXa6v6xAHpdjAn2BoqmLVkzCMuN50f4sWJwhXRkQze9bByNye7fUz8/3kkVo/NvKRk6XdyfVtQNmjmqxO1+fQ0fvPt1AtcC+vwBKL+RYW19rQI0XfFTZECqZvGKWtFWHY/EyM61wCD9IEZE1n/pUAZShvwD1sDV93bt0oh5Swty6ISlxgqn0xqN4/Z6dAV9w/6iLB8FmB2fFzt6pRvXA1Gxfl/RN9xbWc48FZSpQepirKI0kDUm+Eppgn0k8OfAj9gLohEePL6EfcC9smv8+qc0rFJHK7lQWH6STAxVQOQYb/qUx2NUpiQNX3sSGDNc5FL2nh3gFMPl9yaVGGFePp6UByO3hR+3IFaE5fkgXJSHRlqBpjnXyIfrrn/2FP9+wHHaWG63J3G+T54+NL8cYKpI8nk8mLdkxOtupOuWWhTPPuny/c6gSVij6Xsx3B/Yf542XDWE0+BjW6knV0cLHB8KEzz8dbuc+9iCEliLzy/SvUMmKlGrETMyTA0hXKAE= - secure: lLaqICsbH/A81u1eXBf3+vezh1Hy48DfkuiLnQlVaVKG9Q+bmcIC4dpb41RZADq17CIGsXl5gWO6y8E9T6epwf6XTnDh36P1a64oH+jHmIhN+tJKaHDspi34sHDoo6ZOAojHFITKu27qGMKU0fWnrZ/3FFMpbvtLuYmAragO8thPlEz9P4M4CALpBMPWTRXzrM9Hf9svwLZvSR+RGLpdILMacVyRbfScsMXU8Kj0KZBSlXQLdKJw3xT8F2o9UFEDMYUAA18cJXrGIk6waFnPJVFMwwIicaWI7W1oMgZxCWKSLV5rORiMZQaTQGXjF5VeyyzKOuFYbF7UoOWQxcWOGmwn2uqecDR8++2HDtpRpNQrtpjKBCi2wxVi6BY9gRE7F2fed4FhIjq/LpU7gZiCBtkYc8ZBQt4zc6C4dEuOkNidSazDlQG8P6F9PkuI9GNHWW2VPD2FeegIoEUiCeiRjuTHCpXnz2B4tTqlxRNYmOCZ0zjc82Vv7y02tYz5T1bq5UCY6k8cbcNm9o7XhC5TdmMITNYYBFu0XGY/J/gyH3f3X9WQzNl//E8ATQas97rw0A8Rs+G0YM28T+mBUJVCy6v0PBqyXxolXPlSPNDAvBzqyZ52o8nva+Az8ZSAuHnfugX4NbIyFxd2/NjddKjnBaBl4Rvxoa0lac0yWWBKjpc= node_js: 4 addons: firefox: latest apt: sources: - google-chrome packages: - google-chrome-stable script: - xvfb-run wct - "if [ \"${TRAVIS_PULL_REQUEST}\" = \"false\" ]; then wct -s 'default'; fi" PKC G K K Vmaterialdjango/static/materialdjango/components/bower_components/paper-badge/README.md [![Build Status](https://travis-ci.org/PolymerElements/paper-badge.svg?branch=master)](https://travis-ci.org/PolymerElements/paper-badge) _[Demo and API Docs](https://elements.polymer-project.org/elements/paper-badge)_ ##<paper-badge> `` is a circular text badge that is displayed on the top right corner of an element, representing a status or a notification. It will badge the anchor element specified in the `for` attribute, or, if that doesn't exist, centered to the parent node containing it. Badges can also contain an icon by adding the `icon` attribute and setting it to the id of the desired icon. Please note that you should still set the `label` attribute in order to keep the element accessible. Also note that you will need to import the `iron-iconset` that includes the icons you want to use. See [iron-icon](../iron-icon) for more information on how to import and use icon sets. Example:
    Inbox
    Status
    ### Styling The following custom properties and mixins are available for styling: Custom property | Description | Default ----------------|-------------|---------- `--paper-badge-background` | The background color of the badge | `--accent-color` `--paper-badge-opacity` | The opacity of the badge | `1.0` `--paper-badge-text-color` | The color of the badge text | `white` `--paper-badge-width` | The width of the badge circle | `20px` `--paper-badge-height` | The height of the badge circle | `20px` `--paper-badge-margin-left` | Optional spacing added to the left of the badge. | `0px` `--paper-badge-margin-bottom` | Optional spacing added to the bottom of the badge. | `0px` `--paper-badge` | Mixin applied to the badge | `{}` PKC G%_Wmaterialdjango/static/materialdjango/components/bower_components/paper-badge/.gitignorebower_components/ PKC Glԗ}}Wmaterialdjango/static/materialdjango/components/bower_components/paper-badge/bower.json{ "name": "paper-badge", "version": "1.1.1", "description": "Material design status message for elements", "authors": [ "The Polymer Authors" ], "keywords": [ "web-components", "polymer", "badge", "notification" ], "main": "paper-badge.html", "repository": { "type": "git", "url": "git://github.com/PolymerElements/paper-badge.git" }, "license": "http://polymer.github.io/LICENSE.txt", "homepage": "https://github.com/PolymerElements/paper-badge", "ignore": [], "dependencies": { "polymer": "Polymer/polymer#^1.1.0", "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#^1.0.0", "paper-styles": "PolymerElements/paper-styles#^1.0.0" }, "devDependencies": { "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", "paper-icon-button": "PolymerElements/paper-icon-button#^1.0.0", "test-fixture": "PolymerElements/test-fixture#^1.0.0", "web-component-tester": "polymer/web-component-tester#^3.4.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" } } PKC GbHbmaterialdjango/static/materialdjango/components/bower_components/paper-badge/test/test-button.html PKC G!\materialdjango/static/materialdjango/components/bower_components/paper-badge/test/index.html paper-badge tests PKC G?̮\materialdjango/static/materialdjango/components/bower_components/paper-badge/test/basic.html paper-badge tests PKC GڸPPbmaterialdjango/static/materialdjango/components/bower_components/paper-badge/demo/test-button.html PKC Gt\materialdjango/static/materialdjango/components/bower_components/paper-badge/demo/index.html paper-badge demo

    Badges can be applied to specific elements

    Badges can be applied to direct siblings

    Badges can be customized using custom properties

    PKسRHy _materialdjango/static/materialdjango/components/bower_components/paper-checkbox/CONTRIBUTING.md # Polymer Elements ## Guide for Contributors Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: ### Filing Issues **If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: 1. **Who will use the feature?** _“As someone filling out a form…”_ 2. **When will they use the feature?** _“When I enter an invalid value…”_ 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ **If you are filing an issue to report a bug**, please provide: 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: ```markdown The `paper-foo` element causes the page to turn pink when clicked. ## Expected outcome The page stays the same color. ## Actual outcome The page turns pink. ## Steps to reproduce 1. Put a `paper-foo` element in the page. 2. Open the page in a web browser. 3. Click the `paper-foo` element. ``` 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. ### Submitting Pull Requests **Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. When submitting pull requests, please provide: 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: ```markdown (For a single issue) Fixes #20 (For multiple issues) Fixes #32, fixes #40 ``` 2. **A succinct description of the design** used to fix any related issues. For example: ```markdown This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. ``` 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! PK[HCee[materialdjango/static/materialdjango/components/bower_components/paper-checkbox/.bower.json{ "name": "paper-checkbox", "version": "1.1.3", "description": "A material design checkbox", "authors": [ "The Polymer Authors" ], "keywords": [ "web-components", "polymer", "paper", "checkbox", "control" ], "private": true, "repository": { "type": "git", "url": "git://github.com/PolymerElements/paper-checkbox" }, "license": "http://polymer.github.io/LICENSE.txt", "homepage": "https://github.com/PolymerElements/paper-checkbox", "ignore": [], "dependencies": { "polymer": "Polymer/polymer#^1.1.0", "iron-checked-element-behavior": "PolymerElements/iron-checked-element-behavior#^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.1.0" }, "devDependencies": { "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", "web-component-tester": "^4.0.0", "test-fixture": "PolymerElements/test-fixture#^1.0.0", "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0" }, "main": "paper-checkbox.html", "_release": "1.1.3", "_resolution": { "type": "version", "tag": "v1.1.3", "commit": "b2698fd0d34153e89369f116f306bc8e8203a460" }, "_source": "git://github.com/PolymerElements/paper-checkbox.git", "_target": "^1.0.0", "_originalSource": "PolymerElements/paper-checkbox" }PKسRHZmaterialdjango/static/materialdjango/components/bower_components/paper-checkbox/index.html paper-checkbox PKYG==bmaterialdjango/static/materialdjango/components/bower_components/paper-checkbox/paper-checkbox.css/** @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: inline-block; white-space: nowrap; } :host(:focus) { outline: none; } .hidden { display: none; } #checkboxContainer { display: inline-block; position: relative; width: 18px; height: 18px; cursor: pointer; -webkit-transform: translateZ(0); transform: translateZ(0); vertical-align: middle; background-color: var(--paper-checkbox-unchecked-background-color, transparent); } :host #ink { position: absolute; top: -15px; left: -15px; width: 48px; height: 48px; color: var(--paper-checkbox-unchecked-ink-color, --primary-text-color); opacity: 0.6; pointer-events: none; } :host #ink[checked] { color: var(--paper-checkbox-checked-ink-color, --default-primary-color); } :host #checkbox { position: relative; box-sizing: border-box; height: 100%; border: solid 2px; border-color: var(--paper-checkbox-unchecked-color, --primary-text-color); border-radius: 2px; pointer-events: none; -webkit-transition: background-color 140ms, border-color 140ms; transition: background-color 140ms, border-color 140ms; } /* checkbox checked animations */ #checkbox.checked #checkmark { -webkit-animation: checkmark-expand 140ms ease-out forwards; animation: checkmark-expand 140ms ease-out forwards; } @-webkit-keyframes checkmark-expand { 0% { top: 9px; left: 6px; width: 0px; height: 0px; } 100% { top: -1px; left: 4px; width: 5px; height: 10px; } } @keyframes checkmark-expand { 0% { top: 9px; left: 6px; width: 0px; height: 0px; } 100% { top: -1px; left: 4px; width: 5px; height: 10px; } } :host #checkbox.checked { background-color: var(--paper-checkbox-checked-color, --default-primary-color); border-color: var(--paper-checkbox-checked-color, --default-primary-color); } :host #checkmark { -webkit-transform: rotate(45deg); transform: rotate(45deg); position: absolute; top: -1px; left: 4px; width: 5px; height: 10px; border-style: solid; border-top: none; border-left: none; border-right-width: 2px; border-bottom-width: 2px; border-color: var(--paper-checkbox-checkmark-color, white); } /* label */ #checkboxLabel { position: relative; display: inline-block; vertical-align: middle; padding-left: 8px; white-space: normal; pointer-events: none; color: var(--paper-checkbox-label-color, --primary-text-color); } #checkboxLabel[hidden] { display: none; } /* disabled state */ :host([disabled]) { pointer-events: none; } :host([disabled]) #checkbox { opacity: 0.5; border-color: var(--paper-checkbox-unchecked-color, --primary-text-color); } :host([disabled][checked]) #checkbox { background-color: var(--paper-checkbox-unchecked-color, --primary-text-color); opacity: 0.5; } :host([disabled]) #checkboxLabel { opacity: 0.65; } /* invalid state */ #checkbox.invalid:not(.checked) { border-color: var(--paper-checkbox-error-color, --google-red-500); } PKسRHb>]materialdjango/static/materialdjango/components/bower_components/paper-checkbox/metadata.html PKسRHQ}""cmaterialdjango/static/materialdjango/components/bower_components/paper-checkbox/paper-checkbox.html PKسRHhGG[materialdjango/static/materialdjango/components/bower_components/paper-checkbox/.travis.ymllanguage: node_js sudo: false before_script: - npm install -g bower polylint web-component-tester - bower install - polylint env: global: - secure: PkxMaBcKe8HD1Jv8O6qiyQ4Nux6DfaVyN/ss9opajX9Oqa2ECJRI/OCsjDSrgXKhuAc2dw0L/KwSb/j4hg3/9BzHlJYQmeR9b9+MsO377TseNw5aKlywgVRu2bj8ODv2naQ4pB4B/Us/n9K7J0vlHIwM8UAJJwGjYm2oYTQxCAw= - secure: WQNRMEQEm6k5e+rzN08Lg0IBC83AZLz1QLP89z59JHLrAOeBu7CBh/LFG0OkhUnTC+dG2JdfIZbdQVCEciDyONjSIKzmM4ze9/LrGzFpROE8bU0ylYSLqX+3CK/6i7VMR3pJo79e1KOeprppHiJSRLVBJfhG+5uNgwAXws/sLQ4= - CXX=g++-4.8 node_js: stable addons: firefox: latest apt: sources: - google-chrome - ubuntu-toolchain-r-test packages: - google-chrome-stable - g++-4.8 sauce_connect: true script: - xvfb-run wct - "if [ \"${TRAVIS_PULL_REQUEST}\" = \"false\" ]; then wct -s 'default'; fi" PKسRH Ymaterialdjango/static/materialdjango/components/bower_components/paper-checkbox/README.md [![Build status](https://travis-ci.org/PolymerElements/paper-checkbox.svg?branch=master)](https://travis-ci.org/PolymerElements/paper-checkbox) _[Demo and API docs](https://elements.polymer-project.org/elements/paper-checkbox)_ ##<paper-checkbox> Material design: [Checkbox](https://www.google.com/design/spec/components/selection-controls.html#selection-controls-checkbox) `paper-checkbox` is a button that can be either checked or unchecked. User can tap the checkbox to check or uncheck it. Usually you use checkboxes to allow user to select multiple options from a set. If you have a single ON/OFF option, avoid using a single checkbox and use `paper-toggle-button` instead. Example: ```html label label ``` ### Styling The following custom properties and mixins are available for styling: | Custom property | Description | Default | | --- | --- | --- | | `--paper-checkbox-unchecked-background-color` | Checkbox background color when the input is not checked | `transparent` | | `--paper-checkbox-unchecked-color` | Checkbox border color when the input is not checked | `--primary-text-color` | | `--paper-checkbox-unchecked-ink-color` | Selected/focus ripple color when the input is not checked | `--primary-text-color` | | `--paper-checkbox-checked-color` | Checkbox color when the input is checked | `--primary-color` | | `--paper-checkbox-checked-ink-color` | Selected/focus ripple color when the input is checked | `--primary-color` | | `--paper-checkbox-checkmark-color` | Checkmark color | `white` | | `--paper-checkbox-label-color` | Label color | `--primary-text-color` | | `--paper-checkbox-label-spacing` | Spacing between the label and the checkbox | `8px` | | `--paper-checkbox-error-color` | Checkbox color when invalid | `--error-color` | | `--paper-checkbox-size` | Size of the checkbox | `18px` | This element applies the mixin `--paper-font-common-base` but does not import `paper-styles/typography.html`. In order to apply the `Roboto` font to this element, make sure you've imported `paper-styles/typography.html`. PKسRHKBZmaterialdjango/static/materialdjango/components/bower_components/paper-checkbox/.gitignorebower_components PKسRH|P@@Zmaterialdjango/static/materialdjango/components/bower_components/paper-checkbox/bower.json{ "name": "paper-checkbox", "version": "1.1.3", "description": "A material design checkbox", "authors": [ "The Polymer Authors" ], "keywords": [ "web-components", "polymer", "paper", "checkbox", "control" ], "private": true, "repository": { "type": "git", "url": "git://github.com/PolymerElements/paper-checkbox" }, "license": "http://polymer.github.io/LICENSE.txt", "homepage": "https://github.com/PolymerElements/paper-checkbox", "ignore": [], "dependencies": { "polymer": "Polymer/polymer#^1.1.0", "iron-checked-element-behavior": "PolymerElements/iron-checked-element-behavior#^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.1.0" }, "devDependencies": { "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", "web-component-tester": "^4.0.0", "test-fixture": "PolymerElements/test-fixture#^1.0.0", "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0" }, "main": "paper-checkbox.html" } PKسRH_materialdjango/static/materialdjango/components/bower_components/paper-checkbox/test/index.html paper-checkbox tests PKسRHL_materialdjango/static/materialdjango/components/bower_components/paper-checkbox/test/basic.html paper-checkbox basic tests PKسRHAK _materialdjango/static/materialdjango/components/bower_components/paper-checkbox/demo/index.html paper-checkbox demo

    Checkboxes can be checked or unchecked, or disabled entirely

    Checkboxes can hide the ripple effect using the noink attribute

    Checkboxes can be styled using custom properties

    PK XHy Zmaterialdjango/static/materialdjango/components/bower_components/iron-form/CONTRIBUTING.md # Polymer Elements ## Guide for Contributors Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: ### Filing Issues **If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: 1. **Who will use the feature?** _“As someone filling out a form…”_ 2. **When will they use the feature?** _“When I enter an invalid value…”_ 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ **If you are filing an issue to report a bug**, please provide: 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: ```markdown The `paper-foo` element causes the page to turn pink when clicked. ## Expected outcome The page stays the same color. ## Actual outcome The page turns pink. ## Steps to reproduce 1. Put a `paper-foo` element in the page. 2. Open the page in a web browser. 3. Click the `paper-foo` element. ``` 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. ### Submitting Pull Requests **Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. When submitting pull requests, please provide: 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: ```markdown (For a single issue) Fixes #20 (For multiple issues) Fixes #32, fixes #40 ``` 2. **A succinct description of the design** used to fix any related issues. For example: ```markdown This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. ``` 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! PK[HseeVmaterialdjango/static/materialdjango/components/bower_components/iron-form/.bower.json{ "name": "iron-form", "version": "1.0.15", "description": "Makes it easier to manage forms", "keywords": [ "web-components", "polymer", "form" ], "authors": [ "The Polymer Authors" ], "main": "iron-form.html", "private": true, "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-form.git" }, "license": "http://polymer.github.io/LICENSE.txt", "homepage": "https://github.com/PolymerElements/iron-form", "ignore": [], "dependencies": { "polymer": "Polymer/polymer#^1.0.0", "iron-ajax": "PolymerElements/iron-ajax#^1.0.0" }, "devDependencies": { "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", "iron-form-element-behavior": "PolymerElements/iron-form-element-behavior#^1.0.0", "test-fixture": "PolymerElements/test-fixture#^1.0.0", "web-component-tester": "^4.0.0", "webcomponentsjs": "^0.7.0", "paper-input": "PolymerElements/paper-input#^1.0.0", "paper-checkbox": "PolymerElements/paper-checkbox#^1.0.0", "paper-button": "PolymerElements/paper-button#^1.0.0", "paper-dropdown-menu": "PolymerElements/paper-dropdown-menu#^1.0.0", "paper-menu": "PolymerElements/paper-menu#^1.0.0", "paper-item": "PolymerElements/paper-item#^1.0.0", "paper-styles": "PolymerElements/paper-styles#^1.0.0" }, "_release": "1.0.15", "_resolution": { "type": "version", "tag": "v1.0.15", "commit": "a1754f1fe3d9683a888bd0019ab56cd1f68fff00" }, "_source": "git://github.com/PolymerElements/iron-form.git", "_target": "^1.0.0", "_originalSource": "PolymerElements/iron-form" }PK XH{Umaterialdjango/static/materialdjango/components/bower_components/iron-form/index.html iron-form PK XH{;g>>Ymaterialdjango/static/materialdjango/components/bower_components/iron-form/iron-form.html PK XHDVmaterialdjango/static/materialdjango/components/bower_components/iron-form/.travis.ymllanguage: node_js sudo: false before_script: - npm install web-component-tester - npm install bower - 'export PATH=$PWD/node_modules/.bin:$PATH' - bower install env: global: - secure: GfBS9eeWPVXlZhdhoNESQTC/lhO/QS6enuZLY9f6i4NcoMfq8buT16XcvZbj3Epm59Wf4s33hT2/OzMIGK35ymPlwFY5cEYE+xJ8+rvG3gMt+S85puu7J+xTwNb0G2rIT4t09dD1N68J1auJJ/G8t6wNIUZNGLY7dZN6sZa1D7lfGNiwHFySlz77Vsl13JLE4z1qBNZ7MrazUepO5gHHkPtX45Kmd3LfVlTkv3OBWOe0whhJ0zVYNRMPj3MPoESNlP8FlD5NOhU47FkkuQ9wgilHzhYP3ZBtCJPvR5Sfrg1z9CvHHrsVR+w6q5zy89coVnmVB0aQeoeL7zE2SxUV5O1uxPzZmVsxXlnXXFTP4pYtI0GjblWvAl49TD3M+QLfLcJXx9rd4WFYxCkq6RLEcASd7GDZIgVaUaJpQECA3g2tckDY2LuX6OKzphx95ZOGn8zxt40phyCogAfQYm3S/tr6O8qYoVWqarIFnbbaOtYIjpTvpKTWdImLAg9DQK8b3bVwuTxuZkWmbZWnLIKtsmPETMExstJOwy8aZnCUHykwow86aSRmcAxjMzTcv6poY2h77AbhFVweMMhWmro6Ly+DY3qn1g/VyBevMSVD6qeqlYaoIVpJFuCTEva2kXIwPV27IRBxRWpm5h5vZS6q47mddywz8iZmIzaB4V8jej4= - secure: XAzhjAkZBuTJdHSq8Gw8IoUpu5ovhfC1cjyB+w8aKgxkTEhuoqShuAa83HYkF/8vf7pLyv/8bL8b4aa/FP2/dJbDh5aCrQ0fw8tVlan2/R0o3da74+PFmS2vgG8LdCobZK+SKiCqOb9mcDIF47Ab+CCC/pmZGZ0Cxa8TS6ZssgmdQFUmtvD0NE0zlvKpMBJiQWfO7QpKFx6zkF08KAOcRQbHDsqUQ1+WH5IWWm5ciBc2lX1yD7oFv/1hSEdxcMMFmGeVt5o2+2ZFGh40URtmXiOugyIbaBUaV8xRpUI9Vadt1254JLyANye5t7+NyaMxYyC/RvhMhRW3lfXnhf8GqSnTMpLMZXg3mmnI/b2+4jKbugnO/MfmnpgMP42WHueZOqz0NlTtaY4dsVQPzVk20cgs+Cx/ZKeKXzokJ88fcMHPeuRebFws4CXH4ZYGW4YusE50dD+KGynxY/AkL9HWGPNkOus1rsRdOGG0dafMjELVgRx5BCokKeRFpP/xRb+mIotHLfM419G0N4dZkEHp3EVMDIKAMSyD4Sp3YbciwCf8RBL8k9uzbyfK6nHtuZI1Ly28yojppTrm594563wZLPQkGP8WwbHGjF9Hen5HhxjELpRimJtGHFqmaHFrw7Y9NMGfdGOzzFvOkot7yeCR1YnEJTIJrl1ivD8lf05Am5w= node_js: 4 addons: firefox: latest apt: sources: - google-chrome packages: - google-chrome-stable script: - xvfb-run wct - "if [ \"${TRAVIS_PULL_REQUEST}\" = \"false\" ]; then wct -s 'default'; fi" PK XHg'W Tmaterialdjango/static/materialdjango/components/bower_components/iron-form/README.md [![Build status](https://travis-ci.org/PolymerElements/iron-form.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-form) _[Demo and API docs](https://elements.polymer-project.org/elements/iron-form)_ ##<iron-form> `` is an HTML `
    ` element that can validate and submit any custom elements that implement `Polymer.IronFormElementBehavior`, as well as any native HTML elements. For more information on which attributes are available on the native form element, see [https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form) It supports both `get` and `post` methods, and uses an `iron-ajax` element to submit the form data to the action URL. Example: ```html ...
    ``` By default, a native `

    Submitted form data

    PK XHPIcmaterialdjango/static/materialdjango/components/bower_components/iron-form/demo/simple-element.html PK紏Gts _materialdjango/static/materialdjango/components/bower_components/iron-a11y-keys/CONTRIBUTING.md # Polymer Elements ## Guide for Contributors Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: ### Filing Issues **If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: 1. **Who will use the feature?** _“As someone filling out a form…”_ 2. **When will they use the feature?** _“When I enter an invalid value…”_ 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ **If you are filing an issue to report a bug**, please provide: 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: ```markdown The `paper-foo` element causes the page to turn pink when clicked. ## Expected outcome The page stays the same color. ## Actual outcome The page turns pink. ## Steps to reproduce 1. Put a `paper-foo` element in the page. 2. Open the page in a web browser. 3. Click the `paper-foo` element. ``` 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [http://jsbin.com/cagaye](http://jsbin.com/cagaye/edit?html,output). 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. ### Submitting Pull Requests **Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. When submitting pull requests, please provide: 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues using the following syntax: ```markdown (For a single issue) Fixes #20 (For multiple issues) Fixes #32, #40 ``` 2. **A succinct description of the design** used to fix any related issues. For example: ```markdown This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. ``` 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! PKRG9n[materialdjango/static/materialdjango/components/bower_components/iron-a11y-keys/.bower.json{ "name": "iron-a11y-keys", "version": "1.0.4", "description": "A basic element implementation of iron-a11y-keys-behavior, matching the legacy core-a11y-keys.", "keywords": [ "web-components", "web-component", "polymer", "a11y", "input" ], "authors": [ "The Polymer Authors" ], "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-a11y-keys.git" }, "main": "iron-a11y-keys.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-component-page": "polymerelements/iron-component-page#^1.0.0", "test-fixture": "polymerelements/test-fixture#^1.0.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", "web-component-tester": "polymer/web-component-tester#^3.4.0", "iron-test-helpers": "polymerelements/iron-test-helpers#^1.0.0" }, "ignore": [], "homepage": "https://github.com/PolymerElements/iron-a11y-keys", "_release": "1.0.4", "_resolution": { "type": "version", "tag": "v1.0.4", "commit": "51a34396a392bcfb45592900973c35eceb11f0d7" }, "_source": "git://github.com/PolymerElements/iron-a11y-keys.git", "_target": "^1.0.0", "_originalSource": "PolymerElements/iron-a11y-keys" }PK紏GZmaterialdjango/static/materialdjango/components/bower_components/iron-a11y-keys/index.html iron-a11y-keys PK紏GYi?cmaterialdjango/static/materialdjango/components/bower_components/iron-a11y-keys/iron-a11y-keys.html PK紏G%[materialdjango/static/materialdjango/components/bower_components/iron-a11y-keys/.travis.ymllanguage: node_js sudo: false before_script: - npm install web-component-tester - npm install bower - 'export PATH=$PWD/node_modules/.bin:$PATH' - bower install env: global: - secure: GYOQylogyw3LQdQ+65plW6DKXBklQm4M72U6UuaEu+e12QB7DGcWPhrDko7c7uc3DNVHFWzOw4r4DUAgMZM/7+ifTW6ARnXcu/FWfhVqRRjEpgSenMFo+QRjM5VmCuIqVlXV+tz+PXhBd9M/4TYOs8Tu+caCrSAD0SfLXV+FEZjqno6xYiZvW9xpvMWRE+hlDjV1JWEb6drxR8yhykDdByRQ1F0xbR/QzQXQe6fvDWTjwV7XIketFhfl5cQWESWJPhKMOf6DmJsoZojTpD3kcNlRGiC72SSlk5WukKdP2Bkt0MADxw4VyqoGWwXaIJxy+/bQe3nwZKCTlv+xGVRZyyqTeeHBjB9UDABq9KpJVBydAvrCoXYK+avUGsPE835hdoojwU8hbAAVLPFCRGvyXZ8Yvqq+FHnf2kb6iGakJOt4KA6GzaloBpj9FlZIcha/Q6iDQJ/Ec9YFwMVzutLAWok47u+QNWXe8TW7PPXleGhUjZID5bUKjKnKleHdVW05x/mXpmt1FYUuK7fD7klUEEg5lNtHO4WBBtmuns4iVv6BGgjjLuElqqzC1Lx69i0Bmh8bL5WV9n04/xJ701J+WATqdrGH2DyR2DwgCMbfHiQzyIQhpySTzcaYW9v87ZjojqZ5VAHO99JLPJVRfrm/Lh6RzDHq7Vn7azUoOcEnybM= - secure: e+QHe/dcItz7qPotuYi2Pm1BlaEKIjTnUiUmB2KAu7nUzZD1sYwI29/XCX+cueDmlMibrWOnuZBrhG0/dyYU8oLDFu9F6E81K0jnNkhI4NXAPrwL58uEbsSKtf9FLYTWDRmik/vjarUEwdtx8kwCG6t9ynZLH1wiiLdJ/j+TGGRXxUePysIsAo/urEOEutnfsRR7E+tPE7hMbCZnHyJ9xYp/VbuXI7tvLoRrAfcIh19ZMCNKHlT2Gnl0jw5nlidNVm8zrMnl4ZTYa9mnqGvcZkVtZhAjcLPwUQ1xL/viXs0qj8u8hy135EpWoRcKJJviksMErIfBGreACsx+D5E3g5ZVrYdaFjx5f3MsjTpbyfC4/ZsqRFePkVLxS+hPZg9/HzwQI/v+YrTEpTWY5Xb/ZsMqCmAWNJGt1+c72dhLlRYb5Cb7UV6qqnYWNbgO12c3FZ9qPWnCteyFofqQt82OwU1osALBDGdKsmjiiWEzVxPoLe4C73dIiZdW84+6KZNECkN5zFBwKBzc7UuYFKWObQGc6KTSJccFXKaEqwmWXI/2qKTq8gvoXrRfZ4Bm8vFUuRxPgnl83CAMM7GE08+svHycPof1ZVEVNdo6cLw5dABqd2A1t2CCCJGTJyeL0w3wm4m8ZnK0HFY7z3TBIFUniD3UyDOWoF8gfo9R5evSoLM= node_js: 4 addons: firefox: '42.0' apt: sources: - google-chrome packages: - google-chrome-stable script: - xvfb-run wct - "if [ \"${TRAVIS_PULL_REQUEST}\" = \"false\" ]; then wct -s 'default'; fi" PK紏Grj!!Ymaterialdjango/static/materialdjango/components/bower_components/iron-a11y-keys/README.md [![Build Status](https://travis-ci.org/PolymerElements/iron-a11y-keys.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-a11y-keys) _[Demo and API Docs](https://elements.polymer-project.org/elements/iron-a11y-keys)_ ##<iron-a11y-keys> `iron-a11y-keys` provides a cross-browser interface for processing keyboard commands. The interface adheres to [WAI-ARIA best practices](http://www.w3.org/TR/wai-aria-practices/#kbd_general_binding). It uses an expressive syntax to filter key presses. ## Basic usage The sample code below is a portion of a custom element. The goal is to call the `onEnter` method whenever the `paper-input` element is in focus and the `Enter` key is pressed. The custom element declares an `iron-a11y-keys` element that is bound to a property called `target`. The `target` property needs to evaluate to the `paper-input` node. `iron-a11y-keys` registers an event handler for the target node using Polymer's [annotated event handler syntax](https://www.polymer-project.org/1.0/docs/devguide/events.html#annotated-listeners). `{{userInput::input}}` sets the `userInput` property to the user's input on each keystroke. The last step is to link the two elements within the custom element's registration. ... properties: { userInput: { type: String, notify: true, }, target: { type: Object, value: function() { return this.$.input; } }, }, onEnter: function() { console.log(this.userInput); } ... ## The `keys` attribute The `keys` attribute expresses what combination of keys triggers the event. The attribute accepts a space-separated, plus-sign-concatenated set of modifier keys and some common keyboard keys. The common keys are: `a-z`, `0-9` (top row and number pad), `*` (shift 8 and number pad), `F1-F12`, `Page Up`, `Page Down`, `Left Arrow`, `Right Arrow`, `Down Arrow`, `Up Arrow`, `Home`, `End`, `Escape`, `Space`, `Tab`, `Enter`. The modifier keys are: `Shift`, `Control`, `Alt`. All keys are expected to be lowercase and shortened. E.g. `Left Arrow` is `left`, `Page Down` is `pagedown`, `Control` is `ctrl`, `F1` is `f1`, `Escape` is `esc`, etc. ### Grammar Below is the [EBNF](http://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_Form) Grammar of the `keys` attribute. modifier = "shift" | "ctrl" | "alt"; ascii = ? /[a-z0-9]/ ? ; fnkey = ? f1 through f12 ? ; arrow = "up" | "down" | "left" | "right" ; key = "tab" | "esc" | "space" | "*" | "pageup" | "pagedown" | "home" | "end" | arrow | ascii | fnkey; keycombo = { modifier, "+" }, key ; keys = keycombo, { " ", keycombo } ; ### Example Given the following value for `keys`: `ctrl+shift+f7 up pagedown esc space alt+m` The event is fired if any of the following key combinations are fired: `Control` and `Shift` and `F7` keys, `Up Arrow` key, `Page Down` key, `Escape` key, `Space` key, `Alt` and `M` keys. ### WAI-ARIA Slider Example The following is an example of the set of keys that fulfills WAI-ARIA's "slider" role [best practices](http://www.w3.org/TR/wai-aria-practices/#slider): The `target` properties must evaluate to a node. See the basic usage example above. Each of the values for the `on-keys-pressed` attributes must evalute to methods. The `increment` method should move the slider a set amount toward the maximum value. `decrement` should move the slider a set amount toward the minimum value. `setMin` should move the slider to the minimum value. `setMax` should move the slider to the maximum value. PK紏GM Zmaterialdjango/static/materialdjango/components/bower_components/iron-a11y-keys/.gitignorebower_components PK紏GY@o`AAZmaterialdjango/static/materialdjango/components/bower_components/iron-a11y-keys/bower.json{ "name": "iron-a11y-keys", "version": "1.0.4", "description": "A basic element implementation of iron-a11y-keys-behavior, matching the legacy core-a11y-keys.", "keywords": [ "web-components", "web-component", "polymer", "a11y", "input" ], "authors": [ "The Polymer Authors" ], "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-a11y-keys.git" }, "main": "iron-a11y-keys.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-component-page": "polymerelements/iron-component-page#^1.0.0", "test-fixture": "polymerelements/test-fixture#^1.0.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", "web-component-tester": "polymer/web-component-tester#^3.4.0", "iron-test-helpers": "polymerelements/iron-test-helpers#^1.0.0" }, "ignore": [] } PK紏G0%%dmaterialdjango/static/materialdjango/components/bower_components/iron-a11y-keys/test/basic-test.html iron-a11y-keys PK紏G˕_materialdjango/static/materialdjango/components/bower_components/iron-a11y-keys/test/index.html Tests PK紏G;_materialdjango/static/materialdjango/components/bower_components/iron-a11y-keys/demo/index.html Iron A11y Keys demo
    PK紏G7 bbematerialdjango/static/materialdjango/components/bower_components/iron-a11y-keys/demo/x-key-aware.html PK"GڧennVmaterialdjango/static/materialdjango/components/bower_components/iron-icon/.bower.json{ "name": "iron-icon", "private": true, "version": "1.0.7", "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", "promise-polyfill": "polymerlabs/promise-polyfill#^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.7", "_resolution": { "type": "version", "tag": "v1.0.7", "commit": "6f4d152dc3998a6cc12a5a585a654f893dc99381" }, "_source": "git://github.com/PolymerElements/iron-icon.git", "_target": "^1.0.0", "_originalSource": "PolymerElements/iron-icon" }PKTG{Ymaterialdjango/static/materialdjango/components/bower_components/iron-icon/iron-icon.html PKTGÙV]SSUmaterialdjango/static/materialdjango/components/bower_components/iron-icon/index.html PKTGj9Smaterialdjango/static/materialdjango/components/bower_components/iron-icon/hero.svg PKTGTmaterialdjango/static/materialdjango/components/bower_components/iron-icon/README.mdiron-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. PKTGKBUmaterialdjango/static/materialdjango/components/bower_components/iron-icon/.gitignorebower_components PKTGPFeUmaterialdjango/static/materialdjango/components/bower_components/iron-icon/bower.json{ "name": "iron-icon", "private": true, "version": "1.0.7", "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", "promise-polyfill": "polymerlabs/promise-polyfill#^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" } } PKTG} ܟ^materialdjango/static/materialdjango/components/bower_components/iron-icon/test/iron-icon.html iron-icon PKTG*Zmaterialdjango/static/materialdjango/components/bower_components/iron-icon/test/index.html Tests PKTGS?OOZmaterialdjango/static/materialdjango/components/bower_components/iron-icon/demo/index.html 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">

    PKTG9A=66Zmaterialdjango/static/materialdjango/components/bower_components/iron-icon/demo/async.html iron-icon demo

    This demo is for an <iron-icon> with an asynchronously loaded iconset.

    Waiting to load iconset...

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

    PKTGw&,DD\materialdjango/static/materialdjango/components/bower_components/iron-icon/demo/location.pngPNG  IHDRw= IDATxc`P_u}ëT6]ëo;6JvoxbN_s[ ~ MP a+ Wulz߱0\߾{P:|j0{t|ھj*fb9 S?r,}rmv->nAďTMȆ;~zS.Y‚O;7~g|;]bE?Ҭ3gΰt) QcIENDB`PKK5Hts [materialdjango/static/materialdjango/components/bower_components/iron-label/CONTRIBUTING.md # Polymer Elements ## Guide for Contributors Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: ### Filing Issues **If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: 1. **Who will use the feature?** _“As someone filling out a form…”_ 2. **When will they use the feature?** _“When I enter an invalid value…”_ 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ **If you are filing an issue to report a bug**, please provide: 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: ```markdown The `paper-foo` element causes the page to turn pink when clicked. ## Expected outcome The page stays the same color. ## Actual outcome The page turns pink. ## Steps to reproduce 1. Put a `paper-foo` element in the page. 2. Open the page in a web browser. 3. Click the `paper-foo` element. ``` 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [http://jsbin.com/cagaye](http://jsbin.com/cagaye/edit?html,output). 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. ### Submitting Pull Requests **Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. When submitting pull requests, please provide: 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues using the following syntax: ```markdown (For a single issue) Fixes #20 (For multiple issues) Fixes #32, #40 ``` 2. **A succinct description of the design** used to fix any related issues. For example: ```markdown This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. ``` 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! PK?HLlWmaterialdjango/static/materialdjango/components/bower_components/iron-label/.bower.json{ "name": "iron-label", "version": "1.0.2", "description": "A version of the `