@emailmaker/emailmaker 1.0.28 → 1.0.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/asset-manifest.json +5 -5
- package/emailmaker-esm.js +1 -1
- package/emailmaker.js +1 -1
- package/iframe/{iframe-eblock.12c1738af7617d5b5ad1.html → iframe-eblock.b4c76a69e0e281db2c3f.html} +1 -1
- package/iframe/{iframe.12c1738af7617d5b5ad1.html → iframe.b4c76a69e0e281db2c3f.html} +1 -1
- package/iframe/js/cssbeautify.js +1 -1
- package/iframe/sandbox-eblock.js +1 -1
- package/iframe/sandbox.js +1 -1
- package/package.json +2 -2
- package/plugin.html +1 -1
- package/plugin_blocks_test.html +1 -1
- package/plugin_default.html +1 -1
- package/plugin_s.html +1 -1
- package/react/index.d.ts +2 -2
- package/react/index.jsx +2 -2
- package/static/js/{1792.96198a14.js → 1792.ed50a51e.js} +1 -1
- package/static/js/{1795.b8c6a5e2.js → 1795.e9cbb633.js} +1 -1
- package/static/js/{5571.afd3acb0.js → 5571.7c799e8b.js} +1 -1
- package/translations.pot +14 -14
- package/README_eng.md +0 -197
- package/iframe/429.js +0 -1
package/translations.pot
CHANGED
|
@@ -710,17 +710,17 @@ msgstr[1] ""
|
|
|
710
710
|
|
|
711
711
|
#: src/helpers/index.js:495
|
|
712
712
|
#: src/modules/components/Atoms/Atoms.jsx:223
|
|
713
|
-
#: src/modules/components/ImageLoaderModal/ImageLoaderModal.jsx:
|
|
713
|
+
#: src/modules/components/ImageLoaderModal/ImageLoaderModal.jsx:334
|
|
714
714
|
msgid "Coming soon"
|
|
715
715
|
msgstr ""
|
|
716
716
|
|
|
717
717
|
#: src/helpers/index.js:496
|
|
718
|
-
#: src/modules/components/ImageLoaderModal/ImageLoaderModal.jsx:
|
|
718
|
+
#: src/modules/components/ImageLoaderModal/ImageLoaderModal.jsx:335
|
|
719
719
|
msgid "The feature is under development."
|
|
720
720
|
msgstr ""
|
|
721
721
|
|
|
722
722
|
#: src/helpers/index.js:497
|
|
723
|
-
#: src/modules/components/ImageLoaderModal/ImageLoaderModal.jsx:
|
|
723
|
+
#: src/modules/components/ImageLoaderModal/ImageLoaderModal.jsx:336
|
|
724
724
|
msgid "Ok. I'll be waiting"
|
|
725
725
|
msgstr ""
|
|
726
726
|
|
|
@@ -2504,51 +2504,51 @@ msgstr ""
|
|
|
2504
2504
|
msgid "Search GIFs"
|
|
2505
2505
|
msgstr ""
|
|
2506
2506
|
|
|
2507
|
-
#: src/modules/components/ImageLoaderModal/ImageLoaderModal.jsx:
|
|
2507
|
+
#: src/modules/components/ImageLoaderModal/ImageLoaderModal.jsx:344
|
|
2508
2508
|
msgid "To preview and edit the uploaded image"
|
|
2509
2509
|
msgstr ""
|
|
2510
2510
|
|
|
2511
|
-
#: src/modules/components/ImageLoaderModal/ImageLoaderModal.jsx:
|
|
2511
|
+
#: src/modules/components/ImageLoaderModal/ImageLoaderModal.jsx:345
|
|
2512
2512
|
msgid "Upload Image"
|
|
2513
2513
|
msgstr ""
|
|
2514
2514
|
|
|
2515
|
-
#: src/modules/components/ImageLoaderModal/ImageLoaderModal.jsx:
|
|
2515
|
+
#: src/modules/components/ImageLoaderModal/ImageLoaderModal.jsx:475
|
|
2516
2516
|
msgid "The image was successfully uploaded."
|
|
2517
2517
|
msgstr ""
|
|
2518
2518
|
|
|
2519
|
-
#: src/modules/components/ImageLoaderModal/ImageLoaderModal.jsx:
|
|
2519
|
+
#: src/modules/components/ImageLoaderModal/ImageLoaderModal.jsx:614
|
|
2520
2520
|
#: src/modules/components/UploadBgImage/UploadBgImage.jsx:215
|
|
2521
2521
|
msgid "Upload"
|
|
2522
2522
|
msgstr ""
|
|
2523
2523
|
|
|
2524
|
-
#: src/modules/components/ImageLoaderModal/ImageLoaderModal.jsx:
|
|
2524
|
+
#: src/modules/components/ImageLoaderModal/ImageLoaderModal.jsx:630
|
|
2525
2525
|
msgid "Click to select, paste from the clipboard, or drag and drop"
|
|
2526
2526
|
msgstr ""
|
|
2527
2527
|
|
|
2528
|
-
#: src/modules/components/ImageLoaderModal/ImageLoaderModal.jsx:
|
|
2528
|
+
#: src/modules/components/ImageLoaderModal/ImageLoaderModal.jsx:634
|
|
2529
2529
|
msgid "Accepted formats: PNG, JPG, WEBP, SVG or GIF."
|
|
2530
2530
|
msgstr ""
|
|
2531
2531
|
|
|
2532
|
-
#: src/modules/components/ImageLoaderModal/ImageLoaderModal.jsx:
|
|
2532
|
+
#: src/modules/components/ImageLoaderModal/ImageLoaderModal.jsx:644
|
|
2533
2533
|
msgid "Paste image URL here"
|
|
2534
2534
|
msgstr ""
|
|
2535
2535
|
|
|
2536
|
-
#: src/modules/components/ImageLoaderModal/ImageLoaderModal.jsx:
|
|
2536
|
+
#: src/modules/components/ImageLoaderModal/ImageLoaderModal.jsx:658
|
|
2537
2537
|
#: src/modules/components/UploadBgImage/UploadBgImage.jsx:91
|
|
2538
2538
|
msgid "Stock"
|
|
2539
2539
|
msgstr ""
|
|
2540
2540
|
|
|
2541
|
-
#: src/modules/components/ImageLoaderModal/ImageLoaderModal.jsx:
|
|
2541
|
+
#: src/modules/components/ImageLoaderModal/ImageLoaderModal.jsx:681
|
|
2542
2542
|
#: src/modules/components/UploadBgImage/UploadBgImage.jsx:95
|
|
2543
2543
|
msgid "GIF"
|
|
2544
2544
|
msgstr ""
|
|
2545
2545
|
|
|
2546
|
-
#: src/modules/components/ImageLoaderModal/ImageLoaderModal.jsx:
|
|
2546
|
+
#: src/modules/components/ImageLoaderModal/ImageLoaderModal.jsx:704
|
|
2547
2547
|
#: src/modules/components/UploadBgImage/UploadBgImage.jsx:99
|
|
2548
2548
|
msgid "AI"
|
|
2549
2549
|
msgstr ""
|
|
2550
2550
|
|
|
2551
|
-
#: src/modules/components/ImageLoaderModal/ImageLoaderModal.jsx:
|
|
2551
|
+
#: src/modules/components/ImageLoaderModal/ImageLoaderModal.jsx:752
|
|
2552
2552
|
msgid "Image Center"
|
|
2553
2553
|
msgstr ""
|
|
2554
2554
|
|
package/README_eng.md
DELETED
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
> It is a Dev version of the Blocks email builder plugin.<br>The Prod version that will be released in the nearest future will have minor differences: it will not contain experimental features and the whole already existing feature set will be tested way more thoroughly before the releases.
|
|
2
|
-
|
|
3
|
-
# Installation
|
|
4
|
-
Run this code in the command prompt:
|
|
5
|
-
|
|
6
|
-
```cmd
|
|
7
|
-
$ npm i useblocks@1.0.28 -save
|
|
8
|
-
```
|
|
9
|
-
|
|
10
|
-
Add the Blocks plugin to your App config.
|
|
11
|
-
### For the Webpack module bundler
|
|
12
|
-
Package import:
|
|
13
|
-
```javascript
|
|
14
|
-
const useblocksPlugin = require('useblocks/webpack')
|
|
15
|
-
```
|
|
16
|
-
Defining the package in the app:
|
|
17
|
-
```javascript
|
|
18
|
-
module.exports = {
|
|
19
|
-
plugins: [
|
|
20
|
-
new UseblocksWebpackPlugin(),
|
|
21
|
-
]
|
|
22
|
-
}
|
|
23
|
-
```
|
|
24
|
-
### For the Vite module bundler
|
|
25
|
-
Package import:
|
|
26
|
-
```javascript
|
|
27
|
-
import useblocksPlugin from 'useblocks/vite'
|
|
28
|
-
```
|
|
29
|
-
Defining the package in the app:
|
|
30
|
-
```javascript
|
|
31
|
-
export default defineConfig({
|
|
32
|
-
plugins: [useblocksPlugin()],
|
|
33
|
-
})
|
|
34
|
-
```
|
|
35
|
-
# Initialization
|
|
36
|
-
Import the Blocks plugin into your component:
|
|
37
|
-
```javascript
|
|
38
|
-
import * as useblocks from "useblocks"
|
|
39
|
-
```
|
|
40
|
-
The Plugin configuration contains a parameter named `getAuthToken`. For authorization, you must pass the application's OAuth token to its value. For debugging purposes, the dev version of the plugin supports a mechanism for obtaining a token from the front of the application. To use this mechanism you need first to define auth-proxy in AppConfig:
|
|
41
|
-
|
|
42
|
-
### Fetching the OAuth token on the backend
|
|
43
|
-
```javascript
|
|
44
|
-
curl --location 'https://api.useblocks.io/oauth/token' \
|
|
45
|
-
--header 'Content-Type: application/x-www-form-urlencoded' \
|
|
46
|
-
--data-urlencode 'client_id=*******' \
|
|
47
|
-
--data-urlencode 'client_secret=*******' \
|
|
48
|
-
--data-urlencode 'grant_type=client_credentials'
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
### Creating the Blocks plugin entity
|
|
52
|
-
```javascript
|
|
53
|
-
useblocks.init({
|
|
54
|
-
getAuthToken: getAuthToken,
|
|
55
|
-
element: "#test",
|
|
56
|
-
content: {
|
|
57
|
-
title: "Email subject",
|
|
58
|
-
html: "EMAIL_CODE",
|
|
59
|
-
},
|
|
60
|
-
config: { }
|
|
61
|
-
}).then(instance => { })
|
|
62
|
-
```
|
|
63
|
-
You can get the EMAIL_CODE from <a href="https://cdn.useblocks.io/plugin/new-email.html" target="_blank">our example</a> or paste the HTML code of your own email
|
|
64
|
-
|
|
65
|
-
# Configuration
|
|
66
|
-
Plugin configuration is JSON with several nesting levels. In the config you can set the appearance, content, and the logic the plugin will work with.
|
|
67
|
-
|
|
68
|
-
### Element
|
|
69
|
-
You can send the `element` line into the plugin configuration. It is a DOM element selector and you need to initiate the plugin inside of it. If the element is not defined, the app will run in the background mode.
|
|
70
|
-
|
|
71
|
-
### Content
|
|
72
|
-
The `content` section contains parameters of an email that must be displayed in the editor. This is what can be sent to this parameter:
|
|
73
|
-
|
|
74
|
-
#### {string}
|
|
75
|
-
|
|
76
|
-
HTML code of an email.
|
|
77
|
-
|
|
78
|
-
#### {object} email options
|
|
79
|
-
```javascript
|
|
80
|
-
{
|
|
81
|
-
id?: string; // A unique ID of a project in your system.
|
|
82
|
-
html?: string; // HTML code of an email.
|
|
83
|
-
subject?: string; // Email subject line.
|
|
84
|
-
preheader?: string; // Email preheader.
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
#### {object} full description
|
|
90
|
-
```javascript
|
|
91
|
-
{
|
|
92
|
-
temlateId?: string; // Email template ID in Blocks.
|
|
93
|
-
email?: object; // email options.
|
|
94
|
-
blocks?: []; // Additional blocks.
|
|
95
|
-
comments?: []; // Comments in an email.
|
|
96
|
-
}
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
You can change the content at any moment after the initialization with the help of the `instance.show(content)` method.
|
|
100
|
-
|
|
101
|
-
### Config
|
|
102
|
-
This section is dedicated to setting the appearance and settings of the editor. You can change the configuration of this section after the initialization with the help of `useblocks.setConfig` or `useblocks.updateConfig`.
|
|
103
|
-
##### The list of parameters of the config section
|
|
104
|
-
| Parameter | Description | Default |
|
|
105
|
-
| ---------------------- | --------------------------------- | ------- |
|
|
106
|
-
| theme | Plugin theme: light, dark. | light |
|
|
107
|
-
| headerArrowBackVisible | Displaying the "Back" arrow. | true |
|
|
108
|
-
| headerTitleVisible | Displaying the "Title" field. | true |
|
|
109
|
-
| headerPreheaderVisible | Displaying the "Preheader" field. | true |
|
|
110
|
-
| pathEnabled | Bread crumbs | true |
|
|
111
|
-
| ... | ... | ... |
|
|
112
|
-
|
|
113
|
-
### Events
|
|
114
|
-
Events can be sent to configurations or added to them later while working with the instance of the plugin. All event subscribers can be asynchronous features.
|
|
115
|
-
|
|
116
|
-
#### Example
|
|
117
|
-
```javascript
|
|
118
|
-
useblocks.init({
|
|
119
|
-
....,
|
|
120
|
-
// Subscription to events in the initialization.
|
|
121
|
-
handleReadEmail: (e) => {},
|
|
122
|
-
handleSaveEmail: async (e) => {}
|
|
123
|
-
}).then((instance) => {
|
|
124
|
-
// Subscription to events after the initialization.
|
|
125
|
-
const dispose = instance.handleReadEmail(e => {});
|
|
126
|
-
const dispose = instance.handleSaveEmail(async (e) => {});
|
|
127
|
-
});
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
By sending the asynchronous feature you can implement the asynchronous data load.
|
|
131
|
-
#### Example
|
|
132
|
-
```javascript
|
|
133
|
-
useblocks.init({
|
|
134
|
-
element: "#test",
|
|
135
|
-
content: {
|
|
136
|
-
id: "1"
|
|
137
|
-
}
|
|
138
|
-
handleReadEmail: async (id) => {
|
|
139
|
-
return await fetchData(id); // Your data fetch feature.
|
|
140
|
-
}
|
|
141
|
-
}).then((instance) => {
|
|
142
|
-
setTimeout(() => instance.show({ id: "2" }), 1000)
|
|
143
|
-
});
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
### Events
|
|
149
|
-
| Name | Description |
|
|
150
|
-
| ------------------------- | -------------------------------------------- |
|
|
151
|
-
| handleReadEmail | read email handler |
|
|
152
|
-
| handleSaveEmail | fires when email saved |
|
|
153
|
-
| handleReadEmailAutoSaves | read autosaves handler |
|
|
154
|
-
| handleEmailAutosave | fires when email autosave |
|
|
155
|
-
| handleRemoveEmailAutoSave | fires when email autosave delete |
|
|
156
|
-
| handleReadBlocks | read blocks handler |
|
|
157
|
-
| handleSaveBlock | fires when block save |
|
|
158
|
-
| handleRemoveBlock | fires when block delete |
|
|
159
|
-
| handleReadComments | read comments handler |
|
|
160
|
-
| handleSaveComment | fires when comment save |
|
|
161
|
-
| handleRemoveComment | fires when comment delete |
|
|
162
|
-
| handleSaveButtonClick | fires when user clicked on 'save' button |
|
|
163
|
-
| handleNextButtonClick | fires when user clicked on 'next' button |
|
|
164
|
-
| handlePreviousButtonClick | fires when user clicked on 'previous' button |
|
|
165
|
-
| handleEmailInit | fires when email iframe inited |
|
|
166
|
-
| handleEmailChanged | fires when email changed |
|
|
167
|
-
| handleHtmlChanged | fires when email Html changed |
|
|
168
|
-
| handleDestroy | fires when app destroyed |
|
|
169
|
-
| handleLoad | fires when app loaded |
|
|
170
|
-
| handleLoadImage | fires when image loading |
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
### Methods
|
|
175
|
-
| Method name | Description |
|
|
176
|
-
| ------------------------- | -------------------------------------------- |
|
|
177
|
-
| init | Initialization (async) |
|
|
178
|
-
| show | Altering the content after the initialization|
|
|
179
|
-
| destroy | Destruction of the instance of the plugin |
|
|
180
|
-
| reset | Resetting the whole configuration |
|
|
181
|
-
| getEmail | Getting the current email |
|
|
182
|
-
| getConfig | Getting the configuration |
|
|
183
|
-
| getBlocks | Getting the blocks from the project |
|
|
184
|
-
| getComments | Getting the commentaries for the email |
|
|
185
|
-
| getEmailRevisions | Getting the list of the email revisions |
|
|
186
|
-
| setConfig | Setting new config parameters |
|
|
187
|
-
| updateConfig | Updating config parameters |
|
|
188
|
-
| notify | Notifications display |
|
|
189
|
-
| getElement | Getting an element of initialization |
|
|
190
|
-
| save | Saving an email |
|
|
191
|
-
| compileEmail | Get compiled email |
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
### Keywords
|
|
197
|
-
none
|
package/iframe/429.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
'use strict';var a11_0x223daf=a11_0x1320;function a11_0x30e0(){var _0x3e3e65=['567JqZmJc','1844094JKFQeu','webpackChunk','exports','4326336pSFRBG','5755435aUriod','580366mSzAAg','parse','{\x22tags\x22:[{\x22name\x22:\x22HTML\x22,\x22selector\x22:\x22html\x22,\x22required\x22:true,\x22requiredParent\x22:\x22$ROOT\x22,\x22attrs\x22:[{\x22name\x22:\x22⚡4email\x22,\x22value\x22:[\x22\x22],\x22required\x22:true},{\x22name\x22:\x22data-css-strict\x22,\x22value\x22:[\x22\x22],\x22required\x22:true}],\x22unique\x22:true},{\x22name\x22:\x22HEAD\x22,\x22selector\x22:\x22head\x22,\x22required\x22:true,\x22requiredParent\x22:\x22HTML\x22,\x22attrs\x22:[],\x22unique\x22:true},{\x22name\x22:\x22TITLE\x22,\x22selector\x22:\x22title\x22,\x22attrs\x22:[{\x22name\x22:\x22[text]\x22}]},{\x22name\x22:\x22META\x22,\x22selector\x22:\x22meta[charset=\x27utf-8\x27]\x22,\x22required\x22:true,\x22requiredParent\x22:\x22HEAD\x22,\x22attrs\x22:[{\x22name\x22:\x22charset\x22,\x22value\x22:[\x22utf-8\x22],\x22required\x22:true}],\x22unique\x22:true},{\x22name\x22:\x22META\x22,\x22selector\x22:\x22meta[name=\x27\x27]\x20[content=\x27\x27]\x22,\x22attrs\x22:[{\x22name\x22:\x22content\x22},{\x22name\x22:\x22itemprop\x22},{\x22name\x22:\x22name\x22,\x22disallowedValueRegex\x22:\x22(^|\x5c\x5cs)(amp-.*|amp4ads-.*|apple-itunes-app|content-disposition|revisit-after|viewport)(\x5c\x5cs|$)\x22},{\x22name\x22:\x22media\x22},{\x22name\x22:\x22property\x22},{\x22name\x22:\x22scheme\x22}]},{\x22name\x22:\x22BODY\x22,\x22selector\x22:\x22body\x22,\x22required\x22:true,\x22requiredParent\x22:\x22HTML\x22,\x22attrs\x22:[],\x22unique\x22:true},{\x22name\x22:\x22ARTICLE\x22,\x22selector\x22:\x22article\x22,\x22attrs\x22:[]},{\x22name\x22:\x22SECTION\x22,\x22selector\x22:\x22section\x22,\x22attrs\x22:[]},{\x22name\x22:\x22NAV\x22,\x22selector\x22:\x22nav\x22,\x22attrs\x22:[]},{\x22name\x22:\x22ASIDE\x22,\x22selector\x22:\x22aside\x22,\x22attrs\x22:[]},{\x22name\x22:\x22H1\x22,\x22selector\x22:\x22h1\x22,\x22attrs\x22:[{\x22name\x22:\x22align\x22}]},{\x22name\x22:\x22H2\x22,\x22selector\x22:\x22h2\x22,\x22attrs\x22:[{\x22name\x22:\x22align\x22}]},{\x22name\x22:\x22H3\x22,\x22selector\x22:\x22h3\x22,\x22attrs\x22:[{\x22name\x22:\x22align\x22}]},{\x22name\x22:\x22H4\x22,\x22selector\x22:\x22h4\x22,\x22attrs\x22:[{\x22name\x22:\x22align\x22}]},{\x22name\x22:\x22H5\x22,\x22selector\x22:\x22h5\x22,\x22attrs\x22:[{\x22name\x22:\x22align\x22}]},{\x22name\x22:\x22H6\x22,\x22selector\x22:\x22h6\x22,\x22attrs\x22:[{\x22name\x22:\x22align\x22}]},{\x22name\x22:\x22HEADER\x22,\x22selector\x22:\x22header\x22,\x22attrs\x22:[]},{\x22name\x22:\x22FOOTER\x22,\x22selector\x22:\x22footer\x22,\x22attrs\x22:[]},{\x22name\x22:\x22ADDRESS\x22,\x22selector\x22:\x22address\x22,\x22attrs\x22:[]},{\x22name\x22:\x22P\x22,\x22selector\x22:\x22p\x22,\x22attrs\x22:[{\x22name\x22:\x22align\x22}]},{\x22name\x22:\x22HR\x22,\x22selector\x22:\x22hr\x22,\x22attrs\x22:[]},{\x22name\x22:\x22PRE\x22,\x22selector\x22:\x22pre\x22,\x22attrs\x22:[]},{\x22name\x22:\x22BLOCKQUOTE\x22,\x22selector\x22:\x22blockquote\x22,\x22attrs\x22:[{\x22name\x22:\x22align\x22}],\x22attrLists\x22:[\x22cite-attr\x22]},{\x22name\x22:\x22OL\x22,\x22selector\x22:\x22ol\x22,\x22attrs\x22:[{\x22name\x22:\x22reversed\x22,\x22value\x22:[\x22\x22]},{\x22name\x22:\x22start\x22,\x22valueRegex\x22:\x22[0-9]*\x22},{\x22name\x22:\x22type\x22,\x22valueRegex\x22:\x22[1AaIi]\x22}]},{\x22name\x22:\x22UL\x22,\x22selector\x22:\x22ul\x22,\x22attrs\x22:[]},{\x22name\x22:\x22LI\x22,\x22selector\x22:\x22li\x22,\x22attrs\x22:[{\x22name\x22:\x22value\x22,\x22valueRegex\x22:\x22[0-9]*\x22}]},{\x22name\x22:\x22DL\x22,\x22selector\x22:\x22dl\x22,\x22attrs\x22:[]},{\x22name\x22:\x22DT\x22,\x22selector\x22:\x22dt\x22,\x22attrs\x22:[]},{\x22name\x22:\x22DD\x22,\x22selector\x22:\x22dd\x22,\x22attrs\x22:[]},{\x22name\x22:\x22FIGURE\x22,\x22selector\x22:\x22figure\x22,\x22attrs\x22:[]},{\x22name\x22:\x22FIGCAPTION\x22,\x22selector\x22:\x22figcaption\x22,\x22attrs\x22:[]},{\x22name\x22:\x22DIV\x22,\x22selector\x22:\x22div\x22,\x22attrs\x22:[{\x22name\x22:\x22align\x22}]},{\x22name\x22:\x22MAIN\x22,\x22selector\x22:\x22main\x22,\x22attrs\x22:[]},{\x22name\x22:\x22A\x22,\x22selector\x22:\x22a\x22,\x22attrs\x22:[{\x22name\x22:\x22border\x22},{\x22name\x22:\x22href\x22,\x22valueUrl\x22:{\x22protocol\x22:[\x22http\x22,\x22https\x22,\x22mailto\x22,\x22tel\x22],\x22allowRelative\x22:false},\x22disallowedValueRegex\x22:\x22__amp_source_origin|(.|\x5c\x5cs){{|}}(.|\x5c\x5cs)|^{{.*[^}][^}]$|^[^{][^{].*}}$|^}}|{{$|{{#|{{/|{{\x5c\x5c^\x22},{\x22name\x22:\x22hreflang\x22},{\x22name\x22:\x22media\x22},{\x22name\x22:\x22role\x22},{\x22name\x22:\x22tabindex\x22},{\x22name\x22:\x22target\x22,\x22value\x22:[\x22_blank\x22]},{\x22name\x22:\x22type\x22,\x22value\x22:[\x22text/html\x22]}]},{\x22name\x22:\x22EM\x22,\x22selector\x22:\x22em\x22,\x22attrs\x22:[]},{\x22name\x22:\x22STRONG\x22,\x22selector\x22:\x22strong\x22,\x22attrs\x22:[]},{\x22name\x22:\x22SMALL\x22,\x22selector\x22:\x22small\x22,\x22attrs\x22:[]},{\x22name\x22:\x22S\x22,\x22selector\x22:\x22s\x22,\x22attrs\x22:[]},{\x22name\x22:\x22CITE\x22,\x22selector\x22:\x22cite\x22,\x22attrs\x22:[]},{\x22name\x22:\x22Q\x22,\x22selector\x22:\x22q\x22,\x22attrs\x22:[],\x22attrLists\x22:[\x22cite-attr\x22]},{\x22name\x22:\x22DFN\x22,\x22selector\x22:\x22dfn\x22,\x22attrs\x22:[]},{\x22name\x22:\x22ABBR\x22,\x22selector\x22:\x22abbr\x22,\x22attrs\x22:[]},{\x22name\x22:\x22DATA\x22,\x22selector\x22:\x22data\x22,\x22attrs\x22:[]},{\x22name\x22:\x22TIME\x22,\x22selector\x22:\x22time\x22,\x22attrs\x22:[{\x22name\x22:\x22datetime\x22},{\x22name\x22:\x22pubdate\x22,\x22value\x22:[\x22\x22]}]},{\x22name\x22:\x22CODE\x22,\x22selector\x22:\x22code\x22,\x22attrs\x22:[]},{\x22name\x22:\x22VAR\x22,\x22selector\x22:\x22var\x22,\x22attrs\x22:[]},{\x22name\x22:\x22SAMP\x22,\x22selector\x22:\x22samp\x22,\x22attrs\x22:[]},{\x22name\x22:\x22KBD\x22,\x22selector\x22:\x22kbd\x22,\x22attrs\x22:[]},{\x22name\x22:\x22SUB\x22,\x22selector\x22:\x22sub\x22,\x22attrs\x22:[]},{\x22name\x22:\x22SUP\x22,\x22selector\x22:\x22sup\x22,\x22attrs\x22:[]},{\x22name\x22:\x22I\x22,\x22selector\x22:\x22i\x22,\x22attrs\x22:[]},{\x22name\x22:\x22B\x22,\x22selector\x22:\x22b\x22,\x22attrs\x22:[]},{\x22name\x22:\x22U\x22,\x22selector\x22:\x22u\x22,\x22attrs\x22:[]},{\x22name\x22:\x22MARK\x22,\x22selector\x22:\x22mark\x22,\x22attrs\x22:[]},{\x22name\x22:\x22RUBY\x22,\x22selector\x22:\x22ruby\x22,\x22attrs\x22:[]},{\x22name\x22:\x22RB\x22,\x22selector\x22:\x22rb\x22,\x22attrs\x22:[]},{\x22name\x22:\x22RT\x22,\x22selector\x22:\x22rt\x22,\x22attrs\x22:[]},{\x22name\x22:\x22RP\x22,\x22selector\x22:\x22rp\x22,\x22attrs\x22:[]},{\x22name\x22:\x22BDO\x22,\x22selector\x22:\x22bdo\x22,\x22attrs\x22:[{\x22name\x22:\x22dir\x22}]},{\x22name\x22:\x22SPAN\x22,\x22selector\x22:\x22span\x22,\x22attrs\x22:[]},{\x22name\x22:\x22BR\x22,\x22selector\x22:\x22br\x22,\x22attrs\x22:[]},{\x22name\x22:\x22WBR\x22,\x22selector\x22:\x22wbr\x22,\x22attrs\x22:[]},{\x22name\x22:\x22INS\x22,\x22selector\x22:\x22ins\x22,\x22attrs\x22:[{\x22name\x22:\x22datetime\x22}],\x22attrLists\x22:[\x22cite-attr\x22]},{\x22name\x22:\x22DEL\x22,\x22selector\x22:\x22del\x22,\x22attrs\x22:[{\x22name\x22:\x22datetime\x22}],\x22attrLists\x22:[\x22cite-attr\x22]},{\x22name\x22:\x22TABLE\x22,\x22selector\x22:\x22table\x22,\x22attrs\x22:[{\x22name\x22:\x22align\x22},{\x22name\x22:\x22bgcolor\x22},{\x22name\x22:\x22border\x22,\x22value\x22:[\x220\x22,\x221\x22]},{\x22name\x22:\x22cellpadding\x22},{\x22name\x22:\x22cellspacing\x22},{\x22name\x22:\x22sortable\x22},{\x22name\x22:\x22width\x22}]},{\x22name\x22:\x22CAPTION\x22,\x22selector\x22:\x22caption\x22,\x22attrs\x22:[]},{\x22name\x22:\x22COLGROUP\x22,\x22selector\x22:\x22colgroup\x22,\x22attrs\x22:[{\x22name\x22:\x22span\x22}]},{\x22name\x22:\x22COL\x22,\x22selector\x22:\x22col\x22,\x22attrs\x22:[{\x22name\x22:\x22span\x22}]},{\x22name\x22:\x22TBODY\x22,\x22selector\x22:\x22tbody\x22,\x22attrs\x22:[]},{\x22name\x22:\x22THEAD\x22,\x22selector\x22:\x22thead\x22,\x22attrs\x22:[]},{\x22name\x22:\x22TFOOT\x22,\x22selector\x22:\x22tfoot\x22,\x22attrs\x22:[]},{\x22name\x22:\x22TR\x22,\x22selector\x22:\x22tr\x22,\x22attrs\x22:[{\x22name\x22:\x22align\x22},{\x22name\x22:\x22bgcolor\x22},{\x22name\x22:\x22height\x22},{\x22name\x22:\x22valign\x22}]},{\x22name\x22:\x22TD\x22,\x22selector\x22:\x22td\x22,\x22attrs\x22:[{\x22name\x22:\x22align\x22},{\x22name\x22:\x22bgcolor\x22},{\x22name\x22:\x22colspan\x22},{\x22name\x22:\x22headers\x22},{\x22name\x22:\x22height\x22},{\x22name\x22:\x22rowspan\x22},{\x22name\x22:\x22valign\x22},{\x22name\x22:\x22width\x22}]},{\x22name\x22:\x22TH\x22,\x22selector\x22:\x22th\x22,\x22attrs\x22:[{\x22name\x22:\x22abbr\x22},{\x22name\x22:\x22align\x22},{\x22name\x22:\x22bgcolor\x22},{\x22name\x22:\x22colspan\x22},{\x22name\x22:\x22headers\x22},{\x22name\x22:\x22height\x22},{\x22name\x22:\x22rowspan\x22},{\x22name\x22:\x22scope\x22},{\x22name\x22:\x22sorted\x22},{\x22name\x22:\x22valign\x22},{\x22name\x22:\x22width\x22}]},{\x22name\x22:\x22FORM\x22,\x22selector\x22:\x22form[method=\x27get\x27]\x22,\x22attrs\x22:[{\x22name\x22:\x22accept\x22},{\x22name\x22:\x22accept-charset\x22},{\x22name\x22:\x22action-xhr\x22,\x22valueUrl\x22:{\x22protocol\x22:[\x22https\x22],\x22allowRelative\x22:false},\x22disallowedValueRegex\x22:\x22__amp_source_origin|{{|}}\x22},{\x22name\x22:\x22autocomplete\x22},{\x22name\x22:\x22custom-validation-reporting\x22,\x22value\x22:[\x22as-you-go\x22,\x22interact-and-submit\x22,\x22show-all-on-submit\x22,\x22show-first-on-submit\x22]},{\x22name\x22:\x22enctype\x22},{\x22name\x22:\x22method\x22,\x22value\x22:[\x22get\x22]},{\x22name\x22:\x22novalidate\x22},{\x22name\x22:\x22xssi-prefix\x22}]},{\x22name\x22:\x22FORM\x22,\x22selector\x22:\x22form[method=\x27post\x27]\x22,\x22attrs\x22:[{\x22name\x22:\x22accept\x22},{\x22name\x22:\x22accept-charset\x22},{\x22name\x22:\x22action-xhr\x22,\x22valueUrl\x22:{\x22protocol\x22:[\x22https\x22],\x22allowRelative\x22:false},\x22required\x22:true,\x22disallowedValueRegex\x22:\x22__amp_source_origin|{{|}}\x22},{\x22name\x22:\x22autocomplete\x22},{\x22name\x22:\x22custom-validation-reporting\x22,\x22value\x22:[\x22as-you-go\x22,\x22interact-and-submit\x22,\x22show-all-on-submit\x22,\x22show-first-on-submit\x22]},{\x22name\x22:\x22enctype\x22},{\x22name\x22:\x22method\x22,\x22value\x22:[\x22post\x22],\x22required\x22:true},{\x22name\x22:\x22novalidate\x22},{\x22name\x22:\x22xssi-prefix\x22}]},{\x22name\x22:\x22DIV\x22,\x22selector\x22:\x22form\x20div[submitting]\x22,\x22attrs\x22:[{\x22name\x22:\x22align\x22},{\x22name\x22:\x22submitting\x22,\x22required\x22:true}]},{\x22name\x22:\x22DIV\x22,\x22selector\x22:\x22form\x20div[submit-success]\x22,\x22attrs\x22:[{\x22name\x22:\x22align\x22},{\x22name\x22:\x22submit-success\x22,\x22required\x22:true}]},{\x22name\x22:\x22DIV\x22,\x22selector\x22:\x22form\x20div[submit-success][template]\x22,\x22attrs\x22:[{\x22name\x22:\x22align\x22},{\x22name\x22:\x22submit-success\x22,\x22required\x22:true},{\x22name\x22:\x22template\x22,\x22required\x22:true}]},{\x22name\x22:\x22DIV\x22,\x22selector\x22:\x22form\x20div[submit-error]\x22,\x22attrs\x22:[{\x22name\x22:\x22align\x22},{\x22name\x22:\x22submit-error\x22,\x22required\x22:true}]},{\x22name\x22:\x22DIV\x22,\x22selector\x22:\x22form\x20div[submit-error][template]\x22,\x22attrs\x22:[{\x22name\x22:\x22align\x22},{\x22name\x22:\x22submit-error\x22,\x22required\x22:true},{\x22name\x22:\x22template\x22,\x22required\x22:true}]},{\x22name\x22:\x22LABEL\x22,\x22selector\x22:\x22label\x22,\x22attrs\x22:[{\x22name\x22:\x22for\x22}]},{\x22name\x22:\x22INPUT\x22,\x22selector\x22:\x22input\x22,\x22attrs\x22:[{\x22name\x22:\x22no-verify\x22,\x22value\x22:[\x22\x22]},{\x22name\x22:\x22type\x22,\x22disallowedValueRegex\x22:\x22(^|\x5c\x5cs)(file|image|password|)(\x5c\x5cs|$)\x22},{\x22name\x22:\x22[type]\x22}],\x22attrLists\x22:[\x22input-common-attr\x22,\x22name-attr\x22]},{\x22name\x22:\x22BUTTON\x22,\x22selector\x22:\x22button\x22,\x22attrs\x22:[{\x22name\x22:\x22disabled\x22,\x22value\x22:[\x22\x22]},{\x22name\x22:\x22role\x22},{\x22name\x22:\x22tabindex\x22},{\x22name\x22:\x22type\x22},{\x22name\x22:\x22value\x22},{\x22name\x22:\x22[disabled]\x22},{\x22name\x22:\x22[type]\x22},{\x22name\x22:\x22[value]\x22}],\x22attrLists\x22:[\x22name-attr\x22]},{\x22name\x22:\x22SELECT\x22,\x22selector\x22:\x22select\x22,\x22attrs\x22:[{\x22name\x22:\x22autofocus\x22},{\x22name\x22:\x22disabled\x22},{\x22name\x22:\x22multiple\x22},{\x22name\x22:\x22no-verify\x22,\x22value\x22:[\x22\x22]},{\x22name\x22:\x22required\x22},{\x22name\x22:\x22size\x22},{\x22name\x22:\x22[autofocus]\x22},{\x22name\x22:\x22[disabled]\x22},{\x22name\x22:\x22[multiple]\x22},{\x22name\x22:\x22[required]\x22},{\x22name\x22:\x22[size]\x22}],\x22attrLists\x22:[\x22name-attr\x22]},{\x22name\x22:\x22DATALIST\x22,\x22selector\x22:\x22datalist\x22,\x22attrs\x22:[]},{\x22name\x22:\x22OPTGROUP\x22,\x22selector\x22:\x22optgroup\x22,\x22requiredParent\x22:\x22SELECT\x22,\x22attrs\x22:[{\x22name\x22:\x22disabled\x22},{\x22name\x22:\x22label\x22},{\x22name\x22:\x22[disabled]\x22},{\x22name\x22:\x22[label]\x22}]},{\x22name\x22:\x22OPTION\x22,\x22selector\x22:\x22option\x22,\x22attrs\x22:[{\x22name\x22:\x22disabled\x22},{\x22name\x22:\x22label\x22},{\x22name\x22:\x22selected\x22},{\x22name\x22:\x22value\x22},{\x22name\x22:\x22[disabled]\x22},{\x22name\x22:\x22[label]\x22},{\x22name\x22:\x22[selected]\x22},{\x22name\x22:\x22[value]\x22}]},{\x22name\x22:\x22TEXTAREA\x22,\x22selector\x22:\x22textarea\x22,\x22attrs\x22:[{\x22name\x22:\x22autocomplete\x22},{\x22name\x22:\x22autoexpand\x22},{\x22name\x22:\x22autofocus\x22},{\x22name\x22:\x22cols\x22},{\x22name\x22:\x22disabled\x22},{\x22name\x22:\x22maxlength\x22},{\x22name\x22:\x22minlength\x22},{\x22name\x22:\x22no-verify\x22,\x22value\x22:[\x22\x22]},{\x22name\x22:\x22pattern\x22},{\x22name\x22:\x22placeholder\x22},{\x22name\x22:\x22readonly\x22},{\x22name\x22:\x22required\x22},{\x22name\x22:\x22rows\x22},{\x22name\x22:\x22selectiondirection\x22},{\x22name\x22:\x22selectionend\x22},{\x22name\x22:\x22selectionstart\x22},{\x22name\x22:\x22spellcheck\x22},{\x22name\x22:\x22wrap\x22},{\x22name\x22:\x22[autocomplete]\x22},{\x22name\x22:\x22[autofocus]\x22},{\x22name\x22:\x22[cols]\x22},{\x22name\x22:\x22[defaulttext]\x22},{\x22name\x22:\x22[disabled]\x22},{\x22name\x22:\x22[maxlength]\x22},{\x22name\x22:\x22[minlength]\x22},{\x22name\x22:\x22[pattern]\x22},{\x22name\x22:\x22[placeholder]\x22},{\x22name\x22:\x22[readonly]\x22},{\x22name\x22:\x22[required]\x22},{\x22name\x22:\x22[rows]\x22},{\x22name\x22:\x22[selectiondirection]\x22},{\x22name\x22:\x22[selectionend]\x22},{\x22name\x22:\x22[selectionstart]\x22},{\x22name\x22:\x22[spellcheck]\x22},{\x22name\x22:\x22[wrap]\x22}],\x22attrLists\x22:[\x22name-attr\x22]},{\x22name\x22:\x22OUTPUT\x22,\x22selector\x22:\x22output\x22,\x22attrs\x22:[{\x22name\x22:\x22for\x22},{\x22name\x22:\x22form\x22}],\x22attrLists\x22:[\x22name-attr\x22]},{\x22name\x22:\x22PROGRESS\x22,\x22selector\x22:\x22progress\x22,\x22attrs\x22:[{\x22name\x22:\x22max\x22},{\x22name\x22:\x22value\x22}]},{\x22name\x22:\x22METER\x22,\x22selector\x22:\x22meter\x22,\x22attrs\x22:[{\x22name\x22:\x22high\x22},{\x22name\x22:\x22low\x22},{\x22name\x22:\x22max\x22},{\x22name\x22:\x22min\x22},{\x22name\x22:\x22optimum\x22},{\x22name\x22:\x22value\x22}]},{\x22name\x22:\x22FIELDSET\x22,\x22selector\x22:\x22fieldset\x22,\x22attrs\x22:[{\x22name\x22:\x22disabled\x22},{\x22name\x22:\x22[disabled]\x22}],\x22attrLists\x22:[\x22name-attr\x22]},{\x22name\x22:\x22LEGEND\x22,\x22selector\x22:\x22legend\x22,\x22attrs\x22:[]},{\x22name\x22:\x22DETAILS\x22,\x22selector\x22:\x22details\x22,\x22attrs\x22:[{\x22name\x22:\x22open\x22,\x22value\x22:[\x22\x22]},{\x22name\x22:\x22[open]\x22}]},{\x22name\x22:\x22SUMMARY\x22,\x22selector\x22:\x22summary\x22,\x22requiredParent\x22:\x22DETAILS\x22,\x22attrs\x22:[]},{\x22name\x22:\x22SCRIPT\x22,\x22selector\x22:\x22script[src=\x27https://cdn.ampproject.org/v0.js\x27]\x22,\x22required\x22:true,\x22requiredParent\x22:\x22HEAD\x22,\x22attrs\x22:[{\x22name\x22:\x22src\x22,\x22value\x22:[\x22https://cdn.ampproject.org/v0.js\x22],\x22required\x22:true}],\x22attrLists\x22:[\x22nonce-attr\x22,\x22amphtml-engine-attrs\x22],\x22unique\x22:true},{\x22name\x22:\x22SCRIPT\x22,\x22selector\x22:\x22script[type=\x27application/ld+json\x27]\x22,\x22attrs\x22:[{\x22name\x22:\x22type\x22,\x22value\x22:[\x22application/ld+json\x22],\x22required\x22:true}],\x22attrLists\x22:[\x22nonce-attr\x22]},{\x22name\x22:\x22AMP-IMG\x22,\x22selector\x22:\x22amp-img\x22,\x22attrs\x22:[{\x22name\x22:\x22alt\x22},{\x22name\x22:\x22attribution\x22},{\x22name\x22:\x22placeholder\x22},{\x22name\x22:\x22[alt]\x22},{\x22name\x22:\x22[attribution]\x22},{\x22name\x22:\x22layout\x22,\x22value\x22:[\x22responsive\x22,\x22fill\x22,\x22fixed\x22,\x22fixed_height\x22,\x22flex_item\x22,\x22intrinsic\x22,\x22nodisplay\x22],\x22required\x22:true}],\x22attrLists\x22:[\x22extended-amp-global\x22,\x22mandatory-src-amp4email\x22,\x22$AMP_LAYOUT_ATTRS\x22]},{\x22name\x22:\x22AMP-LAYOUT\x22,\x22selector\x22:\x22amp-layout\x22,\x22attrs\x22:[{\x22name\x22:\x22layout\x22,\x22value\x22:[\x22responsive\x22,\x22fill\x22,\x22fixed\x22,\x22fixed_height\x22,\x22flex_item\x22,\x22intrinsic\x22,\x22nodisplay\x22,\x22container\x22],\x22required\x22:true}],\x22attrLists\x22:[\x22extended-amp-global\x22,\x22$AMP_LAYOUT_ATTRS\x22]},{\x22name\x22:\x22STYLE\x22,\x22selector\x22:\x22style[amp-custom-length-check]\x22,\x22requiredParent\x22:\x22HEAD\x22,\x22attrs\x22:[{\x22name\x22:\x22amp-custom-length-check\x22,\x22value\x22:[\x22\x22],\x22required\x22:true},{\x22name\x22:\x22type\x22,\x22value\x22:[\x22text/css\x22]}],\x22attrLists\x22:[\x22nonce-attr\x22],\x22unique\x22:true},{\x22name\x22:\x22STYLE\x22,\x22selector\x22:\x22style[amp-custom]\x22,\x22requiredParent\x22:\x22HEAD\x22,\x22attrs\x22:[{\x22name\x22:\x22amp-custom\x22,\x22value\x22:[\x22\x22],\x22required\x22:true},{\x22name\x22:\x22type\x22,\x22value\x22:[\x22text/css\x22]}],\x22unique\x22:true},{\x22name\x22:\x22STYLE\x22,\x22selector\x22:\x22style[amp-custom]\x22,\x22requiredParent\x22:\x22HEAD\x22,\x22attrs\x22:[{\x22name\x22:\x22amp-custom\x22,\x22value\x22:[\x22\x22],\x22required\x22:true},{\x22name\x22:\x22type\x22,\x22value\x22:[\x22text/css\x22]}],\x22unique\x22:true},{\x22name\x22:\x22STYLE\x22,\x22selector\x22:\x22head\x20>\x20style[amp4email-boilerplate]\x22,\x22requiredParent\x22:\x22HEAD\x22,\x22attrs\x22:[{\x22name\x22:\x22amp4email-boilerplate\x22,\x22value\x22:[\x22\x22],\x22required\x22:true}],\x22unique\x22:true},{\x22name\x22:\x22SCRIPT\x22,\x22selector\x22:\x22script[custom-element=\x27amp-accordion\x27]\x22,\x22attrs\x22:[{\x22name\x22:\x22custom-element\x22,\x22value\x22:[\x22amp-accordion\x22],\x22required\x22:true},{\x22name\x22:\x22src\x22,\x22value\x22:[\x22https://cdn.ampproject.org/v0/amp-accordion-0.1.js\x22],\x22required\x22:true}],\x22attrLists\x22:[\x22common-extension-attrs\x22]},{\x22name\x22:\x22AMP-ACCORDION\x22,\x22selector\x22:\x22amp-accordion\x22,\x22attrs\x22:[{\x22name\x22:\x22animate\x22,\x22value\x22:[\x22\x22]},{\x22name\x22:\x22disable-session-states\x22,\x22value\x22:[\x22\x22]},{\x22name\x22:\x22expand-single-section\x22,\x22value\x22:[\x22\x22]},{\x22name\x22:\x22layout\x22,\x22value\x22:[\x22container\x22],\x22required\x22:true}],\x22attrLists\x22:[\x22extended-amp-global\x22,\x22$AMP_LAYOUT_ATTRS\x22]},{\x22name\x22:\x22SECTION\x22,\x22selector\x22:\x22amp-accordion\x20>\x20section\x22,\x22requiredParent\x22:\x22AMP-ACCORDION\x22,\x22attrs\x22:[{\x22name\x22:\x22access-hide\x22,\x22value\x22:[\x22\x22]},{\x22name\x22:\x22expanded\x22,\x22value\x22:[\x22\x22]},{\x22name\x22:\x22[data-expand]\x22},{\x22name\x22:\x22[expanded]\x22}]},{\x22name\x22:\x22SCRIPT\x22,\x22selector\x22:\x22amp-anim\x22,\x22attrs\x22:[{\x22name\x22:\x22custom-element\x22,\x22value\x22:[\x22amp-anim\x22],\x22required\x22:true},{\x22name\x22:\x22src\x22,\x22value\x22:[\x22https://cdn.ampproject.org/v0/amp-anim-0.1.js\x22],\x22required\x22:true}],\x22attrLists\x22:[\x22common-extension-attrs\x22]},{\x22name\x22:\x22AMP-ANIM\x22,\x22selector\x22:\x22amp-anim\x22,\x22attrs\x22:[{\x22name\x22:\x22alt\x22},{\x22name\x22:\x22attribution\x22},{\x22name\x22:\x22layout\x22,\x22value\x22:[\x22responsive\x22,\x22fill\x22,\x22fixed\x22,\x22fixed_height\x22,\x22flex_item\x22,\x22nodisplay\x22],\x22required\x22:true}],\x22attrLists\x22:[\x22extended-amp-global\x22,\x22mandatory-src-amp4email\x22,\x22$AMP_LAYOUT_ATTRS\x22]},{\x22name\x22:\x22SCRIPT\x22,\x22selector\x22:\x22script[custom-element=\x27amp-autocomplete\x27]\x22,\x22attrs\x22:[{\x22name\x22:\x22custom-element\x22,\x22value\x22:[\x22amp-autocomplete\x22],\x22required\x22:true},{\x22name\x22:\x22src\x22,\x22value\x22:[\x22https://cdn.ampproject.org/v0/amp-autocomplete-0.1.js\x22],\x22required\x22:true}],\x22attrLists\x22:[\x22common-extension-attrs\x22]},{\x22name\x22:\x22AMP-AUTOCOMPLETE\x22,\x22selector\x22:\x22amp-autocomplete\x22,\x22attrs\x22:[{\x22name\x22:\x22highlight-user-entry\x22},{\x22name\x22:\x22inline\x22},{\x22name\x22:\x22items\x22},{\x22name\x22:\x22max-items\x22},{\x22name\x22:\x22min-characters\x22},{\x22name\x22:\x22prefetch\x22},{\x22name\x22:\x22query\x22},{\x22name\x22:\x22submit-on-enter\x22},{\x22name\x22:\x22suggest-first\x22},{\x22name\x22:\x22src\x22,\x22valueUrl\x22:{\x22protocol\x22:[\x22https\x22],\x22allowRelative\x22:false},\x22required\x22:true,\x22disallowedValueRegex\x22:\x22__amp_source_origin|{{|}}\x22},{\x22name\x22:\x22template\x22},{\x22name\x22:\x22layout\x22,\x22value\x22:[\x22container\x22],\x22required\x22:true}],\x22attrLists\x22:[\x22extended-amp-global\x22,\x22$AMP_LAYOUT_ATTRS\x22]},{\x22name\x22:\x22SCRIPT\x22,\x22selector\x22:\x22script[custom-element=\x27amp-bind\x27]\x22,\x22attrs\x22:[{\x22name\x22:\x22custom-element\x22,\x22value\x22:[\x22amp-bind\x22],\x22required\x22:true},{\x22name\x22:\x22src\x22,\x22value\x22:[\x22https://cdn.ampproject.org/v0/amp-bind-0.1.js\x22],\x22required\x22:true}],\x22attrLists\x22:[\x22common-extension-attrs\x22]},{\x22name\x22:\x22SCRIPT\x22,\x22selector\x22:\x22amp-bind\x22,\x22requiredParent\x22:\x22AMP-STATE\x22,\x22attrs\x22:[{\x22name\x22:\x22type\x22,\x22value\x22:[\x22application/json\x22],\x22required\x22:true}],\x22attrLists\x22:[\x22nonce-attr\x22]},{\x22name\x22:\x22AMP-STATE\x22,\x22selector\x22:\x22amp-state\x22,\x22attrs\x22:[],\x22attrLists\x22:[\x22mandatory-id-attr\x22]},{\x22name\x22:\x22AMP-BIND-MACRO\x22,\x22selector\x22:\x22amp-bind-macro\x22,\x22attrs\x22:[{\x22name\x22:\x22arguments\x22},{\x22name\x22:\x22expression\x22,\x22required\x22:true}],\x22attrLists\x22:[\x22mandatory-id-attr\x22]},{\x22name\x22:\x22SCRIPT\x22,\x22selector\x22:\x22script[custom-element=\x27amp-carousel\x27]\x22,\x22attrs\x22:[{\x22name\x22:\x22custom-element\x22,\x22value\x22:[\x22amp-carousel\x22],\x22required\x22:true},{\x22name\x22:\x22src\x22,\x22value\x22:[\x22https://cdn.ampproject.org/v0/amp-carousel-0.1.js\x22,\x22https://cdn.ampproject.org/v0/amp-carousel-0.2.js\x22],\x22required\x22:true}],\x22attrLists\x22:[\x22common-extension-attrs\x22]},{\x22name\x22:\x22AMP-CAROUSEL\x22,\x22selector\x22:\x22amp-carousel\x22,\x22attrs\x22:[{\x22name\x22:\x22layout\x22,\x22value\x22:[\x22responsive\x22,\x22fill\x22,\x22fixed\x22,\x22fixed_height\x22,\x22flex_item\x22,\x22intrinsic\x22,\x22nodisplay\x22],\x22required\x22:true}],\x22attrLists\x22:[\x22amp-carousel-common\x22,\x22extended-amp-global\x22,\x22$AMP_LAYOUT_ATTRS\x22]},{\x22name\x22:\x22SCRIPT\x22,\x22selector\x22:\x22script[custom-element=\x27amp-fit-text\x27]\x22,\x22attrs\x22:[{\x22name\x22:\x22custom-element\x22,\x22value\x22:[\x22amp-fit-text\x22],\x22required\x22:true},{\x22name\x22:\x22src\x22,\x22value\x22:[\x22https://cdn.ampproject.org/v0/amp-fit-text-0.1.js\x22],\x22required\x22:true}],\x22attrLists\x22:[\x22common-extension-attrs\x22]},{\x22name\x22:\x22AMP-FIT-TEXT\x22,\x22selector\x22:\x22amp-fit-text\x22,\x22attrs\x22:[{\x22name\x22:\x22max-font-size\x22},{\x22name\x22:\x22min-font-size\x22},{\x22name\x22:\x22layout\x22,\x22value\x22:[\x22responsive\x22,\x22fill\x22,\x22fixed\x22,\x22fixed_height\x22,\x22flex_item\x22,\x22intrinsic\x22,\x22nodisplay\x22],\x22required\x22:true}],\x22attrLists\x22:[\x22extended-amp-global\x22,\x22$AMP_LAYOUT_ATTRS\x22]},{\x22name\x22:\x22SCRIPT\x22,\x22selector\x22:\x22script[custom-element=\x27amp-form\x27]\x22,\x22attrs\x22:[{\x22name\x22:\x22custom-element\x22,\x22value\x22:[\x22amp-form\x22],\x22required\x22:true},{\x22name\x22:\x22src\x22,\x22value\x22:[\x22https://cdn.ampproject.org/v0/amp-form-0.1.js\x22],\x22required\x22:true}],\x22attrLists\x22:[\x22common-extension-attrs\x22]},{\x22name\x22:\x22SCRIPT\x22,\x22selector\x22:\x22script[custom-element=\x27amp-image-lightbox\x27]\x22,\x22attrs\x22:[{\x22name\x22:\x22custom-element\x22,\x22value\x22:[\x22amp-image-lightbox\x22],\x22required\x22:true},{\x22name\x22:\x22src\x22,\x22value\x22:[\x22https://cdn.ampproject.org/v0/amp-image-lightbox-0.1.js\x22,\x22https://cdn.ampproject.org/v0/amp-image-lightbox-latest.js\x22],\x22required\x22:true}],\x22attrLists\x22:[\x22common-extension-attrs\x22]},{\x22name\x22:\x22AMP-IMAGE-LIGHTBOX\x22,\x22selector\x22:\x22amp-image-lightbox\x22,\x22attrs\x22:[{\x22name\x22:\x22controls\x22},{\x22name\x22:\x22layout\x22,\x22value\x22:[\x22nodisplay\x22],\x22required\x22:true}],\x22attrLists\x22:[\x22extended-amp-global\x22,\x22$AMP_LAYOUT_ATTRS\x22]},{\x22name\x22:\x22SCRIPT\x22,\x22selector\x22:\x22script[custom-element=\x27amp-lightbox\x27]\x22,\x22attrs\x22:[{\x22name\x22:\x22custom-element\x22,\x22value\x22:[\x22amp-lightbox\x22],\x22required\x22:true},{\x22name\x22:\x22src\x22,\x22value\x22:[\x22https://cdn.ampproject.org/v0/amp-lightbox-0.1.js\x22,\x22https://cdn.ampproject.org/v0/amp-lightbox-latest.js\x22],\x22required\x22:true}],\x22attrLists\x22:[\x22common-extension-attrs\x22]},{\x22name\x22:\x22AMP-LIGHTBOX\x22,\x22selector\x22:\x22amp-lightbox\x22,\x22attrs\x22:[{\x22name\x22:\x22animate-in\x22,\x22value\x22:[\x22fade-in\x22,\x22fly-in-bottom\x22,\x22fly-in-top\x22]},{\x22name\x22:\x22animation\x22,\x22value\x22:[\x22fade-in\x22,\x22fly-in-bottom\x22,\x22fly-in-top\x22]},{\x22name\x22:\x22controls\x22},{\x22name\x22:\x22from\x22},{\x22name\x22:\x22scrollable\x22},{\x22name\x22:\x22[open]\x22},{\x22name\x22:\x22layout\x22,\x22value\x22:[\x22nodisplay\x22],\x22required\x22:true}],\x22attrLists\x22:[\x22extended-amp-global\x22,\x22$AMP_LAYOUT_ATTRS\x22]},{\x22name\x22:\x22SCRIPT\x22,\x22selector\x22:\x22script[custom-element=\x27amp-list\x27]\x22,\x22attrs\x22:[{\x22name\x22:\x22custom-element\x22,\x22value\x22:[\x22amp-list\x22],\x22required\x22:true},{\x22name\x22:\x22src\x22,\x22value\x22:[\x22https://cdn.ampproject.org/v0/amp-list-0.1.js\x22],\x22required\x22:true}],\x22attrLists\x22:[\x22common-extension-attrs\x22]},{\x22name\x22:\x22DIV\x22,\x22selector\x22:\x22amp-list\x20div[fetch-error]\x22,\x22attrs\x22:[{\x22name\x22:\x22align\x22},{\x22name\x22:\x22fetch-error\x22,\x22required\x22:true}]},{\x22name\x22:\x22AMP-LIST\x22,\x22selector\x22:\x22amp-list\x22,\x22attrs\x22:[{\x22name\x22:\x22binding\x22,\x22value\x22:[\x22always\x22,\x22no\x22,\x22refresh\x22,\x22refresh-evaluate\x22]},{\x22name\x22:\x22diffable\x22,\x22value\x22:[\x22\x22]},{\x22name\x22:\x22items\x22},{\x22name\x22:\x22max-items\x22},{\x22name\x22:\x22single-item\x22},{\x22name\x22:\x22src\x22,\x22valueUrl\x22:{\x22protocol\x22:[\x22https\x22],\x22allowRelative\x22:false},\x22required\x22:true,\x22disallowedValueRegex\x22:\x22__amp_source_origin|{{|}}\x22},{\x22name\x22:\x22template\x22},{\x22name\x22:\x22xssi-prefix\x22},{\x22name\x22:\x22[is-layout-container]\x22},{\x22name\x22:\x22layout\x22,\x22value\x22:[\x22responsive\x22,\x22container\x22,\x22fill\x22,\x22fixed\x22,\x22fixed_height\x22,\x22flex_item\x22,\x22nodisplay\x22],\x22required\x22:true}],\x22attrLists\x22:[\x22extended-amp-global\x22,\x22$AMP_LAYOUT_ATTRS\x22]},{\x22name\x22:\x22SCRIPT\x22,\x22selector\x22:\x22script[custom-template=\x27amp-mustache\x27]\x22,\x22attrs\x22:[{\x22name\x22:\x22custom-template\x22,\x22value\x22:[\x22amp-mustache\x22],\x22required\x22:true},{\x22name\x22:\x22src\x22,\x22value\x22:[\x22https://cdn.ampproject.org/v0/amp-mustache-0.1.js\x22,\x22https://cdn.ampproject.org/v0/amp-mustache-0.2.js\x22],\x22required\x22:true}],\x22attrLists\x22:[\x22common-extension-attrs\x22]},{\x22name\x22:\x22SCRIPT\x22,\x22selector\x22:\x22script[type=\x27text/plain\x27]\x22,\x22attrs\x22:[{\x22name\x22:\x22id\x22,\x22disallowedValueRegex\x22:\x22(^|\x5c\x5cs)(__amp_\x5c\x5cS*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\x5c\x5cS*|\x5c\x5c$p|\x5c\x5c$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\x5c\x5cS*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\x5c\x5cs|$)\x22},{\x22name\x22:\x22type\x22,\x22value\x22:[\x22text/plain\x22],\x22required\x22:true},{\x22name\x22:\x22template\x22,\x22value\x22:[\x22amp-mustache\x22],\x22required\x22:true}],\x22attrLists\x22:[\x22nonce-attr\x22]},{\x22name\x22:\x22TEMPLATE\x22,\x22selector\x22:\x22template\x22,\x22attrs\x22:[{\x22name\x22:\x22id\x22,\x22disallowedValueRegex\x22:\x22(^|\x5c\x5cs)(__amp_\x5c\x5cS*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\x5c\x5cS*|\x5c\x5c$p|\x5c\x5c$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\x5c\x5cS*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\x5c\x5cs|$)\x22},{\x22name\x22:\x22type\x22,\x22value\x22:[\x22amp-mustache\x22],\x22required\x22:true}]},{\x22name\x22:\x22SCRIPT\x22,\x22selector\x22:\x22script[custom-element=\x27amp-selector\x27]\x22,\x22attrs\x22:[{\x22name\x22:\x22custom-element\x22,\x22value\x22:[\x22amp-selector\x22],\x22required\x22:true},{\x22name\x22:\x22src\x22,\x22value\x22:[\x22https://cdn.ampproject.org/v0/amp-selector-0.1.js\x22],\x22required\x22:true}],\x22attrLists\x22:[\x22common-extension-attrs\x22]},{\x22name\x22:\x22AMP-SELECTOR\x22,\x22selector\x22:\x22amp-selector\x22,\x22attrs\x22:[{\x22name\x22:\x22disabled\x22,\x22value\x22:[\x22\x22]},{\x22name\x22:\x22form\x22},{\x22name\x22:\x22keyboard-select-mode\x22,\x22value\x22:[\x22focus\x22,\x22none\x22,\x22select\x22]},{\x22name\x22:\x22multiple\x22,\x22value\x22:[\x22\x22]},{\x22name\x22:\x22[disabled]\x22},{\x22name\x22:\x22[selected]\x22},{\x22name\x22:\x22layout\x22,\x22value\x22:[\x22responsive\x22,\x22fill\x22,\x22fixed\x22,\x22fixed_height\x22,\x22nodisplay\x22,\x22container\x22],\x22required\x22:true}],\x22attrLists\x22:[\x22extended-amp-global\x22,\x22name-attr\x22,\x22$AMP_LAYOUT_ATTRS\x22]},{\x22name\x22:\x22$REFERENCE_POINT\x22,\x22selector\x22:\x22amp-selector\x20option\x22,\x22attrs\x22:[{\x22name\x22:\x22disabled\x22,\x22value\x22:[\x22\x22]},{\x22name\x22:\x22option\x22,\x22required\x22:true},{\x22name\x22:\x22selected\x22,\x22value\x22:[\x22\x22]}]},{\x22name\x22:\x22$REFERENCE_POINT\x22,\x22selector\x22:\x22amp-selector\x20child\x22,\x22attrs\x22:[]},{\x22name\x22:\x22SCRIPT\x22,\x22selector\x22:\x22script[custom-element=\x27amp-sidebar\x27]\x22,\x22attrs\x22:[{\x22name\x22:\x22custom-element\x22,\x22value\x22:[\x22amp-sidebar\x22],\x22required\x22:true},{\x22name\x22:\x22src\x22,\x22value\x22:[\x22https://cdn.ampproject.org/v0/amp-sidebar-0.1.js\x22],\x22required\x22:true}],\x22attrLists\x22:[\x22common-extension-attrs\x22]},{\x22name\x22:\x22AMP-SIDEBAR\x22,\x22selector\x22:\x22amp-sidebar\x22,\x22attrs\x22:[{\x22name\x22:\x22side\x22,\x22value\x22:[\x22left\x22,\x22right\x22]},{\x22name\x22:\x22layout\x22,\x22value\x22:[\x22nodisplay\x22],\x22required\x22:true}],\x22attrLists\x22:[\x22extended-amp-global\x22,\x22$AMP_LAYOUT_ATTRS\x22]},{\x22name\x22:\x22NAV\x22,\x22selector\x22:\x22amp-sidebar\x20>\x20nav\x22,\x22requiredParent\x22:\x22AMP-SIDEBAR\x22,\x22attrs\x22:[{\x22name\x22:\x22toolbar\x22,\x22required\x22:true},{\x22name\x22:\x22toolbar-target\x22,\x22required\x22:true}]},{\x22name\x22:\x22SCRIPT\x22,\x22selector\x22:\x22script[custom-element=\x27amp-timeago\x27]\x22,\x22attrs\x22:[{\x22name\x22:\x22custom-element\x22,\x22value\x22:[\x22amp-timeago\x22],\x22required\x22:true},{\x22name\x22:\x22src\x22,\x22value\x22:[\x22https://cdn.ampproject.org/v0/amp-timeago-0.1.js\x22],\x22required\x22:true}],\x22attrLists\x22:[\x22common-extension-attrs\x22]},{\x22name\x22:\x22AMP-TIMEAGO\x22,\x22selector\x22:\x22amp-timeago\x22,\x22attrs\x22:[{\x22name\x22:\x22cutoff\x22,\x22valueRegex\x22:\x22\x5c\x5cd+\x22},{\x22name\x22:\x22datetime\x22,\x22valueRegex\x22:\x22\x5c\x5cd{4}-[01]\x5c\x5cd-[0-3]\x5c\x5cdT[0-2]\x5c\x5cd:[0-5]\x5c\x5cd(:[0-5]\x5c\x5cd(\x5c\x5c.\x5c\x5cd+)?)?(Z|[+-][0-1][0-9]:[0-5][0-9])\x22,\x22required\x22:true},{\x22name\x22:\x22locale\x22},{\x22name\x22:\x22[datetime]\x22},{\x22name\x22:\x22[title]\x22},{\x22name\x22:\x22layout\x22,\x22value\x22:[\x22responsive\x22,\x22fixed\x22,\x22fixed_height\x22],\x22required\x22:true}],\x22attrLists\x22:[\x22extended-amp-global\x22,\x22$AMP_LAYOUT_ATTRS\x22]}],\x22attrLists\x22:[{\x22name\x22:\x22cite-attr\x22,\x22attrs\x22:[{\x22name\x22:\x22cite\x22,\x22valueUrl\x22:{\x22protocol\x22:[\x22http\x22,\x22https\x22],\x22allowEmpty\x22:true},\x22disallowedValueRegex\x22:\x22__amp_source_origin\x22}]},{\x22name\x22:\x22input-common-attr\x22,\x22attrs\x22:[{\x22name\x22:\x22accept\x22},{\x22name\x22:\x22accesskey\x22},{\x22name\x22:\x22autocomplete\x22},{\x22name\x22:\x22autofocus\x22},{\x22name\x22:\x22checked\x22},{\x22name\x22:\x22disabled\x22},{\x22name\x22:\x22height\x22},{\x22name\x22:\x22inputmode\x22},{\x22name\x22:\x22list\x22},{\x22name\x22:\x22enterkeyhint\x22},{\x22name\x22:\x22max\x22},{\x22name\x22:\x22maxlength\x22},{\x22name\x22:\x22min\x22},{\x22name\x22:\x22minlength\x22},{\x22name\x22:\x22multiple\x22},{\x22name\x22:\x22pattern\x22},{\x22name\x22:\x22placeholder\x22},{\x22name\x22:\x22readonly\x22},{\x22name\x22:\x22required\x22},{\x22name\x22:\x22selectiondirection\x22},{\x22name\x22:\x22size\x22},{\x22name\x22:\x22spellcheck\x22},{\x22name\x22:\x22step\x22},{\x22name\x22:\x22tabindex\x22},{\x22name\x22:\x22value\x22},{\x22name\x22:\x22width\x22},{\x22name\x22:\x22[accept]\x22},{\x22name\x22:\x22[accesskey]\x22},{\x22name\x22:\x22[autocomplete]\x22},{\x22name\x22:\x22[checked]\x22},{\x22name\x22:\x22[disabled]\x22},{\x22name\x22:\x22[height]\x22},{\x22name\x22:\x22[inputmode]\x22},{\x22name\x22:\x22[max]\x22},{\x22name\x22:\x22[maxlength]\x22},{\x22name\x22:\x22[min]\x22},{\x22name\x22:\x22[minlength]\x22},{\x22name\x22:\x22[multiple]\x22},{\x22name\x22:\x22[pattern]\x22},{\x22name\x22:\x22[placeholder]\x22},{\x22name\x22:\x22[readonly]\x22},{\x22name\x22:\x22[required]\x22},{\x22name\x22:\x22[selectiondirection]\x22},{\x22name\x22:\x22[size]\x22},{\x22name\x22:\x22[spellcheck]\x22},{\x22name\x22:\x22[step]\x22},{\x22name\x22:\x22[value]\x22},{\x22name\x22:\x22[width]\x22}]},{\x22name\x22:\x22amphtml-engine-attrs\x22,\x22attrs\x22:[{\x22name\x22:\x22async\x22,\x22value\x22:[\x22\x22],\x22required\x22:true},{\x22name\x22:\x22crossorigin\x22,\x22value\x22:[\x22anonymous\x22]},{\x22name\x22:\x22type\x22,\x22value\x22:[\x22text/javascript\x22]}]},{\x22name\x22:\x22mandatory-src-amp4email\x22,\x22attrs\x22:[{\x22name\x22:\x22src\x22,\x22valueUrl\x22:{\x22protocol\x22:[\x22https\x22],\x22allowRelative\x22:false},\x22required\x22:true,\x22disallowedValueRegex\x22:\x22__amp_source_origin|(.|\x5c\x5cs){{|}}(.|\x5c\x5cs)|^{{.*[^}][^}]$|^[^{][^{].*}}$|^}}|{{$|{{#|{{/|{{\x5c\x5c^\x22}]},{\x22name\x22:\x22extended-amp-global\x22,\x22attrs\x22:[{\x22name\x22:\x22i-amphtml-layout\x22,\x22value\x22:[\x22container\x22,\x22fill\x22,\x22fixed\x22,\x22fixed-height\x22,\x22flex-item\x22,\x22fluid\x22,\x22intrinsic\x22,\x22nodisplay\x22,\x22responsive\x22]},{\x22name\x22:\x22media\x22},{\x22name\x22:\x22noloading\x22,\x22value\x22:[\x22\x22]}]},{\x22name\x22:\x22$AMP_LAYOUT_ATTRS\x22,\x22attrs\x22:[{\x22name\x22:\x22disable-inline-width\x22},{\x22name\x22:\x22height\x22},{\x22name\x22:\x22heights\x22},{\x22name\x22:\x22layout\x22},{\x22name\x22:\x22sizes\x22},{\x22name\x22:\x22width\x22},{\x22name\x22:\x22[height]\x22},{\x22name\x22:\x22[width]\x22}]},{\x22name\x22:\x22nonce-attr\x22,\x22attrs\x22:[{\x22name\x22:\x22nonce\x22}]},{\x22name\x22:\x22common-extension-attrs\x22,\x22attrs\x22:[{\x22name\x22:\x22async\x22,\x22value\x22:[\x22\x22],\x22required\x22:true},{\x22name\x22:\x22crossorigin\x22,\x22value\x22:[\x22anonymous\x22]},{\x22name\x22:\x22nonce\x22},{\x22name\x22:\x22type\x22,\x22value\x22:[\x22text/javascript\x22]}]},{\x22name\x22:\x22mandatory-id-attr\x22,\x22attrs\x22:[{\x22name\x22:\x22id\x22,\x22required\x22:true,\x22disallowedValueRegex\x22:\x22(^|\x5c\x5cs)(__amp_\x5c\x5cS*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\x5c\x5cS*|\x5c\x5c$p|\x5c\x5c$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\x5c\x5cS*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\x5c\x5cs|$)\x22}]},{\x22name\x22:\x22name-attr\x22,\x22attrs\x22:[{\x22name\x22:\x22name\x22,\x22disallowedValueRegex\x22:\x22(^|\x5c\x5cs)(__amp_\x5c\x5cS*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\x5c\x5cS*|\x5c\x5c$p|\x5c\x5c$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\x5c\x5cs|$)\x22}]},{\x22name\x22:\x22$GLOBAL_ATTRS\x22,\x22attrs\x22:[{\x22name\x22:\x22itemid\x22},{\x22name\x22:\x22itemprop\x22},{\x22name\x22:\x22itemref\x22},{\x22name\x22:\x22itemscope\x22},{\x22name\x22:\x22itemtype\x22},{\x22name\x22:\x22about\x22},{\x22name\x22:\x22content\x22},{\x22name\x22:\x22datatype\x22},{\x22name\x22:\x22inlist\x22},{\x22name\x22:\x22prefix\x22},{\x22name\x22:\x22property\x22},{\x22name\x22:\x22rel\x22,\x22disallowedValueRegex\x22:\x22(^|\x5c\x5cs)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\x5c\x5cs|$)\x22},{\x22name\x22:\x22resource\x22},{\x22name\x22:\x22rev\x22},{\x22name\x22:\x22style\x22},{\x22name\x22:\x22typeof\x22},{\x22name\x22:\x22vocab\x22},{\x22name\x22:\x22accesskey\x22},{\x22name\x22:\x22class\x22},{\x22name\x22:\x22dir\x22},{\x22name\x22:\x22draggable\x22},{\x22name\x22:\x22hidden\x22,\x22value\x22:[\x22\x22]},{\x22name\x22:\x22id\x22,\x22disallowedValueRegex\x22:\x22(^|\x5c\x5cs)(__amp_\x5c\x5cS*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\x5c\x5cS*|\x5c\x5c$p|\x5c\x5c$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\x5c\x5cS*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\x5c\x5cs|$)\x22},{\x22name\x22:\x22lang\x22},{\x22name\x22:\x22slot\x22},{\x22name\x22:\x22tabindex\x22},{\x22name\x22:\x22title\x22},{\x22name\x22:\x22translate\x22},{\x22name\x22:\x22aria-activedescendant\x22},{\x22name\x22:\x22aria-atomic\x22},{\x22name\x22:\x22aria-autocomplete\x22},{\x22name\x22:\x22aria-busy\x22},{\x22name\x22:\x22aria-checked\x22},{\x22name\x22:\x22aria-controls\x22},{\x22name\x22:\x22aria-current\x22},{\x22name\x22:\x22aria-describedby\x22},{\x22name\x22:\x22aria-disabled\x22},{\x22name\x22:\x22aria-dropeffect\x22},{\x22name\x22:\x22aria-expanded\x22},{\x22name\x22:\x22aria-flowto\x22},{\x22name\x22:\x22aria-grabbed\x22},{\x22name\x22:\x22aria-haspopup\x22},{\x22name\x22:\x22aria-hidden\x22},{\x22name\x22:\x22aria-invalid\x22},{\x22name\x22:\x22aria-label\x22},{\x22name\x22:\x22aria-labelledby\x22},{\x22name\x22:\x22aria-level\x22},{\x22name\x22:\x22aria-live\x22},{\x22name\x22:\x22aria-modal\x22},{\x22name\x22:\x22aria-multiline\x22},{\x22name\x22:\x22aria-multiselectable\x22},{\x22name\x22:\x22aria-orientation\x22},{\x22name\x22:\x22aria-owns\x22},{\x22name\x22:\x22aria-posinset\x22},{\x22name\x22:\x22aria-pressed\x22},{\x22name\x22:\x22aria-readonly\x22},{\x22name\x22:\x22aria-relevant\x22},{\x22name\x22:\x22aria-required\x22},{\x22name\x22:\x22aria-selected\x22},{\x22name\x22:\x22aria-setsize\x22},{\x22name\x22:\x22aria-sort\x22},{\x22name\x22:\x22aria-valuemax\x22},{\x22name\x22:\x22aria-valuemin\x22},{\x22name\x22:\x22aria-valuenow\x22},{\x22name\x22:\x22aria-valuetext\x22},{\x22name\x22:\x22on\x22},{\x22name\x22:\x22role\x22},{\x22name\x22:\x22placeholder\x22,\x22value\x22:[\x22\x22]},{\x22name\x22:\x22fallback\x22,\x22value\x22:[\x22\x22]},{\x22name\x22:\x22overflow\x22},{\x22name\x22:\x22amp-access\x22},{\x22name\x22:\x22amp-access-behavior\x22},{\x22name\x22:\x22amp-access-hide\x22},{\x22name\x22:\x22amp-access-id\x22},{\x22name\x22:\x22amp-access-loader\x22},{\x22name\x22:\x22amp-access-loading\x22},{\x22name\x22:\x22amp-access-off\x22},{\x22name\x22:\x22amp-access-on\x22},{\x22name\x22:\x22amp-access-show\x22},{\x22name\x22:\x22amp-access-style\x22},{\x22name\x22:\x22amp-access-template\x22},{\x22name\x22:\x22i-amp-access-id\x22},{\x22name\x22:\x22validation-for\x22},{\x22name\x22:\x22visible-when-invalid\x22,\x22value\x22:[\x22badInput\x22,\x22customError\x22,\x22patternMismatch\x22,\x22rangeOverflow\x22,\x22rangeUnderflow\x22,\x22stepMismatch\x22,\x22tooLong\x22,\x22tooShort\x22,\x22typeMismatch\x22,\x22valueMissing\x22]},{\x22name\x22:\x22amp-fx\x22,\x22valueRegex\x22:\x22(fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)(\x5c\x5cs|fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)*\x22},{\x22name\x22:\x22subscriptions-action\x22},{\x22name\x22:\x22subscriptions-actions\x22,\x22value\x22:[\x22\x22]},{\x22name\x22:\x22subscriptions-decorate\x22},{\x22name\x22:\x22subscriptions-dialog\x22,\x22value\x22:[\x22\x22]},{\x22name\x22:\x22subscriptions-display\x22},{\x22name\x22:\x22subscriptions-lang\x22},{\x22name\x22:\x22subscriptions-section\x22,\x22value\x22:[\x22actions\x22,\x22content\x22,\x22content-not-granted\x22,\x22loading\x22]},{\x22name\x22:\x22subscriptions-service\x22},{\x22name\x22:\x22subscriptions-google-rtc\x22},{\x22name\x22:\x22next-page-hide\x22},{\x22name\x22:\x22next-page-replace\x22},{\x22name\x22:\x22[aria-activedescendant]\x22},{\x22name\x22:\x22[aria-atomic]\x22},{\x22name\x22:\x22[aria-autocomplete]\x22},{\x22name\x22:\x22[aria-busy]\x22},{\x22name\x22:\x22[aria-checked]\x22},{\x22name\x22:\x22[aria-controls]\x22},{\x22name\x22:\x22[aria-describedby]\x22},{\x22name\x22:\x22[aria-disabled]\x22},{\x22name\x22:\x22[aria-dropeffect]\x22},{\x22name\x22:\x22[aria-expanded]\x22},{\x22name\x22:\x22[aria-flowto]\x22},{\x22name\x22:\x22[aria-grabbed]\x22},{\x22name\x22:\x22[aria-haspopup]\x22},{\x22name\x22:\x22[aria-hidden]\x22},{\x22name\x22:\x22[aria-invalid]\x22},{\x22name\x22:\x22[aria-label]\x22},{\x22name\x22:\x22[aria-labelledby]\x22},{\x22name\x22:\x22[aria-level]\x22},{\x22name\x22:\x22[aria-live]\x22},{\x22name\x22:\x22[aria-multiline]\x22},{\x22name\x22:\x22[aria-multiselectable]\x22},{\x22name\x22:\x22[aria-orientation]\x22},{\x22name\x22:\x22[aria-owns]\x22},{\x22name\x22:\x22[aria-posinset]\x22},{\x22name\x22:\x22[aria-pressed]\x22},{\x22name\x22:\x22[aria-readonly]\x22},{\x22name\x22:\x22[aria-relevant]\x22},{\x22name\x22:\x22[aria-required]\x22},{\x22name\x22:\x22[aria-selected]\x22},{\x22name\x22:\x22[aria-setsize]\x22},{\x22name\x22:\x22[aria-sort]\x22},{\x22name\x22:\x22[aria-valuemax]\x22},{\x22name\x22:\x22[aria-valuemin]\x22},{\x22name\x22:\x22[aria-valuenow]\x22},{\x22name\x22:\x22[aria-valuetext]\x22},{\x22name\x22:\x22[class]\x22},{\x22name\x22:\x22[hidden]\x22},{\x22name\x22:\x22[text]\x22},{\x22name\x22:\x22i-amphtml-binding\x22,\x22value\x22:[\x22\x22]},{\x22name\x22:\x22autoscroll\x22}]},{\x22name\x22:\x22amp-carousel-common\x22,\x22attrs\x22:[{\x22name\x22:\x22arrows\x22,\x22value\x22:[\x22\x22]},{\x22name\x22:\x22autoplay\x22,\x22valueRegex\x22:\x22(|[0-9]+)\x22},{\x22name\x22:\x22controls\x22},{\x22name\x22:\x22delay\x22,\x22valueRegex\x22:\x22[0-9]+\x22},{\x22name\x22:\x22dots\x22,\x22value\x22:[\x22\x22]},{\x22name\x22:\x22loop\x22,\x22value\x22:[\x22\x22]},{\x22name\x22:\x22slide\x22,\x22valueRegex\x22:\x22[0-9]+\x22},{\x22name\x22:\x22type\x22,\x22value\x22:[\x22carousel\x22,\x22slides\x22]},{\x22name\x22:\x22[slide]\x22}]}],\x22extensions\x22:[{\x22name\x22:\x22amp-accordion\x22,\x22versions\x22:[\x220.1\x22]},{\x22name\x22:\x22amp-anim\x22,\x22versions\x22:[\x220.1\x22]},{\x22name\x22:\x22amp-autocomplete\x22,\x22versions\x22:[\x220.1\x22]},{\x22name\x22:\x22amp-bind\x22,\x22versions\x22:[\x220.1\x22]},{\x22name\x22:\x22amp-carousel\x22,\x22versions\x22:[\x220.1\x22,\x220.2\x22]},{\x22name\x22:\x22amp-fit-text\x22,\x22versions\x22:[\x220.1\x22]},{\x22name\x22:\x22amp-form\x22,\x22versions\x22:[\x220.1\x22]},{\x22name\x22:\x22amp-image-lightbox\x22,\x22versions\x22:[\x220.1\x22,\x22latest\x22]},{\x22name\x22:\x22amp-lightbox\x22,\x22versions\x22:[\x220.1\x22,\x22latest\x22]},{\x22name\x22:\x22amp-list\x22,\x22versions\x22:[\x220.1\x22]},{\x22name\x22:\x22amp-mustache\x22,\x22versions\x22:[\x220.1\x22,\x220.2\x22]},{\x22name\x22:\x22amp-selector\x22,\x22versions\x22:[\x220.1\x22]},{\x22name\x22:\x22amp-sidebar\x22,\x22versions\x22:[\x220.1\x22]},{\x22name\x22:\x22amp-timeago\x22,\x22versions\x22:[\x220.1\x22]}],\x22declarations\x22:[{\x22name\x22:\x22-moz-appearance\x22},{\x22name\x22:\x22-webkit-appearance\x22},{\x22name\x22:\x22-webkit-tap-highlight-color\x22},{\x22name\x22:\x22align-content\x22},{\x22name\x22:\x22align-items\x22},{\x22name\x22:\x22align-self\x22},{\x22name\x22:\x22appearance\x22},{\x22name\x22:\x22aspect-ratio\x22},{\x22name\x22:\x22azimuth\x22},{\x22name\x22:\x22background\x22},{\x22name\x22:\x22background-attachment\x22},{\x22name\x22:\x22background-blend-mode\x22},{\x22name\x22:\x22background-clip\x22},{\x22name\x22:\x22background-color\x22},{\x22name\x22:\x22background-image\x22},{\x22name\x22:\x22background-origin\x22},{\x22name\x22:\x22background-position\x22},{\x22name\x22:\x22background-repeat\x22},{\x22name\x22:\x22background-size\x22},{\x22name\x22:\x22border\x22},{\x22name\x22:\x22border-bottom\x22},{\x22name\x22:\x22border-bottom-color\x22},{\x22name\x22:\x22border-bottom-left-radius\x22},{\x22name\x22:\x22border-bottom-right-radius\x22},{\x22name\x22:\x22border-bottom-style\x22},{\x22name\x22:\x22border-bottom-width\x22},{\x22name\x22:\x22border-collapse\x22},{\x22name\x22:\x22border-color\x22},{\x22name\x22:\x22border-left\x22},{\x22name\x22:\x22border-left-color\x22},{\x22name\x22:\x22border-left-style\x22},{\x22name\x22:\x22border-left-width\x22},{\x22name\x22:\x22border-radius\x22},{\x22name\x22:\x22border-right\x22},{\x22name\x22:\x22border-right-color\x22},{\x22name\x22:\x22border-right-style\x22},{\x22name\x22:\x22border-right-width\x22},{\x22name\x22:\x22border-spacing\x22},{\x22name\x22:\x22border-style\x22},{\x22name\x22:\x22border-top\x22},{\x22name\x22:\x22border-top-color\x22},{\x22name\x22:\x22border-top-left-radius\x22},{\x22name\x22:\x22border-top-right-radius\x22},{\x22name\x22:\x22border-top-style\x22},{\x22name\x22:\x22border-top-width\x22},{\x22name\x22:\x22border-width\x22},{\x22name\x22:\x22bottom\x22},{\x22name\x22:\x22box-shadow\x22},{\x22name\x22:\x22box-sizing\x22},{\x22name\x22:\x22break-after\x22},{\x22name\x22:\x22break-before\x22},{\x22name\x22:\x22break-inside\x22},{\x22name\x22:\x22caption-side\x22},{\x22name\x22:\x22caret-color\x22},{\x22name\x22:\x22clear\x22},{\x22name\x22:\x22color\x22},{\x22name\x22:\x22color-adjust\x22},{\x22name\x22:\x22column-count\x22},{\x22name\x22:\x22column-fill\x22},{\x22name\x22:\x22column-gap\x22},{\x22name\x22:\x22column-rule\x22},{\x22name\x22:\x22column-rule-color\x22},{\x22name\x22:\x22column-rule-style\x22},{\x22name\x22:\x22column-rule-width\x22},{\x22name\x22:\x22column-span\x22},{\x22name\x22:\x22column-width\x22},{\x22name\x22:\x22columns\x22},{\x22name\x22:\x22counter-increment\x22},{\x22name\x22:\x22counter-reset\x22},{\x22name\x22:\x22cursor\x22,\x22value\x22:[\x22initial\x22,\x22pointer\x22]},{\x22name\x22:\x22direction\x22},{\x22name\x22:\x22display\x22},{\x22name\x22:\x22elevation\x22},{\x22name\x22:\x22empty-cells\x22},{\x22name\x22:\x22filter\x22,\x22valueRegex\x22:\x22^\x20*((blur|brightness|contrast|drop-shadow|grayscale|hue-rotate|invert|opacity|saturate|sepia)\x5c\x5c(([^()\x20]*|(rgb|rgba|hsl|hsla)\x5c\x5c([^()]*\x5c\x5c))(\x20+([^()\x20]*|(rgb|rgba|hsl|hsla)\x5c\x5c([^()]*\x5c\x5c)))*\x5c\x5c)\x20*)*$\x22},{\x22name\x22:\x22flex\x22},{\x22name\x22:\x22flex-basis\x22},{\x22name\x22:\x22flex-direction\x22},{\x22name\x22:\x22flex-flow\x22},{\x22name\x22:\x22flex-grow\x22},{\x22name\x22:\x22flex-shrink\x22},{\x22name\x22:\x22flex-wrap\x22},{\x22name\x22:\x22float\x22},{\x22name\x22:\x22font\x22},{\x22name\x22:\x22font-family\x22},{\x22name\x22:\x22font-feature-settings\x22},{\x22name\x22:\x22font-kerning\x22},{\x22name\x22:\x22font-size\x22},{\x22name\x22:\x22font-size-adjust\x22},{\x22name\x22:\x22font-stretch\x22},{\x22name\x22:\x22font-style\x22},{\x22name\x22:\x22font-synthesis\x22},{\x22name\x22:\x22font-variant\x22},{\x22name\x22:\x22font-variant-alternates\x22},{\x22name\x22:\x22font-variant-caps\x22},{\x22name\x22:\x22font-variant-east-asian\x22},{\x22name\x22:\x22font-variant-ligatures\x22},{\x22name\x22:\x22font-variant-numeric\x22},{\x22name\x22:\x22font-variation-settings\x22},{\x22name\x22:\x22font-weight\x22},{\x22name\x22:\x22gap\x22},{\x22name\x22:\x22grid\x22},{\x22name\x22:\x22grid-area\x22},{\x22name\x22:\x22grid-auto-columns\x22},{\x22name\x22:\x22grid-auto-flow\x22},{\x22name\x22:\x22grid-auto-rows\x22},{\x22name\x22:\x22grid-column\x22},{\x22name\x22:\x22grid-column-end\x22},{\x22name\x22:\x22grid-column-start\x22},{\x22name\x22:\x22grid-row\x22},{\x22name\x22:\x22grid-row-end\x22},{\x22name\x22:\x22grid-row-start\x22},{\x22name\x22:\x22grid-template\x22},{\x22name\x22:\x22grid-template-areas\x22},{\x22name\x22:\x22grid-template-columns\x22},{\x22name\x22:\x22grid-template-rows\x22},{\x22name\x22:\x22height\x22},{\x22name\x22:\x22hyphens\x22},{\x22name\x22:\x22image-orientation\x22},{\x22name\x22:\x22image-resolution\x22},{\x22name\x22:\x22inline-size\x22},{\x22name\x22:\x22isolation\x22},{\x22name\x22:\x22justify-content\x22},{\x22name\x22:\x22justify-items\x22},{\x22name\x22:\x22justify-self\x22},{\x22name\x22:\x22left\x22},{\x22name\x22:\x22letter-spacing\x22},{\x22name\x22:\x22line-break\x22},{\x22name\x22:\x22line-height\x22},{\x22name\x22:\x22list-style\x22},{\x22name\x22:\x22list-style-position\x22},{\x22name\x22:\x22list-style-type\x22},{\x22name\x22:\x22margin\x22},{\x22name\x22:\x22margin-bottom\x22},{\x22name\x22:\x22margin-left\x22},{\x22name\x22:\x22margin-right\x22},{\x22name\x22:\x22margin-top\x22},{\x22name\x22:\x22max-height\x22},{\x22name\x22:\x22max-width\x22},{\x22name\x22:\x22min-height\x22},{\x22name\x22:\x22min-width\x22},{\x22name\x22:\x22mix-blend-mode\x22},{\x22name\x22:\x22object-fit\x22},{\x22name\x22:\x22object-position\x22},{\x22name\x22:\x22offset-distance\x22},{\x22name\x22:\x22opacity\x22},{\x22name\x22:\x22order\x22},{\x22name\x22:\x22outline\x22},{\x22name\x22:\x22outline-color\x22},{\x22name\x22:\x22outline-offset\x22},{\x22name\x22:\x22outline-style\x22},{\x22name\x22:\x22outline-width\x22},{\x22name\x22:\x22overflow\x22},{\x22name\x22:\x22overflow-wrap\x22},{\x22name\x22:\x22overflow-x\x22},{\x22name\x22:\x22overflow-y\x22},{\x22name\x22:\x22padding\x22},{\x22name\x22:\x22padding-bottom\x22},{\x22name\x22:\x22padding-left\x22},{\x22name\x22:\x22padding-right\x22},{\x22name\x22:\x22padding-top\x22},{\x22name\x22:\x22pause\x22},{\x22name\x22:\x22pause-after\x22},{\x22name\x22:\x22pause-before\x22},{\x22name\x22:\x22perspective\x22},{\x22name\x22:\x22perspective-origin\x22},{\x22name\x22:\x22pitch\x22},{\x22name\x22:\x22pitch-range\x22},{\x22name\x22:\x22place-items\x22},{\x22name\x22:\x22position\x22},{\x22name\x22:\x22quotes\x22},{\x22name\x22:\x22resize\x22},{\x22name\x22:\x22richness\x22},{\x22name\x22:\x22right\x22},{\x22name\x22:\x22row-gap\x22},{\x22name\x22:\x22speak\x22},{\x22name\x22:\x22speak-header\x22},{\x22name\x22:\x22speak-numeral\x22},{\x22name\x22:\x22speak-punctuation\x22},{\x22name\x22:\x22speech-rate\x22},{\x22name\x22:\x22stress\x22},{\x22name\x22:\x22table-layout\x22},{\x22name\x22:\x22text-align\x22},{\x22name\x22:\x22text-align-last\x22},{\x22name\x22:\x22text-combine-upright\x22},{\x22name\x22:\x22text-decoration\x22},{\x22name\x22:\x22text-decoration-color\x22},{\x22name\x22:\x22text-decoration-line\x22},{\x22name\x22:\x22text-decoration-skip\x22},{\x22name\x22:\x22text-decoration-style\x22},{\x22name\x22:\x22text-emphasis\x22},{\x22name\x22:\x22text-emphasis-color\x22},{\x22name\x22:\x22text-emphasis-position\x22},{\x22name\x22:\x22text-emphasis-style\x22},{\x22name\x22:\x22text-indent\x22},{\x22name\x22:\x22text-justify\x22},{\x22name\x22:\x22text-orientation\x22},{\x22name\x22:\x22text-overflow\x22},{\x22name\x22:\x22text-shadow\x22},{\x22name\x22:\x22text-transform\x22},{\x22name\x22:\x22text-underline-position\x22},{\x22name\x22:\x22top\x22},{\x22name\x22:\x22transform\x22},{\x22name\x22:\x22transform-box\x22},{\x22name\x22:\x22transform-origin\x22},{\x22name\x22:\x22transform-style\x22},{\x22name\x22:\x22transition\x22,\x22valueRegex\x22:\x22^\x20*((initial|unset)|(((none|offset-distance|opacity|transform|visibility)(\x20*(|-|\x5c\x5c+)([0-9]+|[0-9]*\x5c\x5c.[0-9]+)(e(|-|\x5c\x5c+)?[0-9]+)?(s|ms)(\x20*(linear|(ease|ease-in|ease-out|ease-in-out|cubic-bezier\x5c\x5c(\x20*(|-|\x5c\x5c+)([0-9]+|[0-9]*\x5c\x5c.[0-9]+)(e(|-|\x5c\x5c+)?[0-9]+)?(,\x20*(|-|\x5c\x5c+)([0-9]+|[0-9]*\x5c\x5c.[0-9]+)(e(|-|\x5c\x5c+)?[0-9]+)?){3}\x20*\x5c\x5c))|(step-start|step-end|steps\x5c\x5c(\x20*(|-|\x5c\x5c+)[0-9]+(,\x20*(jump-start|jump-end|jump-none|jump-both|start|end))?\x20*\x5c\x5c)))(\x20*(|-|\x5c\x5c+)([0-9]+|[0-9]*\x5c\x5c.[0-9]+)(e(|-|\x5c\x5c+)?[0-9]+)?(s|ms))?)?)?)(,\x20*((none|offset-distance|opacity|transform|visibility)(\x20*(|-|\x5c\x5c+)([0-9]+|[0-9]*\x5c\x5c.[0-9]+)(e(|-|\x5c\x5c+)?[0-9]+)?(s|ms)(\x20*(linear|(ease|ease-in|ease-out|ease-in-out|cubic-bezier\x5c\x5c(\x20*(|-|\x5c\x5c+)([0-9]+|[0-9]*\x5c\x5c.[0-9]+)(e(|-|\x5c\x5c+)?[0-9]+)?(,\x20*(|-|\x5c\x5c+)([0-9]+|[0-9]*\x5c\x5c.[0-9]+)(e(|-|\x5c\x5c+)?[0-9]+)?){3}\x20*\x5c\x5c))|(step-start|step-end|steps\x5c\x5c(\x20*(|-|\x5c\x5c+)[0-9]+(,\x20*(jump-start|jump-end|jump-none|jump-both|start|end))?\x20*\x5c\x5c)))(\x20*(|-|\x5c\x5c+)([0-9]+|[0-9]*\x5c\x5c.[0-9]+)(e(|-|\x5c\x5c+)?[0-9]+)?(s|ms))?)?)?))*))\x20*$\x22},{\x22name\x22:\x22transition-delay\x22},{\x22name\x22:\x22transition-duration\x22},{\x22name\x22:\x22transition-property\x22,\x22valueRegex\x22:\x22^\x20*(initial|unset|(none|offset-distance|opacity|transform|visibility)(,\x20*(none|offset-distance|opacity|transform|visibility))*)\x20*$\x22},{\x22name\x22:\x22transition-timing-function\x22},{\x22name\x22:\x22unicode-bidi\x22},{\x22name\x22:\x22vertical-align\x22},{\x22name\x22:\x22visibility\x22,\x22value\x22:[\x22hidden\x22,\x22initial\x22,\x22visible\x22]},{\x22name\x22:\x22voice-family\x22},{\x22name\x22:\x22white-space\x22},{\x22name\x22:\x22width\x22},{\x22name\x22:\x22word-break\x22},{\x22name\x22:\x22word-spacing\x22},{\x22name\x22:\x22word-wrap\x22},{\x22name\x22:\x22writing-mode\x22},{\x22name\x22:\x22z-index\x22,\x22valueRegex\x22:\x22([-+]?0)|([-+]?100)|([-+]?[1-9][0-9]?)\x22}]}','34495ihBLoV','7864640fxdzLd','18916jWyROg','54aOFoWI'];a11_0x30e0=function(){return _0x3e3e65;};return a11_0x30e0();}(function(_0x30e151,_0x3a71b0){var _0x21b440=a11_0x1320,_0x501876=_0x30e151();while(!![]){try{var _0x8e4047=-parseInt(_0x21b440(0x9c))/0x1+parseInt(_0x21b440(0x97))/0x2+-parseInt(_0x21b440(0x96))/0x3*(-parseInt(_0x21b440(0x94))/0x4)+-parseInt(_0x21b440(0x92))/0x5*(-parseInt(_0x21b440(0x95))/0x6)+parseInt(_0x21b440(0x9b))/0x7+-parseInt(_0x21b440(0x93))/0x8+-parseInt(_0x21b440(0x9a))/0x9;if(_0x8e4047===_0x3a71b0)break;else _0x501876['push'](_0x501876['shift']());}catch(_0x2e9cee){_0x501876['push'](_0x501876['shift']());}}}(a11_0x30e0,0xa0266));function a11_0x1320(_0x3a129b,_0x562ede){var _0x30e06b=a11_0x30e0();return a11_0x1320=function(_0x132080,_0x592e37){_0x132080=_0x132080-0x91;var _0x4e7ba5=_0x30e06b[_0x132080];return _0x4e7ba5;},a11_0x1320(_0x3a129b,_0x562ede);}(globalThis['webpackChunk']=globalThis[a11_0x223daf(0x98)]||[])['push']([[0x1ad],{0x1d05:_0x519f1b=>{var _0x37b2b8=a11_0x223daf;_0x519f1b[_0x37b2b8(0x99)]=JSON[_0x37b2b8(0x9d)](_0x37b2b8(0x91));}}]);
|