-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathapp.bundle.js
607 lines (544 loc) · 107 KB
/
app.bundle.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
zuix.bundle(
/*
* ZUIX Application Bundle
*
* app.bundle.js generated by *zuix-bundler*
* on 2017-06-12T20:21:28.658Z
*
* Resource list (12):
*
* - [css]
* css/app.css (_res/style/style--819988310)
*
* - [css]
* css/animate.min.css (_res/style/style-890323534)
*
* - [css]
* css/flex-layout-attribute.min.css (_res/style/style-898046842)
*
* - [js]
* node_modules/moment-mini/moment.min.js (_res/script/script-463545283)
*
* - [html] [css] [js]
* components/hn_list
*
* - [css]
* https://fonts.googleapis.com/css?family=Scope+One (_res/style/style--434543133)
*
* - [html] [js]
* https://genielabs.github.io/zuix/ui/controls/scroll_helper
*
* - [html] [css] [js]
* components/hn_thread
*
* - [html] [css] [js]
* content/about
*
* - [js]
* https://genielabs.github.io/zuix/ui/controls/list_view
*
* - [html] [css] [js]
* components/hn_list/story_item
*
* - [html] [css] [js]
* components/hn_message
*
*
*/
[{"componentId":"_res\u002Fstyle\u002Fstyle--819988310","view":null,"css":"body {\n padding-top: 72px;\n font-family: \"HelveticaNeue-Light\", \"Helvetica Neue Light\", \"Helvetica Neue\", Helvetica, Arial, \"Lucida Grande\", sans-serif;\n \u002F*font-family: Arial, Helvetica, sans-serif;*\u002F\n font-weight: 300;\n font-size: 16px;\n margin: 0;\n overflow-x: hidden;\n background-color: whitesmoke;\n}\nheader {\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n height: 64px;\n background-color: #1b6ab9;\n color:white;\n z-index: 1;\n -webkit-box-shadow: 0 4px 8px rgba(100, 100, 100, 0.49);\n -moz-box-shadow: 0 4px 8px rgba(100, 100, 100, 0.49);\n box-shadow: 0 4px 8px rgba(100, 100, 100, 0.49);\n padding-left: 6px;\n padding-right: 6px;\n}\nheader h1 {\n margin: 0;\n font-weight: bold;\n}\nheader a {\n text-decoration: none;\n color: white;\n}\nheader .menu a {\n font-size: 120%;\n margin-right: 8px;\n}\nheader .menu a.is-active {\n color: yellow;\n font-weight: bolder;\n}\nheader \u003E div {\n height: 64px;\n}\n\nfooter {\n position: fixed;\n bottom: 0;\n height: 64px;\n background-color: #1b6ab9;\n color:white;\n z-index: 1;\n -webkit-box-shadow: 0 -4px 8px rgba(100, 100, 100, 0.49);\n -moz-box-shadow: 0 -4px 8px rgba(100, 100, 100, 0.49);\n box-shadow: 0 -4px 8px rgba(100, 100, 100, 0.49);\n padding-right: 10px;\n padding-left: 10px;\n display: none;\n}\n\n\n\u002F* -- *\u002F\n\n\n.scrollable {\n position: absolute;\n top: 64px; left: 0; right: 0; bottom: 0;\n overflow-y: auto;\n}\n\n.scrollable \u003E div \u003E div {\n background-color: white;\n border-left: solid 1px lightgray;\n border-right: solid 1px lightgray;\n}\n\n.tab-visible {\n display: block;\n}\n.tab-hidden {\n display: none;\n}\n\n.list-item {\n min-height: 85px;\n}\n\n.page-button {\n cursor: pointer;\n position: fixed;\n right:16px;\n bottom:16px;\n height: 48px;\n width: 48px;\n background-color: #1b6ab9;\n border-radius: 24px;\n -webkit-border-radius: 24px;\n -moz-border-radius: 24px;\n -webkit-box-shadow: 0 0 12px 4px rgba(50, 50, 50, 0.25);\n -moz-box-shadow: 0 0 12px 4px rgba(50, 50, 50, 0.25);\n box-shadow: 0 0 12px 4px rgba(50, 50, 50, 0.25);\n text-align: center;\n vertical-align: middle;\n line-height: 48px;\n color: white;\n font-size: 160%;\n}\n\n.message {\n padding-top: 20px;\n padding-left: 20px;\n padding-right: 20px;\n}\n\n.single-line {\n width: 100%;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.about-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right:0;\n bottom: 0;\n width: 100vw;\n height: 100vh;\n z-index: 100;\n background: rgba(0,0,0,0.5);\n}\n\nheader .thread-title {\n color: white;\n font-weight:bolder;\n font-size: 160%;\n}\nheader .thread-info {\n color: white;\n font-size: 110%;\n padding-right:16px;\n}\nheader .thread-info a {\n color: white;\n text-decoration: none;\n padding-left: 16px;\n padding-right: 16px;\n}\n\nfooter .about-btn {\n color: white;\n text-decoration: none;\n text-align: center;\n font-size: 18px;\n height: 28px;\n width: 28px;\n border-radius: 14px;\n -webkit-border-radius: 14px;\n -moz-border-radius: 14px;\n -webkit-box-shadow: 0 0 12px 3px rgba(50, 50, 50, 0.25);\n -moz-box-shadow: 0 0 12px 3px rgba(50, 50, 50, 0.25);\n box-shadow: 0 0 12px 3px rgba(50, 50, 50, 0.25);\n border: 2px solid rgba(255,255,255,0.5);\n display: block;\n margin-left: 8px;\n}\n\nfooter .list-info {\n color: white;\n font-size: 90%;\n font-weight:bold;\n}\n\nfooter .page-nav {\n color: white;\n min-width: 32px;\n text-align: center;\n font-size:180%;\n text-decoration: none;\n padding-left:16px;\n padding-right:16px;\n}\nfooter .page-count {\n min-width: 80px;\n}\n\n\n\u002F* Responsive overloads *\u002F\n\n@media only screen and (max-width: 560px) {\n body {\n font-size: 14px;\n }\n .list-item {\n min-height: 72px;\n }\n .message {\n padding-top: 14px;\n padding-left: 14px;\n padding-right: 14px;\n }\n}\n\n@media only screen and (max-width: 400px) {\n body {\n font-size: 12px;\n }\n header h1 {\n font-size: 120%;\n }\n .list-item {\n min-height: 64px;\n }\n .message {\n padding-top: 10px;\n padding-left: 10px;\n padding-right: 10px;\n }\n}\n","controller":null,"using":"css\u002Fapp.css"},{"componentId":"_res\u002Fstyle\u002Fstyle-890323534","view":null,"css":"@charset \"UTF-8\";\u002F*!\n * animate.css -http:\u002F\u002Fdaneden.me\u002Fanimate (CUSTOM BUILD)\n * Version - 3.5.1\n * Licensed under the MIT license - http:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT\n *\n * Copyright (c) 2016 Daniel Eden\n *\u002F.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}@-webkit-keyframes bounce{20%,53%,80%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.050,.855,.060);animation-timing-function:cubic-bezier(.755,.050,.855,.060);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.050,.855,.060);animation-timing-function:cubic-bezier(.755,.050,.855,.060);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}@keyframes bounce{20%,53%,80%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.050,.855,.060);animation-timing-function:cubic-bezier(.755,.050,.855,.060);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.050,.855,.060);animation-timing-function:cubic-bezier(.755,.050,.855,.060);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{50%,from,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{50%,from,to{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{from{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDownBig{from{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{from{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeft{from{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{from{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeftBig{from{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{from{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRight{from{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{from{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRightBig{from{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{from{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUp{from{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{from{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUpBig{from{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{from{opacity:1}to{opacity:0}}@keyframes fadeOut{from{opacity:1}to{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}\n","controller":null,"using":"css\u002Fanimate.min.css"},{"componentId":"_res\u002Fstyle\u002Fstyle-898046842","view":null,"css":"\u002F**\n * Flex layout attribute\n * HTML layout helper based on CSS flexbox specification.\n * \n * VERSION: v1.0.3\n * DATE: 2016-06-21\n * URL: http:\u002F\u002Fprogressivered.com\u002Ffla\u002F\n * AUTHOR: Stefan Kovac | stef@progressivered.com | http:\u002F\u002Fprogressivered.com\u002F\n * LICENSE: MIT \n *\u002F\n \nhtml{box-sizing:border-box}*,:after,:before{box-sizing:inherit}[layout]{display:-ms-flexbox;display:flex}[layout*=column],[layout*=row]{width:100%;max-width:100%}[layout^=row]{-ms-flex-direction:row;flex-direction:row}[layout^=column]{-ms-flex-direction:column;flex-direction:column}[layout*=row][layout*=reverse]{-ms-flex-direction:row-reverse;flex-direction:row-reverse}[layout*=column][layout*=reverse]{-ms-flex-direction:column-reverse;flex-direction:column-reverse}[layout*=columns],[layout*=rows]{-ms-flex-wrap:wrap;flex-wrap:wrap}[layout=none]{-ms-flex:none;flex:none}[layout*=column][layout*=top-],[layout*=row][layout*=-left]{-ms-flex-pack:start;justify-content:flex-start}[layout*=column][layout*=center-],[layout*=row][layout*=-center],[layout~=centered]{-ms-flex-pack:center;justify-content:center}[layout*=column][layout*=bottom-],[layout*=row][layout*=-right]{-ms-flex-pack:end;justify-content:flex-end}[layout*=column][layout*=spread-],[layout*=row][layout*=-spread]{-ms-flex-pack:distribute;justify-content:space-around}[layout*=column][layout*=justify-],[layout*=row][layout*=-justify]{-ms-flex-pack:justify;justify-content:space-between}[layout*=column][layout*=-left],[layout*=row][layout*=top-]{-ms-flex-align:start;-ms-grid-row-align:flex-start;align-items:flex-start}[layout*=column][layout*=-center],[layout*=row][layout*=center-],[layout~=centered]{-ms-flex-align:center;-ms-grid-row-align:center;align-items:center}[layout*=column][layout*=-right],[layout*=row][layout*=bottom-]{-ms-flex-align:end;-ms-grid-row-align:flex-end;align-items:flex-end}[layout*=column][layout*=-stretch],[layout*=row][layout*=stretch-]{-ms-flex-align:stretch;-ms-grid-row-align:stretch;align-items:stretch}[layout*=columns][layout*=-left],[layout*=rows][layout*=top-]{-ms-flex-line-pack:start;align-content:flex-start}[layout*=columns][layout*=-right],[layout*=rows][layout*=bottom-]{-ms-flex-line-pack:end;align-content:flex-end}[layout*=columns][layout*=-center],[layout*=rows][layout*=center-]{-ms-flex-line-pack:center;align-content:center}[layout*=columns][layout*=-justify],[layout*=rows][layout*=justify-]{-ms-flex-line-pack:justify;align-content:space-between}[layout*=columns][layout*=-spread],[layout*=rows][layout*=spread-]{-ms-flex-line-pack:distribute;align-content:space-around}[layout*=columns][layout*=-stretch],[layout*=rows][layout*=stretch-]{-ms-flex-line-pack:stretch;align-content:stretch}@media (-ms-high-contrast:none),screen and (-ms-high-contrast:active){[layout*=column]:not([layout*=row])\u003E*{max-width:auto}[layout*=column][self*=top]{height:auto!important}[self~=size-]\u003E*{height:auto}}[layout*=column]:not([layout*=row]) [self*=left],[layout*=row]:not([layout*=column]) [self*=top]{-ms-flex-item-align:start;align-self:flex-start}[self~=center]{-ms-flex-item-align:center;align-self:center}[layout*=column]:not([layout*=row]) [self*=right],[layout*=row]:not([layout*=column]) [self*=bottom]{-ms-flex-item-align:end;align-self:flex-end}[self*=stretch]{-ms-flex-item-align:stretch;align-self:stretch}[layout][self*=center]{margin-left:auto;margin-right:auto}[layout][self*=right]{margin-right:0}[layout][self*=left]{margin-left:0}[layout*=column] [self*=bottom]{margin-top:auto}[layout*=column] [self*=top]{margin-bottom:auto}[layout*=row] [self*=left]{margin-right:auto}[layout*=row] [self*=right]{margin-left:auto}[self~=size-1of5]{width:20%}[self~=size-1of4]{width:25%}[self~=size-1of3]{width:33.33333%}[self~=size-2of5]{width:40%}[self~=size-1of2]{width:50%}[self~=size-3of5]{width:60%}[self~=size-2of3]{width:66.6666%}[self~=size-3of4]{width:75%}[self~=size-4of5]{width:80%}[self~=size-1of1]{width:100%}[layout*=column][layout*=stretch-]\u003E:not([self*=size-]),[layout*=row][layout*=-stretch]\u003E:not([self*=size-]),[self~=size-x1]{-ms-flex:1 0 0%!important;flex:1 0 0%!important}[self~=size-x2]{-ms-flex:2 0 0%!important;flex:2 0 0%!important}[self~=size-x3]{-ms-flex:3 0 0%!important;flex:3 0 0%!important}[self~=size-x4]{-ms-flex:4 0 0%!important;flex:4 0 0%!important}[self~=size-x5]{-ms-flex:5 0 0%!important;flex:5 0 0%!important}[self~=size-x6]{-ms-flex:6 0 0%!important;flex:6 0 0%!important}[self~=size-x7]{-ms-flex:7 0 0%!important;flex:7 0 0%!important}[self~=size-x8]{-ms-flex:8 0 0%!important;flex:8 0 0%!important}[self~=size-x9]{-ms-flex:9 0 0%!important;flex:9 0 0%!important}[self*=size-auto]{-ms-flex:1 1 auto;flex:1 1 auto}[self*=size-x0]{-ms-flex:0 0 auto;flex:0 0 auto}[self~=size-xxlarge]{max-width:1440px;width:100%}[self~=size-xlarge]{max-width:1200px;width:100%}[self~=size-large]{max-width:960px;width:100%}[self~=size-larger]{max-width:840px;width:100%}[self~=size-medium]{max-width:720px;width:100%}[self~=size-smaller]{max-width:600px;width:100%}[self~=size-small]{max-width:480px;width:100%}[self~=size-xsmall]{max-width:360px;width:100%}[self~=size-xxsmall]{max-width:240px;width:100%}[self*=size-x]:not([self*=small]):not([self*=large]){-ms-flex-negative:1;flex-shrink:1}[self~=first]{-ms-flex-order:-1;order:-1}[self~=order-1]{-ms-flex-order:1;order:1}[self~=order-2]{-ms-flex-order:2;order:2}[self~=order-3]{-ms-flex-order:3;order:3}[self~=last]{-ms-flex-order:999;order:999}[layout*=column]:not([layout*=row])\u003E*{-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:auto;flex-basis:auto}@media screen and (max-width:64em){[layout*=lg-row]{-ms-flex-direction:row;flex-direction:row}[layout*=lg-column]{-ms-flex-direction:column;flex-direction:column}[layout*=lg-columns],[layout*=lg-rows]{-ms-flex-wrap:wrap;flex-wrap:wrap}}@media screen and (max-width:52em){[layout*=md-row]{-ms-flex-direction:row;flex-direction:row}[layout*=md-column]{-ms-flex-direction:column;flex-direction:column}[layout*=md-columns],[layout*=md-rows]{-ms-flex-wrap:wrap;flex-wrap:wrap}}@media screen and (max-width:40em){[layout*=sm-row]{-ms-flex-direction:row;flex-direction:row}[layout*=sm-column]{-ms-flex-direction:column;flex-direction:column}[layout*=sm-columns],[layout*=sm-rows]{-ms-flex-wrap:wrap;flex-wrap:wrap}}@media screen and (max-width:64em){[self*=lg-full]{-ms-flex:1 1 100%!important;flex:1 1 100%!important;width:100%;max-width:100%}[self*=lg-half]{-ms-flex:1 1 50%!important;flex:1 1 50%!important;width:50%;max-width:50%}[self~=lg-first]{-ms-flex-order:-1;order:-1}[self~=lg-last]{-ms-flex-order:999;order:999}[self~=lg-hide]{display:none}[self~=lg-show]{display:inherit}}@media screen and (max-width:52em){[self*=md-full]{-ms-flex:1 1 100%!important;flex:1 1 100%!important;width:100%;max-width:100%}[self*=md-half]{-ms-flex:1 1 50%!important;flex:1 1 50%!important;width:50%;max-width:50%}[self~=md-first]{-ms-flex-order:-1;order:-1}[self~=md-last]{-ms-flex-order:999;order:999}[self~=md-hide]{display:none}[self~=md-show]{display:inherit}}@media screen and (max-width:40em){[self*=sm-full]{-ms-flex:1 1 100%!important;flex:1 1 100%!important;width:100%;max-width:100%}[self*=sm-half]{-ms-flex:1 1 50%!important;flex:1 1 50%!important;width:50%;max-width:50%}[self~=sm-first]{-ms-flex-order:-1;order:-1}[self~=sm-last]{-ms-flex-order:999;order:999}[self~=sm-hide]{display:none}[self~=sm-show]{display:inherit}}","controller":null,"using":"css\u002Fflex-layout-attribute.min.css"},{"componentId":"_res\u002Fscript\u002Fscript-463545283","view":null,"css":null,"controller":"\u002F\u002F! moment.js\n\u002F\u002F! version : 2.18.1\n\u002F\u002F! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n\u002F\u002F! license : MIT\n\u002F\u002F! momentjs.com\n!function(a,b){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=b():\"function\"==typeof define&&define.amd?define(b):a.moment=b()}(this,function(){\"use strict\";function a(){return sd.apply(null,arguments)}function b(a){sd=a}function c(a){return a instanceof Array||\"[object Array]\"===Object.prototype.toString.call(a)}function d(a){return null!=a&&\"[object Object]\"===Object.prototype.toString.call(a)}function e(a){var b;for(b in a)return!1;return!0}function f(a){return void 0===a}function g(a){return\"number\"==typeof a||\"[object Number]\"===Object.prototype.toString.call(a)}function h(a){return a instanceof Date||\"[object Date]\"===Object.prototype.toString.call(a)}function i(a,b){var c,d=[];for(c=0;c\u003Ca.length;++c)d.push(b(a[c],c));return d}function j(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function k(a,b){for(var c in b)j(b,c)&&(a[c]=b[c]);return j(b,\"toString\")&&(a.toString=b.toString),j(b,\"valueOf\")&&(a.valueOf=b.valueOf),a}function l(a,b,c,d){return sb(a,b,c,d,!0).utc()}function m(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}}function n(a){return null==a._pf&&(a._pf=m()),a._pf}function o(a){if(null==a._isValid){var b=n(a),c=ud.call(b.parsedDateParts,function(a){return null!=a}),d=!isNaN(a._d.getTime())&&b.overflow\u003C0&&!b.empty&&!b.invalidMonth&&!b.invalidWeekday&&!b.nullInput&&!b.invalidFormat&&!b.userInvalidated&&(!b.meridiem||b.meridiem&&c);if(a._strict&&(d=d&&0===b.charsLeftOver&&0===b.unusedTokens.length&&void 0===b.bigHour),null!=Object.isFrozen&&Object.isFrozen(a))return d;a._isValid=d}return a._isValid}function p(a){var b=l(NaN);return null!=a?k(n(b),a):n(b).userInvalidated=!0,b}function q(a,b){var c,d,e;if(f(b._isAMomentObject)||(a._isAMomentObject=b._isAMomentObject),f(b._i)||(a._i=b._i),f(b._f)||(a._f=b._f),f(b._l)||(a._l=b._l),f(b._strict)||(a._strict=b._strict),f(b._tzm)||(a._tzm=b._tzm),f(b._isUTC)||(a._isUTC=b._isUTC),f(b._offset)||(a._offset=b._offset),f(b._pf)||(a._pf=n(b)),f(b._locale)||(a._locale=b._locale),vd.length\u003E0)for(c=0;c\u003Cvd.length;c++)d=vd[c],e=b[d],f(e)||(a[d]=e);return a}function r(b){q(this,b),this._d=new Date(null!=b._d?b._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),wd===!1&&(wd=!0,a.updateOffset(this),wd=!1)}function s(a){return a instanceof r||null!=a&&null!=a._isAMomentObject}function t(a){return a\u003C0?Math.ceil(a)||0:Math.floor(a)}function u(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=t(b)),c}function v(a,b,c){var d,e=Math.min(a.length,b.length),f=Math.abs(a.length-b.length),g=0;for(d=0;d\u003Ce;d++)(c&&a[d]!==b[d]||!c&&u(a[d])!==u(b[d]))&&g++;return g+f}function w(b){a.suppressDeprecationWarnings===!1&&\"undefined\"!=typeof console&&console.warn&&console.warn(\"Deprecation warning: \"+b)}function x(b,c){var d=!0;return k(function(){if(null!=a.deprecationHandler&&a.deprecationHandler(null,b),d){for(var e,f=[],g=0;g\u003Carguments.length;g++){if(e=\"\",\"object\"==typeof arguments[g]){e+=\"\\n[\"+g+\"] \";for(var h in arguments[0])e+=h+\": \"+arguments[0][h]+\", \";e=e.slice(0,-2)}else e=arguments[g];f.push(e)}w(b+\"\\nArguments: \"+Array.prototype.slice.call(f).join(\"\")+\"\\n\"+(new Error).stack),d=!1}return c.apply(this,arguments)},c)}function y(b,c){null!=a.deprecationHandler&&a.deprecationHandler(b,c),xd[b]||(w(c),xd[b]=!0)}function z(a){return a instanceof Function||\"[object Function]\"===Object.prototype.toString.call(a)}function A(a){var b,c;for(c in a)b=a[c],z(b)?this[c]=b:this[\"_\"+c]=b;this._config=a,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+\"|\"+\u002F\\d{1,2}\u002F.source)}function B(a,b){var c,e=k({},a);for(c in b)j(b,c)&&(d(a[c])&&d(b[c])?(e[c]={},k(e[c],a[c]),k(e[c],b[c])):null!=b[c]?e[c]=b[c]:delete e[c]);for(c in a)j(a,c)&&!j(b,c)&&d(a[c])&&(e[c]=k({},e[c]));return e}function C(a){null!=a&&this.set(a)}function D(a,b,c){var d=this._calendar[a]||this._calendar.sameElse;return z(d)?d.call(b,c):d}function E(a){var b=this._longDateFormat[a],c=this._longDateFormat[a.toUpperCase()];return b||!c?b:(this._longDateFormat[a]=c.replace(\u002FMMMM|MM|DD|dddd\u002Fg,function(a){return a.slice(1)}),this._longDateFormat[a])}function F(){return this._invalidDate}function G(a){return this._ordinal.replace(\"%d\",a)}function H(a,b,c,d){var e=this._relativeTime[c];return z(e)?e(a,b,c,d):e.replace(\u002F%d\u002Fi,a)}function I(a,b){var c=this._relativeTime[a\u003E0?\"future\":\"past\"];return z(c)?c(b):c.replace(\u002F%s\u002Fi,b)}function J(a,b){var c=a.toLowerCase();Hd[c]=Hd[c+\"s\"]=Hd[b]=a}function K(a){return\"string\"==typeof a?Hd[a]||Hd[a.toLowerCase()]:void 0}function L(a){var b,c,d={};for(c in a)j(a,c)&&(b=K(c),b&&(d[b]=a[c]));return d}function M(a,b){Id[a]=b}function N(a){var b=[];for(var c in a)b.push({unit:c,priority:Id[c]});return b.sort(function(a,b){return a.priority-b.priority}),b}function O(b,c){return function(d){return null!=d?(Q(this,b,d),a.updateOffset(this,c),this):P(this,b)}}function P(a,b){return a.isValid()?a._d[\"get\"+(a._isUTC?\"UTC\":\"\")+b]():NaN}function Q(a,b,c){a.isValid()&&a._d[\"set\"+(a._isUTC?\"UTC\":\"\")+b](c)}function R(a){return a=K(a),z(this[a])?this[a]():this}function S(a,b){if(\"object\"==typeof a){a=L(a);for(var c=N(a),d=0;d\u003Cc.length;d++)this[c[d].unit](a[c[d].unit])}else if(a=K(a),z(this[a]))return this[a](b);return this}function T(a,b,c){var d=\"\"+Math.abs(a),e=b-d.length,f=a\u003E=0;return(f?c?\"+\":\"\":\"-\")+Math.pow(10,Math.max(0,e)).toString().substr(1)+d}function U(a,b,c,d){var e=d;\"string\"==typeof d&&(e=function(){return this[d]()}),a&&(Md[a]=e),b&&(Md[b[0]]=function(){return T(e.apply(this,arguments),b[1],b[2])}),c&&(Md[c]=function(){return this.localeData().ordinal(e.apply(this,arguments),a)})}function V(a){return a.match(\u002F\\[[\\s\\S]\u002F)?a.replace(\u002F^\\[|\\]$\u002Fg,\"\"):a.replace(\u002F\\\\\u002Fg,\"\")}function W(a){var b,c,d=a.match(Jd);for(b=0,c=d.length;b\u003Cc;b++)Md[d[b]]?d[b]=Md[d[b]]:d[b]=V(d[b]);return function(b){var e,f=\"\";for(e=0;e\u003Cc;e++)f+=z(d[e])?d[e].call(b,a):d[e];return f}}function X(a,b){return a.isValid()?(b=Y(b,a.localeData()),Ld[b]=Ld[b]||W(b),Ld[b](a)):a.localeData().invalidDate()}function Y(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(Kd.lastIndex=0;d\u003E=0&&Kd.test(a);)a=a.replace(Kd,c),Kd.lastIndex=0,d-=1;return a}function Z(a,b,c){ce[a]=z(b)?b:function(a,d){return a&&c?c:b}}function $(a,b){return j(ce,a)?ce[a](b._strict,b._locale):new RegExp(_(a))}function _(a){return aa(a.replace(\"\\\\\",\"\").replace(\u002F\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)\u002Fg,function(a,b,c,d,e){return b||c||d||e}))}function aa(a){return a.replace(\u002F[-\\\u002F\\\\^$*+?.()|[\\]{}]\u002Fg,\"\\\\$&\")}function ba(a,b){var c,d=b;for(\"string\"==typeof a&&(a=[a]),g(b)&&(d=function(a,c){c[b]=u(a)}),c=0;c\u003Ca.length;c++)de[a[c]]=d}function ca(a,b){ba(a,function(a,c,d,e){d._w=d._w||{},b(a,d._w,d,e)})}function da(a,b,c){null!=b&&j(de,a)&&de[a](b,c._a,c,a)}function ea(a,b){return new Date(Date.UTC(a,b+1,0)).getUTCDate()}function fa(a,b){return a?c(this._months)?this._months[a.month()]:this._months[(this._months.isFormat||oe).test(b)?\"format\":\"standalone\"][a.month()]:c(this._months)?this._months:this._months.standalone}function ga(a,b){return a?c(this._monthsShort)?this._monthsShort[a.month()]:this._monthsShort[oe.test(b)?\"format\":\"standalone\"][a.month()]:c(this._monthsShort)?this._monthsShort:this._monthsShort.standalone}function ha(a,b,c){var d,e,f,g=a.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],d=0;d\u003C12;++d)f=l([2e3,d]),this._shortMonthsParse[d]=this.monthsShort(f,\"\").toLocaleLowerCase(),this._longMonthsParse[d]=this.months(f,\"\").toLocaleLowerCase();return c?\"MMM\"===b?(e=ne.call(this._shortMonthsParse,g),e!==-1?e:null):(e=ne.call(this._longMonthsParse,g),e!==-1?e:null):\"MMM\"===b?(e=ne.call(this._shortMonthsParse,g),e!==-1?e:(e=ne.call(this._longMonthsParse,g),e!==-1?e:null)):(e=ne.call(this._longMonthsParse,g),e!==-1?e:(e=ne.call(this._shortMonthsParse,g),e!==-1?e:null))}function ia(a,b,c){var d,e,f;if(this._monthsParseExact)return ha.call(this,a,b,c);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),d=0;d\u003C12;d++){if(e=l([2e3,d]),c&&!this._longMonthsParse[d]&&(this._longMonthsParse[d]=new RegExp(\"^\"+this.months(e,\"\").replace(\".\",\"\")+\"$\",\"i\"),this._shortMonthsParse[d]=new RegExp(\"^\"+this.monthsShort(e,\"\").replace(\".\",\"\")+\"$\",\"i\")),c||this._monthsParse[d]||(f=\"^\"+this.months(e,\"\")+\"|^\"+this.monthsShort(e,\"\"),this._monthsParse[d]=new RegExp(f.replace(\".\",\"\"),\"i\")),c&&\"MMMM\"===b&&this._longMonthsParse[d].test(a))return d;if(c&&\"MMM\"===b&&this._shortMonthsParse[d].test(a))return d;if(!c&&this._monthsParse[d].test(a))return d}}function ja(a,b){var c;if(!a.isValid())return a;if(\"string\"==typeof b)if(\u002F^\\d+$\u002F.test(b))b=u(b);else if(b=a.localeData().monthsParse(b),!g(b))return a;return c=Math.min(a.date(),ea(a.year(),b)),a._d[\"set\"+(a._isUTC?\"UTC\":\"\")+\"Month\"](b,c),a}function ka(b){return null!=b?(ja(this,b),a.updateOffset(this,!0),this):P(this,\"Month\")}function la(){return ea(this.year(),this.month())}function ma(a){return this._monthsParseExact?(j(this,\"_monthsRegex\")||oa.call(this),a?this._monthsShortStrictRegex:this._monthsShortRegex):(j(this,\"_monthsShortRegex\")||(this._monthsShortRegex=re),this._monthsShortStrictRegex&&a?this._monthsShortStrictRegex:this._monthsShortRegex)}function na(a){return this._monthsParseExact?(j(this,\"_monthsRegex\")||oa.call(this),a?this._monthsStrictRegex:this._monthsRegex):(j(this,\"_monthsRegex\")||(this._monthsRegex=se),this._monthsStrictRegex&&a?this._monthsStrictRegex:this._monthsRegex)}function oa(){function a(a,b){return b.length-a.length}var b,c,d=[],e=[],f=[];for(b=0;b\u003C12;b++)c=l([2e3,b]),d.push(this.monthsShort(c,\"\")),e.push(this.months(c,\"\")),f.push(this.months(c,\"\")),f.push(this.monthsShort(c,\"\"));for(d.sort(a),e.sort(a),f.sort(a),b=0;b\u003C12;b++)d[b]=aa(d[b]),e[b]=aa(e[b]);for(b=0;b\u003C24;b++)f[b]=aa(f[b]);this._monthsRegex=new RegExp(\"^(\"+f.join(\"|\")+\")\",\"i\"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp(\"^(\"+e.join(\"|\")+\")\",\"i\"),this._monthsShortStrictRegex=new RegExp(\"^(\"+d.join(\"|\")+\")\",\"i\")}function pa(a){return qa(a)?366:365}function qa(a){return a%4===0&&a%100!==0||a%400===0}function ra(){return qa(this.year())}function sa(a,b,c,d,e,f,g){var h=new Date(a,b,c,d,e,f,g);return a\u003C100&&a\u003E=0&&isFinite(h.getFullYear())&&h.setFullYear(a),h}function ta(a){var b=new Date(Date.UTC.apply(null,arguments));return a\u003C100&&a\u003E=0&&isFinite(b.getUTCFullYear())&&b.setUTCFullYear(a),b}function ua(a,b,c){var d=7+b-c,e=(7+ta(a,0,d).getUTCDay()-b)%7;return-e+d-1}function va(a,b,c,d,e){var f,g,h=(7+c-d)%7,i=ua(a,d,e),j=1+7*(b-1)+h+i;return j\u003C=0?(f=a-1,g=pa(f)+j):j\u003Epa(a)?(f=a+1,g=j-pa(a)):(f=a,g=j),{year:f,dayOfYear:g}}function wa(a,b,c){var d,e,f=ua(a.year(),b,c),g=Math.floor((a.dayOfYear()-f-1)\u002F7)+1;return g\u003C1?(e=a.year()-1,d=g+xa(e,b,c)):g\u003Exa(a.year(),b,c)?(d=g-xa(a.year(),b,c),e=a.year()+1):(e=a.year(),d=g),{week:d,year:e}}function xa(a,b,c){var d=ua(a,b,c),e=ua(a+1,b,c);return(pa(a)-d+e)\u002F7}function ya(a){return wa(a,this._week.dow,this._week.doy).week}function za(){return this._week.dow}function Aa(){return this._week.doy}function Ba(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),\"d\")}function Ca(a){var b=wa(this,1,4).week;return null==a?b:this.add(7*(a-b),\"d\")}function Da(a,b){return\"string\"!=typeof a?a:isNaN(a)?(a=b.weekdaysParse(a),\"number\"==typeof a?a:null):parseInt(a,10)}function Ea(a,b){return\"string\"==typeof a?b.weekdaysParse(a)%7||7:isNaN(a)?null:a}function Fa(a,b){return a?c(this._weekdays)?this._weekdays[a.day()]:this._weekdays[this._weekdays.isFormat.test(b)?\"format\":\"standalone\"][a.day()]:c(this._weekdays)?this._weekdays:this._weekdays.standalone}function Ga(a){return a?this._weekdaysShort[a.day()]:this._weekdaysShort}function Ha(a){return a?this._weekdaysMin[a.day()]:this._weekdaysMin}function Ia(a,b,c){var d,e,f,g=a.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],d=0;d\u003C7;++d)f=l([2e3,1]).day(d),this._minWeekdaysParse[d]=this.weekdaysMin(f,\"\").toLocaleLowerCase(),this._shortWeekdaysParse[d]=this.weekdaysShort(f,\"\").toLocaleLowerCase(),this._weekdaysParse[d]=this.weekdays(f,\"\").toLocaleLowerCase();return c?\"dddd\"===b?(e=ne.call(this._weekdaysParse,g),e!==-1?e:null):\"ddd\"===b?(e=ne.call(this._shortWeekdaysParse,g),e!==-1?e:null):(e=ne.call(this._minWeekdaysParse,g),e!==-1?e:null):\"dddd\"===b?(e=ne.call(this._weekdaysParse,g),e!==-1?e:(e=ne.call(this._shortWeekdaysParse,g),e!==-1?e:(e=ne.call(this._minWeekdaysParse,g),e!==-1?e:null))):\"ddd\"===b?(e=ne.call(this._shortWeekdaysParse,g),e!==-1?e:(e=ne.call(this._weekdaysParse,g),e!==-1?e:(e=ne.call(this._minWeekdaysParse,g),e!==-1?e:null))):(e=ne.call(this._minWeekdaysParse,g),e!==-1?e:(e=ne.call(this._weekdaysParse,g),e!==-1?e:(e=ne.call(this._shortWeekdaysParse,g),e!==-1?e:null)))}function Ja(a,b,c){var d,e,f;if(this._weekdaysParseExact)return Ia.call(this,a,b,c);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),d=0;d\u003C7;d++){if(e=l([2e3,1]).day(d),c&&!this._fullWeekdaysParse[d]&&(this._fullWeekdaysParse[d]=new RegExp(\"^\"+this.weekdays(e,\"\").replace(\".\",\".?\")+\"$\",\"i\"),this._shortWeekdaysParse[d]=new RegExp(\"^\"+this.weekdaysShort(e,\"\").replace(\".\",\".?\")+\"$\",\"i\"),this._minWeekdaysParse[d]=new RegExp(\"^\"+this.weekdaysMin(e,\"\").replace(\".\",\".?\")+\"$\",\"i\")),this._weekdaysParse[d]||(f=\"^\"+this.weekdays(e,\"\")+\"|^\"+this.weekdaysShort(e,\"\")+\"|^\"+this.weekdaysMin(e,\"\"),this._weekdaysParse[d]=new RegExp(f.replace(\".\",\"\"),\"i\")),c&&\"dddd\"===b&&this._fullWeekdaysParse[d].test(a))return d;if(c&&\"ddd\"===b&&this._shortWeekdaysParse[d].test(a))return d;if(c&&\"dd\"===b&&this._minWeekdaysParse[d].test(a))return d;if(!c&&this._weekdaysParse[d].test(a))return d}}function Ka(a){if(!this.isValid())return null!=a?this:NaN;var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=Da(a,this.localeData()),this.add(a-b,\"d\")):b}function La(a){if(!this.isValid())return null!=a?this:NaN;var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,\"d\")}function Ma(a){if(!this.isValid())return null!=a?this:NaN;if(null!=a){var b=Ea(a,this.localeData());return this.day(this.day()%7?b:b-7)}return this.day()||7}function Na(a){return this._weekdaysParseExact?(j(this,\"_weekdaysRegex\")||Qa.call(this),a?this._weekdaysStrictRegex:this._weekdaysRegex):(j(this,\"_weekdaysRegex\")||(this._weekdaysRegex=ye),this._weekdaysStrictRegex&&a?this._weekdaysStrictRegex:this._weekdaysRegex)}function Oa(a){return this._weekdaysParseExact?(j(this,\"_weekdaysRegex\")||Qa.call(this),a?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(j(this,\"_weekdaysShortRegex\")||(this._weekdaysShortRegex=ze),this._weekdaysShortStrictRegex&&a?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Pa(a){return this._weekdaysParseExact?(j(this,\"_weekdaysRegex\")||Qa.call(this),a?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(j(this,\"_weekdaysMinRegex\")||(this._weekdaysMinRegex=Ae),this._weekdaysMinStrictRegex&&a?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Qa(){function a(a,b){return b.length-a.length}var b,c,d,e,f,g=[],h=[],i=[],j=[];for(b=0;b\u003C7;b++)c=l([2e3,1]).day(b),d=this.weekdaysMin(c,\"\"),e=this.weekdaysShort(c,\"\"),f=this.weekdays(c,\"\"),g.push(d),h.push(e),i.push(f),j.push(d),j.push(e),j.push(f);for(g.sort(a),h.sort(a),i.sort(a),j.sort(a),b=0;b\u003C7;b++)h[b]=aa(h[b]),i[b]=aa(i[b]),j[b]=aa(j[b]);this._weekdaysRegex=new RegExp(\"^(\"+j.join(\"|\")+\")\",\"i\"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp(\"^(\"+i.join(\"|\")+\")\",\"i\"),this._weekdaysShortStrictRegex=new RegExp(\"^(\"+h.join(\"|\")+\")\",\"i\"),this._weekdaysMinStrictRegex=new RegExp(\"^(\"+g.join(\"|\")+\")\",\"i\")}function Ra(){return this.hours()%12||12}function Sa(){return this.hours()||24}function Ta(a,b){U(a,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),b)})}function Ua(a,b){return b._meridiemParse}function Va(a){return\"p\"===(a+\"\").toLowerCase().charAt(0)}function Wa(a,b,c){return a\u003E11?c?\"pm\":\"PM\":c?\"am\":\"AM\"}function Xa(a){return a?a.toLowerCase().replace(\"_\",\"-\"):a}function Ya(a){for(var b,c,d,e,f=0;f\u003Ca.length;){for(e=Xa(a[f]).split(\"-\"),b=e.length,c=Xa(a[f+1]),c=c?c.split(\"-\"):null;b\u003E0;){if(d=Za(e.slice(0,b).join(\"-\")))return d;if(c&&c.length\u003E=b&&v(e,c,!0)\u003E=b-1)break;b--}f++}return null}function Za(a){var b=null;if(!Fe[a]&&\"undefined\"!=typeof module&&module&&module.exports)try{b=Be._abbr,require(\".\u002Flocale\u002F\"+a),$a(b)}catch(a){}return Fe[a]}function $a(a,b){var c;return a&&(c=f(b)?bb(a):_a(a,b),c&&(Be=c)),Be._abbr}function _a(a,b){if(null!==b){var c=Ee;if(b.abbr=a,null!=Fe[a])y(\"defineLocaleOverride\",\"use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http:\u002F\u002Fmomentjs.com\u002Fguides\u002F#\u002Fwarnings\u002Fdefine-locale\u002F for more info.\"),c=Fe[a]._config;else if(null!=b.parentLocale){if(null==Fe[b.parentLocale])return Ge[b.parentLocale]||(Ge[b.parentLocale]=[]),Ge[b.parentLocale].push({name:a,config:b}),null;c=Fe[b.parentLocale]._config}return Fe[a]=new C(B(c,b)),Ge[a]&&Ge[a].forEach(function(a){_a(a.name,a.config)}),$a(a),Fe[a]}return delete Fe[a],null}function ab(a,b){if(null!=b){var c,d=Ee;null!=Fe[a]&&(d=Fe[a]._config),b=B(d,b),c=new C(b),c.parentLocale=Fe[a],Fe[a]=c,$a(a)}else null!=Fe[a]&&(null!=Fe[a].parentLocale?Fe[a]=Fe[a].parentLocale:null!=Fe[a]&&delete Fe[a]);return Fe[a]}function bb(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return Be;if(!c(a)){if(b=Za(a))return b;a=[a]}return Ya(a)}function cb(){return Ad(Fe)}function db(a){var b,c=a._a;return c&&n(a).overflow===-2&&(b=c[fe]\u003C0||c[fe]\u003E11?fe:c[ge]\u003C1||c[ge]\u003Eea(c[ee],c[fe])?ge:c[he]\u003C0||c[he]\u003E24||24===c[he]&&(0!==c[ie]||0!==c[je]||0!==c[ke])?he:c[ie]\u003C0||c[ie]\u003E59?ie:c[je]\u003C0||c[je]\u003E59?je:c[ke]\u003C0||c[ke]\u003E999?ke:-1,n(a)._overflowDayOfYear&&(b\u003Cee||b\u003Ege)&&(b=ge),n(a)._overflowWeeks&&b===-1&&(b=le),n(a)._overflowWeekday&&b===-1&&(b=me),n(a).overflow=b),a}function eb(a){var b,c,d,e,f,g,h=a._i,i=He.exec(h)||Ie.exec(h);if(i){for(n(a).iso=!0,b=0,c=Ke.length;b\u003Cc;b++)if(Ke[b][1].exec(i[1])){e=Ke[b][0],d=Ke[b][2]!==!1;break}if(null==e)return void(a._isValid=!1);if(i[3]){for(b=0,c=Le.length;b\u003Cc;b++)if(Le[b][1].exec(i[3])){f=(i[2]||\" \")+Le[b][0];break}if(null==f)return void(a._isValid=!1)}if(!d&&null!=f)return void(a._isValid=!1);if(i[4]){if(!Je.exec(i[4]))return void(a._isValid=!1);g=\"Z\"}a._f=e+(f||\"\")+(g||\"\"),lb(a)}else a._isValid=!1}function fb(a){var b,c,d,e,f,g,h,i,j={\" GMT\":\" +0000\",\" EDT\":\" -0400\",\" EST\":\" -0500\",\" CDT\":\" -0500\",\" CST\":\" -0600\",\" MDT\":\" -0600\",\" MST\":\" -0700\",\" PDT\":\" -0700\",\" PST\":\" -0800\"},k=\"YXWVUTSRQPONZABCDEFGHIKLM\";if(b=a._i.replace(\u002F\\([^\\)]*\\)|[\\n\\t]\u002Fg,\" \").replace(\u002F(\\s\\s+)\u002Fg,\" \").replace(\u002F^\\s|\\s$\u002Fg,\"\"),c=Ne.exec(b)){if(d=c[1]?\"ddd\"+(5===c[1].length?\", \":\" \"):\"\",e=\"D MMM \"+(c[2].length\u003E10?\"YYYY \":\"YY \"),f=\"HH:mm\"+(c[4]?\":ss\":\"\"),c[1]){var l=new Date(c[2]),m=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"][l.getDay()];if(c[1].substr(0,3)!==m)return n(a).weekdayMismatch=!0,void(a._isValid=!1)}switch(c[5].length){case 2:0===i?h=\" +0000\":(i=k.indexOf(c[5][1].toUpperCase())-12,h=(i\u003C0?\" -\":\" +\")+(\"\"+i).replace(\u002F^-?\u002F,\"0\").match(\u002F..$\u002F)[0]+\"00\");break;case 4:h=j[c[5]];break;default:h=j[\" GMT\"]}c[5]=h,a._i=c.splice(1).join(\"\"),g=\" ZZ\",a._f=d+e+f+g,lb(a),n(a).rfc2822=!0}else a._isValid=!1}function gb(b){var c=Me.exec(b._i);return null!==c?void(b._d=new Date(+c[1])):(eb(b),void(b._isValid===!1&&(delete b._isValid,fb(b),b._isValid===!1&&(delete b._isValid,a.createFromInputFallback(b)))))}function hb(a,b,c){return null!=a?a:null!=b?b:c}function ib(b){var c=new Date(a.now());return b._useUTC?[c.getUTCFullYear(),c.getUTCMonth(),c.getUTCDate()]:[c.getFullYear(),c.getMonth(),c.getDate()]}function jb(a){var b,c,d,e,f=[];if(!a._d){for(d=ib(a),a._w&&null==a._a[ge]&&null==a._a[fe]&&kb(a),null!=a._dayOfYear&&(e=hb(a._a[ee],d[ee]),(a._dayOfYear\u003Epa(e)||0===a._dayOfYear)&&(n(a)._overflowDayOfYear=!0),c=ta(e,0,a._dayOfYear),a._a[fe]=c.getUTCMonth(),a._a[ge]=c.getUTCDate()),b=0;b\u003C3&&null==a._a[b];++b)a._a[b]=f[b]=d[b];for(;b\u003C7;b++)a._a[b]=f[b]=null==a._a[b]?2===b?1:0:a._a[b];24===a._a[he]&&0===a._a[ie]&&0===a._a[je]&&0===a._a[ke]&&(a._nextDay=!0,a._a[he]=0),a._d=(a._useUTC?ta:sa).apply(null,f),null!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()-a._tzm),a._nextDay&&(a._a[he]=24)}}function kb(a){var b,c,d,e,f,g,h,i;if(b=a._w,null!=b.GG||null!=b.W||null!=b.E)f=1,g=4,c=hb(b.GG,a._a[ee],wa(tb(),1,4).year),d=hb(b.W,1),e=hb(b.E,1),(e\u003C1||e\u003E7)&&(i=!0);else{f=a._locale._week.dow,g=a._locale._week.doy;var j=wa(tb(),f,g);c=hb(b.gg,a._a[ee],j.year),d=hb(b.w,j.week),null!=b.d?(e=b.d,(e\u003C0||e\u003E6)&&(i=!0)):null!=b.e?(e=b.e+f,(b.e\u003C0||b.e\u003E6)&&(i=!0)):e=f}d\u003C1||d\u003Exa(c,f,g)?n(a)._overflowWeeks=!0:null!=i?n(a)._overflowWeekday=!0:(h=va(c,d,e,f,g),a._a[ee]=h.year,a._dayOfYear=h.dayOfYear)}function lb(b){if(b._f===a.ISO_8601)return void eb(b);if(b._f===a.RFC_2822)return void fb(b);b._a=[],n(b).empty=!0;var c,d,e,f,g,h=\"\"+b._i,i=h.length,j=0;for(e=Y(b._f,b._locale).match(Jd)||[],c=0;c\u003Ce.length;c++)f=e[c],d=(h.match($(f,b))||[])[0],d&&(g=h.substr(0,h.indexOf(d)),g.length\u003E0&&n(b).unusedInput.push(g),h=h.slice(h.indexOf(d)+d.length),j+=d.length),Md[f]?(d?n(b).empty=!1:n(b).unusedTokens.push(f),da(f,d,b)):b._strict&&!d&&n(b).unusedTokens.push(f);n(b).charsLeftOver=i-j,h.length\u003E0&&n(b).unusedInput.push(h),b._a[he]\u003C=12&&n(b).bigHour===!0&&b._a[he]\u003E0&&(n(b).bigHour=void 0),n(b).parsedDateParts=b._a.slice(0),n(b).meridiem=b._meridiem,b._a[he]=mb(b._locale,b._a[he],b._meridiem),jb(b),db(b)}function mb(a,b,c){var d;return null==c?b:null!=a.meridiemHour?a.meridiemHour(b,c):null!=a.isPM?(d=a.isPM(c),d&&b\u003C12&&(b+=12),d||12!==b||(b=0),b):b}function nb(a){var b,c,d,e,f;if(0===a._f.length)return n(a).invalidFormat=!0,void(a._d=new Date(NaN));for(e=0;e\u003Ca._f.length;e++)f=0,b=q({},a),null!=a._useUTC&&(b._useUTC=a._useUTC),b._f=a._f[e],lb(b),o(b)&&(f+=n(b).charsLeftOver,f+=10*n(b).unusedTokens.length,n(b).score=f,(null==d||f\u003Cd)&&(d=f,c=b));k(a,c||b)}function ob(a){if(!a._d){var b=L(a._i);a._a=i([b.year,b.month,b.day||b.date,b.hour,b.minute,b.second,b.millisecond],function(a){return a&&parseInt(a,10)}),jb(a)}}function pb(a){var b=new r(db(qb(a)));return b._nextDay&&(b.add(1,\"d\"),b._nextDay=void 0),b}function qb(a){var b=a._i,d=a._f;return a._locale=a._locale||bb(a._l),null===b||void 0===d&&\"\"===b?p({nullInput:!0}):(\"string\"==typeof b&&(a._i=b=a._locale.preparse(b)),s(b)?new r(db(b)):(h(b)?a._d=b:c(d)?nb(a):d?lb(a):rb(a),o(a)||(a._d=null),a))}function rb(b){var e=b._i;f(e)?b._d=new Date(a.now()):h(e)?b._d=new Date(e.valueOf()):\"string\"==typeof e?gb(b):c(e)?(b._a=i(e.slice(0),function(a){return parseInt(a,10)}),jb(b)):d(e)?ob(b):g(e)?b._d=new Date(e):a.createFromInputFallback(b)}function sb(a,b,f,g,h){var i={};return f!==!0&&f!==!1||(g=f,f=void 0),(d(a)&&e(a)||c(a)&&0===a.length)&&(a=void 0),i._isAMomentObject=!0,i._useUTC=i._isUTC=h,i._l=f,i._i=a,i._f=b,i._strict=g,pb(i)}function tb(a,b,c,d){return sb(a,b,c,d,!1)}function ub(a,b){var d,e;if(1===b.length&&c(b[0])&&(b=b[0]),!b.length)return tb();for(d=b[0],e=1;e\u003Cb.length;++e)b[e].isValid()&&!b[e][a](d)||(d=b[e]);return d}function vb(){var a=[].slice.call(arguments,0);return ub(\"isBefore\",a)}function wb(){var a=[].slice.call(arguments,0);return ub(\"isAfter\",a)}function xb(a){for(var b in a)if(Re.indexOf(b)===-1||null!=a[b]&&isNaN(a[b]))return!1;for(var c=!1,d=0;d\u003CRe.length;++d)if(a[Re[d]]){if(c)return!1;parseFloat(a[Re[d]])!==u(a[Re[d]])&&(c=!0)}return!0}function yb(){return this._isValid}function zb(){return Sb(NaN)}function Ab(a){var b=L(a),c=b.year||0,d=b.quarter||0,e=b.month||0,f=b.week||0,g=b.day||0,h=b.hour||0,i=b.minute||0,j=b.second||0,k=b.millisecond||0;this._isValid=xb(b),this._milliseconds=+k+1e3*j+6e4*i+1e3*h*60*60,this._days=+g+7*f,this._months=+e+3*d+12*c,this._data={},this._locale=bb(),this._bubble()}function Bb(a){return a instanceof Ab}function Cb(a){return a\u003C0?Math.round(-1*a)*-1:Math.round(a)}function Db(a,b){U(a,0,0,function(){var a=this.utcOffset(),c=\"+\";return a\u003C0&&(a=-a,c=\"-\"),c+T(~~(a\u002F60),2)+b+T(~~a%60,2)})}function Eb(a,b){var c=(b||\"\").match(a);if(null===c)return null;var d=c[c.length-1]||[],e=(d+\"\").match(Se)||[\"-\",0,0],f=+(60*e[1])+u(e[2]);return 0===f?0:\"+\"===e[0]?f:-f}function Fb(b,c){var d,e;return c._isUTC?(d=c.clone(),e=(s(b)||h(b)?b.valueOf():tb(b).valueOf())-d.valueOf(),d._d.setTime(d._d.valueOf()+e),a.updateOffset(d,!1),d):tb(b).local()}function Gb(a){return 15*-Math.round(a._d.getTimezoneOffset()\u002F15)}function Hb(b,c,d){var e,f=this._offset||0;if(!this.isValid())return null!=b?this:NaN;if(null!=b){if(\"string\"==typeof b){if(b=Eb(_d,b),null===b)return this}else Math.abs(b)\u003C16&&!d&&(b=60*b);return!this._isUTC&&c&&(e=Gb(this)),this._offset=b,this._isUTC=!0,null!=e&&this.add(e,\"m\"),f!==b&&(!c||this._changeInProgress?Xb(this,Sb(b-f,\"m\"),1,!1):this._changeInProgress||(this._changeInProgress=!0,a.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?f:Gb(this)}function Ib(a,b){return null!=a?(\"string\"!=typeof a&&(a=-a),this.utcOffset(a,b),this):-this.utcOffset()}function Jb(a){return this.utcOffset(0,a)}function Kb(a){return this._isUTC&&(this.utcOffset(0,a),this._isUTC=!1,a&&this.subtract(Gb(this),\"m\")),this}function Lb(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if(\"string\"==typeof this._i){var a=Eb($d,this._i);null!=a?this.utcOffset(a):this.utcOffset(0,!0)}return this}function Mb(a){return!!this.isValid()&&(a=a?tb(a).utcOffset():0,(this.utcOffset()-a)%60===0)}function Nb(){return this.utcOffset()\u003Ethis.clone().month(0).utcOffset()||this.utcOffset()\u003Ethis.clone().month(5).utcOffset()}function Ob(){if(!f(this._isDSTShifted))return this._isDSTShifted;var a={};if(q(a,this),a=qb(a),a._a){var b=a._isUTC?l(a._a):tb(a._a);this._isDSTShifted=this.isValid()&&v(a._a,b.toArray())\u003E0}else this._isDSTShifted=!1;return this._isDSTShifted}function Pb(){return!!this.isValid()&&!this._isUTC}function Qb(){return!!this.isValid()&&this._isUTC}function Rb(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Sb(a,b){var c,d,e,f=a,h=null;return Bb(a)?f={ms:a._milliseconds,d:a._days,M:a._months}:g(a)?(f={},b?f[b]=a:f.milliseconds=a):(h=Te.exec(a))?(c=\"-\"===h[1]?-1:1,f={y:0,d:u(h[ge])*c,h:u(h[he])*c,m:u(h[ie])*c,s:u(h[je])*c,ms:u(Cb(1e3*h[ke]))*c}):(h=Ue.exec(a))?(c=\"-\"===h[1]?-1:1,f={y:Tb(h[2],c),M:Tb(h[3],c),w:Tb(h[4],c),d:Tb(h[5],c),h:Tb(h[6],c),m:Tb(h[7],c),s:Tb(h[8],c)}):null==f?f={}:\"object\"==typeof f&&(\"from\"in f||\"to\"in f)&&(e=Vb(tb(f.from),tb(f.to)),f={},f.ms=e.milliseconds,f.M=e.months),d=new Ab(f),Bb(a)&&j(a,\"_locale\")&&(d._locale=a._locale),d}function Tb(a,b){var c=a&&parseFloat(a.replace(\",\",\".\"));return(isNaN(c)?0:c)*b}function Ub(a,b){var c={milliseconds:0,months:0};return c.months=b.month()-a.month()+12*(b.year()-a.year()),a.clone().add(c.months,\"M\").isAfter(b)&&--c.months,c.milliseconds=+b-+a.clone().add(c.months,\"M\"),c}function Vb(a,b){var c;return a.isValid()&&b.isValid()?(b=Fb(b,a),a.isBefore(b)?c=Ub(a,b):(c=Ub(b,a),c.milliseconds=-c.milliseconds,c.months=-c.months),c):{milliseconds:0,months:0}}function Wb(a,b){return function(c,d){var e,f;return null===d||isNaN(+d)||(y(b,\"moment().\"+b+\"(period, number) is deprecated. Please use moment().\"+b+\"(number, period). See http:\u002F\u002Fmomentjs.com\u002Fguides\u002F#\u002Fwarnings\u002Fadd-inverted-param\u002F for more info.\"),f=c,c=d,d=f),c=\"string\"==typeof c?+c:c,e=Sb(c,d),Xb(this,e,a),this}}function Xb(b,c,d,e){var f=c._milliseconds,g=Cb(c._days),h=Cb(c._months);b.isValid()&&(e=null==e||e,f&&b._d.setTime(b._d.valueOf()+f*d),g&&Q(b,\"Date\",P(b,\"Date\")+g*d),h&&ja(b,P(b,\"Month\")+h*d),e&&a.updateOffset(b,g||h))}function Yb(a,b){var c=a.diff(b,\"days\",!0);return c\u003C-6?\"sameElse\":c\u003C-1?\"lastWeek\":c\u003C0?\"lastDay\":c\u003C1?\"sameDay\":c\u003C2?\"nextDay\":c\u003C7?\"nextWeek\":\"sameElse\"}function Zb(b,c){var d=b||tb(),e=Fb(d,this).startOf(\"day\"),f=a.calendarFormat(this,e)||\"sameElse\",g=c&&(z(c[f])?c[f].call(this,d):c[f]);return this.format(g||this.localeData().calendar(f,this,tb(d)))}function $b(){return new r(this)}function _b(a,b){var c=s(a)?a:tb(a);return!(!this.isValid()||!c.isValid())&&(b=K(f(b)?\"millisecond\":b),\"millisecond\"===b?this.valueOf()\u003Ec.valueOf():c.valueOf()\u003Cthis.clone().startOf(b).valueOf())}function ac(a,b){var c=s(a)?a:tb(a);return!(!this.isValid()||!c.isValid())&&(b=K(f(b)?\"millisecond\":b),\"millisecond\"===b?this.valueOf()\u003Cc.valueOf():this.clone().endOf(b).valueOf()\u003Cc.valueOf())}function bc(a,b,c,d){return d=d||\"()\",(\"(\"===d[0]?this.isAfter(a,c):!this.isBefore(a,c))&&(\")\"===d[1]?this.isBefore(b,c):!this.isAfter(b,c))}function cc(a,b){var c,d=s(a)?a:tb(a);return!(!this.isValid()||!d.isValid())&&(b=K(b||\"millisecond\"),\"millisecond\"===b?this.valueOf()===d.valueOf():(c=d.valueOf(),this.clone().startOf(b).valueOf()\u003C=c&&c\u003C=this.clone().endOf(b).valueOf()))}function dc(a,b){return this.isSame(a,b)||this.isAfter(a,b)}function ec(a,b){return this.isSame(a,b)||this.isBefore(a,b)}function fc(a,b,c){var d,e,f,g;return this.isValid()?(d=Fb(a,this),d.isValid()?(e=6e4*(d.utcOffset()-this.utcOffset()),b=K(b),\"year\"===b||\"month\"===b||\"quarter\"===b?(g=gc(this,d),\"quarter\"===b?g\u002F=3:\"year\"===b&&(g\u002F=12)):(f=this-d,g=\"second\"===b?f\u002F1e3:\"minute\"===b?f\u002F6e4:\"hour\"===b?f\u002F36e5:\"day\"===b?(f-e)\u002F864e5:\"week\"===b?(f-e)\u002F6048e5:f),c?g:t(g)):NaN):NaN}function gc(a,b){var c,d,e=12*(b.year()-a.year())+(b.month()-a.month()),f=a.clone().add(e,\"months\");return b-f\u003C0?(c=a.clone().add(e-1,\"months\"),d=(b-f)\u002F(f-c)):(c=a.clone().add(e+1,\"months\"),d=(b-f)\u002F(c-f)),-(e+d)||0}function hc(){return this.clone().locale(\"en\").format(\"ddd MMM DD YYYY HH:mm:ss [GMT]ZZ\")}function ic(){if(!this.isValid())return null;var a=this.clone().utc();return a.year()\u003C0||a.year()\u003E9999?X(a,\"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]\"):z(Date.prototype.toISOString)?this.toDate().toISOString():X(a,\"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]\")}function jc(){if(!this.isValid())return\"moment.invalid(\u002F* \"+this._i+\" *\u002F)\";var a=\"moment\",b=\"\";this.isLocal()||(a=0===this.utcOffset()?\"moment.utc\":\"moment.parseZone\",b=\"Z\");var c=\"[\"+a+'(\"]',d=0\u003C=this.year()&&this.year()\u003C=9999?\"YYYY\":\"YYYYYY\",e=\"-MM-DD[T]HH:mm:ss.SSS\",f=b+'[\")]';return this.format(c+d+e+f)}function kc(b){b||(b=this.isUtc()?a.defaultFormatUtc:a.defaultFormat);var c=X(this,b);return this.localeData().postformat(c)}function lc(a,b){return this.isValid()&&(s(a)&&a.isValid()||tb(a).isValid())?Sb({to:this,from:a}).locale(this.locale()).humanize(!b):this.localeData().invalidDate()}function mc(a){return this.from(tb(),a)}function nc(a,b){return this.isValid()&&(s(a)&&a.isValid()||tb(a).isValid())?Sb({from:this,to:a}).locale(this.locale()).humanize(!b):this.localeData().invalidDate()}function oc(a){return this.to(tb(),a)}function pc(a){var b;return void 0===a?this._locale._abbr:(b=bb(a),null!=b&&(this._locale=b),this)}function qc(){return this._locale}function rc(a){switch(a=K(a)){case\"year\":this.month(0);case\"quarter\":case\"month\":this.date(1);case\"week\":case\"isoWeek\":case\"day\":case\"date\":this.hours(0);case\"hour\":this.minutes(0);case\"minute\":this.seconds(0);case\"second\":this.milliseconds(0)}return\"week\"===a&&this.weekday(0),\"isoWeek\"===a&&this.isoWeekday(1),\"quarter\"===a&&this.month(3*Math.floor(this.month()\u002F3)),this}function sc(a){return a=K(a),void 0===a||\"millisecond\"===a?this:(\"date\"===a&&(a=\"day\"),this.startOf(a).add(1,\"isoWeek\"===a?\"week\":a).subtract(1,\"ms\"))}function tc(){return this._d.valueOf()-6e4*(this._offset||0)}function uc(){return Math.floor(this.valueOf()\u002F1e3)}function vc(){return new Date(this.valueOf())}function wc(){var a=this;return[a.year(),a.month(),a.date(),a.hour(),a.minute(),a.second(),a.millisecond()]}function xc(){var a=this;return{years:a.year(),months:a.month(),date:a.date(),hours:a.hours(),minutes:a.minutes(),seconds:a.seconds(),milliseconds:a.milliseconds()}}function yc(){return this.isValid()?this.toISOString():null}function zc(){return o(this)}function Ac(){\nreturn k({},n(this))}function Bc(){return n(this).overflow}function Cc(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Dc(a,b){U(0,[a,a.length],0,b)}function Ec(a){return Ic.call(this,a,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Fc(a){return Ic.call(this,a,this.isoWeek(),this.isoWeekday(),1,4)}function Gc(){return xa(this.year(),1,4)}function Hc(){var a=this.localeData()._week;return xa(this.year(),a.dow,a.doy)}function Ic(a,b,c,d,e){var f;return null==a?wa(this,d,e).year:(f=xa(a,d,e),b\u003Ef&&(b=f),Jc.call(this,a,b,c,d,e))}function Jc(a,b,c,d,e){var f=va(a,b,c,d,e),g=ta(f.year,0,f.dayOfYear);return this.year(g.getUTCFullYear()),this.month(g.getUTCMonth()),this.date(g.getUTCDate()),this}function Kc(a){return null==a?Math.ceil((this.month()+1)\u002F3):this.month(3*(a-1)+this.month()%3)}function Lc(a){var b=Math.round((this.clone().startOf(\"day\")-this.clone().startOf(\"year\"))\u002F864e5)+1;return null==a?b:this.add(a-b,\"d\")}function Mc(a,b){b[ke]=u(1e3*(\"0.\"+a))}function Nc(){return this._isUTC?\"UTC\":\"\"}function Oc(){return this._isUTC?\"Coordinated Universal Time\":\"\"}function Pc(a){return tb(1e3*a)}function Qc(){return tb.apply(null,arguments).parseZone()}function Rc(a){return a}function Sc(a,b,c,d){var e=bb(),f=l().set(d,b);return e[c](f,a)}function Tc(a,b,c){if(g(a)&&(b=a,a=void 0),a=a||\"\",null!=b)return Sc(a,b,c,\"month\");var d,e=[];for(d=0;d\u003C12;d++)e[d]=Sc(a,d,c,\"month\");return e}function Uc(a,b,c,d){\"boolean\"==typeof a?(g(b)&&(c=b,b=void 0),b=b||\"\"):(b=a,c=b,a=!1,g(b)&&(c=b,b=void 0),b=b||\"\");var e=bb(),f=a?e._week.dow:0;if(null!=c)return Sc(b,(c+f)%7,d,\"day\");var h,i=[];for(h=0;h\u003C7;h++)i[h]=Sc(b,(h+f)%7,d,\"day\");return i}function Vc(a,b){return Tc(a,b,\"months\")}function Wc(a,b){return Tc(a,b,\"monthsShort\")}function Xc(a,b,c){return Uc(a,b,c,\"weekdays\")}function Yc(a,b,c){return Uc(a,b,c,\"weekdaysShort\")}function Zc(a,b,c){return Uc(a,b,c,\"weekdaysMin\")}function $c(){var a=this._data;return this._milliseconds=df(this._milliseconds),this._days=df(this._days),this._months=df(this._months),a.milliseconds=df(a.milliseconds),a.seconds=df(a.seconds),a.minutes=df(a.minutes),a.hours=df(a.hours),a.months=df(a.months),a.years=df(a.years),this}function _c(a,b,c,d){var e=Sb(b,c);return a._milliseconds+=d*e._milliseconds,a._days+=d*e._days,a._months+=d*e._months,a._bubble()}function ad(a,b){return _c(this,a,b,1)}function bd(a,b){return _c(this,a,b,-1)}function cd(a){return a\u003C0?Math.floor(a):Math.ceil(a)}function dd(){var a,b,c,d,e,f=this._milliseconds,g=this._days,h=this._months,i=this._data;return f\u003E=0&&g\u003E=0&&h\u003E=0||f\u003C=0&&g\u003C=0&&h\u003C=0||(f+=864e5*cd(fd(h)+g),g=0,h=0),i.milliseconds=f%1e3,a=t(f\u002F1e3),i.seconds=a%60,b=t(a\u002F60),i.minutes=b%60,c=t(b\u002F60),i.hours=c%24,g+=t(c\u002F24),e=t(ed(g)),h+=e,g-=cd(fd(e)),d=t(h\u002F12),h%=12,i.days=g,i.months=h,i.years=d,this}function ed(a){return 4800*a\u002F146097}function fd(a){return 146097*a\u002F4800}function gd(a){if(!this.isValid())return NaN;var b,c,d=this._milliseconds;if(a=K(a),\"month\"===a||\"year\"===a)return b=this._days+d\u002F864e5,c=this._months+ed(b),\"month\"===a?c:c\u002F12;switch(b=this._days+Math.round(fd(this._months)),a){case\"week\":return b\u002F7+d\u002F6048e5;case\"day\":return b+d\u002F864e5;case\"hour\":return 24*b+d\u002F36e5;case\"minute\":return 1440*b+d\u002F6e4;case\"second\":return 86400*b+d\u002F1e3;case\"millisecond\":return Math.floor(864e5*b)+d;default:throw new Error(\"Unknown unit \"+a)}}function hd(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*u(this._months\u002F12):NaN}function id(a){return function(){return this.as(a)}}function jd(a){return a=K(a),this.isValid()?this[a+\"s\"]():NaN}function kd(a){return function(){return this.isValid()?this._data[a]:NaN}}function ld(){return t(this.days()\u002F7)}function md(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function nd(a,b,c){var d=Sb(a).abs(),e=uf(d.as(\"s\")),f=uf(d.as(\"m\")),g=uf(d.as(\"h\")),h=uf(d.as(\"d\")),i=uf(d.as(\"M\")),j=uf(d.as(\"y\")),k=e\u003C=vf.ss&&[\"s\",e]||e\u003Cvf.s&&[\"ss\",e]||f\u003C=1&&[\"m\"]||f\u003Cvf.m&&[\"mm\",f]||g\u003C=1&&[\"h\"]||g\u003Cvf.h&&[\"hh\",g]||h\u003C=1&&[\"d\"]||h\u003Cvf.d&&[\"dd\",h]||i\u003C=1&&[\"M\"]||i\u003Cvf.M&&[\"MM\",i]||j\u003C=1&&[\"y\"]||[\"yy\",j];return k[2]=b,k[3]=+a\u003E0,k[4]=c,md.apply(null,k)}function od(a){return void 0===a?uf:\"function\"==typeof a&&(uf=a,!0)}function pd(a,b){return void 0!==vf[a]&&(void 0===b?vf[a]:(vf[a]=b,\"s\"===a&&(vf.ss=b-1),!0))}function qd(a){if(!this.isValid())return this.localeData().invalidDate();var b=this.localeData(),c=nd(this,!a,b);return a&&(c=b.pastFuture(+this,c)),b.postformat(c)}function rd(){if(!this.isValid())return this.localeData().invalidDate();var a,b,c,d=wf(this._milliseconds)\u002F1e3,e=wf(this._days),f=wf(this._months);a=t(d\u002F60),b=t(a\u002F60),d%=60,a%=60,c=t(f\u002F12),f%=12;var g=c,h=f,i=e,j=b,k=a,l=d,m=this.asSeconds();return m?(m\u003C0?\"-\":\"\")+\"P\"+(g?g+\"Y\":\"\")+(h?h+\"M\":\"\")+(i?i+\"D\":\"\")+(j||k||l?\"T\":\"\")+(j?j+\"H\":\"\")+(k?k+\"M\":\"\")+(l?l+\"S\":\"\"):\"P0D\"}var sd,td;td=Array.prototype.some?Array.prototype.some:function(a){for(var b=Object(this),c=b.length\u003E\u003E\u003E0,d=0;d\u003Cc;d++)if(d in b&&a.call(this,b[d],d,b))return!0;return!1};var ud=td,vd=a.momentProperties=[],wd=!1,xd={};a.suppressDeprecationWarnings=!1,a.deprecationHandler=null;var yd;yd=Object.keys?Object.keys:function(a){var b,c=[];for(b in a)j(a,b)&&c.push(b);return c};var zd,Ad=yd,Bd={sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},Cd={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM\u002FDD\u002FYYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},Dd=\"Invalid date\",Ed=\"%d\",Fd=\u002F\\d{1,2}\u002F,Gd={future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",ss:\"%d seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},Hd={},Id={},Jd=\u002F(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)\u002Fg,Kd=\u002F(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})\u002Fg,Ld={},Md={},Nd=\u002F\\d\u002F,Od=\u002F\\d\\d\u002F,Pd=\u002F\\d{3}\u002F,Qd=\u002F\\d{4}\u002F,Rd=\u002F[+-]?\\d{6}\u002F,Sd=\u002F\\d\\d?\u002F,Td=\u002F\\d\\d\\d\\d?\u002F,Ud=\u002F\\d\\d\\d\\d\\d\\d?\u002F,Vd=\u002F\\d{1,3}\u002F,Wd=\u002F\\d{1,4}\u002F,Xd=\u002F[+-]?\\d{1,6}\u002F,Yd=\u002F\\d+\u002F,Zd=\u002F[+-]?\\d+\u002F,$d=\u002FZ|[+-]\\d\\d:?\\d\\d\u002Fgi,_d=\u002FZ|[+-]\\d\\d(?::?\\d\\d)?\u002Fgi,ae=\u002F[+-]?\\d+(\\.\\d{1,3})?\u002F,be=\u002F[0-9]*['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+|[\\u0600-\\u06FF\\\u002F]+(\\s*?[\\u0600-\\u06FF]+){1,2}\u002Fi,ce={},de={},ee=0,fe=1,ge=2,he=3,ie=4,je=5,ke=6,le=7,me=8;zd=Array.prototype.indexOf?Array.prototype.indexOf:function(a){var b;for(b=0;b\u003Cthis.length;++b)if(this[b]===a)return b;return-1};var ne=zd;U(\"M\",[\"MM\",2],\"Mo\",function(){return this.month()+1}),U(\"MMM\",0,0,function(a){return this.localeData().monthsShort(this,a)}),U(\"MMMM\",0,0,function(a){return this.localeData().months(this,a)}),J(\"month\",\"M\"),M(\"month\",8),Z(\"M\",Sd),Z(\"MM\",Sd,Od),Z(\"MMM\",function(a,b){return b.monthsShortRegex(a)}),Z(\"MMMM\",function(a,b){return b.monthsRegex(a)}),ba([\"M\",\"MM\"],function(a,b){b[fe]=u(a)-1}),ba([\"MMM\",\"MMMM\"],function(a,b,c,d){var e=c._locale.monthsParse(a,d,c._strict);null!=e?b[fe]=e:n(c).invalidMonth=a});var oe=\u002FD[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?\u002F,pe=\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),qe=\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),re=be,se=be;U(\"Y\",0,0,function(){var a=this.year();return a\u003C=9999?\"\"+a:\"+\"+a}),U(0,[\"YY\",2],0,function(){return this.year()%100}),U(0,[\"YYYY\",4],0,\"year\"),U(0,[\"YYYYY\",5],0,\"year\"),U(0,[\"YYYYYY\",6,!0],0,\"year\"),J(\"year\",\"y\"),M(\"year\",1),Z(\"Y\",Zd),Z(\"YY\",Sd,Od),Z(\"YYYY\",Wd,Qd),Z(\"YYYYY\",Xd,Rd),Z(\"YYYYYY\",Xd,Rd),ba([\"YYYYY\",\"YYYYYY\"],ee),ba(\"YYYY\",function(b,c){c[ee]=2===b.length?a.parseTwoDigitYear(b):u(b)}),ba(\"YY\",function(b,c){c[ee]=a.parseTwoDigitYear(b)}),ba(\"Y\",function(a,b){b[ee]=parseInt(a,10)}),a.parseTwoDigitYear=function(a){return u(a)+(u(a)\u003E68?1900:2e3)};var te=O(\"FullYear\",!0);U(\"w\",[\"ww\",2],\"wo\",\"week\"),U(\"W\",[\"WW\",2],\"Wo\",\"isoWeek\"),J(\"week\",\"w\"),J(\"isoWeek\",\"W\"),M(\"week\",5),M(\"isoWeek\",5),Z(\"w\",Sd),Z(\"ww\",Sd,Od),Z(\"W\",Sd),Z(\"WW\",Sd,Od),ca([\"w\",\"ww\",\"W\",\"WW\"],function(a,b,c,d){b[d.substr(0,1)]=u(a)});var ue={dow:0,doy:6};U(\"d\",0,\"do\",\"day\"),U(\"dd\",0,0,function(a){return this.localeData().weekdaysMin(this,a)}),U(\"ddd\",0,0,function(a){return this.localeData().weekdaysShort(this,a)}),U(\"dddd\",0,0,function(a){return this.localeData().weekdays(this,a)}),U(\"e\",0,0,\"weekday\"),U(\"E\",0,0,\"isoWeekday\"),J(\"day\",\"d\"),J(\"weekday\",\"e\"),J(\"isoWeekday\",\"E\"),M(\"day\",11),M(\"weekday\",11),M(\"isoWeekday\",11),Z(\"d\",Sd),Z(\"e\",Sd),Z(\"E\",Sd),Z(\"dd\",function(a,b){return b.weekdaysMinRegex(a)}),Z(\"ddd\",function(a,b){return b.weekdaysShortRegex(a)}),Z(\"dddd\",function(a,b){return b.weekdaysRegex(a)}),ca([\"dd\",\"ddd\",\"dddd\"],function(a,b,c,d){var e=c._locale.weekdaysParse(a,d,c._strict);null!=e?b.d=e:n(c).invalidWeekday=a}),ca([\"d\",\"e\",\"E\"],function(a,b,c,d){b[d]=u(a)});var ve=\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),we=\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),xe=\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),ye=be,ze=be,Ae=be;U(\"H\",[\"HH\",2],0,\"hour\"),U(\"h\",[\"hh\",2],0,Ra),U(\"k\",[\"kk\",2],0,Sa),U(\"hmm\",0,0,function(){return\"\"+Ra.apply(this)+T(this.minutes(),2)}),U(\"hmmss\",0,0,function(){return\"\"+Ra.apply(this)+T(this.minutes(),2)+T(this.seconds(),2)}),U(\"Hmm\",0,0,function(){return\"\"+this.hours()+T(this.minutes(),2)}),U(\"Hmmss\",0,0,function(){return\"\"+this.hours()+T(this.minutes(),2)+T(this.seconds(),2)}),Ta(\"a\",!0),Ta(\"A\",!1),J(\"hour\",\"h\"),M(\"hour\",13),Z(\"a\",Ua),Z(\"A\",Ua),Z(\"H\",Sd),Z(\"h\",Sd),Z(\"k\",Sd),Z(\"HH\",Sd,Od),Z(\"hh\",Sd,Od),Z(\"kk\",Sd,Od),Z(\"hmm\",Td),Z(\"hmmss\",Ud),Z(\"Hmm\",Td),Z(\"Hmmss\",Ud),ba([\"H\",\"HH\"],he),ba([\"k\",\"kk\"],function(a,b,c){var d=u(a);b[he]=24===d?0:d}),ba([\"a\",\"A\"],function(a,b,c){c._isPm=c._locale.isPM(a),c._meridiem=a}),ba([\"h\",\"hh\"],function(a,b,c){b[he]=u(a),n(c).bigHour=!0}),ba(\"hmm\",function(a,b,c){var d=a.length-2;b[he]=u(a.substr(0,d)),b[ie]=u(a.substr(d)),n(c).bigHour=!0}),ba(\"hmmss\",function(a,b,c){var d=a.length-4,e=a.length-2;b[he]=u(a.substr(0,d)),b[ie]=u(a.substr(d,2)),b[je]=u(a.substr(e)),n(c).bigHour=!0}),ba(\"Hmm\",function(a,b,c){var d=a.length-2;b[he]=u(a.substr(0,d)),b[ie]=u(a.substr(d))}),ba(\"Hmmss\",function(a,b,c){var d=a.length-4,e=a.length-2;b[he]=u(a.substr(0,d)),b[ie]=u(a.substr(d,2)),b[je]=u(a.substr(e))});var Be,Ce=\u002F[ap]\\.?m?\\.?\u002Fi,De=O(\"Hours\",!0),Ee={calendar:Bd,longDateFormat:Cd,invalidDate:Dd,ordinal:Ed,dayOfMonthOrdinalParse:Fd,relativeTime:Gd,months:pe,monthsShort:qe,week:ue,weekdays:ve,weekdaysMin:xe,weekdaysShort:we,meridiemParse:Ce},Fe={},Ge={},He=\u002F^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$\u002F,Ie=\u002F^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$\u002F,Je=\u002FZ|[+-]\\d\\d(?::?\\d\\d)?\u002F,Ke=[[\"YYYYYY-MM-DD\",\u002F[+-]\\d{6}-\\d\\d-\\d\\d\u002F],[\"YYYY-MM-DD\",\u002F\\d{4}-\\d\\d-\\d\\d\u002F],[\"GGGG-[W]WW-E\",\u002F\\d{4}-W\\d\\d-\\d\u002F],[\"GGGG-[W]WW\",\u002F\\d{4}-W\\d\\d\u002F,!1],[\"YYYY-DDD\",\u002F\\d{4}-\\d{3}\u002F],[\"YYYY-MM\",\u002F\\d{4}-\\d\\d\u002F,!1],[\"YYYYYYMMDD\",\u002F[+-]\\d{10}\u002F],[\"YYYYMMDD\",\u002F\\d{8}\u002F],[\"GGGG[W]WWE\",\u002F\\d{4}W\\d{3}\u002F],[\"GGGG[W]WW\",\u002F\\d{4}W\\d{2}\u002F,!1],[\"YYYYDDD\",\u002F\\d{7}\u002F]],Le=[[\"HH:mm:ss.SSSS\",\u002F\\d\\d:\\d\\d:\\d\\d\\.\\d+\u002F],[\"HH:mm:ss,SSSS\",\u002F\\d\\d:\\d\\d:\\d\\d,\\d+\u002F],[\"HH:mm:ss\",\u002F\\d\\d:\\d\\d:\\d\\d\u002F],[\"HH:mm\",\u002F\\d\\d:\\d\\d\u002F],[\"HHmmss.SSSS\",\u002F\\d\\d\\d\\d\\d\\d\\.\\d+\u002F],[\"HHmmss,SSSS\",\u002F\\d\\d\\d\\d\\d\\d,\\d+\u002F],[\"HHmmss\",\u002F\\d\\d\\d\\d\\d\\d\u002F],[\"HHmm\",\u002F\\d\\d\\d\\d\u002F],[\"HH\",\u002F\\d\\d\u002F]],Me=\u002F^\\\u002F?Date\\((\\-?\\d+)\u002Fi,Ne=\u002F^((?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d?\\d\\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(?:\\d\\d)?\\d\\d\\s)(\\d\\d:\\d\\d)(\\:\\d\\d)?(\\s(?:UT|GMT|[ECMP][SD]T|[A-IK-Za-ik-z]|[+-]\\d{4}))$\u002F;a.createFromInputFallback=x(\"value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822\u002FISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http:\u002F\u002Fmomentjs.com\u002Fguides\u002F#\u002Fwarnings\u002Fjs-date\u002F for more info.\",function(a){a._d=new Date(a._i+(a._useUTC?\" UTC\":\"\"))}),a.ISO_8601=function(){},a.RFC_2822=function(){};var Oe=x(\"moment().min is deprecated, use moment.max instead. http:\u002F\u002Fmomentjs.com\u002Fguides\u002F#\u002Fwarnings\u002Fmin-max\u002F\",function(){var a=tb.apply(null,arguments);return this.isValid()&&a.isValid()?a\u003Cthis?this:a:p()}),Pe=x(\"moment().max is deprecated, use moment.min instead. http:\u002F\u002Fmomentjs.com\u002Fguides\u002F#\u002Fwarnings\u002Fmin-max\u002F\",function(){var a=tb.apply(null,arguments);return this.isValid()&&a.isValid()?a\u003Ethis?this:a:p()}),Qe=function(){return Date.now?Date.now():+new Date},Re=[\"year\",\"quarter\",\"month\",\"week\",\"day\",\"hour\",\"minute\",\"second\",\"millisecond\"];Db(\"Z\",\":\"),Db(\"ZZ\",\"\"),Z(\"Z\",_d),Z(\"ZZ\",_d),ba([\"Z\",\"ZZ\"],function(a,b,c){c._useUTC=!0,c._tzm=Eb(_d,a)});var Se=\u002F([\\+\\-]|\\d\\d)\u002Fgi;a.updateOffset=function(){};var Te=\u002F^(\\-)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$\u002F,Ue=\u002F^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$\u002F;Sb.fn=Ab.prototype,Sb.invalid=zb;var Ve=Wb(1,\"add\"),We=Wb(-1,\"subtract\");a.defaultFormat=\"YYYY-MM-DDTHH:mm:ssZ\",a.defaultFormatUtc=\"YYYY-MM-DDTHH:mm:ss[Z]\";var Xe=x(\"moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.\",function(a){return void 0===a?this.localeData():this.locale(a)});U(0,[\"gg\",2],0,function(){return this.weekYear()%100}),U(0,[\"GG\",2],0,function(){return this.isoWeekYear()%100}),Dc(\"gggg\",\"weekYear\"),Dc(\"ggggg\",\"weekYear\"),Dc(\"GGGG\",\"isoWeekYear\"),Dc(\"GGGGG\",\"isoWeekYear\"),J(\"weekYear\",\"gg\"),J(\"isoWeekYear\",\"GG\"),M(\"weekYear\",1),M(\"isoWeekYear\",1),Z(\"G\",Zd),Z(\"g\",Zd),Z(\"GG\",Sd,Od),Z(\"gg\",Sd,Od),Z(\"GGGG\",Wd,Qd),Z(\"gggg\",Wd,Qd),Z(\"GGGGG\",Xd,Rd),Z(\"ggggg\",Xd,Rd),ca([\"gggg\",\"ggggg\",\"GGGG\",\"GGGGG\"],function(a,b,c,d){b[d.substr(0,2)]=u(a)}),ca([\"gg\",\"GG\"],function(b,c,d,e){c[e]=a.parseTwoDigitYear(b)}),U(\"Q\",0,\"Qo\",\"quarter\"),J(\"quarter\",\"Q\"),M(\"quarter\",7),Z(\"Q\",Nd),ba(\"Q\",function(a,b){b[fe]=3*(u(a)-1)}),U(\"D\",[\"DD\",2],\"Do\",\"date\"),J(\"date\",\"D\"),M(\"date\",9),Z(\"D\",Sd),Z(\"DD\",Sd,Od),Z(\"Do\",function(a,b){return a?b._dayOfMonthOrdinalParse||b._ordinalParse:b._dayOfMonthOrdinalParseLenient}),ba([\"D\",\"DD\"],ge),ba(\"Do\",function(a,b){b[ge]=u(a.match(Sd)[0],10)});var Ye=O(\"Date\",!0);U(\"DDD\",[\"DDDD\",3],\"DDDo\",\"dayOfYear\"),J(\"dayOfYear\",\"DDD\"),M(\"dayOfYear\",4),Z(\"DDD\",Vd),Z(\"DDDD\",Pd),ba([\"DDD\",\"DDDD\"],function(a,b,c){c._dayOfYear=u(a)}),U(\"m\",[\"mm\",2],0,\"minute\"),J(\"minute\",\"m\"),M(\"minute\",14),Z(\"m\",Sd),Z(\"mm\",Sd,Od),ba([\"m\",\"mm\"],ie);var Ze=O(\"Minutes\",!1);U(\"s\",[\"ss\",2],0,\"second\"),J(\"second\",\"s\"),M(\"second\",15),Z(\"s\",Sd),Z(\"ss\",Sd,Od),ba([\"s\",\"ss\"],je);var $e=O(\"Seconds\",!1);U(\"S\",0,0,function(){return~~(this.millisecond()\u002F100)}),U(0,[\"SS\",2],0,function(){return~~(this.millisecond()\u002F10)}),U(0,[\"SSS\",3],0,\"millisecond\"),U(0,[\"SSSS\",4],0,function(){return 10*this.millisecond()}),U(0,[\"SSSSS\",5],0,function(){return 100*this.millisecond()}),U(0,[\"SSSSSS\",6],0,function(){return 1e3*this.millisecond()}),U(0,[\"SSSSSSS\",7],0,function(){return 1e4*this.millisecond()}),U(0,[\"SSSSSSSS\",8],0,function(){return 1e5*this.millisecond()}),U(0,[\"SSSSSSSSS\",9],0,function(){return 1e6*this.millisecond()}),J(\"millisecond\",\"ms\"),M(\"millisecond\",16),Z(\"S\",Vd,Nd),Z(\"SS\",Vd,Od),Z(\"SSS\",Vd,Pd);var _e;for(_e=\"SSSS\";_e.length\u003C=9;_e+=\"S\")Z(_e,Yd);for(_e=\"S\";_e.length\u003C=9;_e+=\"S\")ba(_e,Mc);var af=O(\"Milliseconds\",!1);U(\"z\",0,0,\"zoneAbbr\"),U(\"zz\",0,0,\"zoneName\");var bf=r.prototype;bf.add=Ve,bf.calendar=Zb,bf.clone=$b,bf.diff=fc,bf.endOf=sc,bf.format=kc,bf.from=lc,bf.fromNow=mc,bf.to=nc,bf.toNow=oc,bf.get=R,bf.invalidAt=Bc,bf.isAfter=_b,bf.isBefore=ac,bf.isBetween=bc,bf.isSame=cc,bf.isSameOrAfter=dc,bf.isSameOrBefore=ec,bf.isValid=zc,bf.lang=Xe,bf.locale=pc,bf.localeData=qc,bf.max=Pe,bf.min=Oe,bf.parsingFlags=Ac,bf.set=S,bf.startOf=rc,bf.subtract=We,bf.toArray=wc,bf.toObject=xc,bf.toDate=vc,bf.toISOString=ic,bf.inspect=jc,bf.toJSON=yc,bf.toString=hc,bf.unix=uc,bf.valueOf=tc,bf.creationData=Cc,bf.year=te,bf.isLeapYear=ra,bf.weekYear=Ec,bf.isoWeekYear=Fc,bf.quarter=bf.quarters=Kc,bf.month=ka,bf.daysInMonth=la,bf.week=bf.weeks=Ba,bf.isoWeek=bf.isoWeeks=Ca,bf.weeksInYear=Hc,bf.isoWeeksInYear=Gc,bf.date=Ye,bf.day=bf.days=Ka,bf.weekday=La,bf.isoWeekday=Ma,bf.dayOfYear=Lc,bf.hour=bf.hours=De,bf.minute=bf.minutes=Ze,bf.second=bf.seconds=$e,bf.millisecond=bf.milliseconds=af,bf.utcOffset=Hb,bf.utc=Jb,bf.local=Kb,bf.parseZone=Lb,bf.hasAlignedHourOffset=Mb,bf.isDST=Nb,bf.isLocal=Pb,bf.isUtcOffset=Qb,bf.isUtc=Rb,bf.isUTC=Rb,bf.zoneAbbr=Nc,bf.zoneName=Oc,bf.dates=x(\"dates accessor is deprecated. Use date instead.\",Ye),bf.months=x(\"months accessor is deprecated. Use month instead\",ka),bf.years=x(\"years accessor is deprecated. Use year instead\",te),bf.zone=x(\"moment().zone is deprecated, use moment().utcOffset instead. http:\u002F\u002Fmomentjs.com\u002Fguides\u002F#\u002Fwarnings\u002Fzone\u002F\",Ib),bf.isDSTShifted=x(\"isDSTShifted is deprecated. See http:\u002F\u002Fmomentjs.com\u002Fguides\u002F#\u002Fwarnings\u002Fdst-shifted\u002F for more information\",Ob);var cf=C.prototype;cf.calendar=D,cf.longDateFormat=E,cf.invalidDate=F,cf.ordinal=G,cf.preparse=Rc,cf.postformat=Rc,cf.relativeTime=H,cf.pastFuture=I,cf.set=A,cf.months=fa,cf.monthsShort=ga,cf.monthsParse=ia,cf.monthsRegex=na,cf.monthsShortRegex=ma,cf.week=ya,cf.firstDayOfYear=Aa,cf.firstDayOfWeek=za,cf.weekdays=Fa,cf.weekdaysMin=Ha,cf.weekdaysShort=Ga,cf.weekdaysParse=Ja,cf.weekdaysRegex=Na,cf.weekdaysShortRegex=Oa,cf.weekdaysMinRegex=Pa,cf.isPM=Va,cf.meridiem=Wa,$a(\"en\",{dayOfMonthOrdinalParse:\u002F\\d{1,2}(th|st|nd|rd)\u002F,ordinal:function(a){var b=a%10,c=1===u(a%100\u002F10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c}}),a.lang=x(\"moment.lang is deprecated. Use moment.locale instead.\",$a),a.langData=x(\"moment.langData is deprecated. Use moment.localeData instead.\",bb);var df=Math.abs,ef=id(\"ms\"),ff=id(\"s\"),gf=id(\"m\"),hf=id(\"h\"),jf=id(\"d\"),kf=id(\"w\"),lf=id(\"M\"),mf=id(\"y\"),nf=kd(\"milliseconds\"),of=kd(\"seconds\"),pf=kd(\"minutes\"),qf=kd(\"hours\"),rf=kd(\"days\"),sf=kd(\"months\"),tf=kd(\"years\"),uf=Math.round,vf={ss:44,s:45,m:45,h:22,d:26,M:11},wf=Math.abs,xf=Ab.prototype;return xf.isValid=yb,xf.abs=$c,xf.add=ad,xf.subtract=bd,xf.as=gd,xf.asMilliseconds=ef,xf.asSeconds=ff,xf.asMinutes=gf,xf.asHours=hf,xf.asDays=jf,xf.asWeeks=kf,xf.asMonths=lf,xf.asYears=mf,xf.valueOf=hd,xf._bubble=dd,xf.get=jd,xf.milliseconds=nf,xf.seconds=of,xf.minutes=pf,xf.hours=qf,xf.days=rf,xf.weeks=ld,xf.months=sf,xf.years=tf,xf.humanize=qd,xf.toISOString=rd,xf.toString=rd,xf.toJSON=rd,xf.locale=pc,xf.localeData=qc,xf.toIsoString=x(\"toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)\",rd),xf.lang=Xe,U(\"X\",0,0,\"unix\"),U(\"x\",0,0,\"valueOf\"),Z(\"x\",Zd),Z(\"X\",ae),ba(\"X\",function(a,b,c){c._d=new Date(1e3*parseFloat(a,10))}),ba(\"x\",function(a,b,c){c._d=new Date(u(a))}),a.version=\"2.18.1\",b(tb),a.fn=bf,a.min=vb,a.max=wb,a.now=Qe,a.utc=l,a.unix=Pc,a.months=Vc,a.isDate=h,a.locale=$a,a.invalid=p,a.duration=Sb,a.isMoment=s,a.weekdays=Xc,a.parseZone=Qc,a.localeData=bb,a.isDuration=Bb,a.monthsShort=Wc,a.weekdaysMin=Zc,a.defineLocale=_a,a.updateLocale=ab,a.locales=cb,a.weekdaysShort=Yc,a.normalizeUnits=K,a.relativeTimeRounding=od,a.relativeTimeThreshold=pd,a.calendarFormat=Yb,a.prototype=bf,a});\n","using":"node_modules\u002Fmoment-mini\u002Fmoment.min.js"},{"componentId":"components\u002Fhn_list","view":"\u003Cdiv self=\"size-x1\" layout=\"column center-center\" class=\"list\"\u003E\n\n \u003C!-- Example of loading a component from a remote hosting site.\n The *list_view* component is loaded from ZUIX site.\n When bundling the app all remote components will be\n crunched into the `app.bundle.js` file and will then\n be loaded from memory. --\u003E\n\n \u003Cdiv data-ui-load=\"https:\u002F\u002Fgenielabs.github.io\u002Fzuix\u002Fui\u002Fcontrols\u002Flist_view\"\n data-ui-field=\"list-view\"\n self=\"size-large\"\u003E\n\n Loading news list...\n\n \u003C\u002Fdiv\u003E\n\n\u003C\u002Fdiv\u003E\n","css":".list {\n padding-bottom: 64px;\n}\n.list \u003E div {\n padding-right: 16px;\n}","controller":function (cp) {
'use strict';
var listView;
var sourceId;
var currentPage = 0;
var updateCallback;
cp.create = function () {
sourceId = cp.view().attr('data-ui-field');
// get a reference to the list_view component once it is loaded (async)
zuix.context(cp.field('list-view'), function(ctx){
listView = ctx;
// listen and route the listView 'status' event
listView.on('status', function (e, status) {
if (updateCallback != null)
updateCallback(status);
});
// set items per page (from component attribute or 20 by default)
var ipp = cp.view().attr('data-ui-items');
if (ipp == null) ipp = 20;
listView.config({
listMode: 'paged',
itemsPerPage: parseInt(ipp)
});
// fetch the list data by invoking Hacker News FireBase API
loadList(sourceId+'stories');
});
// Methods exposed by hn_list component
// <hn_list_ctx>.source()
// returns the data source name (eg. new, top, job)
cp.expose('source', function () {
return sourceId;
});
// <hn_list_ctx>.page([<p>])
// gets or sets the current listView page
cp.expose('page', function (p) {
if (!isNaN(p)) {
cp.view().get().scrollTop = 0;
currentPage = p;
}
if (listView != null) {
if (typeof p !== 'undefined')
currentPage = listView.page(currentPage);
else listView.status();
}
return currentPage;
});
// <hn_list_ctx>.callback(<callback_fn>)
// register a <callback_fn> that will get called
// each time a new item is loaded or page is changed
cp.expose('callback', function (callback) {
updateCallback = callback;
});
};
cp.destroy = function () {
if (listView != null)
listView.clear();
cp.log.i('Element disposed... G\'bye!');
};
function loadList(sourceId) {
listView.clear();
firebase.loadList(sourceId, function (listData) {
listView.model({
itemList: listData,
getItem: function (index, item) {
return {
// Unique identifier for this item.
itemId: index,
// Display item using "hn_list/story_item" component.
componentId: 'components/hn_list/story_item',
// Component options.
options: {
// Set the item model's data.
model: { index: index, id: item },
// Do not check for model refresh since
// it does not change once created.
static: true,
// Load the component only when
// it's about to come into view
lazyLoad: true,
// The min-height of the item container
// should be specified before its component
// is loaded in order to prevent list resize
// flickering after lazy-loading an item.
// So we either define a responsive 'className'
// or a fixed 'height' property.
className: 'list-item',
// Event handlers.
on: {
'item:enter': function (e, item) {
item.view.addClass('active');
},
'item:leave': function (e, item) {
item.view.removeClass('active');
}
},
ready: function () {
// TODO: ...
}
}
}
}
});
// go to current page
if (currentPage >= 0)
currentPage = listView.page(currentPage);
});
}
},"css_applied":true},{"componentId":"_res\u002Fstyle\u002Fstyle--434543133","view":null,"css":"\u002F* latin-ext *\u002F\n@font-face {\n font-family: 'Scope One';\n font-style: normal;\n font-weight: 400;\n src: local('Scope One'), local('ScopeOne-Regular'), url(https:\u002F\u002Ffonts.gstatic.com\u002Fs\u002Fscopeone\u002Fv2\u002F5L_rzgZS69R6TluPhc4U-xJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');\n unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;\n}\n\u002F* latin *\u002F\n@font-face {\n font-family: 'Scope One';\n font-style: normal;\n font-weight: 400;\n src: local('Scope One'), local('ScopeOne-Regular'), url(https:\u002F\u002Ffonts.gstatic.com\u002Fs\u002Fscopeone\u002Fv2\u002F_52Fm41u4u2R3EEH0A9bn1tXRa8TVwTICgirnJhmVJw.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215;\n}\n","controller":null,"using":"https:\u002F\u002Ffonts.googleapis.com\u002Fcss?family=Scope+One"},{"componentId":"https:\u002F\u002Fgenielabs.github.io\u002Fzuix\u002Fui\u002Fcontrols\u002Fscroll_helper","view":"\u003Cdiv self=\"size-x1\" layout=\"column center-center\" class=\"list\"\u003E\n\n \u003C!-- Example of loading a component from a remote hosting site.\n The *list_view* component is loaded from ZUIX site.\n When bundling the app all remote components will be\n crunched into the `app.bundle.js` file and will then\n be loaded from memory. --\u003E\n\n \u003Cdiv data-ui-load=\"https:\u002F\u002Fgenielabs.github.io\u002Fzuix\u002Fui\u002Fcontrols\u002Flist_view\" data-ui-field=\"list-view\" self=\"size-large\"\u003E\n\n Loading news list...\n\n \u003C\u002Fdiv\u003E\n\n\u003C\u002Fdiv\u003E\n","css":null,"controller":function (cp) {
cp.init = function () {
cp.options().html = false;
cp.options().css = false;
};
cp.create = function () {
cp.view().on('scroll', scrollCheck);
};
var scrollInfo = {
lastTop: 0,
timestamp: 0,
timeout: null
};
function scrollCheck(e) {
var now = new Date().getTime();
// Footer reveal logic
if (scrollInfo.timeout != null)
clearTimeout(scrollInfo.timeout);
var endScroll = e.target.firstChild.offsetHeight-e.target.offsetHeight-e.target.scrollTop;
if ((endScroll <= 0 || e.target.scrollTop === 0)) {
scrollInfo.timeout = setTimeout(function () {
cp.trigger('scrollHelper', e.target.scrollTop === 0 ? 'hitTop' : 'hitBottom');
}, 100);
}
// Footer hide logic
else if (now - scrollInfo.timestamp > 200) {
scrollInfo.timestamp = now;
var dy = Math.abs(e.target.scrollTop - scrollInfo.lastTop);
if (dy > 20) {
cp.trigger('scrollHelper', 'moving');
scrollInfo.lastTop = e.target.scrollTop;
}
}
}
}},{"componentId":"components\u002Fhn_thread","view":"\u003Cdiv self=\"size-x1\" layout=\"column center-center\"\u003E\n\n \u003Cdiv class=\"main-header\" self=\"size-xlarge top-center\"\u003E\n \u003Ch1\u003E\u003Ca data-ui-field=\"title\"\u003EThread title...\u003C\u002Fa\u003E\u003C\u002Fh1\u003E\n \u003Ca data-ui-field=\"url\" class=\"single-line\"\u003E\u003C\u002Fa\u003E\n \u003Ch3\u003E\n \u003Cspan data-ui-field=\"date\"\u003E...\u003C\u002Fspan\u003E\n by \u003Cspan data-ui-field=\"user\"\u003E...\u003C\u002Fspan\u003E\n \u002F \u003Cspan data-ui-field=\"score\"\u003E...\u003C\u002Fspan\u003E\n \u003C\u002Fh3\u003E\n \u003Cp data-ui-field=\"body\"\u003E\u003C\u002Fp\u003E\n \u003Ca data-ui-field=\"reply\"\u003E↷ Reply\u003C\u002Fa\u003E\n \u003C\u002Fdiv\u003E\n\n \u003Cdiv data-ui-field=\"thread\"\n layout=\"column top-stretch\"\n self=\"size-xlarge top-center\"\u003E\n \u003C\u002Fdiv\u003E\n\n \u003Cdiv data-ui-field=\"loading\"\n self=\"size-xlarge center-center\"\n align=\"center\"\u003E\n \u003Ch1 class=\"animated bounce infinite\"\u003E... loading ...\u003C\u002Fh1\u003E\n \u003C\u002Fdiv\u003E\n\n \u003Ca href=\"javascript:history.back()\" class=\"back-btn\"\u003E◄ back\u003C\u002Fa\u003E\n\n\u003C\u002Fdiv\u003E\n","css":".main-header h1 {\n margin-top: 8px;\n margin-bottom: 0;\n}\n.main-header h3 {\n margin-top: 8px;\n margin-bottom: 8px;\n}\n\na[data-ui-field=\"reply\"] {\n color: dodgerblue;\n cursor: pointer;\n font-weight: bold;\n margin-right: 2px;\n text-decoration: none;\n text-transform: uppercase;\n}\n\na[data-ui-field=\"title\"] {\n color: black;\n text-decoration: none;\n}\n\n.main-header {\n padding: 16px;\n margin-bottom: 8px;\n}\n\n.back-btn {\n font-size: 160%;\n color: black;\n text-decoration: none;\n padding: 16px;\n margin: 16px;\n}\n\ndiv[data-ui-field=\"thread\"] {\n overflow-x: hidden;\n}\ndiv[data-ui-field=\"thread\"] \u003E div \u003E div.message {\n padding-bottom: 16px;\n border-bottom: dotted 2px rgba(0,0,0,0.3);\n}\n\nspan[data-ui-field=\"count\"] {\n margin-left: 24px;\n}","controller":function (cp) {
'use strict';
cp.create = function () {
cp.expose('load', function(id, callback) {
firebase.loadItem(id, function (itemData) {
render(itemData);
callback(itemData);
});
});
};
cp.destroy = function () {
clear();
};
function render(item) {
cp.view().get().scrollTop = 0;
// Load data from `item` to the view's fields.
// This could also be done automatically
// by calling `cp.model(item)` method
// and take advantage of model-to-field mapping,
// but we prefer more control over it in this case.
cp.field('title').html(item.title);
if (item.url != null) {
cp.field('title').attr('href', item.url);
cp.field('url').html(item.shorturl)
.attr('href', item.url);
}
cp.field('user').html(item.by);
cp.field('score').html(item.score);
cp.field('date').html(item.timestamp);
if (item.text != null)
cp.field('body').html(item.text);
else
cp.field('body').html('');
cp.field('reply').attr('href', 'https://news.ycombinator.com/reply?id='+item.id);
cp.field('thread').hide();
cp.field('loading').show();
// since disposing of previous list may block the UI,
// we delay its call to allow the loading message to be shown first
setTimeout(function () {
clear();
// list thread's messages
zuix.$.each(item.kids, function (k, v) {
// create the message component
var message = zuix.createComponent('components/hn_message', {
// the `ready` callback
ready: function (ctx) {
// once the component is ready and visible we call its
// `load` method to actually load the message data from firebase
ctx.load(v);
}
});
// give a min-height to the message container
// for better lazy-loading performance
message.container().style['min-height'] = '48px';
// append the message component container to the list
// at this point the component is not yet loaded
// it will be only loaded if the container comes
// into the user's screen view, then the `ready`
// callback registered above will be called
cp.field('thread').append(message.container());
});
// after appending all messages containers we show the list's div
// so that zuix.componentize(...) can start lazy-loading components
cp.field('loading').hide();
cp.field('thread').show();
zuix.componentize(cp.field('thread'));
}, 300);
}
function clear() {
// clear the list by disposing all message components
var messages = cp.field('thread').children();
for(var i = messages.length()-1; i >= 0; i--)
zuix.unload(messages.get(i));
}
}},{"componentId":"content\u002Fabout","view":"\u003Cdiv class=\"about-dialog\"\u003E\n \u003Ch2 align=\"center\"\u003EHacker News Reader\u003C\u002Fh2\u003E\n \u003Cp\u003E\n HN Reader is a \u003Ca href=\"https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Fprogressive-web-apps\u002F\"\u003EProgressive Web App\u003C\u002Fa\u003E example,\n made with \u003Ca href=\"https:\u002F\u002Fgenielabs.github.io\u002Fzuix\"\u003E\u003Cstrong\u003EZUIX\u003C\u002Fstrong\u003E\u003C\u002Fa\u003E,\n a lite and yet powerful Javascript library for creating\n component-based sites and web apps.\u003Cbr\u002F\u003E\n \u003C\u002Fp\u003E\n \u003Ch4\u003EResources\u003C\u002Fh4\u003E\n \u003Cul\u003E\n \u003Cli\u003E\u003Ca href=\"https:\u002F\u002Fgenielabs.github.io\u002Fzuix\"\u003EZUIX Home\u003C\u002Fa\u003E\u003C\u002Fli\u003E\n \u003Cli\u003E\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fg-labs-sw\u002Fzuix-hackernews\"\u003ESource-Code\u003C\u002Fa\u003E for this example\u003C\u002Fli\u003E\n \u003C\u002Ful\u003E\n \u003Cp\u003E\n The following helpers are also used in this app:\n \u003C\u002Fp\u003E\n \u003Cul\u003E\n \u003Cli\u003E\u003Ca href=\"https:\u002F\u002Fdaneden.github.io\u002Fanimate.css\"\u003EAnimate CSS\u003C\u002Fa\u003E\u003C\u002Fli\u003E\n \u003Cli\u003E\u003Ca href=\"http:\u002F\u002Fprogressivered.com\u002Ffla\"\u003EFlex Layout Attributes\u003C\u002Fa\u003E\u003C\u002Fli\u003E\n \u003Cli\u003E\u003Ca href=\"https:\u002F\u002Fmomentjs.com\u002F\"\u003EMoment.js\u003C\u002Fa\u003E\u003C\u002Fli\u003E\n \u003C\u002Ful\u003E\n \u003Cdiv align=\"right\"\u003E\n \u003Csmall\u003Ecoding by \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgenielabs\"\u003Egenielabs\u003C\u002Fa\u003E\u003C\u002Fsmall\u003E\n\n \u003C\u002Fdiv\u003E\n\u003C\u002Fdiv\u003E\n","css":".about-dialog {\n max-width: 420px;\n background-color: white;\n -webkit-box-shadow: 0 0 26px 3px rgba(50, 50, 50, 0.25);\n -moz-box-shadow: 0 0 26px 3px rgba(50, 50, 50, 0.25);\n box-shadow: 0 0 26px 3px rgba(50, 50, 50, 0.25);\n border-radius: 24px;\n -moz-border-radius: 24px;\n -webkit-border-radius: 24px;\n border: 1px solid #000000;\n padding: 8px 24px 24px;\n margin: 16px;\n}\n\n.about-dialog strong {\n font-size: 110%;\n font-weight: bolder;\n}\n","controller":function (){}},{"componentId":"https:\u002F\u002Fgenielabs.github.io\u002Fzuix\u002Fui\u002Fcontrols\u002Flist_view","controller":function (cp) {
// Set list type: [ 'full', 'paged', 'incremental' ] (default: 'full')
var MODE_FULL = 'full', MODE_PAGED = 'paged', MODE_INCREMENTAL = 'incremental';
var listMode = MODE_FULL;
// How many items per page to show/add (for 'paged' and 'incremental' modes) (default: 30)
var itemsPerPage = 30;
// Structure used to store component state info
var statusInfo = {
page: {
current: 0,
count: 0
},
items: {
loaded: 0,
count: 0
}
};
// Objects data persistence
var listItems = [];
cp.init = function () {
cp.options().html = false;
cp.options().css = false;
};
// TODO: describe the model and options used by this component
cp.create = function () {
// exposed methods through this component context
cp.expose('config', configure);
cp.expose('page', setPage);
cp.expose('status', triggerStatus);
cp.expose('more', function () {
statusInfo.page.current++;
cp.update();
});
cp.expose('clear', clear);
// init
clear();
};
cp.destroy = function () {
clear();
};
cp.update = function() {
var modelList = cp.model().itemList;
if (modelList == null) return;
statusInfo.page.count = pageCount();
statusInfo.items.count = modelList.length;
var startItem = statusInfo.page.current*itemsPerPage;
var i = 0;
if (listMode === MODE_PAGED && startItem > 0)
i = startItem;
for ( ; i < modelList.length; i++) {
var dataItem = cp.model().getItem(i, modelList[i]);
var id = dataItem.itemId;
if ((listMode === MODE_FULL) ||
(listMode === MODE_PAGED && i >= startItem && i < startItem+itemsPerPage) ||
(listMode === MODE_INCREMENTAL && i < startItem+itemsPerPage)) {
if (typeof listItems[id] === 'undefined') {
var container = zuix.createComponent(dataItem.componentId, dataItem.options).container();
// use a responsive CSS class if provided
if (dataItem.options.className != null) {
// this class should set the min-height property
container.classList.add(dataItem.options.className);
} else {
// set a temporary height for the container (for lazy load to work properly)
container.style['min-height'] = dataItem.options.height || '48px';
}
// register a callback to know when the component is actually loaded
var listener = function (itemIndex, el) {
var l = function () {
el.removeEventListener('component:ready', l);
// trigger status update event
statusInfo.items.loaded++;
triggerStatus();
// if all components have been loaded, then trigger 'complete' event
if (itemIndex === modelList.length - 1)
cp.trigger('complete');
};
container.addEventListener('component:ready', l);
}(i, container);
// keep track of already allocated items
listItems[id] = container;
// add item container to the list-view, the component will be lazy-loaded later as needed
cp.view().insert(i-startItem, listItems[id]);
} else if (!dataItem.options.static) {
// update existing item model's data
// TODO: should check if the data in the model has changed before calling this
// TODO: should also call the `model` method in the `zuix.context` callback
zuix.context(listItems[id]).model(dataItem.options.model);
}
}
if (typeof listItems[id] !== 'undefined') {
if ((listMode === MODE_PAGED && i < statusInfo.page.current * itemsPerPage) || (listMode !== MODE_FULL && i > ((statusInfo.page.current + 1) * itemsPerPage - 1))) {
listItems[id].style['display'] = 'none';
} else {
listItems[id].style['display'] = '';
}
}
if ((listMode === MODE_PAGED || listMode === MODE_INCREMENTAL) && i > startItem+itemsPerPage)
break;
}
// trigger status update event
triggerStatus();
// `componentize` is required to process lazy-loaded items
zuix.componentize(cp.view());
};
function setPage(number) {
if (!isNaN(number) && number >= 0 && number < pageCount()) {
if (listMode == MODE_PAGED)
clearPage(statusInfo.page.current);
statusInfo.page.current = parseInt(number);
cp.update();
}
return statusInfo.page.current;
}
function clearPage(number) {
var modelList = cp.model().itemList;
if (modelList == null) return;
var startItem = number*itemsPerPage;
for(var i = startItem; i < listItems.length && i < startItem+itemsPerPage; i++) {
var dataItem = cp.model().getItem(i, modelList[i]);
var id = dataItem.itemId;
if (typeof listItems[id] !== 'undefined')
listItems[id].style['display'] = 'none';
}
}
function triggerStatus() {
cp.trigger('status', statusInfo);
}
function pageCount() {
return Math.ceil(cp.model().itemList.length / itemsPerPage);
}
function configure(options) {
if (options.itemsPerPage != null)
itemsPerPage = options.itemsPerPage;
if (options.listMode != null)
listMode = options.listMode;
}
function clear() {
// dispose components
for (var i = 0; i < listItems.length; i++) {
zuix.unload(listItems[i]);
}
listItems.length = 0;
statusInfo.page.current = 0;
statusInfo.page.count = 0;
statusInfo.items.loaded = 0;
statusInfo.items.count = 0;
// clear the view
cp.view().html('');
}
}},{"componentId":"components\u002Fhn_list\u002Fstory_item","view":"\u003Cdiv class=\"number animated fadeIn\" data-ui-field=\"number\"\u003E\u003C\u002Fdiv\u003E\n\u003Cdiv data-ui-field=\"card\" class=\"content animated fadeInUpBig\"\u003E\n \u003Ch3\u003E\n \u003Ca data-ui-field=\"title\" class=\"single-line\"\u003ELoading...\u003C\u002Fa\u003E\n \u003C\u002Fh3\u003E\n \u003Ca data-ui-field=\"url\" class=\"single-line\"\u003E\u003C\u002Fa\u003E\n \u003Cdiv data-ui-field=\"description\" class=\"single-line\"\u003E\n \u003Cspan data-ui-field=\"date\"\u003E...\u003C\u002Fspan\u003E\n by \u003Cspan data-ui-field=\"user\"\u003E...\u003C\u002Fspan\u003E\n \u002F \u003Cspan data-ui-field=\"score\"\u003E...\u003C\u002Fspan\u003E\n \u003Ca data-ui-field=\"descendants\"\u003E\u003C\u002Fa\u003E\n \u003C\u002Fdiv\u003E\n\u003C\u002Fdiv\u003E\n","css":". {\n border-bottom: solid 1px whitesmoke;\n overflow: hidden;\n position: relative;\n}\n\nh3 {\n margin: 0;\n font-weight: 600;\n}\nh3 \u003E a {\n color: black;\n}\na {\n text-decoration: none;\n}\n.number {\n position: absolute;\n margin: 0;\n padding: 8px 0 0;\n width: 48px;\n text-align: center;\n color: #3b5998;\n font-size: 120%;\n font-weight: bold;\n animation-duration: 0.8s;\n -webkit-animation-duration: 0.8s;\n -moz-animation-duration: 0.8s;\n -o-animation-duration: 0.8s;\n}\n.content {\n padding-top: 8px;\n padding-left: 48px;\n animation-duration: 0.3s;\n -webkit-animation-duration: 0.3s;\n -moz-animation-duration: 0.3s;\n -o-animation-duration: 0.3s;\n}\n.active {\n background-color: rgba(100, 100, 100, 0.1);\n}","controller":function (cp) {
'use strict';
cp.create = function () {
var item = cp.model();
// Display item number
cp.field('number').html(item.index+1);
firebase.loadItem(item.id, render);
};
cp.destroy = function () {
cp.log.i('Element disposed... G\'bye!');
};
function render(item) {
if (item.dead || item.deleted) {
// This is a delete message, so there's nothing to show,
// we just unload/remove the component
zuix.unload(cp.context);
return;
}
cp.field('title').html(item.title);
cp.field('user').html(item.by);
cp.field('score').html(item.score);
if (item.descendants > 0) {
cp.field('descendants').html(' / '+item.comments);
cp.field('descendants').attr('href', '#/comments/'+item.id);
}
cp.field('date').html(item.timestamp);
if (item.url != null) {
cp.field('url').html(item.shorturl)
.attr('href', item.url);
cp.field('title')
.attr('href', item.url);
} else {
cp.field('title').attr('href', '#/comments/'+item.id);
}
// Custom Events for this component
var card = cp.field('card');
var payload = {
view: card,
data: item
};
card.on('mouseover', 'item:enter', payload)
.on('mouseout', 'item:leave', payload);
}
},"css_applied":true},{"componentId":"components\u002Fhn_message","view":"\u003Cdiv class=\"message\"\u003E\n\n \u003Cdiv class=\"header\"\u003E\n \u003Cspan class=\"from\" data-ui-field=\"by\"\u003E\u003C\u002Fspan\u003E\n \u003Cspan data-ui-field=\"time\"\u003E\u003C\u002Fspan\u003E\n \u003C\u002Fdiv\u003E\n\n \u003Cp data-ui-field=\"body\"\u003E\n\n Loading message...\n\n \u003C\u002Fp\u003E\n\n \u003Cdiv class=\"toolbar\"\u003E\n \u003Ca data-ui-field=\"replies-toggle\"\u003E\u003Ci class=\"arrow-close\"\u003E\u003C\u002Fi\u003E\u003C\u002Fa\u003E\n \u003Cspan data-ui-field=\"replies-count\"\u003E\u003C\u002Fspan\u003E\n \u003Ca data-ui-field=\"reply\"\u003E↷ Reply\u003C\u002Fa\u003E\n \u003C\u002Fdiv\u003E\n\n \u003Cdiv data-ui-field=\"replies\" class=\"replies\"\u003E\u003C\u002Fdiv\u003E\n\n \u003Cdiv data-ui-field=\"bottom-bar\" class=\"toolbar\"\u003E\n \u003Ca data-ui-field=\"replies-top\"\u003E\u003Ci class=\"arrow-top\"\u003E\u003C\u002Fi\u003E\u003C\u002Fa\u003E\n \u003C\u002Fdiv\u003E\n\n\u003C\u002Fdiv\u003E\n","css":".header {\n font-size: 110%;\n margin-bottom: 8px;\n}\n\n.from {\n font-weight: bold;\n margin-right: 10px;\n}\n\n.replies {\n border-left: dotted 1px rgba(0,0,0,0.2);\n}\n\n.toolbar {\n font-size: 90%;\n font-weight: bold;\n text-transform: uppercase;\n padding: 8px;\n margin-left: -12px;\n}\n.toolbar span {\n margin-right: 12px;\n}\n.toolbar a {\n color: dodgerblue;\n cursor: pointer;\n margin-right: 2px;\n text-decoration: none;\n}\n\n.arrow-open:after {\n content: '\\21e9 \\ Hide';\n font-style: normal;\n}\n\n.arrow-close:after {\n content: '\\279c \\ Show';\n font-style: normal;\n}\n\n.arrow-top:after {\n content: '\\21e7 \\ Top';\n font-style: normal;\n}\n\npre {\n font-size: 95%;\n white-space: pre-wrap; \u002F* Since CSS 2.1 *\u002F\n white-space: -moz-pre-wrap; \u002F* Mozilla, since 1999 *\u002F\n white-space: -pre-wrap; \u002F* Opera 4-6 *\u002F\n white-space: -o-pre-wrap; \u002F* Opera 7 *\u002F\n word-wrap: break-word; \u002F* Internet Explorer 5.5+ *\u002F\n}\n","controller":function (cp) {
'use strict';
cp.create = function () {
cp.expose('load', function(id) {
firebase.loadItem(id, render);
});
};
cp.destroy = function () {
clear();
};
function render(item) {
if (item.dead || item.deleted) {
// This is a delete message, so there's nothing to show,
// we just unload/remove the component
zuix.unload(cp.context);
return;
}
// Load data from `item` to the view's fields.
// This could also be done automatically
// by calling `cp.model(item)` method
// and take advantage of model-to-field mapping,
// but we prefer more control over it in this case.
cp.field('time').html(item.timestamp);
cp.field('by').html(item.by);
cp.field('body').html(item.text);
cp.field('reply').attr('href', 'https://news.ycombinator.com/reply?id='+item.id);
cp.field('replies').hide();
cp.field('bottom-bar').hide();
// Message thread replies
if (item.kids != null) {
// Collapse / Expand message thread
cp.field('replies-toggle').show('inline').on('click', function () {
this.removeClass('animated flash');
if (cp.field('replies').display()==='none')
openThread();
else
closeThread();
});
// Handle button for moving to top of message thread
cp.field('replies-top').on('click', function () {
var scroller = this.parent('.scrollable');
zuix.$.scrollTo(scroller.get(), -(cp.field('replies').get().offsetHeight-16), 300);
});
var countText = (item.kids.length > 1 ? 'replies' : 'reply');
cp.field('replies-count').html(item.kids.length + ' ' + countText);
} else {
cp.field('replies-toggle').hide();
}
// Create components for direct replies of this message.
// We are using this same component for child message.
// So this is some sort of components loading recursion.
// The recursion will only be engaged after the message
// comes into the user's screen's view (lazy-loading).
zuix.$.each(item.kids, function (k, v) {
var message = zuix.createComponent('components/hn_message', {
ready: function (ctx) {
ctx.load(v);
}
});
message.container().style['min-height'] = '48px';
cp.field('replies').append(message.container());
});
zuix.componentize(cp.field('replies'));
}
function clear() {
// clear the list by disposing all message components
var messages = cp.field('replies').children();
for(var i = messages.length()-1; i >= 0; i--)
zuix.unload(messages.get(i));
}
function openThread() {
cp.field('replies-toggle').find('i')
.removeClass('arrow-close')
.addClass('arrow-open');
cp.field('replies').show();
cp.field('bottom-bar').show();
cp.field('replies-collapse').show('inline');
// we call `zuix.componentize(..)` after making the replies' div
// visible so that replies' components get actually loaded
zuix.componentize(cp.field('replies'));
}
function closeThread() {
cp.field('replies-toggle').find('i')
.removeClass('arrow-open')
.addClass('arrow-close');
cp.field('replies').hide();
cp.field('bottom-bar').hide();
cp.field('replies-collapse').hide();
}
},"css_applied":true}]);