From d372b7d5090463a0349918a5636268c7da349fef Mon Sep 17 00:00:00 2001 From: Bruno Charest Date: Mon, 22 Sep 2025 22:17:38 -0400 Subject: [PATCH] feat: update Angular cache with latest TypeScript definitions --- .angular/cache/20.2.2/app/.tsbuildinfo | 2 +- db/newtube.db | Bin 262144 -> 274432 bytes server/providers/twitch.mjs | 49 +- src/app/search/adapters/dm.ts | 28 +- src/app/search/adapters/od.ts | 45 +- src/app/search/adapters/pt.ts | 25 +- src/app/search/adapters/ru.ts | 27 +- src/app/search/adapters/tw.ts | 39 +- src/app/search/adapters/yt.ts | 27 +- src/app/search/models.ts | 8 +- src/app/search/search.service.ts | 36 +- .../search-result-grid.component.html | 14 + .../search-result-grid.component.scss | 0 .../search-result-grid.component.ts | 22 + .../video-card-skeleton.component.html | 7 + .../video-card-skeleton.component.scss | 0 .../video-card-skeleton.component.ts | 9 + .../video-card/video-card.component.html | 21 + .../video-card/video-card.component.scss | 7 + .../video-card/video-card.component.ts | 22 + src/app/shared/models/video-item.model.ts | 13 + .../account/history/history.component.html | 4 +- .../account/history/history.component.ts | 11 + src/components/search/search.component.html | 197 +------ src/components/search/search.component.ts | 493 ++++++++---------- .../themes/themes-nav.component.html.bak | 50 -- src/services/youtube-api.service.ts | 2 +- 27 files changed, 512 insertions(+), 646 deletions(-) create mode 100644 src/app/shared/components/search-result-grid/search-result-grid.component.html create mode 100644 src/app/shared/components/search-result-grid/search-result-grid.component.scss create mode 100644 src/app/shared/components/search-result-grid/search-result-grid.component.ts create mode 100644 src/app/shared/components/video-card-skeleton/video-card-skeleton.component.html create mode 100644 src/app/shared/components/video-card-skeleton/video-card-skeleton.component.scss create mode 100644 src/app/shared/components/video-card-skeleton/video-card-skeleton.component.ts create mode 100644 src/app/shared/components/video-card/video-card.component.html create mode 100644 src/app/shared/components/video-card/video-card.component.scss create mode 100644 src/app/shared/components/video-card/video-card.component.ts create mode 100644 src/app/shared/models/video-item.model.ts delete mode 100644 src/components/themes/themes-nav.component.html.bak diff --git a/.angular/cache/20.2.2/app/.tsbuildinfo b/.angular/cache/20.2.2/app/.tsbuildinfo index b56ac02..f8d1a7f 100644 --- a/.angular/cache/20.2.2/app/.tsbuildinfo +++ b/.angular/cache/20.2.2/app/.tsbuildinfo @@ -1 +1 @@ -{"fileNames":["../../../../node_modules/typescript/lib/lib.es5.d.ts","../../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../../node_modules/typescript/lib/lib.dom.d.ts","../../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../../node_modules/tslib/tslib.d.ts","../../../../index.ngtypecheck.ts","../../../../node_modules/@angular/core/graph.d.d.ts","../../../../node_modules/@angular/core/event_dispatcher.d.d.ts","../../../../node_modules/@angular/core/chrome_dev_tools_performance.d.d.ts","../../../../node_modules/rxjs/dist/types/internal/subscription.d.ts","../../../../node_modules/rxjs/dist/types/internal/subscriber.d.ts","../../../../node_modules/rxjs/dist/types/internal/operator.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable.d.ts","../../../../node_modules/rxjs/dist/types/internal/types.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/audit.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/audittime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/buffer.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/buffercount.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/buffertime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/buffertoggle.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/bufferwhen.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/catcherror.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/combinelatestall.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/combineall.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/combinelatest.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/combinelatestwith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/concat.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/concatall.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/concatmap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/concatmapto.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/concatwith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/connect.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/count.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/debounce.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/debouncetime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/defaultifempty.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/delay.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/delaywhen.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/dematerialize.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/distinct.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/distinctuntilchanged.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/distinctuntilkeychanged.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/elementat.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/endwith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/every.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/exhaustall.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/exhaust.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/exhaustmap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/expand.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/filter.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/finalize.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/find.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/findindex.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/first.d.ts","../../../../node_modules/rxjs/dist/types/internal/subject.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/groupby.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/ignoreelements.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/isempty.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/last.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/map.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mapto.d.ts","../../../../node_modules/rxjs/dist/types/internal/notification.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/materialize.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/max.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/merge.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mergeall.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mergemap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/flatmap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mergemapto.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mergescan.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mergewith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/min.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/connectableobservable.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/multicast.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/observeon.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/onerrorresumenextwith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/pairwise.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/partition.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/pluck.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/publish.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/publishbehavior.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/publishlast.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/publishreplay.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/race.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/racewith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/reduce.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/repeat.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/repeatwhen.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/retry.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/retrywhen.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/refcount.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/sample.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/sampletime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/scan.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/sequenceequal.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/share.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/sharereplay.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/single.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/skip.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/skiplast.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/skipuntil.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/skipwhile.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/startwith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/subscribeon.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/switchall.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/switchmap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/switchmapto.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/switchscan.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/take.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/takelast.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/takeuntil.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/takewhile.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/tap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/throttle.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/throttletime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/throwifempty.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/timeinterval.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/timeout.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/timeoutwith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/timestamp.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/toarray.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/window.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/windowcount.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/windowtime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/windowtoggle.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/windowwhen.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/withlatestfrom.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/zip.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/zipall.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/zipwith.d.ts","../../../../node_modules/rxjs/dist/types/operators/index.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/action.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/testmessage.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/subscriptionlog.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/subscriptionloggable.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/coldobservable.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/hotobservable.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/asyncscheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/timerhandle.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/asyncaction.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/virtualtimescheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/testscheduler.d.ts","../../../../node_modules/rxjs/dist/types/testing/index.d.ts","../../../../node_modules/rxjs/dist/types/internal/symbol/observable.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/dom/animationframes.d.ts","../../../../node_modules/rxjs/dist/types/internal/behaviorsubject.d.ts","../../../../node_modules/rxjs/dist/types/internal/replaysubject.d.ts","../../../../node_modules/rxjs/dist/types/internal/asyncsubject.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/asapscheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/asap.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/async.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/queuescheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/queue.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/animationframescheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/animationframe.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/identity.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/pipe.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/noop.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/isobservable.d.ts","../../../../node_modules/rxjs/dist/types/internal/lastvaluefrom.d.ts","../../../../node_modules/rxjs/dist/types/internal/firstvaluefrom.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/argumentoutofrangeerror.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/emptyerror.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/notfounderror.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/objectunsubscribederror.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/sequenceerror.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/unsubscriptionerror.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/bindcallback.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/bindnodecallback.d.ts","../../../../node_modules/rxjs/dist/types/internal/anycatcher.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/combinelatest.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/concat.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/connectable.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/defer.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/empty.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/forkjoin.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/from.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/fromevent.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/fromeventpattern.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/generate.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/iif.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/interval.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/merge.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/never.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/of.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/onerrorresumenext.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/pairs.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/partition.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/race.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/range.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/throwerror.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/timer.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/using.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/zip.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduled/scheduled.d.ts","../../../../node_modules/rxjs/dist/types/internal/config.d.ts","../../../../node_modules/rxjs/dist/types/index.d.ts","../../../../node_modules/@angular/core/effect.d.d.ts","../../../../node_modules/@angular/core/primitives/di/index.d.ts","../../../../node_modules/@angular/core/discovery.d.d.ts","../../../../node_modules/@angular/core/api.d.d.ts","../../../../node_modules/@angular/core/weak_ref.d.d.ts","../../../../node_modules/@angular/core/index.d.ts","../../../../node_modules/@angular/common/platform_location.d.d.ts","../../../../node_modules/@angular/common/common_module.d.d.ts","../../../../node_modules/@angular/common/xhr.d.d.ts","../../../../node_modules/@angular/common/index.d.ts","../../../../node_modules/@angular/platform-browser/browser.d.d.ts","../../../../node_modules/@angular/common/module.d.d.ts","../../../../node_modules/@angular/common/http/index.d.ts","../../../../node_modules/@angular/platform-browser/index.d.ts","../../../../node_modules/@angular/router/router_module.d.d.ts","../../../../node_modules/@angular/router/index.d.ts","../../../../src/app.component.ngtypecheck.ts","../../../../src/components/header/header.component.ngtypecheck.ts","../../../../src/services/instance.service.ngtypecheck.ts","../../../../src/services/instance.service.ts","../../../../node_modules/@angular/forms/index.d.ts","../../../../src/services/auth.service.ngtypecheck.ts","../../../../src/services/auth.service.ts","../../../../src/services/user.service.ngtypecheck.ts","../../../../src/services/user.service.ts","../../../../src/pipes/translate.pipe.ngtypecheck.ts","../../../../src/services/i18n.service.ngtypecheck.ts","../../../../src/services/i18n.service.ts","../../../../src/pipes/translate.pipe.ts","../../../../src/services/themes.service.ngtypecheck.ts","../../../../src/models/theme.model.ngtypecheck.ts","../../../../src/models/theme.model.ts","../../../../src/services/themes.service.ts","../../../../src/services/history.service.ngtypecheck.ts","../../../../src/services/history.service.ts","../../../../src/components/search/search-box.component.ngtypecheck.ts","../../../../src/app/core/providers/provider-registry.ngtypecheck.ts","../../../../src/app/core/providers/provider-registry.ts","../../../../src/components/search/provider-picker.component.ngtypecheck.ts","../../../../src/components/search/provider-picker.component.ts","../../../../src/app/search/search.service.ngtypecheck.ts","../../../../src/app/search/api.v1.ngtypecheck.ts","../../../../src/app/search/api.v1.ts","../../../../src/app/search/adapters/yt.ngtypecheck.ts","../../../../src/app/search/models.ngtypecheck.ts","../../../../src/app/search/models.ts","../../../../src/app/search/adapters/yt.ts","../../../../src/app/search/adapters/dm.ngtypecheck.ts","../../../../src/app/search/adapters/dm.ts","../../../../src/app/search/adapters/tw.ngtypecheck.ts","../../../../src/app/search/adapters/tw.ts","../../../../src/app/search/adapters/pt.ngtypecheck.ts","../../../../src/app/search/adapters/pt.ts","../../../../src/app/search/adapters/od.ngtypecheck.ts","../../../../src/app/search/adapters/od.ts","../../../../src/app/search/adapters/ru.ngtypecheck.ts","../../../../src/app/search/adapters/ru.ts","../../../../src/app/search/search.service.ts","../../../../node_modules/@angular/core/rxjs-interop/index.d.ts","../../../../src/components/search/search-box.component.ts","../../../../src/components/header/header.component.ts","../../../../src/components/sidebar/sidebar.component.ngtypecheck.ts","../../../../src/components/sidebar/sidebar.component.ts","../../../../src/components/themes/themes-nav.component.ngtypecheck.ts","../../../../src/components/themes/themes-nav.component.ts","../../../../src/app.component.ts","../../../../src/app.routes.ngtypecheck.ts","../../../../src/components/themes/theme-page.component.ngtypecheck.ts","../../../../src/services/youtube-api.service.ngtypecheck.ts","../../../../src/models/video.model.ngtypecheck.ts","../../../../src/models/video.model.ts","../../../../src/services/youtube-api.service.ts","../../../../src/components/shared/components/like-button/like-button.component.ngtypecheck.ts","../../../../src/services/likes.service.ngtypecheck.ts","../../../../src/services/likes.service.ts","../../../../src/components/shared/components/like-button/like-button.component.ts","../../../../src/components/themes/theme-page.component.ts","../../../../src/components/themes/provider-theme-page.component.ngtypecheck.ts","../../../../src/components/themes/provider-theme-page.component.ts","../../../../src/components/search/search.component.ngtypecheck.ts","../../../../src/components/shared/infinite-anchor/infinite-anchor.component.ngtypecheck.ts","../../../../src/components/shared/infinite-anchor/infinite-anchor.component.ts","../../../../src/utils/date.util.ngtypecheck.ts","../../../../src/utils/date.util.ts","../../../../src/components/shared/components/add-to-playlist/add-to-playlist.component.ngtypecheck.ts","../../../../src/services/playlists.service.ngtypecheck.ts","../../../../src/services/playlists.service.ts","../../../../src/components/shared/components/add-to-playlist/add-to-playlist.component.ts","../../../../src/components/search/search.component.ts","../../../../src/components/shorts/watch-short.component.ngtypecheck.ts","../../../../src/components/shorts/watch-short.component.ts","../../../../src/components/watch/watch.component.ngtypecheck.ts","../../../../src/components/video-player/video-player.component.ngtypecheck.ts","../../../../src/components/video-player/video-player.component.ts","../../../../src/services/gemini.service.ngtypecheck.ts","../../../../node_modules/zod/v3/helpers/typealiases.d.cts","../../../../node_modules/zod/v3/helpers/util.d.cts","../../../../node_modules/zod/v3/index.d.cts","../../../../node_modules/zod/v3/zoderror.d.cts","../../../../node_modules/zod/v3/locales/en.d.cts","../../../../node_modules/zod/v3/errors.d.cts","../../../../node_modules/zod/v3/helpers/parseutil.d.cts","../../../../node_modules/zod/v3/helpers/enumutil.d.cts","../../../../node_modules/zod/v3/helpers/errorutil.d.cts","../../../../node_modules/zod/v3/helpers/partialutil.d.cts","../../../../node_modules/zod/v3/standard-schema.d.cts","../../../../node_modules/zod/v3/types.d.cts","../../../../node_modules/zod/v3/external.d.cts","../../../../node_modules/zod/index.d.cts","../../../../node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/types.d.ts","../../../../node_modules/@modelcontextprotocol/sdk/dist/esm/types.d.ts","../../../../node_modules/@modelcontextprotocol/sdk/dist/esm/shared/transport.d.ts","../../../../node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.d.ts","../../../../node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.d.ts","../../../../node_modules/gaxios/build/src/common.d.ts","../../../../node_modules/gaxios/build/src/interceptor.d.ts","../../../../node_modules/gaxios/build/src/gaxios.d.ts","../../../../node_modules/gaxios/build/src/index.d.ts","../../../../node_modules/google-auth-library/build/src/transporters.d.ts","../../../../node_modules/google-auth-library/build/src/auth/credentials.d.ts","../../../../node_modules/google-auth-library/build/src/crypto/crypto.d.ts","../../../../node_modules/google-auth-library/build/src/util.d.ts","../../../../node_modules/google-auth-library/build/src/auth/authclient.d.ts","../../../../node_modules/google-auth-library/build/src/auth/loginticket.d.ts","../../../../node_modules/google-auth-library/build/src/auth/oauth2client.d.ts","../../../../node_modules/google-auth-library/build/src/auth/idtokenclient.d.ts","../../../../node_modules/google-auth-library/build/src/auth/envdetect.d.ts","../../../../node_modules/gtoken/build/src/index.d.ts","../../../../node_modules/google-auth-library/build/src/auth/jwtclient.d.ts","../../../../node_modules/google-auth-library/build/src/auth/refreshclient.d.ts","../../../../node_modules/google-auth-library/build/src/auth/impersonated.d.ts","../../../../node_modules/google-auth-library/build/src/auth/baseexternalclient.d.ts","../../../../node_modules/google-auth-library/build/src/auth/identitypoolclient.d.ts","../../../../node_modules/google-auth-library/build/src/auth/awsrequestsigner.d.ts","../../../../node_modules/google-auth-library/build/src/auth/awsclient.d.ts","../../../../node_modules/google-auth-library/build/src/auth/pluggable-auth-client.d.ts","../../../../node_modules/google-auth-library/build/src/auth/externalclient.d.ts","../../../../node_modules/google-auth-library/build/src/auth/externalaccountauthorizeduserclient.d.ts","../../../../node_modules/google-auth-library/build/src/auth/googleauth.d.ts","../../../../node_modules/gcp-metadata/build/src/gcp-residency.d.ts","../../../../node_modules/gcp-metadata/build/src/index.d.ts","../../../../node_modules/google-auth-library/build/src/auth/computeclient.d.ts","../../../../node_modules/google-auth-library/build/src/auth/iam.d.ts","../../../../node_modules/google-auth-library/build/src/auth/jwtaccess.d.ts","../../../../node_modules/google-auth-library/build/src/auth/downscopedclient.d.ts","../../../../node_modules/google-auth-library/build/src/auth/passthrough.d.ts","../../../../node_modules/google-auth-library/build/src/index.d.ts","../../../../node_modules/@google/genai/dist/genai.d.ts","../../../../src/services/gemini.service.ts","../../../../src/services/download.service.ngtypecheck.ts","../../../../src/services/download.service.ts","../../../../src/services/iframe-progress.service.ngtypecheck.ts","../../../../src/services/iframe-progress.service.ts","../../../../src/components/watch/watch.component.ts","../../../../src/components/library/playlists/playlists.component.ngtypecheck.ts","../../../../src/components/library/playlists/playlists.component.ts","../../../../src/components/library/playlists/playlist-detail.component.ngtypecheck.ts","../../../../src/components/library/playlists/playlist-detail.component.ts","../../../../src/components/library/liked/liked.component.ngtypecheck.ts","../../../../src/components/library/liked/liked.component.ts","../../../../src/components/library/subscriptions/subscriptions.component.ngtypecheck.ts","../../../../src/components/library/subscriptions/subscriptions.component.ts","../../../../src/components/account/preferences/preferences.component.ngtypecheck.ts","../../../../src/components/account/preferences/preferences.component.ts","../../../../src/components/account/history/history.component.ngtypecheck.ts","../../../../src/components/account/history/history.component.ts","../../../../src/components/account/sessions/sessions.component.ngtypecheck.ts","../../../../src/components/account/sessions/sessions.component.ts","../../../../src/components/auth/login/login.component.ngtypecheck.ts","../../../../src/components/auth/login/login.component.ts","../../../../src/components/auth/register/register.component.ngtypecheck.ts","../../../../src/components/auth/register/register.component.ts","../../../../src/components/info/utilisation/utilisation.component.ngtypecheck.ts","../../../../src/components/info/utilisation/utilisation.component.ts","../../../../src/app.routes.ts","../../../../src/interceptors/auth.interceptor.ngtypecheck.ts","../../../../src/interceptors/auth.interceptor.ts","../../../../index.tsx","../../../../app/shared/components/like-button/like-button.ngtypecheck.ts","../../../../app/shared/components/like-button/like-button.ts","../../../../src/app/search/adapters/base.ngtypecheck.ts","../../../../src/app/search/adapters/base.ts","../../../../src/components/home/home.component.ngtypecheck.ts","../../../../src/components/home/home.component.ts","../../../../src/components/search/search-suggestions.component.ngtypecheck.ts","../../../../src/components/search/search-suggestions.component.ts","../../../../node_modules/@types/estree/index.d.ts","../../../../node_modules/@types/node/compatibility/disposable.d.ts","../../../../node_modules/@types/node/compatibility/indexable.d.ts","../../../../node_modules/@types/node/compatibility/iterators.d.ts","../../../../node_modules/@types/node/compatibility/index.d.ts","../../../../node_modules/@types/node/globals.typedarray.d.ts","../../../../node_modules/@types/node/buffer.buffer.d.ts","../../../../node_modules/@types/node/globals.d.ts","../../../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../../node_modules/@types/node/web-globals/domexception.d.ts","../../../../node_modules/@types/node/web-globals/events.d.ts","../../../../node_modules/buffer/index.d.ts","../../../../node_modules/undici-types/header.d.ts","../../../../node_modules/undici-types/readable.d.ts","../../../../node_modules/undici-types/file.d.ts","../../../../node_modules/undici-types/fetch.d.ts","../../../../node_modules/undici-types/formdata.d.ts","../../../../node_modules/undici-types/connector.d.ts","../../../../node_modules/undici-types/client.d.ts","../../../../node_modules/undici-types/errors.d.ts","../../../../node_modules/undici-types/dispatcher.d.ts","../../../../node_modules/undici-types/global-dispatcher.d.ts","../../../../node_modules/undici-types/global-origin.d.ts","../../../../node_modules/undici-types/pool-stats.d.ts","../../../../node_modules/undici-types/pool.d.ts","../../../../node_modules/undici-types/handlers.d.ts","../../../../node_modules/undici-types/balanced-pool.d.ts","../../../../node_modules/undici-types/agent.d.ts","../../../../node_modules/undici-types/mock-interceptor.d.ts","../../../../node_modules/undici-types/mock-agent.d.ts","../../../../node_modules/undici-types/mock-client.d.ts","../../../../node_modules/undici-types/mock-pool.d.ts","../../../../node_modules/undici-types/mock-errors.d.ts","../../../../node_modules/undici-types/proxy-agent.d.ts","../../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../../node_modules/undici-types/retry-handler.d.ts","../../../../node_modules/undici-types/retry-agent.d.ts","../../../../node_modules/undici-types/api.d.ts","../../../../node_modules/undici-types/interceptors.d.ts","../../../../node_modules/undici-types/util.d.ts","../../../../node_modules/undici-types/cookies.d.ts","../../../../node_modules/undici-types/patch.d.ts","../../../../node_modules/undici-types/websocket.d.ts","../../../../node_modules/undici-types/eventsource.d.ts","../../../../node_modules/undici-types/filereader.d.ts","../../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../../node_modules/undici-types/content-type.d.ts","../../../../node_modules/undici-types/cache.d.ts","../../../../node_modules/undici-types/index.d.ts","../../../../node_modules/@types/node/web-globals/fetch.d.ts","../../../../node_modules/@types/node/web-globals/navigator.d.ts","../../../../node_modules/@types/node/web-globals/storage.d.ts","../../../../node_modules/@types/node/assert.d.ts","../../../../node_modules/@types/node/assert/strict.d.ts","../../../../node_modules/@types/node/async_hooks.d.ts","../../../../node_modules/@types/node/buffer.d.ts","../../../../node_modules/@types/node/child_process.d.ts","../../../../node_modules/@types/node/cluster.d.ts","../../../../node_modules/@types/node/console.d.ts","../../../../node_modules/@types/node/constants.d.ts","../../../../node_modules/@types/node/crypto.d.ts","../../../../node_modules/@types/node/dgram.d.ts","../../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../../node_modules/@types/node/dns.d.ts","../../../../node_modules/@types/node/dns/promises.d.ts","../../../../node_modules/@types/node/domain.d.ts","../../../../node_modules/@types/node/events.d.ts","../../../../node_modules/@types/node/fs.d.ts","../../../../node_modules/@types/node/fs/promises.d.ts","../../../../node_modules/@types/node/http.d.ts","../../../../node_modules/@types/node/http2.d.ts","../../../../node_modules/@types/node/https.d.ts","../../../../node_modules/@types/node/inspector.d.ts","../../../../node_modules/@types/node/module.d.ts","../../../../node_modules/@types/node/net.d.ts","../../../../node_modules/@types/node/os.d.ts","../../../../node_modules/@types/node/path.d.ts","../../../../node_modules/@types/node/perf_hooks.d.ts","../../../../node_modules/@types/node/process.d.ts","../../../../node_modules/@types/node/punycode.d.ts","../../../../node_modules/@types/node/querystring.d.ts","../../../../node_modules/@types/node/readline.d.ts","../../../../node_modules/@types/node/readline/promises.d.ts","../../../../node_modules/@types/node/repl.d.ts","../../../../node_modules/@types/node/sea.d.ts","../../../../node_modules/@types/node/sqlite.d.ts","../../../../node_modules/@types/node/stream.d.ts","../../../../node_modules/@types/node/stream/promises.d.ts","../../../../node_modules/@types/node/stream/consumers.d.ts","../../../../node_modules/@types/node/stream/web.d.ts","../../../../node_modules/@types/node/string_decoder.d.ts","../../../../node_modules/@types/node/test.d.ts","../../../../node_modules/@types/node/timers.d.ts","../../../../node_modules/@types/node/timers/promises.d.ts","../../../../node_modules/@types/node/tls.d.ts","../../../../node_modules/@types/node/trace_events.d.ts","../../../../node_modules/@types/node/tty.d.ts","../../../../node_modules/@types/node/url.d.ts","../../../../node_modules/@types/node/util.d.ts","../../../../node_modules/@types/node/v8.d.ts","../../../../node_modules/@types/node/vm.d.ts","../../../../node_modules/@types/node/wasi.d.ts","../../../../node_modules/@types/node/worker_threads.d.ts","../../../../node_modules/@types/node/zlib.d.ts","../../../../node_modules/@types/node/index.d.ts"],"fileIdsList":[[59,445,494],[59,258,431,445,494],[59,60,252,258,265,266,268,272,275,277,318,427,429,445,494],[252,258,259,445,494],[252,258,261,264,445,494],[252,258,259,260,261,445,494],[258,445,494],[445,494],[63,445,494],[61,62,445,494],[61,62,63,252,253,254,445,494],[61,445,494],[61,62,63,252,253,254,255,256,257,445,494],[61,62,63,252,256,445,494],[252,258,445,494],[258,262,445,494],[258,262,263,265,445,494],[252,258,262,266,267,445,494],[252,258,262,445,494],[366,399,445,494],[361,363,364,365,445,494],[361,362,363,364,445,494],[363,445,494],[361,362,445,494],[445,491,494],[445,493,494],[494],[445,494,499,528],[445,494,495,500,505,513,525,536],[445,494,495,496,505,513],[440,441,442,445,494],[445,494,497,537],[445,494,498,499,506,514],[445,494,499,525,533],[445,494,500,502,505,513],[445,493,494,501],[445,494,502,503],[445,494,504,505],[445,493,494,505],[445,494,505,506,507,525,536],[445,494,505,506,507,520,525,528],[445,487,494,502,505,508,513,525,536],[445,494,505,506,508,509,513,525,533,536],[445,494,508,510,525,533,536],[443,444,445,446,447,448,449,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],[445,494,505,511],[445,494,512,536],[445,494,502,505,513,525],[445,494,514],[445,494,515],[445,493,494,516],[445,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],[445,494,518],[445,494,519],[445,494,505,520,521],[445,494,520,522,537,539],[445,494,505,525,526,528],[445,494,527,528],[445,494,525,526],[445,494,528],[445,494,529],[445,491,494,525,530],[445,494,505,531,532],[445,494,531,532],[445,494,499,513,525,533],[445,494,534],[445,494,513,535],[445,494,508,519,536],[445,494,499,537],[445,494,525,538],[445,494,512,539],[445,494,540],[445,487,494],[445,494,505,507,516,525,528,536,538,539,541],[445,494,525,542],[445,494,508,525,536],[367,368,445,494,508,536],[367,368,369,445,494],[367,445,494],[392,445,494,508],[370,371,372,374,377,445,494,505],[374,375,384,386,445,494],[370,445,494],[370,371,372,374,375,377,445,494],[370,377,445,494],[370,371,372,375,377,445,494],[370,371,372,375,377,384,445,494],[375,384,385,387,388,445,494],[370,371,372,375,377,378,379,381,382,383,384,389,390,399,445,494,525],[374,375,384,445,494],[377,445,494],[375,377,378,391,445,494],[372,377,445,494,525],[372,377,378,380,445,494,525],[370,371,372,373,375,376,445,494,519],[370,375,377,445,494],[375,384,445,494],[370,371,372,375,376,377,378,379,381,382,383,384,385,386,387,388,389,391,393,394,395,396,397,398,399,445,494],[64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,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,120,121,122,123,124,125,126,127,128,129,130,131,133,134,135,136,137,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,183,184,185,187,196,198,199,200,201,202,203,205,206,208,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,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,445,494],[109,445,494],[65,68,445,494],[67,445,494],[67,68,445,494],[64,65,66,68,445,494],[65,67,68,225,445,494],[68,445,494],[64,67,109,445,494],[67,68,225,445,494],[67,233,445,494],[65,67,68,445,494],[77,445,494],[100,445,494],[121,445,494],[67,68,109,445,494],[68,116,445,494],[67,68,109,127,445,494],[67,68,127,445,494],[68,168,445,494],[68,109,445,494],[64,68,186,445,494],[64,68,187,445,494],[209,445,494],[193,195,445,494],[204,445,494],[193,445,494],[64,68,186,193,194,445,494],[186,187,195,445,494],[207,445,494],[64,68,193,194,195,445,494],[66,67,68,445,494],[64,68,445,494],[65,67,187,188,189,190,445,494],[109,187,188,189,190,445,494],[187,189,445,494],[67,188,189,191,192,196,445,494],[64,67,445,494],[68,211,445,494],[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,110,111,112,113,114,115,117,118,119,120,121,122,123,124,125,126,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,445,494],[197,445,494],[445,459,463,494,536],[445,459,494,525,536],[445,454,494],[445,456,459,494,533,536],[445,494,513,533],[445,494,543],[445,454,494,543],[445,456,459,494,513,536],[445,451,452,455,458,494,505,525,536],[445,459,466,494],[445,451,457,494],[445,459,480,481,494],[445,455,459,494,528,536,543],[445,480,494,543],[445,453,454,494,543],[445,459,494],[445,453,454,455,456,457,458,459,460,461,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,481,482,483,484,485,486,494],[445,459,474,494],[445,459,466,467,494],[445,457,459,467,468,494],[445,458,494],[445,451,454,459,494],[445,459,463,467,468,494],[445,463,494],[445,457,459,462,494,536],[445,451,456,459,466,494],[445,494,525],[445,454,459,480,494,541,543],[360,445,494],[351,352,445,494],[348,349,351,353,354,359,445,494],[349,351,445,494],[359,445,494],[351,445,494],[348,349,351,354,355,356,357,358,445,494],[348,349,350,445,494],[59,258,268,269,280,313,315,317,445,494],[59,268,319,329,331,341,343,406,408,410,412,414,416,418,420,422,424,426,445,494],[59,289,445,494],[59,252,265,298,433,445,494],[59,252,265,298,300,445,494],[59,252,265,298,306,445,494],[59,252,265,298,304,445,494],[59,252,265,298,308,445,494],[59,252,265,298,302,445,494],[59,252,265,296,298,445,494],[59,294,445,494],[59,297,445,494],[59,252,258,265,290,293,295,298,299,301,303,305,307,309,445,494],[59,185,252,258,262,268,273,287,417,445,494],[59,252,258,262,272,273,277,280,281,415,445,494],[59,252,258,262,275,419,445,494],[59,252,258,262,268,272,273,275,277,421,445,494],[59,252,258,262,268,272,273,275,277,423,445,494],[59,252,258,262,268,270,272,273,275,277,280,281,285,287,312,445,494],[59,258,262,268,272,281,323,324,328,334,336,435,445,494],[59,258,262,425,445,494],[59,258,262,268,273,327,411,445,494],[59,258,262,265,268,275,339,409,445,494],[59,258,262,265,268,273,275,407,445,494],[59,258,262,413,445,494],[59,258,262,273,290,291,445,494],[59,185,252,258,262,265,273,277,287,288,290,292,310,311,445,494],[59,258,262,268,290,310,437,445,494],[59,258,262,266,268,272,281,287,290,310,311,323,324,328,332,334,336,340,445,494],[59,252,258,262,265,275,337,339,445,494],[59,252,258,262,265,275,325,327,445,494],[59,258,262,333,445,494],[59,252,258,262,266,272,323,324,342,445,494],[59,258,262,268,272,275,281,285,314,445,494],[59,258,262,268,272,273,281,285,323,324,328,330,445,494],[59,258,262,268,272,281,285,320,323,324,328,445,494],[59,258,262,268,285,316,445,494],[59,258,287,345,445,494],[59,252,258,262,265,266,268,272,275,287,323,324,327,336,340,344,346,401,403,405,445,494],[59,185,252,258,265,275,428,445,494],[59,283,445,494],[59,322,445,494],[59,258,278,280,445,494],[59,185,252,258,265,274,445,494],[59,252,258,265,402,445,494],[59,258,347,400,445,494],[59,252,258,265,275,286,445,494],[59,258,279,445,494],[59,258,287,404,445,494],[59,258,271,445,494],[59,252,258,265,326,445,494],[59,252,258,265,338,445,494],[59,258,280,282,284,445,494],[59,185,252,258,265,275,276,445,494],[59,185,252,258,265,272,280,321,323,445,494],[59,335,445,494]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"092c2bfe125ce69dbb1223c85d68d4d2397d7d8411867b5cc03cec902c233763","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6a5253138c5432c68a1510c70fe78a644fe2e632111ba778e1978010d6edfec","impliedFormat":1},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"d9d3dd93b80c648c9d33766a515f43cceeea16a1240887d53c6ec4fd9a4c0687","impliedFormat":99},{"version":"8b112cd3d8d6fa2449e7cef7643660adbd5c05212f82cf6add0090e0e889b145","affectsGlobalScope":true,"impliedFormat":99},{"version":"31151a7a97f8e16f57099be0cedb8fae67cfbeaa56dad030358709b7672d32c8","affectsGlobalScope":true,"impliedFormat":99},{"version":"073ca26c96184db9941b5ec0ddea6981c9b816156d9095747809e524fdd90e35","impliedFormat":1},{"version":"e41d17a2ec23306d953cda34e573ed62954ca6ea9b8c8b74e013d07a6886ce47","impliedFormat":1},{"version":"241bd4add06f06f0699dcd58f3b334718d85e3045d9e9d4fa556f11f4d1569c1","impliedFormat":1},{"version":"2ae3787e1498b20aad1b9c2ee9ea517ec30e89b70d242d8e3e52d1e091039695","impliedFormat":1},{"version":"c7c72c4cffb1bc83617eefed71ed68cc89df73cab9e19507ccdecb3e72b4967e","affectsGlobalScope":true,"impliedFormat":1},{"version":"b8bff8a60af0173430b18d9c3e5c443eaa3c515617210c0c7b3d2e1743c19ecb","impliedFormat":1},{"version":"38b38db08e7121828294dec10957a7a9ff263e33e2a904b346516d4a4acca482","impliedFormat":1},{"version":"a76ebdf2579e68e4cfe618269c47e5a12a4e045c2805ed7f7ab37af8daa6b091","impliedFormat":1},{"version":"8a2aaea564939c22be05d665cc955996721bad6d43148f8fa21ae8f64afecd37","impliedFormat":1},{"version":"e59d36b7b6e8ba2dd36d032a5f5c279d2460968c8b4e691ca384f118fb09b52a","impliedFormat":1},{"version":"e96885c0684c9042ec72a9a43ef977f6b4b4a2728f4b9e737edcbaa0c74e5bf6","impliedFormat":1},{"version":"95950a187596e206d32d5d9c7b932901088c65ed8f9040e614aa8e321e0225ef","impliedFormat":1},{"version":"89e061244da3fc21b7330f4bd32f47c1813dd4d7f1dc3d0883d88943f035b993","impliedFormat":1},{"version":"e46558c2e04d06207b080138678020448e7fc201f3d69c2601b0d1456105f29a","impliedFormat":1},{"version":"71549375db52b1163411dba383b5f4618bdf35dc57fa327a1c7d135cf9bf67d1","impliedFormat":1},{"version":"7e6b2d61d6215a4e82ea75bc31a80ebb8ad0c2b37a60c10c70dd671e8d9d6d5d","impliedFormat":1},{"version":"78bea05df2896083cca28ed75784dde46d4b194984e8fc559123b56873580a23","impliedFormat":1},{"version":"5dd04ced37b7ea09f29d277db11f160df7fd73ba8b9dba86cb25552e0653a637","impliedFormat":1},{"version":"f74b81712e06605677ae1f061600201c425430151f95b5ef4d04387ad7617e6a","impliedFormat":1},{"version":"9a72847fcf4ac937e352d40810f7b7aec7422d9178451148296cf1aa19467620","impliedFormat":1},{"version":"3ae18f60e0b96fa1e025059b7d25b3247ba4dcb5f4372f6d6e67ce2adac74eac","impliedFormat":1},{"version":"2b9260f44a2e071450ae82c110f5dc8f330c9e5c3e85567ed97248330f2bf639","impliedFormat":1},{"version":"4f196e13684186bda6f5115fc4677a87cf84a0c9c4fc17b8f51e0984f3697b6d","impliedFormat":1},{"version":"61419f2c5822b28c1ea483258437c1faab87d00c6f84481aa22afb3380d8e9a4","impliedFormat":1},{"version":"64479aee03812264e421c0bf5104a953ca7b02740ba80090aead1330d0effe91","impliedFormat":1},{"version":"0521108c9f8ddb17654a0a54dae6ba9667c99eddccfd6af5748113e022d1c37a","impliedFormat":1},{"version":"c5570e504be103e255d80c60b56c367bf45d502ca52ee35c55dec882f6563b5c","impliedFormat":1},{"version":"ee764e6e9a7f2b987cc1a2c0a9afd7a8f4d5ebc4fdb66ad557a7f14a8c2bd320","impliedFormat":1},{"version":"0520b5093712c10c6ef23b5fea2f833bf5481771977112500045e5ea7e8e2b69","impliedFormat":1},{"version":"5c3cf26654cf762ac4d7fd7b83f09acfe08eef88d2d6983b9a5a423cb4004ca3","impliedFormat":1},{"version":"e60fa19cf7911c1623b891155d7eb6b7e844e9afdf5738e3b46f3b687730a2bd","impliedFormat":1},{"version":"b1fd72ff2bb0ba91bb588f3e5329f8fc884eb859794f1c4657a2bfa122ae54d0","impliedFormat":1},{"version":"6cf42a4f3cfec648545925d43afaa8bb364ac10a839ffed88249da109361b275","impliedFormat":1},{"version":"d7058e75920120b142a9d57be25562a3cd9a936269fd52908505f530105f2ec4","impliedFormat":1},{"version":"6df52b70d7f7702202f672541a5f4a424d478ee5be51a9d37b8ccbe1dbf3c0f2","impliedFormat":1},{"version":"0ca7f997e9a4d8985e842b7c882e521b6f63233c4086e9fe79dd7a9dc4742b5e","impliedFormat":1},{"version":"91046b5c6b55d3b194c81fd4df52f687736fad3095e9d103ead92bb64dc160ee","impliedFormat":1},{"version":"db5704fdad56c74dfc5941283c1182ed471bd17598209d3ac4a49faa72e43cfc","impliedFormat":1},{"version":"758e8e89559b02b81bc0f8fd395b17ad5aff75490c862cbe369bb1a3d1577c40","impliedFormat":1},{"version":"2ee64342c077b1868f1834c063f575063051edd6e2964257d34aad032d6b657c","impliedFormat":1},{"version":"6f6b4b3d670b6a5f0e24ea001c1b3d36453c539195e875687950a178f1730fa7","impliedFormat":1},{"version":"a472a1d3f25ce13a1d44911cd3983956ac040ce2018e155435ea34afb25f864c","impliedFormat":1},{"version":"b48b83a86dd9cfe36f8776b3ff52fcd45b0e043c0538dc4a4b149ba45fe367b9","impliedFormat":1},{"version":"792de5c062444bd2ee0413fb766e57e03cce7cdaebbfc52fc0c7c8e95069c96b","impliedFormat":1},{"version":"a79e3e81094c7a04a885bad9b049c519aace53300fb8a0fe4f26727cb5a746ce","impliedFormat":1},{"version":"93181bac0d90db185bb730c95214f6118ae997fe836a98a49664147fbcaf1988","impliedFormat":1},{"version":"8a4e89564d8ea66ad87ee3762e07540f9f0656a62043c910d819b4746fc429c5","impliedFormat":1},{"version":"b9011d99942889a0f95e120d06b698c628b0b6fdc3e6b7ecb459b97ed7d5bcc6","impliedFormat":1},{"version":"4d639cbbcc2f8f9ce6d55d5d503830d6c2556251df332dc5255d75af53c8a0e7","impliedFormat":1},{"version":"cdb48277f600ab5f429ecf1c5ea046683bc6b9f73f3deab9a100adac4b34969c","impliedFormat":1},{"version":"75be84956a29040a1afbe864c0a7a369dfdb739380072484eff153905ef867ee","impliedFormat":1},{"version":"b06b4adc2ae03331a92abd1b19af8eb91ec2bf8541747ee355887a167d53145e","impliedFormat":1},{"version":"c54166a85bd60f86d1ebb90ce0117c0ecb850b8a33b366691629fdf26f1bbbd8","impliedFormat":1},{"version":"0d417c15c5c635384d5f1819cc253a540fe786cc3fda32f6a2ae266671506a21","impliedFormat":1},{"version":"80f23f1d60fbed356f726b3b26f9d348dddbb34027926d10d59fad961e70a730","impliedFormat":1},{"version":"cb59317243a11379a101eb2f27b9df1022674c3df1df0727360a0a3f963f523b","impliedFormat":1},{"version":"cc20bb2227dd5de0aab0c8d697d1572f8000550e62c7bf5c92f212f657dd88c5","impliedFormat":1},{"version":"06b8a7d46195b6b3980e523ef59746702fd210b71681a83a5cf73799623621f9","impliedFormat":1},{"version":"860e4405959f646c101b8005a191298b2381af8f33716dc5f42097e4620608f8","impliedFormat":1},{"version":"f7e32adf714b8f25d3c1783473abec3f2e82d5724538d8dcf6f51baaaff1ca7a","impliedFormat":1},{"version":"d0da80c845999a16c24d0783033fb5366ada98df17867c98ad433ede05cd87fd","impliedFormat":1},{"version":"bfbf80f9cd4558af2d7b2006065340aaaced15947d590045253ded50aabb9bc5","impliedFormat":1},{"version":"fd9a991b51870325e46ebb0e6e18722d313f60cd8e596e645ec5ac15b96dbf4e","impliedFormat":1},{"version":"c3bd2b94e4298f81743d92945b80e9b56c1cdfb2bef43c149b7106a2491b1fc9","impliedFormat":1},{"version":"a246cce57f558f9ebaffd55c1e5673da44ea603b4da3b2b47eb88915d30a9181","impliedFormat":1},{"version":"d993eacc103c5a065227153c9aae8acea3a4322fe1a169ee7c70b77015bf0bb2","impliedFormat":1},{"version":"fc2b03d0c042aa1627406e753a26a1eaad01b3c496510a78016822ef8d456bb6","impliedFormat":1},{"version":"063c7ebbe756f0155a8b453f410ca6b76ffa1bbc1048735bcaf9c7c81a1ce35f","impliedFormat":1},{"version":"314e402cd481370d08f63051ae8b8c8e6370db5ee3b8820eeeaaf8d722a6dac6","impliedFormat":1},{"version":"9669075ac38ce36b638b290ba468233980d9f38bdc62f0519213b2fd3e2552ec","impliedFormat":1},{"version":"4d123de012c24e2f373925100be73d50517ac490f9ed3578ac82d0168bfbd303","impliedFormat":1},{"version":"656c9af789629aa36b39092bee3757034009620439d9a39912f587538033ce28","impliedFormat":1},{"version":"3ac3f4bdb8c0905d4c3035d6f7fb20118c21e8a17bee46d3735195b0c2a9f39f","impliedFormat":1},{"version":"1f453e6798ed29c86f703e9b41662640d4f2e61337007f27ac1c616f20093f69","impliedFormat":1},{"version":"af43b7871ff21c62bf1a54ec5c488e31a8d3408d5b51ff2e9f8581b6c55f2fc7","impliedFormat":1},{"version":"70550511d25cbb0b6a64dcac7fffc3c1397fd4cbeb6b23ccc7f9b794ab8a6954","impliedFormat":1},{"version":"af0fbf08386603a62f2a78c42d998c90353b1f1d22e05a384545f7accf881e0a","impliedFormat":1},{"version":"cefc20054d20b85b534206dbcedd509bb74f87f3d8bc45c58c7be3a76caa45e1","impliedFormat":1},{"version":"ad6eee4877d0f7e5244d34bc5026fd6e9cf8e66c5c79416b73f9f6ebf132f924","impliedFormat":1},{"version":"4888fd2bcfee9a0ce89d0df860d233e0cee8ee9c479b6bd5a5d5f9aae98342fe","impliedFormat":1},{"version":"f4749c102ced952aa6f40f0b579865429c4869f6d83df91000e98005476bee87","impliedFormat":1},{"version":"56654d2c5923598384e71cb808fac2818ca3f07dd23bb018988a39d5e64f268b","impliedFormat":1},{"version":"8b6719d3b9e65863da5390cb26994602c10a315aa16e7d70778a63fee6c4c079","impliedFormat":1},{"version":"05f56cd4b929977d18df8f3d08a4c929a2592ef5af083e79974b20a063f30940","impliedFormat":1},{"version":"547d3c406a21b30e2b78629ecc0b2ddaf652d9e0bdb2d59ceebce5612906df33","impliedFormat":1},{"version":"b3a4f9385279443c3a5568ec914a9492b59a723386161fd5ef0619d9f8982f97","impliedFormat":1},{"version":"3fe66aba4fbe0c3ba196a4f9ed2a776fe99dc4d1567a558fb11693e9fcc4e6ed","impliedFormat":1},{"version":"140eef237c7db06fc5adcb5df434ee21e81ee3a6fd57e1a75b8b3750aa2df2d8","impliedFormat":1},{"version":"0944ec553e4744efae790c68807a461720cff9f3977d4911ac0d918a17c9dd99","impliedFormat":1},{"version":"cb46b38d5e791acaa243bf342b8b5f8491639847463ac965b93896d4fb0af0d9","impliedFormat":1},{"version":"7c7d9e116fe51100ff766703e6b5e4424f51ad8977fe474ddd8d0959aa6de257","impliedFormat":1},{"version":"af70a2567e586be0083df3938b6a6792e6821363d8ef559ad8d721a33a5bcdaf","impliedFormat":1},{"version":"006cff3a8bcb92d77953f49a94cd7d5272fef4ab488b9052ef82b6a1260d870b","impliedFormat":1},{"version":"7d44bfdc8ee5e9af70738ff652c622ae3ad81815e63ab49bdc593d34cb3a68e5","impliedFormat":1},{"version":"339814517abd4dbc7b5f013dfd3b5e37ef0ea914a8bbe65413ecffd668792bc6","impliedFormat":1},{"version":"34d5bc0a6958967ec237c99f980155b5145b76e6eb927c9ffc57d8680326b5d8","impliedFormat":1},{"version":"9eae79b70c9d8288032cbe1b21d0941f6bd4f315e14786b2c1d10bccc634e897","impliedFormat":1},{"version":"18ce015ed308ea469b13b17f99ce53bbb97975855b2a09b86c052eefa4aa013a","impliedFormat":1},{"version":"5a931bc4106194e474be141e0bc1046629510dc95b9a0e4b02a3783847222965","impliedFormat":1},{"version":"5e5f371bf23d5ced2212a5ff56675aefbd0c9b3f4d4fdda1b6123ac6e28f058c","impliedFormat":1},{"version":"907c17ad5a05eecb29b42b36cc8fec6437be27cc4986bb3a218e4f74f606911c","impliedFormat":1},{"version":"ce60a562cd2a92f37a88f2ddd99a3abfbc5848d7baf38c48fb8d3243701fcb75","impliedFormat":1},{"version":"a726ad2d0a98bfffbe8bc1cd2d90b6d831638c0adc750ce73103a471eb9a891c","impliedFormat":1},{"version":"f44c0c8ce58d3dacac016607a1a90e5342d830ea84c48d2e571408087ae55894","impliedFormat":1},{"version":"75a315a098e630e734d9bc932d9841b64b30f7a349a20cf4717bf93044eff113","impliedFormat":1},{"version":"9131d95e32b3d4611d4046a613e022637348f6cebfe68230d4e81b691e4761a1","impliedFormat":1},{"version":"b03aa292cfdcd4edc3af00a7dbd71136dd067ec70a7536b655b82f4dd444e857","impliedFormat":1},{"version":"b6e2b0448ced813b8c207810d96551a26e7d7bb73255eea4b9701698f78846d6","impliedFormat":1},{"version":"8ae10cd85c1bd94d2f2d17c4cbd25c068a4b2471c70c2d96434239f97040747a","impliedFormat":1},{"version":"9ed5b799c50467b0c9f81ddf544b6bcda3e34d92076d6cab183c84511e45c39f","impliedFormat":1},{"version":"b4fa87cc1833839e51c49f20de71230e259c15b2c9c3e89e4814acc1d1ef10de","impliedFormat":1},{"version":"e90ac9e4ac0326faa1bc39f37af38ace0f9d4a655cd6d147713c653139cf4928","impliedFormat":1},{"version":"ea27110249d12e072956473a86fd1965df8e1be985f3b686b4e277afefdde584","impliedFormat":1},{"version":"8776a368617ce51129b74db7d55c3373dadcce5d0701e61d106e99998922a239","impliedFormat":1},{"version":"5666075052877fe2fdddd5b16de03168076cf0f03fbca5c1d4a3b8f43cba570c","impliedFormat":1},{"version":"9108ab5af05418f599ab48186193b1b07034c79a4a212a7f73535903ba4ca249","impliedFormat":1},{"version":"bb4e2cdcadf9c9e6ee2820af23cee6582d47c9c9c13b0dca1baaffe01fbbcb5f","impliedFormat":1},{"version":"6e30d0b5a1441d831d19fe02300ab3d83726abd5141cbcc0e2993fa0efd33db4","impliedFormat":1},{"version":"423f28126b2fc8d8d6fa558035309000a1297ed24473c595b7dec52e5c7ebae5","impliedFormat":1},{"version":"fb30734f82083d4790775dae393cd004924ebcbfde49849d9430bf0f0229dd16","impliedFormat":1},{"version":"2c92b04a7a4a1cd9501e1be338bf435738964130fb2ad5bd6c339ee41224ac4c","impliedFormat":1},{"version":"c5c5f0157b41833180419dacfbd2bcce78fb1a51c136bd4bcba5249864d8b9b5","impliedFormat":1},{"version":"02ae43d5bae42efcd5a00d3923e764895ce056bca005a9f4e623aa6b4797c8af","impliedFormat":1},{"version":"db6e01f17012a9d7b610ae764f94a1af850f5d98c9c826ad61747dca0fb800bd","impliedFormat":1},{"version":"8a44b424edee7bb17dc35a558cc15f92555f14a0441205613e0e50452ab3a602","impliedFormat":1},{"version":"24a00d0f98b799e6f628373249ece352b328089c3383b5606214357e9107e7d5","impliedFormat":1},{"version":"33637e3bc64edd2075d4071c55d60b32bdb0d243652977c66c964021b6fc8066","impliedFormat":1},{"version":"0f0ad9f14dedfdca37260931fac1edf0f6b951c629e84027255512f06a6ebc4c","impliedFormat":1},{"version":"16ad86c48bf950f5a480dc812b64225ca4a071827d3d18ffc5ec1ae176399e36","impliedFormat":1},{"version":"8cbf55a11ff59fd2b8e39a4aa08e25c5ddce46e3af0ed71fb51610607a13c505","impliedFormat":1},{"version":"d5bc4544938741f5daf8f3a339bfbf0d880da9e89e79f44a6383aaf056fe0159","impliedFormat":1},{"version":"97f9169882d393e6f303f570168ca86b5fe9aab556e9a43672dae7e6bb8e6495","impliedFormat":1},{"version":"7c9adb3fcd7851497818120b7e151465406e711d6a596a71b807f3a17853cb58","impliedFormat":1},{"version":"6752d402f9282dd6f6317c8c048aaaac27295739a166eed27e00391b358fed9a","impliedFormat":1},{"version":"9fd7466b77020847dbc9d2165829796bf7ea00895b2520ff3752ffdcff53564b","impliedFormat":1},{"version":"fbfc12d54a4488c2eb166ed63bab0fb34413e97069af273210cf39da5280c8d6","impliedFormat":1},{"version":"85a84240002b7cf577cec637167f0383409d086e3c4443852ca248fc6e16711e","impliedFormat":1},{"version":"84794e3abd045880e0fadcf062b648faf982aa80cfc56d28d80120e298178626","impliedFormat":1},{"version":"053d8b827286a16a669a36ffc8ccc8acdf8cc154c096610aa12348b8c493c7b8","impliedFormat":1},{"version":"3cce4ce031710970fe12d4f7834375f5fd455aa129af4c11eb787935923ff551","impliedFormat":1},{"version":"8f62cbd3afbd6a07bb8c934294b6bfbe437021b89e53a4da7de2648ecfc7af25","impliedFormat":1},{"version":"62c3621d34fb2567c17a2c4b89914ebefbfbd1b1b875b070391a7d4f722e55dc","impliedFormat":1},{"version":"c05ac811542e0b59cb9c2e8f60e983461f0b0e39cea93e320fad447ff8e474f3","impliedFormat":1},{"version":"8e7a5b8f867b99cc8763c0b024068fb58e09f7da2c4810c12833e1ca6eb11c4f","impliedFormat":1},{"version":"132351cbd8437a463757d3510258d0fa98fd3ebef336f56d6f359cf3e177a3ce","impliedFormat":1},{"version":"df877050b04c29b9f8409aa10278d586825f511f0841d1ec41b6554f8362092b","impliedFormat":1},{"version":"33d1888c3c27d3180b7fd20bac84e97ecad94b49830d5dd306f9e770213027d1","impliedFormat":1},{"version":"ee942c58036a0de88505ffd7c129f86125b783888288c2389330168677d6347f","impliedFormat":1},{"version":"a3f317d500c30ea56d41501632cdcc376dae6d24770563a5e59c039e1c2a08ec","impliedFormat":1},{"version":"eb21ddc3a8136a12e69176531197def71dc28ffaf357b74d4bf83407bd845991","impliedFormat":1},{"version":"0c1651a159995dfa784c57b4ea9944f16bdf8d924ed2d8b3db5c25d25749a343","impliedFormat":1},{"version":"aaa13958e03409d72e179b5d7f6ec5c6cc666b7be14773ae7b6b5ee4921e52db","impliedFormat":1},{"version":"0a86e049843ad02977a94bb9cdfec287a6c5a0a4b6b5391a6648b1a122072c5a","impliedFormat":1},{"version":"40f06693e2e3e58526b713c937895c02e113552dc8ba81ecd49cdd9596567ddb","impliedFormat":1},{"version":"4ed5e1992aedb174fb8f5aa8796aa6d4dcb8bd819b4af1b162a222b680a37fa0","impliedFormat":1},{"version":"d7f4bd46a8b97232ea6f8c28012b8d2b995e55e729d11405f159d3e00c51420a","impliedFormat":1},{"version":"d604d413aff031f4bfbdae1560e54ebf503d374464d76d50a2c6ded4df525712","impliedFormat":1},{"version":"e4f4f9cf1e3ac9fd91ada072e4d428ecbf0aa6dc57138fb797b8a0ca3a1d521c","impliedFormat":1},{"version":"12bfd290936824373edda13f48a4094adee93239b9a73432db603127881a300d","impliedFormat":1},{"version":"340ceb3ea308f8e98264988a663640e567c553b8d6dc7d5e43a8f3b64f780374","impliedFormat":1},{"version":"c5a769564e530fba3ec696d0a5cff1709b9095a0bdf5b0826d940d2fc9786413","impliedFormat":1},{"version":"7124ef724c3fc833a17896f2d994c368230a8d4b235baed39aa8037db31de54f","impliedFormat":1},{"version":"5de1c0759a76e7710f76899dcae601386424eab11fb2efaf190f2b0f09c3d3d3","impliedFormat":1},{"version":"9c5ee8f7e581f045b6be979f062a61bf076d362bf89c7f966b993a23424e8b0d","impliedFormat":1},{"version":"1a11df987948a86aa1ec4867907c59bdf431f13ed2270444bf47f788a5c7f92d","impliedFormat":1},{"version":"8018dd2e95e7ce6e613ddd81672a54532614dc745520a2f9e3860ff7fb1be0ca","impliedFormat":1},{"version":"b756781cd40d465da57d1fc6a442c34ae61fe8c802d752aace24f6a43fedacee","impliedFormat":1},{"version":"0fe76167c87289ea094e01616dcbab795c11b56bad23e1ef8aba9aa37e93432a","impliedFormat":1},{"version":"3a45029dba46b1f091e8dc4d784e7be970e209cd7d4ff02bd15270a98a9ba24b","impliedFormat":1},{"version":"032c1581f921f8874cf42966f27fd04afcabbb7878fa708a8251cac5415a2a06","impliedFormat":1},{"version":"69c68ed9652842ce4b8e495d63d2cd425862104c9fb7661f72e7aa8a9ef836f8","impliedFormat":1},{"version":"0e704ee6e9fd8b6a5a7167886f4d8915f4bc22ed79f19cb7b32bd28458f50643","impliedFormat":1},{"version":"06f62a14599a68bcde148d1efd60c2e52e8fa540cc7dcfa4477af132bb3de271","impliedFormat":1},{"version":"904a96f84b1bcee9a7f0f258d17f8692e6652a0390566515fe6741a5c6db8c1c","impliedFormat":1},{"version":"11f19ce32d21222419cecab448fa335017ebebf4f9e5457c4fa9df42fa2dcca7","impliedFormat":1},{"version":"2e8ee2cbb5e9159764e2189cf5547aebd0e6b0d9a64d479397bb051cd1991744","impliedFormat":1},{"version":"1b0471d75f5adb7f545c1a97c02a0f825851b95fe6e069ac6ecaa461b8bb321d","impliedFormat":1},{"version":"1d157c31a02b1e5cca9bc495b3d8d39f4b42b409da79f863fb953fbe3c7d4884","impliedFormat":1},{"version":"07baaceaec03d88a4b78cb0651b25f1ae0322ac1aa0b555ae3749a79a41cba86","impliedFormat":1},{"version":"619a132f634b4ebe5b4b4179ea5870f62f2cb09916a25957bff17b408de8b56d","impliedFormat":1},{"version":"f60fa446a397eb1aead9c4e568faf2df8068b4d0306ebc075fb4be16ed26b741","impliedFormat":1},{"version":"f3cb784be4d9e91f966a0b5052a098d9b53b0af0d341f690585b0cc05c6ca412","impliedFormat":1},{"version":"350f63439f8fe2e06c97368ddc7fb6d6c676d54f59520966f7dbbe6a4586014e","impliedFormat":1},{"version":"eba613b9b357ac8c50a925fa31dc7e65ff3b95a07efbaa684b624f143d8d34ba","impliedFormat":1},{"version":"45b74185005ed45bec3f07cac6e4d68eaf02ead9ff5a66721679fb28020e5e7c","impliedFormat":1},{"version":"0f6199602df09bdb12b95b5434f5d7474b1490d2cd8cc036364ab3ba6fd24263","impliedFormat":1},{"version":"c8ca7fd9ec7a3ec82185bfc8213e4a7f63ae748fd6fced931741d23ef4ea3c0f","impliedFormat":1},{"version":"5c6a8a3c2a8d059f0592d4eab59b062210a1c871117968b10797dee36d991ef7","impliedFormat":1},{"version":"ad77fd25ece8e09247040826a777dc181f974d28257c9cd5acb4921b51967bd8","impliedFormat":1},{"version":"e636bc88ba9f36fd2e0ea4e92d998faf9ef26c3e7d3ea30363ca74e48ccae9b6","impliedFormat":99},{"version":"53a7e8e6cd478d365dab32dbf5e3f45e1fdce303f9b3843c0347722b19714449","impliedFormat":99},{"version":"0c02c17cf4c2a113c1f2c84600c584988a85d4808271ad8c38e47d1cfbb0175d","impliedFormat":99},{"version":"aad5b7d6c39fb451c626fc26aed53d713cbf1598bfb81e7555a3802d262779ae","impliedFormat":99},{"version":"63a8dadf7e342e253bc606c5f0d3f19be90352bccb6798728d928ed618fc5521","impliedFormat":99},{"version":"f37fcb53b8f0a80340d25f4ca4e1f43ababf1711d1da680fba3b62669e8198d9","impliedFormat":99},{"version":"7b725602c44d308cc120244986665583e2a53d20b69b0e4c19034609314e4960","impliedFormat":99},{"version":"bc84a8c0f0d7246cd48c745919fd87f2dcbea0894e5d9f4004b4878c8b37d5da","impliedFormat":99},{"version":"adcf6fb0fc8d31e1fd7c0477c517a2691e2f1fc20361ef2a4c4e05555b598a18","impliedFormat":99},{"version":"84de6181c634996552fdce82ddb8560c543776970963a0b6cf79291c1c52ed08","impliedFormat":99},{"version":"196d3246719b9fd0f124f171322aa8981afe09a4a5ae2f3b506134f01ef6ce89","impliedFormat":99},{"version":"ec7f1fb361239bd2f79647c4c12fe324918667a6eefef56e53d25560e9ccce77","impliedFormat":99},{"version":"c6f21fc4fd151b94b8ff0de2b16aa943d5635bfd30f9f5fee7b9e137e3474997","impliedFormat":99},{"version":"bee856262cdb790c78313066300a69002ea045ab9ed523315ea8225bbcaea7dd","impliedFormat":99},{"version":"3ffa16a7b3c57bcf12260e8570999d19fbfceb36dc23d381013678a2d8601ab6","impliedFormat":99},{"version":"444cfc5dc1d45b030c65aeda3dfb5973e8c55cba1d29886bb38f6d668b17f061","impliedFormat":99},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"d7c4fd426cb17d3d87b64c5a9dfded7c7084e1901ef87caadd232a1fea38d5a1","signature":"44258283f0fe85b63e2a1c83a209cb804ab4654085a3f0043b2262f03ccc2727"},{"version":"dcd48e99bff07bb096e197535eefc1f68cb5fbca75e18fc11df47377a7eb61f6","impliedFormat":99},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"1978842c9a49f471f8ce1f05a90c16b67ee7ba61cae5c539b47e722ac6d44937","signature":"cb473d6bbffe7a12c6826d062487c44c0ddc213302207a8bfdd6622f28719beb"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"9c04b8a82a4bd4bf43573769ea30d518c0d702ef764f4608ba9a30c6658f9cda","signature":"2333010fb03aac3dfb35bea460b66b88aa320167e745d35ad73c2bc4d8c8214a"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"69d327a9079d984240c360a3d7a52481761f98a7f26d901baf5d1835847577f3","signature":"ec624cdad0da030be5047cf1b9ef3522234916651214da29eb2697f0a1c9ea45"},{"version":"3fc28b80fbddf575ed60f2206863d99b7594157c1bdcf72d182d2d17d7e007df","signature":"a1889af19644b3eeaf6c8357cd3b33d3676a13c1e94ee2bf8acdd51c7f4feb04"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"6201b44a285d6217d145689b24395c7d6f827308f2c93b3e345532066bad74d1","signature":"03d73b525ba1656b398ceb3088fe366372749826c5730b59874c7904a4c35675"},{"version":"e713b261d26868729b62ff43f1885446b57389614ad36a7a7ce165971d9d3dc5","signature":"b0c9fc2e51388a1f348242bd2c09cdc15bcd167e02c662039f4c72428b4e664f"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"3778cb69470948fca179b2d98561570e222f8f16832608538053eb3a1346bd46","signature":"5510a3e294fe850efdd30e54833e3e9704cceff58fccd995a608d1d17dc3e099"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"6390f7c2dad36163930864d345a23f3dcd533708aec2ecd7e55a90512efd9b77","signature":"b6503f38c5580b5d8b50f3494be172dea5fc20e5f82b63631ee0aafd9a313e31"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"feb34e8a1a6bc763c77dd3edf642e86eadab93b86877e159ea61b0da681c19d8","signature":"770d0b6e05f563f9724e5bfa78bc03a6d15ee67394ee0b1060b882290c118e93"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"a7514413ceae0bcad028e4bbd483f55b38df02335515060aad300042077cb8a3","signature":"ff491e507ac67dc90bfde37d2458056457d9213e7fe72d8e320e096dd67ac375"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"5880cd85fa2b43547db6e345b0a783aec4b068ee935dd02f8b72181ccbfa0e94","signature":"74e047cb6fd2980cc209481fcd668b1c1fdc35a7a309e86a6729b45b5860c2b6"},{"version":"0547911f34de7b7fba1681070a39b099bb860d45d8e0c2e99ce9ec88af0dceae","signature":"c5c9f4c5fc71cc6d28d09a2043d9e9cc829fff9a92dd1369ac1162cfb8ee32fb"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"c14a35a9fbf6dc08770c459dfb508c58920edc95364b52e92f5afdab73dc46b7","signature":"37a64e2333a7f0a74983e2173f9edf0cf2f5939e639b0619f6c82d2a352d37e3"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"94182ee6cf06df55db27a18b2e6cf8bf3bcc5375642458a3dcaf83a04757f81d","signature":"454cb7923a34bd1fc186f6bcaf90d80da50a1dd1acfde3d3d21c03e93a1c420a"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"9fa2b0ba200627363a742c3c9137bdedebbff8acc033adb3250ae8e618787cc9","signature":"f578b695a7b07acd8e11e55e8c8ce4596e9139bc8cc9df7cb17ae693c142b52b"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"c207927ba6e082acca93d1434f981e04a6490cba8229aeeab5f682252fa71474","signature":"a8ca579b628c4d8c454793d7d7cb312d67c6745183d101ce46183ec87d4f4bcf"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"23a21f46f0e28dc5a1b9ffe6884dad73e4e21d487e24fbe2ff55cc124c1c9379","signature":"344521a5cd950fc74919a137881f1e4f0c640f3c357adbc613501f317b67994f"},{"version":"d140b377f752997e141ed39bf1c9cbab853786478543c6a06dde7dcba2df4784","signature":"2665ad90f4fb04f36ac3838a3c52462d759022bfa83f3c2adf1d9fe8417a1084"},{"version":"090e7acc6a99e67dc575264b010e168afd815756abb807650517e997c980772a","impliedFormat":99},{"version":"0f1759fa7bd6b6bd5e3a28013b426c9947a7fb1e478dcc125e2ae35a73ca7729","signature":"fb7454920c71cda973d007ee78203f51de6d2987121e0f4c085a4109a55d69b6"},{"version":"2a18484eb14286ed9638bc26d36fdb15b98b7cbb774b6607a788ab7de21803d3","signature":"3e22348ca155fc8c4d8236e71c006d5efcb1cc85ba6167ea9b9659879c37e6bc"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"26303a5e93ea8976404accdb795651afe1d9631e742d5f6bfa3940f97664d34b","signature":"98f65149f2c4839de9a761fe5e0e49bba2d57a9b719b13f5657c6f0c220307e7"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ffa92b627d4e8e7df7f1383155f2dea446c6a321655e37e50c7c3004809c744f","signature":"fefed10cd55899ad3fae9015cb335c6995d03702cbed855f01a534fd2cb5d41a"},{"version":"eea2ca5aa2912da3489cd8b87e39d558c8860e27e4edeba4c378197d049664ba","signature":"de44a7f2b0d47c7787b4d160228d91cc3ca49416c8a353c418f344c9deff9779"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"997213bf2d998486a020bb9d63635e28509419b7c3eef2de190668ae14507fa6","signature":"d41793eaa1172ac2f5b07c9844f6fb379b32f1516824744f2be9da4ccda2d5a6"},{"version":"ee04730aa9b17c622842a9bba1e23713d7c227e06dc2df542053c19259a45d8d","signature":"390f67dabc754c888280d7fbd3debefaf0a6ce0cb08ecdb6b5b1555f9c3e5690"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"15812150c4377d3d94398dc31c7f010095123c123c6836685c872d93e8937359","signature":"def95c5a5688d11e2999f36fc5b831bc0a598fdef39209b36b29b09ea00c784e"},{"version":"33ab1e3233f6951662b608d1596491a91e04220da5d90e767fea41b673fcdc00","signature":"7e7fab10bdd7a9034b92e1afd8357020ce92c4e65e93dbebdf78e06fe8a20ed0"},{"version":"7161aed8d2516efd8a7fde991d7e0783ce44a9010aa0e3c2e3d89c8db92da12f","signature":"a25e39279b870f0a86f846662790fdf0fe0454f14d7503e61f7cb68b6d80a462"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},"6fb09e200265191ceb72640f0bcf315b214604d67042be95917e834f3a12e80c",{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"927aa4ba40ea75c698540a04206b89eba44cdeb53515f557c186c6e070a7c485","signature":"6a1641235112fb6fb6fab11cc2c82e34264067f8fc24601685872b309bd8926f"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"b266334c67fa69ff67fded0c634f852bb1aa3f99ddbccd7f2e70757ce11c1cef","signature":"aec710ec6aef682d41ad375ae1ddf9618cb325995710bfc1e5184d16e26ed347"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"6e8d6d452608c3be840c66cfb2301a01d74072ec7bd2f68e45dc3d8c6db184da","signature":"b1c5304bde7d1cbb07ff6c0c51c4a96115b36cacee316d1f76d8c046fb459d4c"},{"version":"a48310e3238d185e708d2032b0d2a1190e27731096e10027cc0616e9f531a75b","signature":"a44999082fce68773d785d591ae3ad96b802f809de4750615c542c08f1a924d0"},"3d40b3fdf1065606ebca2ac54e855b9e177a0d455ee9393879d1d61102fc3a21",{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"eb9b346c9f750ba2eb671b2429239f6f1f464b4172c66abf0c8b1041aaade193","signature":"644b375aa93808f2f401762de4e1969714e383052e69e0fbdfc82cd97fcda739"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"9a73f0c9ff95b0fb44d9182341a4676830ad1186890fbad6f15fe1febcdd3c8e","signature":"5c8da175455dac9be33675ab12a100ab67e6c9685248bacc7faecbacc2882e57"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"d3cfde44f8089768ebb08098c96d01ca260b88bccf238d55eee93f1c620ff5a5","impliedFormat":1},{"version":"293eadad9dead44c6fd1db6de552663c33f215c55a1bfa2802a1bceed88ff0ec","impliedFormat":1},{"version":"833e92c058d033cde3f29a6c7603f517001d1ddd8020bc94d2067a3bc69b2a8e","impliedFormat":1},{"version":"08b2fae7b0f553ad9f79faec864b179fc58bc172e295a70943e8585dd85f600c","impliedFormat":1},{"version":"f12edf1672a94c578eca32216839604f1e1c16b40a1896198deabf99c882b340","impliedFormat":1},{"version":"e3498cf5e428e6c6b9e97bd88736f26d6cf147dedbfa5a8ad3ed8e05e059af8a","impliedFormat":1},{"version":"dba3f34531fd9b1b6e072928b6f885aa4d28dd6789cbd0e93563d43f4b62da53","impliedFormat":1},{"version":"f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","impliedFormat":1},{"version":"e4b03ddcf8563b1c0aee782a185286ed85a255ce8a30df8453aade2188bbc904","impliedFormat":1},{"version":"2329d90062487e1eaca87b5e06abcbbeeecf80a82f65f949fd332cfcf824b87b","impliedFormat":1},{"version":"25b3f581e12ede11e5739f57a86e8668fbc0124f6649506def306cad2c59d262","impliedFormat":1},{"version":"4fdb529707247a1a917a4626bfb6a293d52cd8ee57ccf03830ec91d39d606d6d","impliedFormat":1},{"version":"a9ebb67d6bbead6044b43714b50dcb77b8f7541ffe803046fdec1714c1eba206","impliedFormat":1},{"version":"5780b706cece027f0d4444fbb4e1af62dc51e19da7c3d3719f67b22b033859b9","impliedFormat":1},{"version":"4749a5d10b6e3b0bd6c8d90f9ba68a91a97aa0c2c9a340dd83306b2f349d6d34","impliedFormat":99},{"version":"dd1729e568bbd92727b6703f2340096d07476d29085b3ee2f49e78e6f2029d20","impliedFormat":99},{"version":"efdb6c1c0e195ea378a0b7cd0e808f65176bea14396dc8bdccda80551e66d73f","impliedFormat":99},{"version":"de328e8fd327cf362e090965057fbbf14f2085c78b70eb31b61ceeca8d6da01c","impliedFormat":99},{"version":"b9e0783285db8fca77f8c20df30b66b201f914bacbfe472b86dcacdba555f360","impliedFormat":99},{"version":"005f10cafe0939ae8d6a98e19c4ddf8b59faf3f9ae38dfa5907b82b9a6cb4de9","impliedFormat":1},{"version":"089c056ad8ecb34ee72cb831491ab72c214d8fb7ecf94b96a1b4736ab54397a1","impliedFormat":1},{"version":"e643ef3093cba63af26396ae8dc58dc542c241027749dcdf715f3d3209f79a03","impliedFormat":1},{"version":"f40e6338b8137033a5b4efbe01de45a4399f2c304648eace01d852cd05eb861e","impliedFormat":1},{"version":"89d879fae02696e226dbcb7444d6153158fa264bb646071988f19a2e422b314f","impliedFormat":1},{"version":"57de3f0b1730cf8439c8aa4686f78f38b170a9b55e7a8393ae6f8a524bb3ba5a","impliedFormat":1},{"version":"e933bd300ea4f6c724d222bf2d93a0ae2b1e748baa1db09cb71d67d563794b2d","impliedFormat":1},{"version":"c43d0df83d8bb68ab9e2795cf1ec896ff1b5fab2023c977f3777819bc6b5c880","impliedFormat":1},{"version":"bf810d50332562d1b223a7ce607e5f8dc42714d8a3fa7bf39afe33830e107bf7","impliedFormat":1},{"version":"f025aff69699033567ebb4925578dedb18f63b4aa185f85005451cfd5fc53343","impliedFormat":1},{"version":"3d36c36df6ce6c4c3651a5f804ab07fe1c9bb8ce7d40ef4134038c364b429cb3","impliedFormat":1},{"version":"e9243dd3c92d2c56a2edf96cbce8faf357caf9397b95acaa65e960ad36cb7235","impliedFormat":1},{"version":"a24a9c59b7baecbb85c0ace2c07c9c5b7c2330bb5a2ae5d766f6bbf68f75e727","impliedFormat":1},{"version":"3c264d6a0f6be4f8684cb9e025f32c9b131cca7199c658eea28f0dae1f439124","impliedFormat":1},{"version":"d3cd789b0eebd5cebde1404383fd32c610bec782c74a415aa05ab3593abc35c8","impliedFormat":1},{"version":"8c1babb42f52952a6593b678f4cfb4afea5dc91e5cfaf3ca922cdd2d23b1277a","impliedFormat":1},{"version":"04ebb965333800caba800cabd1e18b02e0e69ab6a6f8948f2d53211df00a193c","impliedFormat":1},{"version":"f8e2be107b3e756e0a1c4f5e195e69dce69d38d0ff5c0b0509933e970c6d915b","impliedFormat":1},{"version":"309e580094520f9675a85c406ab5d1de4735f74a38f36690d569dbc5341f36a8","impliedFormat":1},{"version":"c2fa79fd37e4b0e4040de9d8db1b79accb1f8f63b3458cd0e5dac9d4f9e6f3f1","impliedFormat":1},{"version":"4f0d1a7e2a5a8b85d69f60a7be2a6223827f5fec473ba2142279841a54e8a845","impliedFormat":1},{"version":"ae2fb62b3647083fe8299e95dbfab2063c8301e9a626f42be0f360a57e434797","impliedFormat":1},{"version":"f53d803d9c9c8acdbb82ef5c6b8f224d42be50e9ab8bc09c8a9a942717214f9a","impliedFormat":1},{"version":"d2d70166533a2233aa35977eecea4b08c2f0f2e6e7b56c12a1c613c5ebf2c384","impliedFormat":1},{"version":"1097820fae2d12eb60006de0b5d057105e60d165cf8a6e6125f9876e6335cde7","impliedFormat":1},{"version":"8f62905f50830a638fd1a5ff68d9c8f2c1347ff046908eeb9119d257e8e8ae4a","impliedFormat":1},{"version":"8b4d34279952175f972f1aa62e136248311889148eb40a3e4782b244cece09f3","impliedFormat":1},{"version":"d3c3cc0840704fe524dbe8a812290bfd303e43d3bd43dcaac83ee682d2e15be0","impliedFormat":1},{"version":"71725ba9235f9d2aa02839162b1df2df59fd9dd91c110a54ea02112243d7a4d9","impliedFormat":1},{"version":"80af0c272dcb64518f7768428cdf91d21966a7f24ed0dfc69fad964d4c2ed8c1","impliedFormat":1},{"version":"1dc9702aa16e3ada78c84aa96868a7e5502001c402918b6d85ed25acbe80fd51","impliedFormat":1},{"version":"35f891c1bc36c97469df06316c65a718956515c8b3bdbeb146b468c02493ef13","impliedFormat":1},{"version":"2e9b05d7db853315f44d824e13840e6fdf17d615d13170b5f5cf830442018dcd","impliedFormat":1},{"version":"11989ad8152cf54a9cf974b02c1f03f2416857df6c5946ba735eb20ff9b3e9c2","impliedFormat":99},{"version":"91d3d5a235f545fd37bebfea42fc512970a2142ef3d8d9a02246760696d0b688","signature":"76cd2308eec82ec68321658d6a8d9fbc8f63b56d6882094751015b9caad0ab39"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"c368f2790f6713acf830b247dbe062d6a944fb2c62e5a05f0bacc6a6e72b42d2","signature":"cef241a9446a68cfcbe3f505fac3e4957644e8a7a057c2d1790fc5ca42d09a34"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"40aff816b4e1b45638916804abfb4537f433bd3e37daa045df524b21714b3f52","signature":"8b0809d17156abdb00dd2406f6f369bb86ad144853d2555ec94255a9471a9be5"},"51eabd9fa0243146e2361d069f28f1c4048d0061d4b83ca5ee22e2a41296e05f",{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"c852b12f6e1543302ec6088bed22253ea53af9908f019d9866a9c1511435aee3","signature":"8838497aaa32eed261e1beabd02d2c337afbd21fa4a05e7bc0c555def576dbf6"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"9c351a879cb5034413d704d456ac46990fe9c33ec4f31fbff4457258bb04d0b4","signature":"587b01ba9a6e74d40d9ba6f6be8033e9df34c694c62015967580621ff9435e22"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"95f81bf531342f9316dc17195a4317ccd8519a005a34177da32ba38f33ce9a4d","signature":"2cd8e3af01048aab258439b63efd7514afc8f476197f31618494abafcbe5c44e"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"7c190550df69783c671fa0f9a30c50543d919bd82380d1052c9c46a54d26ae20","signature":"8db75b77dd8c50ccc5d607ef8e01c54c90a5244d09657563fd8767844b95c656"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"0eee6b522110f17e3f67d1f29e5e94e88167fafec5fc857df3f39fe177876564","signature":"17685c741b7bea45071dd46ea9dd31bb6a9968acea17381ff7e3c4bb4bdad1e8"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"408b9ba24b8a7d39b9831df4557cbe822e8ebcc429e70110e4dc039b709d7fe6","signature":"2e1ddc3a67c38872b4f34223ab050831168af0281ab6374258cbb9750e456c54"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"46e85f45904254029ed52feb7bc0afdb627693aff2e54d609c83a757c65025ca","signature":"e7bec6a95fc9e95f870aed2997217de1c67c3733b1a1f3cb99de7e7cf82b5d08"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"2e43332ad2beb725c7b30d3559ffc813cb81c8b095358dc767dcab1c239c9306","signature":"efe0a1bb8a0e84604cd9a90d7ae76078f303d9d637299bfae098b70103f58a64"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"8466d36ef9e8f0398ecff46995ea0eb848e09c9b40be197b22a17c9025d51a86","signature":"78f4862bf4cb5ebabb029d2b71f72d4e7ba23d2ca59a9fd736af0a72e8ee17d7"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"075ecc1e827edcbb2812dae374e249fc0de73718c934b18dab29a82a1517b81c","signature":"47c2edcbdbcf34a8ba5819d67de40997e5b2b4e3aca2100fb9eb48b0754942f7"},{"version":"1507104ef7bbda1e124d1073e3093c1ece194dd3b42b87973f4fc49e6e8dd078","signature":"790e7eb617ace35140284959b46e8ce1e6f69d2cf1c31e80923d2dacafa5a9a5"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"4f3beecfd7b1f9272fd59a720a1444777fb7849d5a6192a6d304a60de88855e9","signature":"0f85a7c1fe33a91a589145067aca211a6c638c8f5423045e55aa4f1d39f223ed"},{"version":"5db7e0cbcd4feeb9a6ce1f7cd34a7736dc331c5aeb18320f7185001c0596c531","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"704ca0d41768d71cb6f49708f056c05b4f9f24f4ed77793376e8b132cf76baf8","signature":"6b51aedae50bc4b50236b71e06df2778b1cb855fb187d102439f8dfbeff05c63"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"444c559412b2162a7b5c1eb46bd85b5a5b4cc5019f009213be16892d7f73edd1","signature":"85b1be53814ae259d657f466c722da018d53089d0818b76946a1cf7aca6b6b2e"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},"5aa3e1e52d5a2590f145dfb57425955b18c292efd8201a1963a5b015a7adaf6e",{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"eaacecd4e2ae3cc8522db4a235b070627223c9b3a6f5f00e281930910c018dd2","signature":"fac78a267193b2bebe9385c5d7341228555f9758081e86790189c58c759a94ea"},{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"a79e62f1e20467e11a904399b8b18b18c0c6eea6b50c1168bf215356d5bebfaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"d802f0e6b5188646d307f070d83512e8eb94651858de8a82d1e47f60fb6da4e2","affectsGlobalScope":true,"impliedFormat":1},{"version":"17bb4105d0ea2ab2bfcb4f77ff8585691d5569c90ae15f4fa8d5ff9fb42b910b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"456fa0c0ab68731564917642b977c71c3b7682240685b118652fb9253c9a6429","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"2cbe0621042e2a68c7cbce5dfed3906a1862a16a7d496010636cdbdb91341c0f","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"a38efe83ff77c34e0f418a806a01ca3910c02ee7d64212a59d59bca6c2c38fa1","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"7b988bc259155186e6b09dd8b32856d9e45c8d261e63c19abaf590bb6550f922","affectsGlobalScope":true,"impliedFormat":1},{"version":"fe7b52f993f9336b595190f3c1fcc259bb2cf6dcb4ac8fdb1e0454cc5df7301e","impliedFormat":1},{"version":"e9b97d69510658d2f4199b7d384326b7c4053b9e6645f5c19e1c2a54ede427fc","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"81711af669f63d43ccb4c08e15beda796656dd46673d0def001c7055db53852d","affectsGlobalScope":true,"impliedFormat":1},{"version":"19d5f8d3930e9f99aa2c36258bf95abbe5adf7e889e6181872d1cdba7c9a7dd5","impliedFormat":1},{"version":"9855e02d837744303391e5623a531734443a5f8e6e8755e018c41d63ad797db2","impliedFormat":1},{"version":"bdba81959361810be44bcfdd283f4d601e406ab5ad1d2bdff0ed480cf983c9d7","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"b326f4813b90d230ec3950f66bd5b5ce3971aac5fac67cfafc54aa07b39fd07f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c8420c7c2b778b334587a4c0311833b5212ff2f684ea37b2f0e2b117f1d7210d","impliedFormat":1},{"version":"b6b08215821c9833b0e8e30ea1ed178009f2f3ff5d7fae3865ee42f97cc87784","impliedFormat":1},{"version":"b795c3e47a26be91ac33d8115acdc37bfa41ecc701fb237c64a23da4d2b7e1d8","impliedFormat":1},{"version":"73cf6cc19f16c0191e4e9d497ab0c11c7b38f1ca3f01ad0f09a3a5a971aac4b8","impliedFormat":1},{"version":"528b62e4272e3ddfb50e8eed9e359dedea0a4d171c3eb8f337f4892aac37b24b","impliedFormat":1},{"version":"ed58b9974bb3114f39806c9c2c6258c4ffa6a255921976a7c53dfa94bf178f42","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"f72bc8fe16da67e4e3268599295797b202b95e54bd215a03f97e925dd1502a36","impliedFormat":1},{"version":"b1b6ee0d012aeebe11d776a155d8979730440082797695fc8e2a5c326285678f","impliedFormat":1},{"version":"45875bcae57270aeb3ebc73a5e3fb4c7b9d91d6b045f107c1d8513c28ece71c0","impliedFormat":1},{"version":"915e18c559321c0afaa8d34674d3eb77e1ded12c3e85bf2a9891ec48b07a1ca5","affectsGlobalScope":true,"impliedFormat":1},{"version":"e9727a118ce60808e62457c89762fe5a4e2be8e9fd0112d12432d1bafdba942f","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"70b57b5529051497e9f6482b76d91c0dcbb103d9ead8a0549f5bab8f65e5d031","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"3a90b9beac4c2bfdf6517faae0940a042b81652badf747df0a7c7593456f6ebe","impliedFormat":1},{"version":"8302157cd431b3943eed09ad439b4441826c673d9f870dcb0e1f48e891a4211e","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"125d792ec6c0c0f657d758055c494301cc5fdb327d9d9d5960b3f129aff76093","impliedFormat":1},{"version":"dba28a419aec76ed864ef43e5f577a5c99a010c32e5949fe4e17a4d57c58dd11","affectsGlobalScope":true,"impliedFormat":1},{"version":"2754d8221d77c7b382096651925eb476f1066b3348da4b73fe71ced7801edada","impliedFormat":1},{"version":"a5890565ed564c7b29eb1b1038d4e10c03a3f5231b0a8d48fea4b41ab19f4f46","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"98ffdf93dfdd206516971d28e3e473f417a5cfd41172e46b4ce45008f640588e","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"cee74f5970ffc01041e5bffc3f324c20450534af4054d2c043cb49dbbd4ec8f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"1a654e0d950353614ba4637a8de4f9d367903a0692b748e11fccf8c880c99735","affectsGlobalScope":true,"impliedFormat":1},{"version":"42da246c46ca3fd421b6fd88bb4466cda7137cf33e87ba5ceeded30219c428bd","impliedFormat":1},{"version":"3a051941721a7f905544732b0eb819c8d88333a96576b13af08b82c4f17581e4","impliedFormat":1},{"version":"ac5ed35e649cdd8143131964336ab9076937fa91802ec760b3ea63b59175c10a","impliedFormat":1},{"version":"f2feb9696208311cdcf1936df2b7cbec96a3f0ab9d403952bf170546d4253a90","affectsGlobalScope":true,"impliedFormat":1},{"version":"db3d77167a7da6c5ba0c51c5b654820e3464093f21724ccd774c0b9bc3f81bc0","impliedFormat":1},{"version":"d9b6fd8640f6ad3f13ce9ce47d91061a698cf7763fed7f668e4f89709989aae5","impliedFormat":1}],"root":[60,[269,272],[274,310],[312,347],[401,438]],"options":{"composite":false,"declaration":false,"declarationMap":false,"downlevelIteration":true,"experimentalDecorators":true,"importHelpers":true,"inlineSourceMap":true,"inlineSources":true,"module":7,"noEmitOnError":false,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noImplicitReturns":true,"noPropertyAccessFromIndexSignature":true,"outDir":"../../../..","removeComments":false,"strict":true,"target":9,"tsBuildInfoFile":"./.tsbuildinfo","useDefineForClassFields":false},"referencedMap":[[431,1],[432,2],[60,1],[430,3],[260,4],[265,5],[262,6],[264,7],[259,7],[261,8],[256,9],[63,10],[255,11],[253,12],[62,8],[61,8],[258,13],[254,8],[311,14],[257,8],[273,15],[263,16],[266,17],[268,18],[267,19],[400,20],[366,21],[362,8],[365,22],[364,23],[363,24],[439,8],[491,25],[492,25],[493,26],[445,27],[494,28],[495,29],[496,30],[440,8],[443,31],[441,8],[442,8],[497,32],[498,33],[499,34],[500,35],[501,36],[502,37],[503,37],[504,38],[505,39],[506,40],[507,41],[446,8],[444,8],[508,42],[509,43],[510,44],[543,45],[511,46],[512,47],[513,48],[514,49],[515,50],[516,51],[517,52],[518,53],[519,54],[520,55],[521,55],[522,56],[523,8],[524,8],[525,57],[527,58],[526,59],[528,60],[529,61],[530,62],[531,63],[532,64],[533,65],[534,66],[535,67],[536,68],[537,69],[538,70],[539,71],[540,72],[447,8],[448,8],[449,8],[488,73],[489,8],[490,8],[541,74],[542,75],[450,8],[367,76],[369,77],[370,78],[368,79],[392,8],[393,80],[375,81],[387,82],[386,83],[384,84],[394,85],[372,8],[397,86],[379,8],[390,87],[389,88],[391,89],[395,8],[385,90],[378,91],[383,92],[396,93],[381,94],[376,8],[377,95],[398,96],[388,97],[382,93],[373,8],[399,98],[371,83],[374,8],[380,83],[252,99],[225,8],[203,100],[201,100],[251,101],[216,102],[215,102],[116,103],[67,104],[223,103],[224,103],[226,105],[227,103],[228,106],[127,107],[229,103],[200,103],[230,103],[231,108],[232,103],[233,102],[234,109],[235,103],[236,103],[237,103],[238,103],[239,102],[240,103],[241,103],[242,103],[243,103],[244,110],[245,103],[246,103],[247,103],[248,103],[249,103],[66,101],[69,106],[70,106],[71,106],[72,106],[73,106],[74,106],[75,106],[76,103],[78,111],[79,106],[77,106],[80,106],[81,106],[82,106],[83,106],[84,106],[85,106],[86,103],[87,106],[88,106],[89,106],[90,106],[91,106],[92,103],[93,106],[94,106],[95,106],[96,106],[97,106],[98,106],[99,103],[101,112],[100,106],[102,106],[103,106],[104,106],[105,106],[106,110],[107,103],[108,103],[122,113],[110,114],[111,106],[112,106],[113,103],[114,106],[115,106],[117,115],[118,106],[119,106],[120,106],[121,106],[123,106],[124,106],[125,106],[126,106],[128,116],[129,106],[130,106],[131,106],[132,103],[133,106],[134,117],[135,117],[136,117],[137,103],[138,106],[139,106],[140,106],[145,106],[141,106],[142,103],[143,106],[144,103],[146,106],[147,106],[148,106],[149,106],[150,106],[151,106],[152,103],[153,106],[154,106],[155,106],[156,106],[157,106],[158,106],[159,106],[160,106],[161,106],[162,106],[163,106],[164,106],[165,106],[166,106],[167,106],[168,106],[169,118],[170,106],[171,106],[172,106],[173,106],[174,106],[175,106],[176,103],[177,103],[178,103],[179,103],[180,103],[181,106],[182,106],[183,106],[184,106],[202,119],[250,103],[187,120],[186,121],[210,122],[209,123],[205,124],[204,123],[206,125],[195,126],[193,127],[208,128],[207,125],[194,8],[196,129],[109,130],[65,131],[64,106],[199,8],[191,132],[192,133],[189,8],[190,134],[188,106],[197,135],[68,136],[217,8],[218,8],[211,8],[214,102],[213,8],[219,8],[220,8],[212,137],[221,8],[222,8],[185,138],[198,139],[59,8],[57,8],[58,8],[10,8],[12,8],[11,8],[2,8],[13,8],[14,8],[15,8],[16,8],[17,8],[18,8],[19,8],[20,8],[3,8],[21,8],[22,8],[4,8],[23,8],[27,8],[24,8],[25,8],[26,8],[28,8],[29,8],[30,8],[5,8],[31,8],[32,8],[33,8],[34,8],[6,8],[38,8],[35,8],[36,8],[37,8],[39,8],[7,8],[40,8],[45,8],[46,8],[41,8],[42,8],[43,8],[44,8],[8,8],[50,8],[47,8],[48,8],[49,8],[51,8],[9,8],[52,8],[53,8],[54,8],[56,8],[55,8],[1,8],[466,140],[476,141],[465,140],[486,142],[457,143],[456,144],[485,145],[479,146],[484,147],[459,148],[473,149],[458,150],[482,151],[454,152],[453,145],[483,153],[455,154],[460,155],[461,8],[464,155],[451,8],[487,156],[477,157],[468,158],[469,159],[471,160],[467,161],[470,162],[480,145],[462,163],[463,164],[472,165],[452,166],[475,157],[474,155],[478,8],[481,167],[361,168],[353,169],[360,170],[355,8],[356,8],[354,171],[357,172],[348,8],[349,8],[350,168],[352,173],[358,8],[359,174],[351,175],[269,1],[318,176],[319,1],[427,177],[289,1],[290,178],[433,1],[434,179],[300,1],[301,180],[306,1],[307,181],[304,1],[305,182],[308,1],[309,183],[302,1],[303,184],[296,1],[299,185],[294,1],[295,186],[297,1],[298,187],[293,1],[310,188],[417,1],[418,189],[415,1],[416,190],[419,1],[420,191],[421,1],[422,192],[423,1],[424,193],[270,1],[313,194],[435,1],[436,195],[425,1],[426,196],[411,1],[412,197],[409,1],[410,198],[407,1],[408,199],[413,1],[414,200],[291,1],[292,201],[288,1],[312,202],[437,1],[438,203],[332,1],[341,204],[337,1],[340,205],[325,1],[328,206],[333,1],[334,207],[342,1],[343,208],[314,1],[315,209],[330,1],[331,210],[320,1],[329,211],[316,1],[317,212],[345,1],[346,213],[344,1],[406,214],[428,1],[429,215],[283,1],[284,216],[322,1],[323,217],[278,1],[281,218],[274,1],[275,219],[402,1],[403,220],[347,1],[401,221],[286,1],[287,222],[279,1],[280,223],[404,1],[405,224],[271,1],[272,225],[326,1],[327,226],[338,1],[339,227],[282,1],[285,228],[276,1],[277,229],[321,1],[324,230],[335,1],[336,231]],"semanticDiagnosticsPerFile":[60,269,270,271,274,276,278,279,282,283,286,288,289,291,293,294,296,297,300,302,304,306,308,312,313,314,316,318,319,320,321,322,325,326,329,330,332,333,335,337,338,341,342,344,345,347,402,404,406,407,409,411,413,415,417,419,421,423,425,427,428,430,431,433,435,437],"version":"5.8.3"} \ No newline at end of file +{"fileNames":["../../../../node_modules/typescript/lib/lib.es5.d.ts","../../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../../node_modules/typescript/lib/lib.dom.d.ts","../../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../../node_modules/tslib/tslib.d.ts","../../../../index.ngtypecheck.ts","../../../../node_modules/@angular/core/graph.d.d.ts","../../../../node_modules/@angular/core/event_dispatcher.d.d.ts","../../../../node_modules/@angular/core/chrome_dev_tools_performance.d.d.ts","../../../../node_modules/rxjs/dist/types/internal/subscription.d.ts","../../../../node_modules/rxjs/dist/types/internal/subscriber.d.ts","../../../../node_modules/rxjs/dist/types/internal/operator.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable.d.ts","../../../../node_modules/rxjs/dist/types/internal/types.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/audit.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/audittime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/buffer.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/buffercount.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/buffertime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/buffertoggle.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/bufferwhen.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/catcherror.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/combinelatestall.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/combineall.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/combinelatest.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/combinelatestwith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/concat.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/concatall.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/concatmap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/concatmapto.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/concatwith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/connect.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/count.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/debounce.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/debouncetime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/defaultifempty.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/delay.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/delaywhen.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/dematerialize.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/distinct.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/distinctuntilchanged.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/distinctuntilkeychanged.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/elementat.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/endwith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/every.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/exhaustall.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/exhaust.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/exhaustmap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/expand.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/filter.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/finalize.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/find.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/findindex.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/first.d.ts","../../../../node_modules/rxjs/dist/types/internal/subject.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/groupby.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/ignoreelements.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/isempty.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/last.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/map.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mapto.d.ts","../../../../node_modules/rxjs/dist/types/internal/notification.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/materialize.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/max.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/merge.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mergeall.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mergemap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/flatmap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mergemapto.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mergescan.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mergewith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/min.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/connectableobservable.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/multicast.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/observeon.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/onerrorresumenextwith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/pairwise.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/partition.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/pluck.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/publish.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/publishbehavior.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/publishlast.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/publishreplay.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/race.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/racewith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/reduce.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/repeat.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/repeatwhen.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/retry.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/retrywhen.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/refcount.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/sample.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/sampletime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/scan.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/sequenceequal.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/share.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/sharereplay.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/single.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/skip.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/skiplast.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/skipuntil.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/skipwhile.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/startwith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/subscribeon.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/switchall.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/switchmap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/switchmapto.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/switchscan.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/take.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/takelast.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/takeuntil.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/takewhile.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/tap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/throttle.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/throttletime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/throwifempty.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/timeinterval.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/timeout.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/timeoutwith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/timestamp.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/toarray.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/window.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/windowcount.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/windowtime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/windowtoggle.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/windowwhen.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/withlatestfrom.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/zip.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/zipall.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/zipwith.d.ts","../../../../node_modules/rxjs/dist/types/operators/index.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/action.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/testmessage.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/subscriptionlog.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/subscriptionloggable.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/coldobservable.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/hotobservable.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/asyncscheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/timerhandle.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/asyncaction.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/virtualtimescheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/testscheduler.d.ts","../../../../node_modules/rxjs/dist/types/testing/index.d.ts","../../../../node_modules/rxjs/dist/types/internal/symbol/observable.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/dom/animationframes.d.ts","../../../../node_modules/rxjs/dist/types/internal/behaviorsubject.d.ts","../../../../node_modules/rxjs/dist/types/internal/replaysubject.d.ts","../../../../node_modules/rxjs/dist/types/internal/asyncsubject.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/asapscheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/asap.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/async.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/queuescheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/queue.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/animationframescheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/animationframe.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/identity.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/pipe.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/noop.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/isobservable.d.ts","../../../../node_modules/rxjs/dist/types/internal/lastvaluefrom.d.ts","../../../../node_modules/rxjs/dist/types/internal/firstvaluefrom.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/argumentoutofrangeerror.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/emptyerror.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/notfounderror.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/objectunsubscribederror.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/sequenceerror.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/unsubscriptionerror.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/bindcallback.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/bindnodecallback.d.ts","../../../../node_modules/rxjs/dist/types/internal/anycatcher.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/combinelatest.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/concat.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/connectable.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/defer.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/empty.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/forkjoin.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/from.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/fromevent.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/fromeventpattern.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/generate.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/iif.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/interval.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/merge.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/never.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/of.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/onerrorresumenext.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/pairs.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/partition.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/race.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/range.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/throwerror.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/timer.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/using.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/zip.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduled/scheduled.d.ts","../../../../node_modules/rxjs/dist/types/internal/config.d.ts","../../../../node_modules/rxjs/dist/types/index.d.ts","../../../../node_modules/@angular/core/effect.d.d.ts","../../../../node_modules/@angular/core/primitives/di/index.d.ts","../../../../node_modules/@angular/core/discovery.d.d.ts","../../../../node_modules/@angular/core/api.d.d.ts","../../../../node_modules/@angular/core/weak_ref.d.d.ts","../../../../node_modules/@angular/core/index.d.ts","../../../../node_modules/@angular/common/platform_location.d.d.ts","../../../../node_modules/@angular/common/common_module.d.d.ts","../../../../node_modules/@angular/common/xhr.d.d.ts","../../../../node_modules/@angular/common/index.d.ts","../../../../node_modules/@angular/platform-browser/browser.d.d.ts","../../../../node_modules/@angular/common/module.d.d.ts","../../../../node_modules/@angular/common/http/index.d.ts","../../../../node_modules/@angular/platform-browser/index.d.ts","../../../../node_modules/@angular/router/router_module.d.d.ts","../../../../node_modules/@angular/router/index.d.ts","../../../../src/pipes/translate.pipe.ngtypecheck.ts","../../../../src/services/i18n.service.ngtypecheck.ts","../../../../src/services/i18n.service.ts","../../../../src/pipes/translate.pipe.ts","../../../../node_modules/@angular/forms/index.d.ts","../../../../src/components/search/provider-picker.component.ngtypecheck.ts","../../../../src/app/core/providers/provider-registry.ngtypecheck.ts","../../../../src/app/core/providers/provider-registry.ts","../../../../src/components/search/provider-picker.component.ts","../../../../src/components/search/search-box.component.ngtypecheck.ts","../../../../src/app/search/search.service.ngtypecheck.ts","../../../../src/app/search/api.v1.ngtypecheck.ts","../../../../src/app/search/api.v1.ts","../../../../src/app/search/adapters/yt.ngtypecheck.ts","../../../../src/app/search/models.ngtypecheck.ts","../../../../src/app/search/models.ts","../../../../src/app/shared/models/video-item.model.ngtypecheck.ts","../../../../src/app/shared/models/video-item.model.ts","../../../../src/app/search/adapters/yt.ts","../../../../src/app/search/adapters/dm.ngtypecheck.ts","../../../../src/app/search/adapters/dm.ts","../../../../src/app/search/adapters/tw.ngtypecheck.ts","../../../../src/app/search/adapters/tw.ts","../../../../src/app/search/adapters/pt.ngtypecheck.ts","../../../../src/app/search/adapters/pt.ts","../../../../src/app/search/adapters/od.ngtypecheck.ts","../../../../src/app/search/adapters/od.ts","../../../../src/app/search/adapters/ru.ngtypecheck.ts","../../../../src/app/search/adapters/ru.ts","../../../../src/app/search/search.service.ts","../../../../src/services/user.service.ngtypecheck.ts","../../../../src/services/auth.service.ngtypecheck.ts","../../../../src/services/auth.service.ts","../../../../src/services/user.service.ts","../../../../src/services/history.service.ngtypecheck.ts","../../../../src/services/history.service.ts","../../../../node_modules/@angular/core/rxjs-interop/index.d.ts","../../../../src/components/search/search-box.component.ts","../../../../src/components/header/header.component.ngtypecheck.ts","../../../../src/services/instance.service.ngtypecheck.ts","../../../../src/services/instance.service.ts","../../../../src/services/themes.service.ngtypecheck.ts","../../../../src/models/theme.model.ngtypecheck.ts","../../../../src/models/theme.model.ts","../../../../src/services/themes.service.ts","../../../../src/components/header/header.component.ts","../../../../src/components/sidebar/sidebar.component.ngtypecheck.ts","../../../../src/components/sidebar/sidebar.component.ts","../../../../src/app.component.ngtypecheck.ts","../../../../src/components/themes/themes-nav.component.ngtypecheck.ts","../../../../src/components/themes/themes-nav.component.ts","../../../../src/app.component.ts","../../../../src/app.routes.ngtypecheck.ts","../../../../src/components/shared/components/like-button/like-button.component.ngtypecheck.ts","../../../../src/services/likes.service.ngtypecheck.ts","../../../../src/services/likes.service.ts","../../../../src/components/shared/components/like-button/like-button.component.ts","../../../../src/components/themes/theme-page.component.ngtypecheck.ts","../../../../src/services/youtube-api.service.ngtypecheck.ts","../../../../src/models/video.model.ngtypecheck.ts","../../../../src/models/video.model.ts","../../../../src/services/youtube-api.service.ts","../../../../src/components/themes/theme-page.component.ts","../../../../src/components/themes/provider-theme-page.component.ngtypecheck.ts","../../../../src/components/themes/provider-theme-page.component.ts","../../../../src/app/shared/components/video-card/video-card.component.ngtypecheck.ts","../../../../src/app/shared/components/video-card/video-card.component.ts","../../../../src/app/shared/components/search-result-grid/search-result-grid.component.ngtypecheck.ts","../../../../src/app/shared/components/video-card-skeleton/video-card-skeleton.component.ngtypecheck.ts","../../../../src/app/shared/components/video-card-skeleton/video-card-skeleton.component.ts","../../../../src/app/shared/components/search-result-grid/search-result-grid.component.ts","../../../../src/components/search/search.component.ngtypecheck.ts","../../../../src/utils/date.util.ngtypecheck.ts","../../../../src/utils/date.util.ts","../../../../src/components/search/search.component.ts","../../../../src/components/shorts/watch-short.component.ngtypecheck.ts","../../../../src/components/shorts/watch-short.component.ts","../../../../src/components/video-player/video-player.component.ngtypecheck.ts","../../../../src/components/video-player/video-player.component.ts","../../../../src/components/shared/components/add-to-playlist/add-to-playlist.component.ngtypecheck.ts","../../../../src/services/playlists.service.ngtypecheck.ts","../../../../src/services/playlists.service.ts","../../../../src/components/shared/components/add-to-playlist/add-to-playlist.component.ts","../../../../src/components/watch/watch.component.ngtypecheck.ts","../../../../src/services/gemini.service.ngtypecheck.ts","../../../../node_modules/zod/v3/helpers/typealiases.d.cts","../../../../node_modules/zod/v3/helpers/util.d.cts","../../../../node_modules/zod/v3/index.d.cts","../../../../node_modules/zod/v3/zoderror.d.cts","../../../../node_modules/zod/v3/locales/en.d.cts","../../../../node_modules/zod/v3/errors.d.cts","../../../../node_modules/zod/v3/helpers/parseutil.d.cts","../../../../node_modules/zod/v3/helpers/enumutil.d.cts","../../../../node_modules/zod/v3/helpers/errorutil.d.cts","../../../../node_modules/zod/v3/helpers/partialutil.d.cts","../../../../node_modules/zod/v3/standard-schema.d.cts","../../../../node_modules/zod/v3/types.d.cts","../../../../node_modules/zod/v3/external.d.cts","../../../../node_modules/zod/index.d.cts","../../../../node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/types.d.ts","../../../../node_modules/@modelcontextprotocol/sdk/dist/esm/types.d.ts","../../../../node_modules/@modelcontextprotocol/sdk/dist/esm/shared/transport.d.ts","../../../../node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.d.ts","../../../../node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.d.ts","../../../../node_modules/gaxios/build/src/common.d.ts","../../../../node_modules/gaxios/build/src/interceptor.d.ts","../../../../node_modules/gaxios/build/src/gaxios.d.ts","../../../../node_modules/gaxios/build/src/index.d.ts","../../../../node_modules/google-auth-library/build/src/transporters.d.ts","../../../../node_modules/google-auth-library/build/src/auth/credentials.d.ts","../../../../node_modules/google-auth-library/build/src/crypto/crypto.d.ts","../../../../node_modules/google-auth-library/build/src/util.d.ts","../../../../node_modules/google-auth-library/build/src/auth/authclient.d.ts","../../../../node_modules/google-auth-library/build/src/auth/loginticket.d.ts","../../../../node_modules/google-auth-library/build/src/auth/oauth2client.d.ts","../../../../node_modules/google-auth-library/build/src/auth/idtokenclient.d.ts","../../../../node_modules/google-auth-library/build/src/auth/envdetect.d.ts","../../../../node_modules/gtoken/build/src/index.d.ts","../../../../node_modules/google-auth-library/build/src/auth/jwtclient.d.ts","../../../../node_modules/google-auth-library/build/src/auth/refreshclient.d.ts","../../../../node_modules/google-auth-library/build/src/auth/impersonated.d.ts","../../../../node_modules/google-auth-library/build/src/auth/baseexternalclient.d.ts","../../../../node_modules/google-auth-library/build/src/auth/identitypoolclient.d.ts","../../../../node_modules/google-auth-library/build/src/auth/awsrequestsigner.d.ts","../../../../node_modules/google-auth-library/build/src/auth/awsclient.d.ts","../../../../node_modules/google-auth-library/build/src/auth/pluggable-auth-client.d.ts","../../../../node_modules/google-auth-library/build/src/auth/externalclient.d.ts","../../../../node_modules/google-auth-library/build/src/auth/externalaccountauthorizeduserclient.d.ts","../../../../node_modules/google-auth-library/build/src/auth/googleauth.d.ts","../../../../node_modules/gcp-metadata/build/src/gcp-residency.d.ts","../../../../node_modules/gcp-metadata/build/src/index.d.ts","../../../../node_modules/google-auth-library/build/src/auth/computeclient.d.ts","../../../../node_modules/google-auth-library/build/src/auth/iam.d.ts","../../../../node_modules/google-auth-library/build/src/auth/jwtaccess.d.ts","../../../../node_modules/google-auth-library/build/src/auth/downscopedclient.d.ts","../../../../node_modules/google-auth-library/build/src/auth/passthrough.d.ts","../../../../node_modules/google-auth-library/build/src/index.d.ts","../../../../node_modules/@google/genai/dist/genai.d.ts","../../../../src/services/gemini.service.ts","../../../../src/services/download.service.ngtypecheck.ts","../../../../src/services/download.service.ts","../../../../src/services/iframe-progress.service.ngtypecheck.ts","../../../../src/services/iframe-progress.service.ts","../../../../src/components/watch/watch.component.ts","../../../../src/components/library/playlists/playlists.component.ngtypecheck.ts","../../../../src/components/library/playlists/playlists.component.ts","../../../../src/components/library/playlists/playlist-detail.component.ngtypecheck.ts","../../../../src/components/library/playlists/playlist-detail.component.ts","../../../../src/components/library/liked/liked.component.ngtypecheck.ts","../../../../src/components/library/liked/liked.component.ts","../../../../src/components/library/subscriptions/subscriptions.component.ngtypecheck.ts","../../../../src/components/library/subscriptions/subscriptions.component.ts","../../../../src/components/account/preferences/preferences.component.ngtypecheck.ts","../../../../src/components/account/preferences/preferences.component.ts","../../../../src/components/account/history/history.component.ngtypecheck.ts","../../../../src/components/account/history/history.component.ts","../../../../src/components/account/sessions/sessions.component.ngtypecheck.ts","../../../../src/components/account/sessions/sessions.component.ts","../../../../src/components/auth/login/login.component.ngtypecheck.ts","../../../../src/components/auth/login/login.component.ts","../../../../src/components/auth/register/register.component.ngtypecheck.ts","../../../../src/components/auth/register/register.component.ts","../../../../src/components/info/utilisation/utilisation.component.ngtypecheck.ts","../../../../src/components/info/utilisation/utilisation.component.ts","../../../../src/app.routes.ts","../../../../src/interceptors/auth.interceptor.ngtypecheck.ts","../../../../src/interceptors/auth.interceptor.ts","../../../../index.tsx","../../../../app/shared/components/like-button/like-button.ngtypecheck.ts","../../../../app/shared/components/like-button/like-button.ts","../../../../src/app/search/adapters/base.ngtypecheck.ts","../../../../src/app/search/adapters/base.ts","../../../../src/components/shared/infinite-anchor/infinite-anchor.component.ngtypecheck.ts","../../../../src/components/shared/infinite-anchor/infinite-anchor.component.ts","../../../../src/components/home/home.component.ngtypecheck.ts","../../../../src/components/home/home.component.ts","../../../../src/components/search/search-suggestions.component.ngtypecheck.ts","../../../../src/components/search/search-suggestions.component.ts","../../../../node_modules/@types/estree/index.d.ts","../../../../node_modules/@types/node/compatibility/disposable.d.ts","../../../../node_modules/@types/node/compatibility/indexable.d.ts","../../../../node_modules/@types/node/compatibility/iterators.d.ts","../../../../node_modules/@types/node/compatibility/index.d.ts","../../../../node_modules/@types/node/globals.typedarray.d.ts","../../../../node_modules/@types/node/buffer.buffer.d.ts","../../../../node_modules/@types/node/globals.d.ts","../../../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../../node_modules/@types/node/web-globals/domexception.d.ts","../../../../node_modules/@types/node/web-globals/events.d.ts","../../../../node_modules/buffer/index.d.ts","../../../../node_modules/undici-types/header.d.ts","../../../../node_modules/undici-types/readable.d.ts","../../../../node_modules/undici-types/file.d.ts","../../../../node_modules/undici-types/fetch.d.ts","../../../../node_modules/undici-types/formdata.d.ts","../../../../node_modules/undici-types/connector.d.ts","../../../../node_modules/undici-types/client.d.ts","../../../../node_modules/undici-types/errors.d.ts","../../../../node_modules/undici-types/dispatcher.d.ts","../../../../node_modules/undici-types/global-dispatcher.d.ts","../../../../node_modules/undici-types/global-origin.d.ts","../../../../node_modules/undici-types/pool-stats.d.ts","../../../../node_modules/undici-types/pool.d.ts","../../../../node_modules/undici-types/handlers.d.ts","../../../../node_modules/undici-types/balanced-pool.d.ts","../../../../node_modules/undici-types/agent.d.ts","../../../../node_modules/undici-types/mock-interceptor.d.ts","../../../../node_modules/undici-types/mock-agent.d.ts","../../../../node_modules/undici-types/mock-client.d.ts","../../../../node_modules/undici-types/mock-pool.d.ts","../../../../node_modules/undici-types/mock-errors.d.ts","../../../../node_modules/undici-types/proxy-agent.d.ts","../../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../../node_modules/undici-types/retry-handler.d.ts","../../../../node_modules/undici-types/retry-agent.d.ts","../../../../node_modules/undici-types/api.d.ts","../../../../node_modules/undici-types/interceptors.d.ts","../../../../node_modules/undici-types/util.d.ts","../../../../node_modules/undici-types/cookies.d.ts","../../../../node_modules/undici-types/patch.d.ts","../../../../node_modules/undici-types/websocket.d.ts","../../../../node_modules/undici-types/eventsource.d.ts","../../../../node_modules/undici-types/filereader.d.ts","../../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../../node_modules/undici-types/content-type.d.ts","../../../../node_modules/undici-types/cache.d.ts","../../../../node_modules/undici-types/index.d.ts","../../../../node_modules/@types/node/web-globals/fetch.d.ts","../../../../node_modules/@types/node/web-globals/navigator.d.ts","../../../../node_modules/@types/node/web-globals/storage.d.ts","../../../../node_modules/@types/node/assert.d.ts","../../../../node_modules/@types/node/assert/strict.d.ts","../../../../node_modules/@types/node/async_hooks.d.ts","../../../../node_modules/@types/node/buffer.d.ts","../../../../node_modules/@types/node/child_process.d.ts","../../../../node_modules/@types/node/cluster.d.ts","../../../../node_modules/@types/node/console.d.ts","../../../../node_modules/@types/node/constants.d.ts","../../../../node_modules/@types/node/crypto.d.ts","../../../../node_modules/@types/node/dgram.d.ts","../../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../../node_modules/@types/node/dns.d.ts","../../../../node_modules/@types/node/dns/promises.d.ts","../../../../node_modules/@types/node/domain.d.ts","../../../../node_modules/@types/node/events.d.ts","../../../../node_modules/@types/node/fs.d.ts","../../../../node_modules/@types/node/fs/promises.d.ts","../../../../node_modules/@types/node/http.d.ts","../../../../node_modules/@types/node/http2.d.ts","../../../../node_modules/@types/node/https.d.ts","../../../../node_modules/@types/node/inspector.d.ts","../../../../node_modules/@types/node/module.d.ts","../../../../node_modules/@types/node/net.d.ts","../../../../node_modules/@types/node/os.d.ts","../../../../node_modules/@types/node/path.d.ts","../../../../node_modules/@types/node/perf_hooks.d.ts","../../../../node_modules/@types/node/process.d.ts","../../../../node_modules/@types/node/punycode.d.ts","../../../../node_modules/@types/node/querystring.d.ts","../../../../node_modules/@types/node/readline.d.ts","../../../../node_modules/@types/node/readline/promises.d.ts","../../../../node_modules/@types/node/repl.d.ts","../../../../node_modules/@types/node/sea.d.ts","../../../../node_modules/@types/node/sqlite.d.ts","../../../../node_modules/@types/node/stream.d.ts","../../../../node_modules/@types/node/stream/promises.d.ts","../../../../node_modules/@types/node/stream/consumers.d.ts","../../../../node_modules/@types/node/stream/web.d.ts","../../../../node_modules/@types/node/string_decoder.d.ts","../../../../node_modules/@types/node/test.d.ts","../../../../node_modules/@types/node/timers.d.ts","../../../../node_modules/@types/node/timers/promises.d.ts","../../../../node_modules/@types/node/tls.d.ts","../../../../node_modules/@types/node/trace_events.d.ts","../../../../node_modules/@types/node/tty.d.ts","../../../../node_modules/@types/node/url.d.ts","../../../../node_modules/@types/node/util.d.ts","../../../../node_modules/@types/node/v8.d.ts","../../../../node_modules/@types/node/vm.d.ts","../../../../node_modules/@types/node/wasi.d.ts","../../../../node_modules/@types/node/worker_threads.d.ts","../../../../node_modules/@types/node/zlib.d.ts","../../../../node_modules/@types/node/index.d.ts"],"fileIdsList":[[59,258,438,453,502],[59,258,437,453,502],[59,453,502],[59,60,252,258,265,266,268,301,302,309,320,433,435,453,502],[252,258,259,453,502],[252,258,261,264,453,502],[252,258,259,260,261,453,502],[258,453,502],[453,502],[63,453,502],[61,62,453,502],[61,62,63,252,253,254,453,502],[61,453,502],[61,62,63,252,253,254,255,256,257,453,502],[61,62,63,252,256,453,502],[252,258,453,502],[258,262,453,502],[258,262,263,265,453,502],[252,258,262,266,267,453,502],[252,258,262,453,502],[372,405,453,502],[367,369,370,371,453,502],[367,368,369,370,453,502],[369,453,502],[367,368,453,502],[453,499,502],[453,501,502],[502],[453,502,507,536],[453,502,503,508,513,521,533,544],[453,502,503,504,513,521],[448,449,450,453,502],[453,502,505,545],[453,502,506,507,514,522],[453,502,507,533,541],[453,502,508,510,513,521],[453,501,502,509],[453,502,510,511],[453,502,512,513],[453,501,502,513],[453,502,513,514,515,533,544],[453,502,513,514,515,528,533,536],[453,495,502,510,513,516,521,533,544],[453,502,513,514,516,517,521,533,541,544],[453,502,516,518,533,541,544],[451,452,453,454,455,456,457,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],[453,502,513,519],[453,502,520,544],[453,502,510,513,521,533],[453,502,522],[453,502,523],[453,501,502,524],[453,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],[453,502,526],[453,502,527],[453,502,513,528,529],[453,502,528,530,545,547],[453,502,513,533,534,536],[453,502,535,536],[453,502,533,534],[453,502,536],[453,502,537],[453,499,502,533,538],[453,502,513,539,540],[453,502,539,540],[453,502,507,521,533,541],[453,502,542],[453,502,521,543],[453,502,516,527,544],[453,502,507,545],[453,502,533,546],[453,502,520,547],[453,502,548],[453,495,502],[453,502,513,515,524,533,536,544,546,547,549],[453,502,533,550],[453,502,516,533,544],[373,374,453,502,516,544],[373,374,375,453,502],[373,453,502],[398,453,502,516],[376,377,378,380,383,453,502,513],[380,381,390,392,453,502],[376,453,502],[376,377,378,380,381,383,453,502],[376,383,453,502],[376,377,378,381,383,453,502],[376,377,378,381,383,390,453,502],[381,390,391,393,394,453,502],[376,377,378,381,383,384,385,387,388,389,390,395,396,405,453,502,533],[380,381,390,453,502],[383,453,502],[381,383,384,397,453,502],[378,383,453,502,533],[378,383,384,386,453,502,533],[376,377,378,379,381,382,453,502,527],[376,381,383,453,502],[381,390,453,502],[376,377,378,381,382,383,384,385,387,388,389,390,391,392,393,394,395,397,399,400,401,402,403,404,405,453,502],[64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,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,120,121,122,123,124,125,126,127,128,129,130,131,133,134,135,136,137,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,183,184,185,187,196,198,199,200,201,202,203,205,206,208,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,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,453,502],[109,453,502],[65,68,453,502],[67,453,502],[67,68,453,502],[64,65,66,68,453,502],[65,67,68,225,453,502],[68,453,502],[64,67,109,453,502],[67,68,225,453,502],[67,233,453,502],[65,67,68,453,502],[77,453,502],[100,453,502],[121,453,502],[67,68,109,453,502],[68,116,453,502],[67,68,109,127,453,502],[67,68,127,453,502],[68,168,453,502],[68,109,453,502],[64,68,186,453,502],[64,68,187,453,502],[209,453,502],[193,195,453,502],[204,453,502],[193,453,502],[64,68,186,193,194,453,502],[186,187,195,453,502],[207,453,502],[64,68,193,194,195,453,502],[66,67,68,453,502],[64,68,453,502],[65,67,187,188,189,190,453,502],[109,187,188,189,190,453,502],[187,189,453,502],[67,188,189,191,192,196,453,502],[64,67,453,502],[68,211,453,502],[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,110,111,112,113,114,115,117,118,119,120,121,122,123,124,125,126,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,453,502],[197,453,502],[453,467,471,502,544],[453,467,502,533,544],[453,462,502],[453,464,467,502,541,544],[453,502,521,541],[453,502,551],[453,462,502,551],[453,464,467,502,521,544],[453,459,460,463,466,502,513,533,544],[453,467,474,502],[453,459,465,502],[453,467,488,489,502],[453,463,467,502,536,544,551],[453,488,502,551],[453,461,462,502,551],[453,467,502],[453,461,462,463,464,465,466,467,468,469,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,489,490,491,492,493,494,502],[453,467,482,502],[453,467,474,475,502],[453,465,467,475,476,502],[453,466,502],[453,459,462,467,502],[453,467,471,475,476,502],[453,471,502],[453,465,467,470,502,544],[453,459,464,467,474,502],[453,502,533],[453,462,467,488,502,549,551],[366,453,502],[357,358,453,502],[354,355,357,359,360,365,453,502],[355,357,453,502],[365,453,502],[357,453,502],[354,355,357,360,361,362,363,364,453,502],[354,355,356,453,502],[59,258,314,316,320,453,502],[59,258,268,271,314,316,317,319,453,502],[59,268,321,331,333,343,345,412,414,416,418,420,422,424,426,428,430,432,453,502],[59,275,453,502],[59,252,265,284,439,453,502],[59,252,265,284,286,288,453,502],[59,252,265,284,286,294,453,502],[59,252,265,284,286,292,453,502],[59,252,265,284,286,296,453,502],[59,252,265,284,286,290,453,502],[59,252,265,282,284,286,453,502],[59,280,453,502],[59,283,453,502],[59,252,258,265,276,279,281,284,286,287,289,291,293,295,297,453,502],[59,258,262,335,339,453,502],[59,258,262,286,335,336,338,453,502],[59,258,338,453,502],[59,258,337,453,502],[59,258,262,268,335,453,502],[59,258,262,268,286,334,453,502],[59,285,453,502],[59,258,262,268,273,424,453,502],[59,185,252,258,262,268,273,304,423,453,502],[59,258,262,272,273,422,453,502],[59,252,258,262,271,272,273,302,309,421,453,502],[59,258,262,426,453,502],[59,252,258,262,301,425,453,502],[59,258,262,268,273,428,453,502],[59,252,258,262,268,273,301,302,309,427,453,502],[59,258,262,268,273,430,453,502],[59,252,258,262,268,273,301,302,309,429,453,502],[59,258,262,268,272,273,306,314,453,502],[59,252,258,262,268,271,272,273,301,302,304,306,307,309,313,453,502],[59,258,262,268,272,325,442,444,453,502],[59,258,262,268,272,309,325,329,330,342,442,443,453,502],[59,258,432,453,502],[59,258,262,431,453,502],[59,258,262,268,273,418,453,502],[59,258,262,268,273,324,417,453,502],[59,258,262,268,416,453,502],[59,258,262,265,268,301,350,415,453,502],[59,258,262,268,414,453,502],[59,258,262,265,268,273,301,413,453,502],[59,258,420,453,502],[59,258,262,419,453,502],[59,258,262,273,277,453,502],[59,258,262,273,274,276,453,502],[59,258,262,273,277,306,453,502],[59,185,252,258,262,265,273,276,277,278,298,302,304,305,453,502],[59,258,262,268,446,453,502],[59,258,262,268,276,298,445,453,502],[59,258,262,272,339,343,453,502],[59,252,258,262,266,268,272,276,286,298,304,305,309,330,339,340,342,453,502],[59,258,351,453,502],[59,252,258,262,265,301,348,350,453,502],[59,258,325,453,502],[59,252,258,262,265,301,322,324,453,502],[59,258,442,453,502],[59,258,262,441,453,502],[59,258,345,453,502],[59,252,258,262,266,309,329,330,344,453,502],[59,258,262,268,272,316,453,502],[59,258,262,268,272,301,309,313,315,453,502],[59,258,262,268,272,273,325,333,453,502],[59,258,262,268,272,273,309,313,325,329,330,332,453,502],[59,258,262,268,272,325,331,453,502],[59,258,262,268,272,309,313,325,326,329,330,453,502],[59,258,262,319,453,502],[59,258,262,268,313,318,453,502],[59,258,347,453,502],[59,258,304,346,453,502],[59,258,268,347,351,412,453,502],[59,252,258,262,265,266,268,301,304,309,324,329,330,342,347,351,352,407,409,411,453,502],[59,185,252,258,265,301,434,453,502],[59,311,453,502],[59,328,453,502],[59,258,269,271,453,502],[59,185,252,258,265,300,453,502],[59,252,258,265,408,453,502],[59,258,353,406,453,502],[59,252,258,265,301,303,453,502],[59,258,270,453,502],[59,258,304,410,453,502],[59,258,308,453,502],[59,252,258,265,323,453,502],[59,252,258,265,349,453,502],[59,258,271,310,312,453,502],[59,185,252,258,265,299,301,453,502],[59,185,252,258,265,271,309,327,329,453,502],[59,341,453,502]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"092c2bfe125ce69dbb1223c85d68d4d2397d7d8411867b5cc03cec902c233763","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6a5253138c5432c68a1510c70fe78a644fe2e632111ba778e1978010d6edfec","impliedFormat":1},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"d9d3dd93b80c648c9d33766a515f43cceeea16a1240887d53c6ec4fd9a4c0687","impliedFormat":99},{"version":"8b112cd3d8d6fa2449e7cef7643660adbd5c05212f82cf6add0090e0e889b145","affectsGlobalScope":true,"impliedFormat":99},{"version":"31151a7a97f8e16f57099be0cedb8fae67cfbeaa56dad030358709b7672d32c8","affectsGlobalScope":true,"impliedFormat":99},{"version":"073ca26c96184db9941b5ec0ddea6981c9b816156d9095747809e524fdd90e35","impliedFormat":1},{"version":"e41d17a2ec23306d953cda34e573ed62954ca6ea9b8c8b74e013d07a6886ce47","impliedFormat":1},{"version":"241bd4add06f06f0699dcd58f3b334718d85e3045d9e9d4fa556f11f4d1569c1","impliedFormat":1},{"version":"2ae3787e1498b20aad1b9c2ee9ea517ec30e89b70d242d8e3e52d1e091039695","impliedFormat":1},{"version":"c7c72c4cffb1bc83617eefed71ed68cc89df73cab9e19507ccdecb3e72b4967e","affectsGlobalScope":true,"impliedFormat":1},{"version":"b8bff8a60af0173430b18d9c3e5c443eaa3c515617210c0c7b3d2e1743c19ecb","impliedFormat":1},{"version":"38b38db08e7121828294dec10957a7a9ff263e33e2a904b346516d4a4acca482","impliedFormat":1},{"version":"a76ebdf2579e68e4cfe618269c47e5a12a4e045c2805ed7f7ab37af8daa6b091","impliedFormat":1},{"version":"8a2aaea564939c22be05d665cc955996721bad6d43148f8fa21ae8f64afecd37","impliedFormat":1},{"version":"e59d36b7b6e8ba2dd36d032a5f5c279d2460968c8b4e691ca384f118fb09b52a","impliedFormat":1},{"version":"e96885c0684c9042ec72a9a43ef977f6b4b4a2728f4b9e737edcbaa0c74e5bf6","impliedFormat":1},{"version":"95950a187596e206d32d5d9c7b932901088c65ed8f9040e614aa8e321e0225ef","impliedFormat":1},{"version":"89e061244da3fc21b7330f4bd32f47c1813dd4d7f1dc3d0883d88943f035b993","impliedFormat":1},{"version":"e46558c2e04d06207b080138678020448e7fc201f3d69c2601b0d1456105f29a","impliedFormat":1},{"version":"71549375db52b1163411dba383b5f4618bdf35dc57fa327a1c7d135cf9bf67d1","impliedFormat":1},{"version":"7e6b2d61d6215a4e82ea75bc31a80ebb8ad0c2b37a60c10c70dd671e8d9d6d5d","impliedFormat":1},{"version":"78bea05df2896083cca28ed75784dde46d4b194984e8fc559123b56873580a23","impliedFormat":1},{"version":"5dd04ced37b7ea09f29d277db11f160df7fd73ba8b9dba86cb25552e0653a637","impliedFormat":1},{"version":"f74b81712e06605677ae1f061600201c425430151f95b5ef4d04387ad7617e6a","impliedFormat":1},{"version":"9a72847fcf4ac937e352d40810f7b7aec7422d9178451148296cf1aa19467620","impliedFormat":1},{"version":"3ae18f60e0b96fa1e025059b7d25b3247ba4dcb5f4372f6d6e67ce2adac74eac","impliedFormat":1},{"version":"2b9260f44a2e071450ae82c110f5dc8f330c9e5c3e85567ed97248330f2bf639","impliedFormat":1},{"version":"4f196e13684186bda6f5115fc4677a87cf84a0c9c4fc17b8f51e0984f3697b6d","impliedFormat":1},{"version":"61419f2c5822b28c1ea483258437c1faab87d00c6f84481aa22afb3380d8e9a4","impliedFormat":1},{"version":"64479aee03812264e421c0bf5104a953ca7b02740ba80090aead1330d0effe91","impliedFormat":1},{"version":"0521108c9f8ddb17654a0a54dae6ba9667c99eddccfd6af5748113e022d1c37a","impliedFormat":1},{"version":"c5570e504be103e255d80c60b56c367bf45d502ca52ee35c55dec882f6563b5c","impliedFormat":1},{"version":"ee764e6e9a7f2b987cc1a2c0a9afd7a8f4d5ebc4fdb66ad557a7f14a8c2bd320","impliedFormat":1},{"version":"0520b5093712c10c6ef23b5fea2f833bf5481771977112500045e5ea7e8e2b69","impliedFormat":1},{"version":"5c3cf26654cf762ac4d7fd7b83f09acfe08eef88d2d6983b9a5a423cb4004ca3","impliedFormat":1},{"version":"e60fa19cf7911c1623b891155d7eb6b7e844e9afdf5738e3b46f3b687730a2bd","impliedFormat":1},{"version":"b1fd72ff2bb0ba91bb588f3e5329f8fc884eb859794f1c4657a2bfa122ae54d0","impliedFormat":1},{"version":"6cf42a4f3cfec648545925d43afaa8bb364ac10a839ffed88249da109361b275","impliedFormat":1},{"version":"d7058e75920120b142a9d57be25562a3cd9a936269fd52908505f530105f2ec4","impliedFormat":1},{"version":"6df52b70d7f7702202f672541a5f4a424d478ee5be51a9d37b8ccbe1dbf3c0f2","impliedFormat":1},{"version":"0ca7f997e9a4d8985e842b7c882e521b6f63233c4086e9fe79dd7a9dc4742b5e","impliedFormat":1},{"version":"91046b5c6b55d3b194c81fd4df52f687736fad3095e9d103ead92bb64dc160ee","impliedFormat":1},{"version":"db5704fdad56c74dfc5941283c1182ed471bd17598209d3ac4a49faa72e43cfc","impliedFormat":1},{"version":"758e8e89559b02b81bc0f8fd395b17ad5aff75490c862cbe369bb1a3d1577c40","impliedFormat":1},{"version":"2ee64342c077b1868f1834c063f575063051edd6e2964257d34aad032d6b657c","impliedFormat":1},{"version":"6f6b4b3d670b6a5f0e24ea001c1b3d36453c539195e875687950a178f1730fa7","impliedFormat":1},{"version":"a472a1d3f25ce13a1d44911cd3983956ac040ce2018e155435ea34afb25f864c","impliedFormat":1},{"version":"b48b83a86dd9cfe36f8776b3ff52fcd45b0e043c0538dc4a4b149ba45fe367b9","impliedFormat":1},{"version":"792de5c062444bd2ee0413fb766e57e03cce7cdaebbfc52fc0c7c8e95069c96b","impliedFormat":1},{"version":"a79e3e81094c7a04a885bad9b049c519aace53300fb8a0fe4f26727cb5a746ce","impliedFormat":1},{"version":"93181bac0d90db185bb730c95214f6118ae997fe836a98a49664147fbcaf1988","impliedFormat":1},{"version":"8a4e89564d8ea66ad87ee3762e07540f9f0656a62043c910d819b4746fc429c5","impliedFormat":1},{"version":"b9011d99942889a0f95e120d06b698c628b0b6fdc3e6b7ecb459b97ed7d5bcc6","impliedFormat":1},{"version":"4d639cbbcc2f8f9ce6d55d5d503830d6c2556251df332dc5255d75af53c8a0e7","impliedFormat":1},{"version":"cdb48277f600ab5f429ecf1c5ea046683bc6b9f73f3deab9a100adac4b34969c","impliedFormat":1},{"version":"75be84956a29040a1afbe864c0a7a369dfdb739380072484eff153905ef867ee","impliedFormat":1},{"version":"b06b4adc2ae03331a92abd1b19af8eb91ec2bf8541747ee355887a167d53145e","impliedFormat":1},{"version":"c54166a85bd60f86d1ebb90ce0117c0ecb850b8a33b366691629fdf26f1bbbd8","impliedFormat":1},{"version":"0d417c15c5c635384d5f1819cc253a540fe786cc3fda32f6a2ae266671506a21","impliedFormat":1},{"version":"80f23f1d60fbed356f726b3b26f9d348dddbb34027926d10d59fad961e70a730","impliedFormat":1},{"version":"cb59317243a11379a101eb2f27b9df1022674c3df1df0727360a0a3f963f523b","impliedFormat":1},{"version":"cc20bb2227dd5de0aab0c8d697d1572f8000550e62c7bf5c92f212f657dd88c5","impliedFormat":1},{"version":"06b8a7d46195b6b3980e523ef59746702fd210b71681a83a5cf73799623621f9","impliedFormat":1},{"version":"860e4405959f646c101b8005a191298b2381af8f33716dc5f42097e4620608f8","impliedFormat":1},{"version":"f7e32adf714b8f25d3c1783473abec3f2e82d5724538d8dcf6f51baaaff1ca7a","impliedFormat":1},{"version":"d0da80c845999a16c24d0783033fb5366ada98df17867c98ad433ede05cd87fd","impliedFormat":1},{"version":"bfbf80f9cd4558af2d7b2006065340aaaced15947d590045253ded50aabb9bc5","impliedFormat":1},{"version":"fd9a991b51870325e46ebb0e6e18722d313f60cd8e596e645ec5ac15b96dbf4e","impliedFormat":1},{"version":"c3bd2b94e4298f81743d92945b80e9b56c1cdfb2bef43c149b7106a2491b1fc9","impliedFormat":1},{"version":"a246cce57f558f9ebaffd55c1e5673da44ea603b4da3b2b47eb88915d30a9181","impliedFormat":1},{"version":"d993eacc103c5a065227153c9aae8acea3a4322fe1a169ee7c70b77015bf0bb2","impliedFormat":1},{"version":"fc2b03d0c042aa1627406e753a26a1eaad01b3c496510a78016822ef8d456bb6","impliedFormat":1},{"version":"063c7ebbe756f0155a8b453f410ca6b76ffa1bbc1048735bcaf9c7c81a1ce35f","impliedFormat":1},{"version":"314e402cd481370d08f63051ae8b8c8e6370db5ee3b8820eeeaaf8d722a6dac6","impliedFormat":1},{"version":"9669075ac38ce36b638b290ba468233980d9f38bdc62f0519213b2fd3e2552ec","impliedFormat":1},{"version":"4d123de012c24e2f373925100be73d50517ac490f9ed3578ac82d0168bfbd303","impliedFormat":1},{"version":"656c9af789629aa36b39092bee3757034009620439d9a39912f587538033ce28","impliedFormat":1},{"version":"3ac3f4bdb8c0905d4c3035d6f7fb20118c21e8a17bee46d3735195b0c2a9f39f","impliedFormat":1},{"version":"1f453e6798ed29c86f703e9b41662640d4f2e61337007f27ac1c616f20093f69","impliedFormat":1},{"version":"af43b7871ff21c62bf1a54ec5c488e31a8d3408d5b51ff2e9f8581b6c55f2fc7","impliedFormat":1},{"version":"70550511d25cbb0b6a64dcac7fffc3c1397fd4cbeb6b23ccc7f9b794ab8a6954","impliedFormat":1},{"version":"af0fbf08386603a62f2a78c42d998c90353b1f1d22e05a384545f7accf881e0a","impliedFormat":1},{"version":"cefc20054d20b85b534206dbcedd509bb74f87f3d8bc45c58c7be3a76caa45e1","impliedFormat":1},{"version":"ad6eee4877d0f7e5244d34bc5026fd6e9cf8e66c5c79416b73f9f6ebf132f924","impliedFormat":1},{"version":"4888fd2bcfee9a0ce89d0df860d233e0cee8ee9c479b6bd5a5d5f9aae98342fe","impliedFormat":1},{"version":"f4749c102ced952aa6f40f0b579865429c4869f6d83df91000e98005476bee87","impliedFormat":1},{"version":"56654d2c5923598384e71cb808fac2818ca3f07dd23bb018988a39d5e64f268b","impliedFormat":1},{"version":"8b6719d3b9e65863da5390cb26994602c10a315aa16e7d70778a63fee6c4c079","impliedFormat":1},{"version":"05f56cd4b929977d18df8f3d08a4c929a2592ef5af083e79974b20a063f30940","impliedFormat":1},{"version":"547d3c406a21b30e2b78629ecc0b2ddaf652d9e0bdb2d59ceebce5612906df33","impliedFormat":1},{"version":"b3a4f9385279443c3a5568ec914a9492b59a723386161fd5ef0619d9f8982f97","impliedFormat":1},{"version":"3fe66aba4fbe0c3ba196a4f9ed2a776fe99dc4d1567a558fb11693e9fcc4e6ed","impliedFormat":1},{"version":"140eef237c7db06fc5adcb5df434ee21e81ee3a6fd57e1a75b8b3750aa2df2d8","impliedFormat":1},{"version":"0944ec553e4744efae790c68807a461720cff9f3977d4911ac0d918a17c9dd99","impliedFormat":1},{"version":"cb46b38d5e791acaa243bf342b8b5f8491639847463ac965b93896d4fb0af0d9","impliedFormat":1},{"version":"7c7d9e116fe51100ff766703e6b5e4424f51ad8977fe474ddd8d0959aa6de257","impliedFormat":1},{"version":"af70a2567e586be0083df3938b6a6792e6821363d8ef559ad8d721a33a5bcdaf","impliedFormat":1},{"version":"006cff3a8bcb92d77953f49a94cd7d5272fef4ab488b9052ef82b6a1260d870b","impliedFormat":1},{"version":"7d44bfdc8ee5e9af70738ff652c622ae3ad81815e63ab49bdc593d34cb3a68e5","impliedFormat":1},{"version":"339814517abd4dbc7b5f013dfd3b5e37ef0ea914a8bbe65413ecffd668792bc6","impliedFormat":1},{"version":"34d5bc0a6958967ec237c99f980155b5145b76e6eb927c9ffc57d8680326b5d8","impliedFormat":1},{"version":"9eae79b70c9d8288032cbe1b21d0941f6bd4f315e14786b2c1d10bccc634e897","impliedFormat":1},{"version":"18ce015ed308ea469b13b17f99ce53bbb97975855b2a09b86c052eefa4aa013a","impliedFormat":1},{"version":"5a931bc4106194e474be141e0bc1046629510dc95b9a0e4b02a3783847222965","impliedFormat":1},{"version":"5e5f371bf23d5ced2212a5ff56675aefbd0c9b3f4d4fdda1b6123ac6e28f058c","impliedFormat":1},{"version":"907c17ad5a05eecb29b42b36cc8fec6437be27cc4986bb3a218e4f74f606911c","impliedFormat":1},{"version":"ce60a562cd2a92f37a88f2ddd99a3abfbc5848d7baf38c48fb8d3243701fcb75","impliedFormat":1},{"version":"a726ad2d0a98bfffbe8bc1cd2d90b6d831638c0adc750ce73103a471eb9a891c","impliedFormat":1},{"version":"f44c0c8ce58d3dacac016607a1a90e5342d830ea84c48d2e571408087ae55894","impliedFormat":1},{"version":"75a315a098e630e734d9bc932d9841b64b30f7a349a20cf4717bf93044eff113","impliedFormat":1},{"version":"9131d95e32b3d4611d4046a613e022637348f6cebfe68230d4e81b691e4761a1","impliedFormat":1},{"version":"b03aa292cfdcd4edc3af00a7dbd71136dd067ec70a7536b655b82f4dd444e857","impliedFormat":1},{"version":"b6e2b0448ced813b8c207810d96551a26e7d7bb73255eea4b9701698f78846d6","impliedFormat":1},{"version":"8ae10cd85c1bd94d2f2d17c4cbd25c068a4b2471c70c2d96434239f97040747a","impliedFormat":1},{"version":"9ed5b799c50467b0c9f81ddf544b6bcda3e34d92076d6cab183c84511e45c39f","impliedFormat":1},{"version":"b4fa87cc1833839e51c49f20de71230e259c15b2c9c3e89e4814acc1d1ef10de","impliedFormat":1},{"version":"e90ac9e4ac0326faa1bc39f37af38ace0f9d4a655cd6d147713c653139cf4928","impliedFormat":1},{"version":"ea27110249d12e072956473a86fd1965df8e1be985f3b686b4e277afefdde584","impliedFormat":1},{"version":"8776a368617ce51129b74db7d55c3373dadcce5d0701e61d106e99998922a239","impliedFormat":1},{"version":"5666075052877fe2fdddd5b16de03168076cf0f03fbca5c1d4a3b8f43cba570c","impliedFormat":1},{"version":"9108ab5af05418f599ab48186193b1b07034c79a4a212a7f73535903ba4ca249","impliedFormat":1},{"version":"bb4e2cdcadf9c9e6ee2820af23cee6582d47c9c9c13b0dca1baaffe01fbbcb5f","impliedFormat":1},{"version":"6e30d0b5a1441d831d19fe02300ab3d83726abd5141cbcc0e2993fa0efd33db4","impliedFormat":1},{"version":"423f28126b2fc8d8d6fa558035309000a1297ed24473c595b7dec52e5c7ebae5","impliedFormat":1},{"version":"fb30734f82083d4790775dae393cd004924ebcbfde49849d9430bf0f0229dd16","impliedFormat":1},{"version":"2c92b04a7a4a1cd9501e1be338bf435738964130fb2ad5bd6c339ee41224ac4c","impliedFormat":1},{"version":"c5c5f0157b41833180419dacfbd2bcce78fb1a51c136bd4bcba5249864d8b9b5","impliedFormat":1},{"version":"02ae43d5bae42efcd5a00d3923e764895ce056bca005a9f4e623aa6b4797c8af","impliedFormat":1},{"version":"db6e01f17012a9d7b610ae764f94a1af850f5d98c9c826ad61747dca0fb800bd","impliedFormat":1},{"version":"8a44b424edee7bb17dc35a558cc15f92555f14a0441205613e0e50452ab3a602","impliedFormat":1},{"version":"24a00d0f98b799e6f628373249ece352b328089c3383b5606214357e9107e7d5","impliedFormat":1},{"version":"33637e3bc64edd2075d4071c55d60b32bdb0d243652977c66c964021b6fc8066","impliedFormat":1},{"version":"0f0ad9f14dedfdca37260931fac1edf0f6b951c629e84027255512f06a6ebc4c","impliedFormat":1},{"version":"16ad86c48bf950f5a480dc812b64225ca4a071827d3d18ffc5ec1ae176399e36","impliedFormat":1},{"version":"8cbf55a11ff59fd2b8e39a4aa08e25c5ddce46e3af0ed71fb51610607a13c505","impliedFormat":1},{"version":"d5bc4544938741f5daf8f3a339bfbf0d880da9e89e79f44a6383aaf056fe0159","impliedFormat":1},{"version":"97f9169882d393e6f303f570168ca86b5fe9aab556e9a43672dae7e6bb8e6495","impliedFormat":1},{"version":"7c9adb3fcd7851497818120b7e151465406e711d6a596a71b807f3a17853cb58","impliedFormat":1},{"version":"6752d402f9282dd6f6317c8c048aaaac27295739a166eed27e00391b358fed9a","impliedFormat":1},{"version":"9fd7466b77020847dbc9d2165829796bf7ea00895b2520ff3752ffdcff53564b","impliedFormat":1},{"version":"fbfc12d54a4488c2eb166ed63bab0fb34413e97069af273210cf39da5280c8d6","impliedFormat":1},{"version":"85a84240002b7cf577cec637167f0383409d086e3c4443852ca248fc6e16711e","impliedFormat":1},{"version":"84794e3abd045880e0fadcf062b648faf982aa80cfc56d28d80120e298178626","impliedFormat":1},{"version":"053d8b827286a16a669a36ffc8ccc8acdf8cc154c096610aa12348b8c493c7b8","impliedFormat":1},{"version":"3cce4ce031710970fe12d4f7834375f5fd455aa129af4c11eb787935923ff551","impliedFormat":1},{"version":"8f62cbd3afbd6a07bb8c934294b6bfbe437021b89e53a4da7de2648ecfc7af25","impliedFormat":1},{"version":"62c3621d34fb2567c17a2c4b89914ebefbfbd1b1b875b070391a7d4f722e55dc","impliedFormat":1},{"version":"c05ac811542e0b59cb9c2e8f60e983461f0b0e39cea93e320fad447ff8e474f3","impliedFormat":1},{"version":"8e7a5b8f867b99cc8763c0b024068fb58e09f7da2c4810c12833e1ca6eb11c4f","impliedFormat":1},{"version":"132351cbd8437a463757d3510258d0fa98fd3ebef336f56d6f359cf3e177a3ce","impliedFormat":1},{"version":"df877050b04c29b9f8409aa10278d586825f511f0841d1ec41b6554f8362092b","impliedFormat":1},{"version":"33d1888c3c27d3180b7fd20bac84e97ecad94b49830d5dd306f9e770213027d1","impliedFormat":1},{"version":"ee942c58036a0de88505ffd7c129f86125b783888288c2389330168677d6347f","impliedFormat":1},{"version":"a3f317d500c30ea56d41501632cdcc376dae6d24770563a5e59c039e1c2a08ec","impliedFormat":1},{"version":"eb21ddc3a8136a12e69176531197def71dc28ffaf357b74d4bf83407bd845991","impliedFormat":1},{"version":"0c1651a159995dfa784c57b4ea9944f16bdf8d924ed2d8b3db5c25d25749a343","impliedFormat":1},{"version":"aaa13958e03409d72e179b5d7f6ec5c6cc666b7be14773ae7b6b5ee4921e52db","impliedFormat":1},{"version":"0a86e049843ad02977a94bb9cdfec287a6c5a0a4b6b5391a6648b1a122072c5a","impliedFormat":1},{"version":"40f06693e2e3e58526b713c937895c02e113552dc8ba81ecd49cdd9596567ddb","impliedFormat":1},{"version":"4ed5e1992aedb174fb8f5aa8796aa6d4dcb8bd819b4af1b162a222b680a37fa0","impliedFormat":1},{"version":"d7f4bd46a8b97232ea6f8c28012b8d2b995e55e729d11405f159d3e00c51420a","impliedFormat":1},{"version":"d604d413aff031f4bfbdae1560e54ebf503d374464d76d50a2c6ded4df525712","impliedFormat":1},{"version":"e4f4f9cf1e3ac9fd91ada072e4d428ecbf0aa6dc57138fb797b8a0ca3a1d521c","impliedFormat":1},{"version":"12bfd290936824373edda13f48a4094adee93239b9a73432db603127881a300d","impliedFormat":1},{"version":"340ceb3ea308f8e98264988a663640e567c553b8d6dc7d5e43a8f3b64f780374","impliedFormat":1},{"version":"c5a769564e530fba3ec696d0a5cff1709b9095a0bdf5b0826d940d2fc9786413","impliedFormat":1},{"version":"7124ef724c3fc833a17896f2d994c368230a8d4b235baed39aa8037db31de54f","impliedFormat":1},{"version":"5de1c0759a76e7710f76899dcae601386424eab11fb2efaf190f2b0f09c3d3d3","impliedFormat":1},{"version":"9c5ee8f7e581f045b6be979f062a61bf076d362bf89c7f966b993a23424e8b0d","impliedFormat":1},{"version":"1a11df987948a86aa1ec4867907c59bdf431f13ed2270444bf47f788a5c7f92d","impliedFormat":1},{"version":"8018dd2e95e7ce6e613ddd81672a54532614dc745520a2f9e3860ff7fb1be0ca","impliedFormat":1},{"version":"b756781cd40d465da57d1fc6a442c34ae61fe8c802d752aace24f6a43fedacee","impliedFormat":1},{"version":"0fe76167c87289ea094e01616dcbab795c11b56bad23e1ef8aba9aa37e93432a","impliedFormat":1},{"version":"3a45029dba46b1f091e8dc4d784e7be970e209cd7d4ff02bd15270a98a9ba24b","impliedFormat":1},{"version":"032c1581f921f8874cf42966f27fd04afcabbb7878fa708a8251cac5415a2a06","impliedFormat":1},{"version":"69c68ed9652842ce4b8e495d63d2cd425862104c9fb7661f72e7aa8a9ef836f8","impliedFormat":1},{"version":"0e704ee6e9fd8b6a5a7167886f4d8915f4bc22ed79f19cb7b32bd28458f50643","impliedFormat":1},{"version":"06f62a14599a68bcde148d1efd60c2e52e8fa540cc7dcfa4477af132bb3de271","impliedFormat":1},{"version":"904a96f84b1bcee9a7f0f258d17f8692e6652a0390566515fe6741a5c6db8c1c","impliedFormat":1},{"version":"11f19ce32d21222419cecab448fa335017ebebf4f9e5457c4fa9df42fa2dcca7","impliedFormat":1},{"version":"2e8ee2cbb5e9159764e2189cf5547aebd0e6b0d9a64d479397bb051cd1991744","impliedFormat":1},{"version":"1b0471d75f5adb7f545c1a97c02a0f825851b95fe6e069ac6ecaa461b8bb321d","impliedFormat":1},{"version":"1d157c31a02b1e5cca9bc495b3d8d39f4b42b409da79f863fb953fbe3c7d4884","impliedFormat":1},{"version":"07baaceaec03d88a4b78cb0651b25f1ae0322ac1aa0b555ae3749a79a41cba86","impliedFormat":1},{"version":"619a132f634b4ebe5b4b4179ea5870f62f2cb09916a25957bff17b408de8b56d","impliedFormat":1},{"version":"f60fa446a397eb1aead9c4e568faf2df8068b4d0306ebc075fb4be16ed26b741","impliedFormat":1},{"version":"f3cb784be4d9e91f966a0b5052a098d9b53b0af0d341f690585b0cc05c6ca412","impliedFormat":1},{"version":"350f63439f8fe2e06c97368ddc7fb6d6c676d54f59520966f7dbbe6a4586014e","impliedFormat":1},{"version":"eba613b9b357ac8c50a925fa31dc7e65ff3b95a07efbaa684b624f143d8d34ba","impliedFormat":1},{"version":"45b74185005ed45bec3f07cac6e4d68eaf02ead9ff5a66721679fb28020e5e7c","impliedFormat":1},{"version":"0f6199602df09bdb12b95b5434f5d7474b1490d2cd8cc036364ab3ba6fd24263","impliedFormat":1},{"version":"c8ca7fd9ec7a3ec82185bfc8213e4a7f63ae748fd6fced931741d23ef4ea3c0f","impliedFormat":1},{"version":"5c6a8a3c2a8d059f0592d4eab59b062210a1c871117968b10797dee36d991ef7","impliedFormat":1},{"version":"ad77fd25ece8e09247040826a777dc181f974d28257c9cd5acb4921b51967bd8","impliedFormat":1},{"version":"e636bc88ba9f36fd2e0ea4e92d998faf9ef26c3e7d3ea30363ca74e48ccae9b6","impliedFormat":99},{"version":"53a7e8e6cd478d365dab32dbf5e3f45e1fdce303f9b3843c0347722b19714449","impliedFormat":99},{"version":"0c02c17cf4c2a113c1f2c84600c584988a85d4808271ad8c38e47d1cfbb0175d","impliedFormat":99},{"version":"aad5b7d6c39fb451c626fc26aed53d713cbf1598bfb81e7555a3802d262779ae","impliedFormat":99},{"version":"63a8dadf7e342e253bc606c5f0d3f19be90352bccb6798728d928ed618fc5521","impliedFormat":99},{"version":"f37fcb53b8f0a80340d25f4ca4e1f43ababf1711d1da680fba3b62669e8198d9","impliedFormat":99},{"version":"7b725602c44d308cc120244986665583e2a53d20b69b0e4c19034609314e4960","impliedFormat":99},{"version":"bc84a8c0f0d7246cd48c745919fd87f2dcbea0894e5d9f4004b4878c8b37d5da","impliedFormat":99},{"version":"adcf6fb0fc8d31e1fd7c0477c517a2691e2f1fc20361ef2a4c4e05555b598a18","impliedFormat":99},{"version":"84de6181c634996552fdce82ddb8560c543776970963a0b6cf79291c1c52ed08","impliedFormat":99},{"version":"196d3246719b9fd0f124f171322aa8981afe09a4a5ae2f3b506134f01ef6ce89","impliedFormat":99},{"version":"ec7f1fb361239bd2f79647c4c12fe324918667a6eefef56e53d25560e9ccce77","impliedFormat":99},{"version":"c6f21fc4fd151b94b8ff0de2b16aa943d5635bfd30f9f5fee7b9e137e3474997","impliedFormat":99},{"version":"bee856262cdb790c78313066300a69002ea045ab9ed523315ea8225bbcaea7dd","impliedFormat":99},{"version":"3ffa16a7b3c57bcf12260e8570999d19fbfceb36dc23d381013678a2d8601ab6","impliedFormat":99},{"version":"444cfc5dc1d45b030c65aeda3dfb5973e8c55cba1d29886bb38f6d668b17f061","impliedFormat":99},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"69d327a9079d984240c360a3d7a52481761f98a7f26d901baf5d1835847577f3","signature":"ec624cdad0da030be5047cf1b9ef3522234916651214da29eb2697f0a1c9ea45"},{"version":"3fc28b80fbddf575ed60f2206863d99b7594157c1bdcf72d182d2d17d7e007df","signature":"a1889af19644b3eeaf6c8357cd3b33d3676a13c1e94ee2bf8acdd51c7f4feb04"},{"version":"dcd48e99bff07bb096e197535eefc1f68cb5fbca75e18fc11df47377a7eb61f6","impliedFormat":99},{"version":"201d9aa68398e0ff42abc09c9e499d56c281f14b721eb26f37e49906f3392a79","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"6390f7c2dad36163930864d345a23f3dcd533708aec2ecd7e55a90512efd9b77","signature":"b6503f38c5580b5d8b50f3494be172dea5fc20e5f82b63631ee0aafd9a313e31"},{"version":"feb34e8a1a6bc763c77dd3edf642e86eadab93b86877e159ea61b0da681c19d8","signature":"770d0b6e05f563f9724e5bfa78bc03a6d15ee67394ee0b1060b882290c118e93"},{"version":"9b2e58975e4bddde756583930f5a698f7f8c0d2bd3ade6fdbf96a4c5c766185c","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"a7514413ceae0bcad028e4bbd483f55b38df02335515060aad300042077cb8a3","signature":"ff491e507ac67dc90bfde37d2458056457d9213e7fe72d8e320e096dd67ac375"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"c01c7382efbb98f10d009ef8fab0276d88ffbebd8f856522737229f592dca875","signature":"953ef70df3fe616aa8ec683435b50ca5c36d9051e365f17de4ad1c568b6a2132"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"147dacb6f027dda2159564928bf6e12c5ac4afe5369104554ae58986636c0ec4","signature":"5689a06754329701f15bb83e39978b46a6df9fe286e9b5ecd47ee09e621c7c15"},{"version":"5a4877fd6e716b052ee1f23e5bf0be4a05a2bed4a6a5c7027ec5e7b9972dc9d6","signature":"83cbc3fd7fd8d7ee8a6f14a2d1aaa5f44906899ab9f81aad4ca349492a1b5415"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"fc60c8a3156d11570b0cca959f25cffccf89b1e626acf62ed3e8931b0970b6a2","signature":"98d7f9e14e7342bcaa1d36e144bd2860880f9ac58be4c41aa1f37c552429dafb"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"e90f7ab0fbdef1d87014a818721f709636f5db7951a83af9b29a8c6d0b4958f2","signature":"8cd9b9678fff73130bef93cc41900f31ab552f917693088727024fa8094f6071"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"abc89a00c5f8b5804cd2549ddfed151ef01152eb7c7e922d1aa63c223979d8b6","signature":"e8987c136035aadca7b7503d85fc1f3c4cb9ccf19b63b46d68888479669b587d"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"74ed143758af21dae722162ffeb82b6a51a295cf62b60fe9bccc84466935605e","signature":"13c045d683157db38a009770ed4e71e772e46ac211e1cc2b867bcc88b5f87431"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"56efa12edf5ce5257efddcf26e3a5d346eb2379e3b7ff769a8ce4233e6f762e7","signature":"20177b4edd41e8fbfb68a3c9d118fe16971d7c18686b479ba814eecf09e9031d"},{"version":"90af81b3afd37a68d9c21ce0477261a699d8cd0d959672916840eb18567ad389","signature":"7162d6aedc820e62e907ea0bc97ef117c52fc0b2f61556c7f8fe2db7bc4cd9c9"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"1978842c9a49f471f8ce1f05a90c16b67ee7ba61cae5c539b47e722ac6d44937","signature":"cb473d6bbffe7a12c6826d062487c44c0ddc213302207a8bfdd6622f28719beb"},{"version":"9c04b8a82a4bd4bf43573769ea30d518c0d702ef764f4608ba9a30c6658f9cda","signature":"2333010fb03aac3dfb35bea460b66b88aa320167e745d35ad73c2bc4d8c8214a"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"3778cb69470948fca179b2d98561570e222f8f16832608538053eb3a1346bd46","signature":"5510a3e294fe850efdd30e54833e3e9704cceff58fccd995a608d1d17dc3e099"},{"version":"090e7acc6a99e67dc575264b010e168afd815756abb807650517e997c980772a","impliedFormat":99},"0f1759fa7bd6b6bd5e3a28013b426c9947a7fb1e478dcc125e2ae35a73ca7729",{"version":"963928cc319ee30d0f203244626d66db5310830dedd05ad27a99abaf1c875f89","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"d7c4fd426cb17d3d87b64c5a9dfded7c7084e1901ef87caadd232a1fea38d5a1","signature":"44258283f0fe85b63e2a1c83a209cb804ab4654085a3f0043b2262f03ccc2727"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"6201b44a285d6217d145689b24395c7d6f827308f2c93b3e345532066bad74d1","signature":"03d73b525ba1656b398ceb3088fe366372749826c5730b59874c7904a4c35675"},{"version":"e713b261d26868729b62ff43f1885446b57389614ad36a7a7ce165971d9d3dc5","signature":"b0c9fc2e51388a1f348242bd2c09cdc15bcd167e02c662039f4c72428b4e664f"},"2a18484eb14286ed9638bc26d36fdb15b98b7cbb774b6607a788ab7de21803d3",{"version":"9538a65c73ce160348315eee9c693817e579d383d737ad0e8e1402641d9d2ff5","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"26303a5e93ea8976404accdb795651afe1d9631e742d5f6bfa3940f97664d34b","signature":"98f65149f2c4839de9a761fe5e0e49bba2d57a9b719b13f5657c6f0c220307e7"},{"version":"06f6a68e3c5df432ac185e2656d9d0b3478e2049a01fa8c899b94638f1ade833","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"2bfee34c42048974b97d3f68776ec7295458df20155ecccb8089b97f8c8fa284","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"ffa92b627d4e8e7df7f1383155f2dea446c6a321655e37e50c7c3004809c744f","signature":"fefed10cd55899ad3fae9015cb335c6995d03702cbed855f01a534fd2cb5d41a"},"eea2ca5aa2912da3489cd8b87e39d558c8860e27e4edeba4c378197d049664ba",{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"e855b9729e0460a40a98ede2818910047f74c09dc57c3771b168552589086b76","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"15812150c4377d3d94398dc31c7f010095123c123c6836685c872d93e8937359","signature":"def95c5a5688d11e2999f36fc5b831bc0a598fdef39209b36b29b09ea00c784e"},{"version":"33ab1e3233f6951662b608d1596491a91e04220da5d90e767fea41b673fcdc00","signature":"7e7fab10bdd7a9034b92e1afd8357020ce92c4e65e93dbebdf78e06fe8a20ed0"},{"version":"05fff7dfe422a454e888b7efe0e323501a681f9dbb645cb67559463f2f2a9cf5","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"997213bf2d998486a020bb9d63635e28509419b7c3eef2de190668ae14507fa6","signature":"d41793eaa1172ac2f5b07c9844f6fb379b32f1516824744f2be9da4ccda2d5a6"},{"version":"a21afba45f09a90ca87f5ea4b3819343c9b8c011ddbb7483ce8c26ba29eb1267","signature":"390f67dabc754c888280d7fbd3debefaf0a6ce0cb08ecdb6b5b1555f9c3e5690"},"7161aed8d2516efd8a7fde991d7e0783ce44a9010aa0e3c2e3d89c8db92da12f",{"version":"da5bf00ed9bb1f0aeedfc209ff505083b8f50c8d161d714634c2863f6c6b76a7","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},"6fb09e200265191ceb72640f0bcf315b214604d67042be95917e834f3a12e80c",{"version":"d963b62db2980d00d812ce809968a6b446dfb74ed1893539679c15c7133896b9","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"9c2d98d868ebcbf6f604f56ff7413131208e6e81d63d9d2d9957487ec166a7f8","signature":"2e9b189acedc11cd580a3ede59a62305e417b21626e0e7f52287c12daeab874f"},{"version":"ec0d15f468c4e8086cbb3c10179284d9b4bd8bcc9e52645cb03484f1d45b8617","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"f6a199c6876f29650c5e78a00c246688ce4433213580dbde91cc734e160b22e6","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"f8b0ac441ea48c312c83d16bf1f50498f8fe718f447c46fb5dde422bd5980519","signature":"26fa18c82c796ce6c340cbda6ed129e6d1cf684703ecc4759ba1d6e3e53898fc"},"248362b1c6293452bb047915e299fb5abaa97a3119aa6cab1cbdccac5a67a6ea",{"version":"95adcb4b051c2fb13a9ff2894b304ae64fd847204ccad09d060539f90e2466fb","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"b266334c67fa69ff67fded0c634f852bb1aa3f99ddbccd7f2e70757ce11c1cef","signature":"aec710ec6aef682d41ad375ae1ddf9618cb325995710bfc1e5184d16e26ed347"},"dbb4002a50b838531eca974f1ecff3295d837a9bc9b3d7f16319ff0da1ef86f0",{"version":"39cf82dd3e8e6466a46c883ffc6ea08e8cd450c905ed9459acf3539beaadedf3","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"eb9b346c9f750ba2eb671b2429239f6f1f464b4172c66abf0c8b1041aaade193","signature":"644b375aa93808f2f401762de4e1969714e383052e69e0fbdfc82cd97fcda739"},{"version":"db7809c1e442d856386b91e80d0cc8c462646d0ffc4e8983855691bfa7f27f82","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"9a73f0c9ff95b0fb44d9182341a4676830ad1186890fbad6f15fe1febcdd3c8e","signature":"5c8da175455dac9be33675ab12a100ab67e6c9685248bacc7faecbacc2882e57"},{"version":"c26fcf6f46df9dff0bb595647ec889a13eae6e5aa2bb0c5f135b6aad99d1dc76","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"6e8d6d452608c3be840c66cfb2301a01d74072ec7bd2f68e45dc3d8c6db184da","signature":"b1c5304bde7d1cbb07ff6c0c51c4a96115b36cacee316d1f76d8c046fb459d4c"},{"version":"a48310e3238d185e708d2032b0d2a1190e27731096e10027cc0616e9f531a75b","signature":"a44999082fce68773d785d591ae3ad96b802f809de4750615c542c08f1a924d0"},{"version":"08d6e5491945517d8417f2e653ee398d0225125c4ed0b013eba1d7f77d0f4b12","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"d3cfde44f8089768ebb08098c96d01ca260b88bccf238d55eee93f1c620ff5a5","impliedFormat":1},{"version":"293eadad9dead44c6fd1db6de552663c33f215c55a1bfa2802a1bceed88ff0ec","impliedFormat":1},{"version":"833e92c058d033cde3f29a6c7603f517001d1ddd8020bc94d2067a3bc69b2a8e","impliedFormat":1},{"version":"08b2fae7b0f553ad9f79faec864b179fc58bc172e295a70943e8585dd85f600c","impliedFormat":1},{"version":"f12edf1672a94c578eca32216839604f1e1c16b40a1896198deabf99c882b340","impliedFormat":1},{"version":"e3498cf5e428e6c6b9e97bd88736f26d6cf147dedbfa5a8ad3ed8e05e059af8a","impliedFormat":1},{"version":"dba3f34531fd9b1b6e072928b6f885aa4d28dd6789cbd0e93563d43f4b62da53","impliedFormat":1},{"version":"f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","impliedFormat":1},{"version":"e4b03ddcf8563b1c0aee782a185286ed85a255ce8a30df8453aade2188bbc904","impliedFormat":1},{"version":"2329d90062487e1eaca87b5e06abcbbeeecf80a82f65f949fd332cfcf824b87b","impliedFormat":1},{"version":"25b3f581e12ede11e5739f57a86e8668fbc0124f6649506def306cad2c59d262","impliedFormat":1},{"version":"4fdb529707247a1a917a4626bfb6a293d52cd8ee57ccf03830ec91d39d606d6d","impliedFormat":1},{"version":"a9ebb67d6bbead6044b43714b50dcb77b8f7541ffe803046fdec1714c1eba206","impliedFormat":1},{"version":"5780b706cece027f0d4444fbb4e1af62dc51e19da7c3d3719f67b22b033859b9","impliedFormat":1},{"version":"4749a5d10b6e3b0bd6c8d90f9ba68a91a97aa0c2c9a340dd83306b2f349d6d34","impliedFormat":99},{"version":"dd1729e568bbd92727b6703f2340096d07476d29085b3ee2f49e78e6f2029d20","impliedFormat":99},{"version":"efdb6c1c0e195ea378a0b7cd0e808f65176bea14396dc8bdccda80551e66d73f","impliedFormat":99},{"version":"de328e8fd327cf362e090965057fbbf14f2085c78b70eb31b61ceeca8d6da01c","impliedFormat":99},{"version":"b9e0783285db8fca77f8c20df30b66b201f914bacbfe472b86dcacdba555f360","impliedFormat":99},{"version":"005f10cafe0939ae8d6a98e19c4ddf8b59faf3f9ae38dfa5907b82b9a6cb4de9","impliedFormat":1},{"version":"089c056ad8ecb34ee72cb831491ab72c214d8fb7ecf94b96a1b4736ab54397a1","impliedFormat":1},{"version":"e643ef3093cba63af26396ae8dc58dc542c241027749dcdf715f3d3209f79a03","impliedFormat":1},{"version":"f40e6338b8137033a5b4efbe01de45a4399f2c304648eace01d852cd05eb861e","impliedFormat":1},{"version":"89d879fae02696e226dbcb7444d6153158fa264bb646071988f19a2e422b314f","impliedFormat":1},{"version":"57de3f0b1730cf8439c8aa4686f78f38b170a9b55e7a8393ae6f8a524bb3ba5a","impliedFormat":1},{"version":"e933bd300ea4f6c724d222bf2d93a0ae2b1e748baa1db09cb71d67d563794b2d","impliedFormat":1},{"version":"c43d0df83d8bb68ab9e2795cf1ec896ff1b5fab2023c977f3777819bc6b5c880","impliedFormat":1},{"version":"bf810d50332562d1b223a7ce607e5f8dc42714d8a3fa7bf39afe33830e107bf7","impliedFormat":1},{"version":"f025aff69699033567ebb4925578dedb18f63b4aa185f85005451cfd5fc53343","impliedFormat":1},{"version":"3d36c36df6ce6c4c3651a5f804ab07fe1c9bb8ce7d40ef4134038c364b429cb3","impliedFormat":1},{"version":"e9243dd3c92d2c56a2edf96cbce8faf357caf9397b95acaa65e960ad36cb7235","impliedFormat":1},{"version":"a24a9c59b7baecbb85c0ace2c07c9c5b7c2330bb5a2ae5d766f6bbf68f75e727","impliedFormat":1},{"version":"3c264d6a0f6be4f8684cb9e025f32c9b131cca7199c658eea28f0dae1f439124","impliedFormat":1},{"version":"d3cd789b0eebd5cebde1404383fd32c610bec782c74a415aa05ab3593abc35c8","impliedFormat":1},{"version":"8c1babb42f52952a6593b678f4cfb4afea5dc91e5cfaf3ca922cdd2d23b1277a","impliedFormat":1},{"version":"04ebb965333800caba800cabd1e18b02e0e69ab6a6f8948f2d53211df00a193c","impliedFormat":1},{"version":"f8e2be107b3e756e0a1c4f5e195e69dce69d38d0ff5c0b0509933e970c6d915b","impliedFormat":1},{"version":"309e580094520f9675a85c406ab5d1de4735f74a38f36690d569dbc5341f36a8","impliedFormat":1},{"version":"c2fa79fd37e4b0e4040de9d8db1b79accb1f8f63b3458cd0e5dac9d4f9e6f3f1","impliedFormat":1},{"version":"4f0d1a7e2a5a8b85d69f60a7be2a6223827f5fec473ba2142279841a54e8a845","impliedFormat":1},{"version":"ae2fb62b3647083fe8299e95dbfab2063c8301e9a626f42be0f360a57e434797","impliedFormat":1},{"version":"f53d803d9c9c8acdbb82ef5c6b8f224d42be50e9ab8bc09c8a9a942717214f9a","impliedFormat":1},{"version":"d2d70166533a2233aa35977eecea4b08c2f0f2e6e7b56c12a1c613c5ebf2c384","impliedFormat":1},{"version":"1097820fae2d12eb60006de0b5d057105e60d165cf8a6e6125f9876e6335cde7","impliedFormat":1},{"version":"8f62905f50830a638fd1a5ff68d9c8f2c1347ff046908eeb9119d257e8e8ae4a","impliedFormat":1},{"version":"8b4d34279952175f972f1aa62e136248311889148eb40a3e4782b244cece09f3","impliedFormat":1},{"version":"d3c3cc0840704fe524dbe8a812290bfd303e43d3bd43dcaac83ee682d2e15be0","impliedFormat":1},{"version":"71725ba9235f9d2aa02839162b1df2df59fd9dd91c110a54ea02112243d7a4d9","impliedFormat":1},{"version":"80af0c272dcb64518f7768428cdf91d21966a7f24ed0dfc69fad964d4c2ed8c1","impliedFormat":1},{"version":"1dc9702aa16e3ada78c84aa96868a7e5502001c402918b6d85ed25acbe80fd51","impliedFormat":1},{"version":"35f891c1bc36c97469df06316c65a718956515c8b3bdbeb146b468c02493ef13","impliedFormat":1},{"version":"2e9b05d7db853315f44d824e13840e6fdf17d615d13170b5f5cf830442018dcd","impliedFormat":1},{"version":"11989ad8152cf54a9cf974b02c1f03f2416857df6c5946ba735eb20ff9b3e9c2","impliedFormat":99},{"version":"91d3d5a235f545fd37bebfea42fc512970a2142ef3d8d9a02246760696d0b688","signature":"76cd2308eec82ec68321658d6a8d9fbc8f63b56d6882094751015b9caad0ab39"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"c368f2790f6713acf830b247dbe062d6a944fb2c62e5a05f0bacc6a6e72b42d2","signature":"cef241a9446a68cfcbe3f505fac3e4957644e8a7a057c2d1790fc5ca42d09a34"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"40aff816b4e1b45638916804abfb4537f433bd3e37daa045df524b21714b3f52","signature":"8b0809d17156abdb00dd2406f6f369bb86ad144853d2555ec94255a9471a9be5"},"51eabd9fa0243146e2361d069f28f1c4048d0061d4b83ca5ee22e2a41296e05f",{"version":"b62307e1e6055fe533030f943fba3ec889a26df59d3ebabc1f1b5d2fc27fd8ad","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"c852b12f6e1543302ec6088bed22253ea53af9908f019d9866a9c1511435aee3","signature":"8838497aaa32eed261e1beabd02d2c337afbd21fa4a05e7bc0c555def576dbf6"},{"version":"35e2cc687c9f543c8dfaf388e137e3dab40ae3e17a533c7468e473aba0f00ecb","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"9c351a879cb5034413d704d456ac46990fe9c33ec4f31fbff4457258bb04d0b4","signature":"587b01ba9a6e74d40d9ba6f6be8033e9df34c694c62015967580621ff9435e22"},{"version":"9147396c2448b821f6150c37957e6c8229b7974e56263491ee9af231f9be9956","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"95f81bf531342f9316dc17195a4317ccd8519a005a34177da32ba38f33ce9a4d","signature":"2cd8e3af01048aab258439b63efd7514afc8f476197f31618494abafcbe5c44e"},{"version":"bff6eda0d22914281e87801ee098664f32063176fcbe664713d6e8c7cc48cd8c","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"7c190550df69783c671fa0f9a30c50543d919bd82380d1052c9c46a54d26ae20","signature":"8db75b77dd8c50ccc5d607ef8e01c54c90a5244d09657563fd8767844b95c656"},{"version":"a656c3ff19c527654a23734b4c1cbef7d4e93119ac29fcdd69ce8e6e71a01700","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"0eee6b522110f17e3f67d1f29e5e94e88167fafec5fc857df3f39fe177876564","signature":"17685c741b7bea45071dd46ea9dd31bb6a9968acea17381ff7e3c4bb4bdad1e8"},{"version":"a12b0199847f3b10acbe6650b05f65be1dfcdddda596b5d6ecb623ae154b1a48","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"4a14ac649b2589c2f1038e5d3a9d3dc4f855d1537b603af7672811d25ba97e83","signature":"8ab1a5e85941881b865a79163b7a704f4f3825bf3cadedc30d69cf10ce299415"},{"version":"d495f32bab8da6f0885e0d60af9fc773225e96a0f3e9bfacb10de45671d6acc7","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"46e85f45904254029ed52feb7bc0afdb627693aff2e54d609c83a757c65025ca","signature":"e7bec6a95fc9e95f870aed2997217de1c67c3733b1a1f3cb99de7e7cf82b5d08"},{"version":"9ada1fe6db948aba09cdda6756a21836b5eb85e1b3ff3094dec276dd28f74d2f","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"2e43332ad2beb725c7b30d3559ffc813cb81c8b095358dc767dcab1c239c9306","signature":"efe0a1bb8a0e84604cd9a90d7ae76078f303d9d637299bfae098b70103f58a64"},{"version":"7ea7b1d69797d6b504f3076a6ee4c77018b6c096c91e6f0f2d53eafaabdb1a2e","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"8466d36ef9e8f0398ecff46995ea0eb848e09c9b40be197b22a17c9025d51a86","signature":"78f4862bf4cb5ebabb029d2b71f72d4e7ba23d2ca59a9fd736af0a72e8ee17d7"},{"version":"d754fdc3356af0ed80b2057b978e601d28570ec2854d4e7345d0717de8f1849c","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"075ecc1e827edcbb2812dae374e249fc0de73718c934b18dab29a82a1517b81c","signature":"47c2edcbdbcf34a8ba5819d67de40997e5b2b4e3aca2100fb9eb48b0754942f7"},"1507104ef7bbda1e124d1073e3093c1ece194dd3b42b87973f4fc49e6e8dd078",{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"4f3beecfd7b1f9272fd59a720a1444777fb7849d5a6192a6d304a60de88855e9","signature":"0f85a7c1fe33a91a589145067aca211a6c638c8f5423045e55aa4f1d39f223ed"},"5db7e0cbcd4feeb9a6ce1f7cd34a7736dc331c5aeb18320f7185001c0596c531",{"version":"f6658ce86b0beff47ae63f2f6d741033aa674d05039316d7e7cd1bb8b9787430","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"704ca0d41768d71cb6f49708f056c05b4f9f24f4ed77793376e8b132cf76baf8","signature":"6b51aedae50bc4b50236b71e06df2778b1cb855fb187d102439f8dfbeff05c63"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"444c559412b2162a7b5c1eb46bd85b5a5b4cc5019f009213be16892d7f73edd1","signature":"85b1be53814ae259d657f466c722da018d53089d0818b76946a1cf7aca6b6b2e"},{"version":"682d1de1e0cf7c40b8934248b47503dd5a0281622f2be738ec46c82903e276cb","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"927aa4ba40ea75c698540a04206b89eba44cdeb53515f557c186c6e070a7c485","signature":"6a1641235112fb6fb6fab11cc2c82e34264067f8fc24601685872b309bd8926f"},{"version":"d5940af73fd4876e3d626ed51d6c94ed914fcf64874fde8092452a0e9d08adc3","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},"5aa3e1e52d5a2590f145dfb57425955b18c292efd8201a1963a5b015a7adaf6e",{"version":"a1a20d2d5a109b02082125f2815eb5c32269e36ca4cdb6a870b9874ee7a2cb8a","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"eaacecd4e2ae3cc8522db4a235b070627223c9b3a6f5f00e281930910c018dd2","signature":"fac78a267193b2bebe9385c5d7341228555f9758081e86790189c58c759a94ea"},{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"a79e62f1e20467e11a904399b8b18b18c0c6eea6b50c1168bf215356d5bebfaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"d802f0e6b5188646d307f070d83512e8eb94651858de8a82d1e47f60fb6da4e2","affectsGlobalScope":true,"impliedFormat":1},{"version":"17bb4105d0ea2ab2bfcb4f77ff8585691d5569c90ae15f4fa8d5ff9fb42b910b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"456fa0c0ab68731564917642b977c71c3b7682240685b118652fb9253c9a6429","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"2cbe0621042e2a68c7cbce5dfed3906a1862a16a7d496010636cdbdb91341c0f","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"a38efe83ff77c34e0f418a806a01ca3910c02ee7d64212a59d59bca6c2c38fa1","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"7b988bc259155186e6b09dd8b32856d9e45c8d261e63c19abaf590bb6550f922","affectsGlobalScope":true,"impliedFormat":1},{"version":"fe7b52f993f9336b595190f3c1fcc259bb2cf6dcb4ac8fdb1e0454cc5df7301e","impliedFormat":1},{"version":"e9b97d69510658d2f4199b7d384326b7c4053b9e6645f5c19e1c2a54ede427fc","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"81711af669f63d43ccb4c08e15beda796656dd46673d0def001c7055db53852d","affectsGlobalScope":true,"impliedFormat":1},{"version":"19d5f8d3930e9f99aa2c36258bf95abbe5adf7e889e6181872d1cdba7c9a7dd5","impliedFormat":1},{"version":"9855e02d837744303391e5623a531734443a5f8e6e8755e018c41d63ad797db2","impliedFormat":1},{"version":"bdba81959361810be44bcfdd283f4d601e406ab5ad1d2bdff0ed480cf983c9d7","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"b326f4813b90d230ec3950f66bd5b5ce3971aac5fac67cfafc54aa07b39fd07f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c8420c7c2b778b334587a4c0311833b5212ff2f684ea37b2f0e2b117f1d7210d","impliedFormat":1},{"version":"b6b08215821c9833b0e8e30ea1ed178009f2f3ff5d7fae3865ee42f97cc87784","impliedFormat":1},{"version":"b795c3e47a26be91ac33d8115acdc37bfa41ecc701fb237c64a23da4d2b7e1d8","impliedFormat":1},{"version":"73cf6cc19f16c0191e4e9d497ab0c11c7b38f1ca3f01ad0f09a3a5a971aac4b8","impliedFormat":1},{"version":"528b62e4272e3ddfb50e8eed9e359dedea0a4d171c3eb8f337f4892aac37b24b","impliedFormat":1},{"version":"ed58b9974bb3114f39806c9c2c6258c4ffa6a255921976a7c53dfa94bf178f42","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"f72bc8fe16da67e4e3268599295797b202b95e54bd215a03f97e925dd1502a36","impliedFormat":1},{"version":"b1b6ee0d012aeebe11d776a155d8979730440082797695fc8e2a5c326285678f","impliedFormat":1},{"version":"45875bcae57270aeb3ebc73a5e3fb4c7b9d91d6b045f107c1d8513c28ece71c0","impliedFormat":1},{"version":"915e18c559321c0afaa8d34674d3eb77e1ded12c3e85bf2a9891ec48b07a1ca5","affectsGlobalScope":true,"impliedFormat":1},{"version":"e9727a118ce60808e62457c89762fe5a4e2be8e9fd0112d12432d1bafdba942f","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"70b57b5529051497e9f6482b76d91c0dcbb103d9ead8a0549f5bab8f65e5d031","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"3a90b9beac4c2bfdf6517faae0940a042b81652badf747df0a7c7593456f6ebe","impliedFormat":1},{"version":"8302157cd431b3943eed09ad439b4441826c673d9f870dcb0e1f48e891a4211e","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"125d792ec6c0c0f657d758055c494301cc5fdb327d9d9d5960b3f129aff76093","impliedFormat":1},{"version":"dba28a419aec76ed864ef43e5f577a5c99a010c32e5949fe4e17a4d57c58dd11","affectsGlobalScope":true,"impliedFormat":1},{"version":"2754d8221d77c7b382096651925eb476f1066b3348da4b73fe71ced7801edada","impliedFormat":1},{"version":"a5890565ed564c7b29eb1b1038d4e10c03a3f5231b0a8d48fea4b41ab19f4f46","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"98ffdf93dfdd206516971d28e3e473f417a5cfd41172e46b4ce45008f640588e","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"cee74f5970ffc01041e5bffc3f324c20450534af4054d2c043cb49dbbd4ec8f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"1a654e0d950353614ba4637a8de4f9d367903a0692b748e11fccf8c880c99735","affectsGlobalScope":true,"impliedFormat":1},{"version":"42da246c46ca3fd421b6fd88bb4466cda7137cf33e87ba5ceeded30219c428bd","impliedFormat":1},{"version":"3a051941721a7f905544732b0eb819c8d88333a96576b13af08b82c4f17581e4","impliedFormat":1},{"version":"ac5ed35e649cdd8143131964336ab9076937fa91802ec760b3ea63b59175c10a","impliedFormat":1},{"version":"f2feb9696208311cdcf1936df2b7cbec96a3f0ab9d403952bf170546d4253a90","affectsGlobalScope":true,"impliedFormat":1},{"version":"db3d77167a7da6c5ba0c51c5b654820e3464093f21724ccd774c0b9bc3f81bc0","impliedFormat":1},{"version":"d9b6fd8640f6ad3f13ce9ce47d91061a698cf7763fed7f668e4f89709989aae5","impliedFormat":1}],"root":[60,[269,272],[274,304],[306,353],[407,446]],"options":{"composite":false,"declaration":false,"declarationMap":false,"downlevelIteration":true,"experimentalDecorators":true,"importHelpers":true,"inlineSourceMap":true,"inlineSources":true,"module":7,"noEmitOnError":false,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noImplicitReturns":true,"noPropertyAccessFromIndexSignature":true,"outDir":"../../../..","removeComments":false,"strict":true,"target":9,"tsBuildInfoFile":"./.tsbuildinfo","useDefineForClassFields":false},"referencedMap":[[437,1],[438,2],[60,3],[436,4],[260,5],[265,6],[262,7],[264,8],[259,8],[261,9],[256,10],[63,11],[255,12],[253,13],[62,9],[61,9],[258,14],[254,9],[305,15],[257,9],[273,16],[263,17],[266,18],[268,19],[267,20],[406,21],[372,22],[368,9],[371,23],[370,24],[369,25],[447,9],[499,26],[500,26],[501,27],[453,28],[502,29],[503,30],[504,31],[448,9],[451,32],[449,9],[450,9],[505,33],[506,34],[507,35],[508,36],[509,37],[510,38],[511,38],[512,39],[513,40],[514,41],[515,42],[454,9],[452,9],[516,43],[517,44],[518,45],[551,46],[519,47],[520,48],[521,49],[522,50],[523,51],[524,52],[525,53],[526,54],[527,55],[528,56],[529,56],[530,57],[531,9],[532,9],[533,58],[535,59],[534,60],[536,61],[537,62],[538,63],[539,64],[540,65],[541,66],[542,67],[543,68],[544,69],[545,70],[546,71],[547,72],[548,73],[455,9],[456,9],[457,9],[496,74],[497,9],[498,9],[549,75],[550,76],[458,9],[373,77],[375,78],[376,79],[374,80],[398,9],[399,81],[381,82],[393,83],[392,84],[390,85],[400,86],[378,9],[403,87],[385,9],[396,88],[395,89],[397,90],[401,9],[391,91],[384,92],[389,93],[402,94],[387,95],[382,9],[383,96],[404,97],[394,98],[388,94],[379,9],[405,99],[377,84],[380,9],[386,84],[252,100],[225,9],[203,101],[201,101],[251,102],[216,103],[215,103],[116,104],[67,105],[223,104],[224,104],[226,106],[227,104],[228,107],[127,108],[229,104],[200,104],[230,104],[231,109],[232,104],[233,103],[234,110],[235,104],[236,104],[237,104],[238,104],[239,103],[240,104],[241,104],[242,104],[243,104],[244,111],[245,104],[246,104],[247,104],[248,104],[249,104],[66,102],[69,107],[70,107],[71,107],[72,107],[73,107],[74,107],[75,107],[76,104],[78,112],[79,107],[77,107],[80,107],[81,107],[82,107],[83,107],[84,107],[85,107],[86,104],[87,107],[88,107],[89,107],[90,107],[91,107],[92,104],[93,107],[94,107],[95,107],[96,107],[97,107],[98,107],[99,104],[101,113],[100,107],[102,107],[103,107],[104,107],[105,107],[106,111],[107,104],[108,104],[122,114],[110,115],[111,107],[112,107],[113,104],[114,107],[115,107],[117,116],[118,107],[119,107],[120,107],[121,107],[123,107],[124,107],[125,107],[126,107],[128,117],[129,107],[130,107],[131,107],[132,104],[133,107],[134,118],[135,118],[136,118],[137,104],[138,107],[139,107],[140,107],[145,107],[141,107],[142,104],[143,107],[144,104],[146,107],[147,107],[148,107],[149,107],[150,107],[151,107],[152,104],[153,107],[154,107],[155,107],[156,107],[157,107],[158,107],[159,107],[160,107],[161,107],[162,107],[163,107],[164,107],[165,107],[166,107],[167,107],[168,107],[169,119],[170,107],[171,107],[172,107],[173,107],[174,107],[175,107],[176,104],[177,104],[178,104],[179,104],[180,104],[181,107],[182,107],[183,107],[184,107],[202,120],[250,104],[187,121],[186,122],[210,123],[209,124],[205,125],[204,124],[206,126],[195,127],[193,128],[208,129],[207,126],[194,9],[196,130],[109,131],[65,132],[64,107],[199,9],[191,133],[192,134],[189,9],[190,135],[188,107],[197,136],[68,137],[217,9],[218,9],[211,9],[214,103],[213,9],[219,9],[220,9],[212,138],[221,9],[222,9],[185,139],[198,140],[59,9],[57,9],[58,9],[10,9],[12,9],[11,9],[2,9],[13,9],[14,9],[15,9],[16,9],[17,9],[18,9],[19,9],[20,9],[3,9],[21,9],[22,9],[4,9],[23,9],[27,9],[24,9],[25,9],[26,9],[28,9],[29,9],[30,9],[5,9],[31,9],[32,9],[33,9],[34,9],[6,9],[38,9],[35,9],[36,9],[37,9],[39,9],[7,9],[40,9],[45,9],[46,9],[41,9],[42,9],[43,9],[44,9],[8,9],[50,9],[47,9],[48,9],[49,9],[51,9],[9,9],[52,9],[53,9],[54,9],[56,9],[55,9],[1,9],[474,141],[484,142],[473,141],[494,143],[465,144],[464,145],[493,146],[487,147],[492,148],[467,149],[481,150],[466,151],[490,152],[462,153],[461,146],[491,154],[463,155],[468,156],[469,9],[472,156],[459,9],[495,157],[485,158],[476,159],[477,160],[479,161],[475,162],[478,163],[488,146],[470,164],[471,165],[480,166],[460,167],[483,158],[482,156],[486,9],[489,168],[367,169],[359,170],[366,171],[361,9],[362,9],[360,172],[363,173],[354,9],[355,9],[356,169],[358,174],[364,9],[365,175],[357,176],[317,177],[320,178],[321,3],[433,179],[275,3],[276,180],[439,3],[440,181],[288,3],[289,182],[294,3],[295,183],[292,3],[293,184],[296,3],[297,185],[290,3],[291,186],[282,3],[287,187],[280,3],[281,188],[283,3],[284,189],[279,3],[298,190],[336,191],[339,192],[337,193],[338,194],[334,195],[335,196],[285,3],[286,197],[423,198],[424,199],[421,200],[422,201],[425,202],[426,203],[427,204],[428,205],[429,206],[430,207],[307,208],[314,209],[443,210],[444,211],[431,212],[432,213],[417,214],[418,215],[415,216],[416,217],[413,218],[414,219],[419,220],[420,221],[274,222],[277,223],[278,224],[306,225],[445,226],[446,227],[340,228],[343,229],[348,230],[351,231],[322,232],[325,233],[441,234],[442,235],[344,236],[345,237],[315,238],[316,239],[332,240],[333,241],[326,242],[331,243],[318,244],[319,245],[346,246],[347,247],[352,248],[412,249],[434,3],[435,250],[311,3],[312,251],[328,3],[329,252],[269,3],[272,253],[300,3],[301,254],[408,3],[409,255],[353,3],[407,256],[303,3],[304,257],[270,3],[271,258],[410,3],[411,259],[308,3],[309,260],[323,3],[324,261],[349,3],[350,262],[310,3],[313,263],[299,3],[302,264],[327,3],[330,265],[341,3],[342,266]],"semanticDiagnosticsPerFile":[60,269,270,274,275,278,279,280,282,283,285,288,290,292,294,296,299,300,303,307,308,310,311,315,317,318,320,321,322,323,326,327,328,332,334,336,337,339,340,341,344,346,348,349,352,353,408,410,413,415,417,419,421,423,425,427,429,431,433,434,436,437,439,441,443,445],"version":"5.8.3"} \ No newline at end of file diff --git a/db/newtube.db b/db/newtube.db index 285a2b25373ed9e56c9892f8fa33bde8138f3037..30e869f420d4ad60b6b7ae4a98dcfa9ee97ec17b 100644 GIT binary patch delta 5797 zcmeHLS!`p~8MbpLli2s#PC5%S!z`KXnHhWT>g($vWgOdyw|Gmus;Y$=Y5@;0Afy(dfoX~&1V~KF15=7LJk3ZTLDfJJZ65%sQiTdV_j-#nM&hk6 zeejX||33fueE$Fc&Uenmivt%w9(eT5-iSyf(mytIw>Wb3{_=@&ViCo(m_~~+Dm6y4 zIEqtBlu_cH_RVik^g88`;tMcYq*r{c_?O~~%^##cQXB-|?;Zogxx--4%A{bNg0EEj zE{+_Bw-r+gIs7ehSrLG*Ae8(T;zVx3*A<`2ze0{|YA-Is7mh%TIHHTNN}rlC+D)W7 zXC?A$MqMa6#k=Bo&YOvajQ&W`lcY(T*&Abv#Yx_^6M5Nv*j?HdlZCBm_-K($&64jdJO- zbXvM!@^{G}Bu`4xn}Y)fCDmU(H7TB|{soMa!Z;y}IfC3&e2QF#ONbM`w>tFJ z(WCHnnGF6`t_F3qs(3hB;>sm(5O7c&1*OE9`PMN~rar@M?tBxn^)@VKq6Y6Kb=JN4*Bdsnl6wFN|VhuwkrM0j_3G zSFhf}2kLcG&%TCYPXQw-Z|7W%vs1uC$(o5~7?hoCSQ^RIVC;loX=RjP*m2%c{qTfj z^W@Es`sKZV0mO>0!6=$hd|j1)Jc&TBLkD_N;_KpJ(F4`N0p>(y^jII`IZ+v$E_&6h zhFnROqD$qV%e-hvGpw$fDU3S6&cn`n>OM#R5+K8dLaoL~QNW4<|^ za;|t?S-UZhx&w1|BWcGB)yH11uOCYM@wd(OwG(PBMyoK;^_9Jc_A;J30@GwBIA@qI zcy;zQoL8>6O0+1 z^WJ#DiU#YfjWea#LOkdv^OSeaz7VGh=2gNabOsZN&PHai80{$#){r@!POfm~s6g6f zE``!zpR1g(l*&QwLe8f2EjWq-Ynwf*OM%c*Hd9@A+)eZ(xvCBx?Bq{FqaVIoR43zJpyyocXh4o;!)n!wPd4r0+(CdwH%{I_-S1$O?Q}gbuA;;A>LKBZy(&e@*i){p2^;; zq8fT$Jo>6s{F7dRfSO#R(c)?qL8t}BXmbsLt8ifCNu$m+w3hEbni5!}Nk5=QH5v^& z#{UYbGZHv07!6(%o5V!**;{++q=Zu{MoqIL0tGSrVFivk3^dbl!-4^J!&GXDW=}RP z;8bE%IE}GGyafitg=;BFg{ztB%eUypcT`1bnCcg|Xqn(|kj%06j5=x51}$|s5`q7C zCaAeAVoE?Lm>SJ}L|9#;C0qS^xM^v1 z;uF=YA7Wb?llXH;SXN+kN(1sku?}FNYggWcq+2iC0|oZ&pAuc`fjHSOE{V|$#vp26y4PmNEcb0LmqC@L6Kl7L8+WH78zYSaX$ zR7ZjwO@<=`MiY+OATGwYtU2hlbI2YhM2{RrL^hH9sw{}?lfEs<_mA(r+56KyOwZ@y zr$sh!PMsOQWE+z+o=WefKG{CW^z^i7mwc?NN1m&HmF**!obwC*OlEP7TvnM-%)bHl z2#x5H^Lf;nNvOhJz+#D&WG26U*0JWa(nb|d)vo;p`dOq28^|kOUEKzIryWC;_^#hy zvW<4a?5bq>Ljk~~48~a6#Ti*cGI};*D4FNo2`nAKP%IVkIg&bCAxM=`%oZzAUV53E zVKPOhNmUzs5qhMKvn}*GaqhCWaJKE2Y$KgGyUOY&PH;@b-PtrA;Rpg0?C-seHfeI5G+2(z_(H{mwoX6!7`J;Y#+5l<}O~cd1Vzn(it)K~+R+1D7FB?fzSk z1ly_Ffh4PBPq*iH)uvtNwK66=fS+T-mGND+w;1LXF=@oaGyt7 zNd&TVYyUUUKg4}9pmvS{+1dB;+5hX%wvxuQ|1%x>27H`P3M_eAq*#*wPQFL>W8~k6 z8-54YOJ9?ok~|GM>_N%#3Ni^4?nq#|tC|#&4zERWTw-V~pN)r_8hJo-?}M#=Z#G>+ zn^cgAddQ`2DwOA)?-`NQHiS*3ZyZEC9GLDZUipZ7V-YTqi#6fN&ZTq1I}p}y-7QsA z=^5kWd8WH6UcN)_ug7~}IK7@K#KV#GVeK#od8YL}JFNW?Z@Fy|L3!{xtI{`G2fa%> z*QK+tv%68>)jeQcrGeYnNaHrvRdLsEV}^J(mtPM?!p*IqPYL|c5Oo#NFaUMHGu>60 z^GEEya4MYY_}}5Rs`zgwL727@tn{Ab!vvA<%huaaA@cCjOHV?^k!xBL}ODLSA))*L48x2H%y|r zDZ(YUu1~?X9&beGdV%PS(7q-g;T5i+Xj#6`_DJ7ui5$>bzn214Gu3$vcYS~Z#dd~L zQA=~CXvsgr#MjX^M>JhtnYB3Fy0al~(H);97iVc_nq4c*a4K?UIcf0+4RL*4D>QqL ze^>+;*4uh=r=358cm4j7ZL$+&*QY>X4|wghkg#%PmUQE6Qf;)Zc&wbpq*Af|xHIK< zFeThz+b9!ZGQ2?=?fIg44t1>OYXdI=?Nwj5^?8e?073FvM2DBLLwsB{Umh)keyhj&fRv=r3BwE7=h1DqVK<1|q}DyVjwsxIjDxh;Hb9Kj$=%jOlRmptoy4mu?XV&jnIJA9bULJ?2NtzsPb#6DLq z+vhSnw!PNtKbI8Mr+Lu)Q9R<1D0kHVDCW0qx80@TxdVCUTp`;(=s!)%i`$%X}av2M|FG^lIale_|sJ6rH__!(pJ)};|ED~zJ=piwW7DUSm>1U%L z1XSUJA{Zw%3VgA<Z#z%JM$Kk+}e CSHFG$ diff --git a/server/providers/twitch.mjs b/server/providers/twitch.mjs index fd89507..0d48353 100644 --- a/server/providers/twitch.mjs +++ b/server/providers/twitch.mjs @@ -1,5 +1,5 @@ /** - * Minimal Twitch provider handler + * Twitch provider using Helix API */ const handler = { id: 'tw', @@ -12,17 +12,36 @@ const handler = { async search(q, opts) { const { limit = 10 } = opts; try { - // Use Twitch Kraken API (older but public) + // First, get OAuth token + const authResponse = await fetch('https://id.twitch.tv/oauth2/token', { + method: 'POST', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + }, + body: new URLSearchParams({ + client_id: process.env.TWITCH_CLIENT_ID, + client_secret: process.env.TWITCH_CLIENT_SECRET, + grant_type: 'client_credentials' + }) + }); + + if (!authResponse.ok) { + throw new Error(`Twitch auth error: ${authResponse.status}`); + } + + const { access_token } = await authResponse.json(); + + // Then search streams const response = await fetch( - `https://api.twitch.tv/kraken/search/streams?` + + `https://api.twitch.tv/helix/search/channels?` + new URLSearchParams({ query: q, - limit: Math.min(limit, 25).toString() + first: Math.min(limit, 100).toString() }), { headers: { - 'Accept': 'application/vnd.twitchtv.v5+json', - 'Client-ID': process.env.TWITCH_CLIENT_ID || '' + 'Client-ID': process.env.TWITCH_CLIENT_ID, + 'Authorization': `Bearer ${access_token}` } } ); @@ -33,19 +52,19 @@ const handler = { const data = await response.json(); - return (data.streams || []).map(item => ({ - title: item.channel.status || item.channel.display_name, - id: item.channel.name, // Channel name as ID - url: `https://www.twitch.tv/${item.channel.name}`, - thumbnail: item.preview?.medium || item.channel.logo, - uploaderName: item.channel.display_name, + return data.data?.map(item => ({ + title: item.title || item.display_name, + id: item.id, + url: `https://www.twitch.tv/${item.broadcaster_login}`, + thumbnail: item.thumbnail_url?.replace('{width}x{height}', '440x248'), + uploaderName: item.display_name, type: 'stream', - isLive: true - })); + isLive: item.is_live || item.started_at + })) || []; } catch (error) { console.error('Twitch search error:', error); return []; } } }; -export default handler; +export default handler; \ No newline at end of file diff --git a/src/app/search/adapters/dm.ts b/src/app/search/adapters/dm.ts index 087d92f..a8a0178 100644 --- a/src/app/search/adapters/dm.ts +++ b/src/app/search/adapters/dm.ts @@ -1,25 +1,27 @@ -import { HttpClient } from '@angular/common/http'; +import { HttpClient, HttpParams } from '@angular/common/http'; import { firstValueFrom } from 'rxjs'; import type { ProviderAdapter, ProviderSearchParams, SearchResult } from '../models'; +import { VideoItem } from 'src/app/shared/models/video-item.model'; -export class DmAdapter implements ProviderAdapter { +// TODO: Make SearchResult generic +export class DmAdapter implements ProviderAdapter { key = 'dm' as const; label = 'Dailymotion'; constructor(private http: HttpClient) {} - async search(params: ProviderSearchParams, _signal: AbortSignal): Promise { - const res = await firstValueFrom(this.http.get(`/api/search`, { params: { q: params.q, providers: 'dm' } })); - const items = (res?.groups?.dm || []).map((it: any) => ({ + async search(params: ProviderSearchParams, _signal: AbortSignal): Promise> { + let httpParams = new HttpParams().set('q', params.q).set('providers', 'dm'); + if (params.pageToken) httpParams = httpParams.set('page', params.pageToken); + if (params.sort) httpParams = httpParams.set('sort', params.sort); + const res = await firstValueFrom(this.http.get(`/api/search`, { params: httpParams })); + const items: VideoItem[] = (res?.groups?.dm || []).map((it: any) => ({ id: it.id, - provider: this.key, + provider: 'dailymotion', title: it.title, - channel: it.uploaderName, + channelName: it.uploaderName, durationSec: it.duration, - thumbUrl: it.thumbnail, - watchUrl: it.url || '', - views: undefined, - publishedAt: undefined, - isLive: it.type === 'live', - isShort: it.isShort === true + thumbnailUrl: it.thumbnail, + viewCount: undefined, // Dailymotion API does not provide view count in search results + publishedAt: undefined, // Dailymotion API does not provide published date in search results })); return { items, total: Array.isArray(res?.groups?.dm) ? res.groups.dm.length : 0 }; } diff --git a/src/app/search/adapters/od.ts b/src/app/search/adapters/od.ts index 35cac69..2c41659 100644 --- a/src/app/search/adapters/od.ts +++ b/src/app/search/adapters/od.ts @@ -1,26 +1,37 @@ -import { HttpClient } from '@angular/common/http'; +import { HttpClient, HttpParams } from '@angular/common/http'; import { firstValueFrom } from 'rxjs'; import type { ProviderAdapter, ProviderSearchParams, SearchResult } from '../models'; +import { VideoItem } from 'src/app/shared/models/video-item.model'; -export class OdAdapter implements ProviderAdapter { +export class OdAdapter implements ProviderAdapter { key = 'od' as const; label = 'Odysee'; constructor(private http: HttpClient) {} - async search(params: ProviderSearchParams, _signal: AbortSignal): Promise { - const res = await firstValueFrom(this.http.get(`/api/search`, { params: { q: params.q, providers: 'od' } })); - const items = (res?.groups?.od || []).map((it: any) => ({ - id: it.id, - provider: this.key, - title: it.title, - channel: it.uploaderName, - durationSec: it.duration, - thumbUrl: it.thumbnail, - watchUrl: it.url || '', - views: undefined, - publishedAt: undefined, - isLive: false, - isShort: it.isShort === true - })); + async search(params: ProviderSearchParams, _signal: AbortSignal): Promise> { + let httpParams = new HttpParams().set('q', params.q).set('providers', 'od'); + if (params.pageToken) httpParams = httpParams.set('page', params.pageToken); + if (params.sort) httpParams = httpParams.set('sort', params.sort); + const res = await firstValueFrom(this.http.get(`/api/search`, { params: httpParams })); + const items: VideoItem[] = (res?.groups?.od || []).map((it: any) => { + let slug: string | undefined; + try { + const url: string | undefined = it?.url; + if (url && /^https?:\/\/odysee\.com\//i.test(url)) { + slug = url.replace(/^https?:\/\/odysee\.com\//i, '').replace(/^\//, ''); + } + } catch {} + return { + id: it.id, + provider: 'odysee', + title: it.title, + channelName: it.uploaderName, + durationSec: it.duration, + thumbnailUrl: it.thumbnail, + viewCount: undefined, + publishedAt: undefined, + slug, + } as VideoItem; + }); return { items, total: Array.isArray(res?.groups?.od) ? res.groups.od.length : 0 }; } } diff --git a/src/app/search/adapters/pt.ts b/src/app/search/adapters/pt.ts index 94a421a..3073ce6 100644 --- a/src/app/search/adapters/pt.ts +++ b/src/app/search/adapters/pt.ts @@ -1,25 +1,26 @@ -import { HttpClient } from '@angular/common/http'; +import { HttpClient, HttpParams } from '@angular/common/http'; import { firstValueFrom } from 'rxjs'; import type { ProviderAdapter, ProviderSearchParams, SearchResult } from '../models'; +import { VideoItem } from 'src/app/shared/models/video-item.model'; -export class PtAdapter implements ProviderAdapter { +export class PtAdapter implements ProviderAdapter { key = 'pt' as const; label = 'PeerTube'; constructor(private http: HttpClient) {} - async search(params: ProviderSearchParams, _signal: AbortSignal): Promise { - const res = await firstValueFrom(this.http.get(`/api/search`, { params: { q: params.q, providers: 'pt' } })); - const items = (res?.groups?.pt || []).map((it: any) => ({ + async search(params: ProviderSearchParams, _signal: AbortSignal): Promise> { + let httpParams = new HttpParams().set('q', params.q).set('providers', 'pt'); + if (params.pageToken) httpParams = httpParams.set('page', params.pageToken); + if (params.sort) httpParams = httpParams.set('sort', params.sort); + const res = await firstValueFrom(this.http.get(`/api/search`, { params: httpParams })); + const items: VideoItem[] = (res?.groups?.pt || []).map((it: any) => ({ id: it.id, - provider: this.key, + provider: 'peertube', title: it.title, - channel: it.uploaderName, + channelName: it.uploaderName, durationSec: it.duration, - thumbUrl: it.thumbnail, - watchUrl: it.url || '', - views: undefined, + thumbnailUrl: it.thumbnail, + viewCount: undefined, publishedAt: undefined, - isLive: false, - isShort: false })); return { items, total: Array.isArray(res?.groups?.pt) ? res.groups.pt.length : 0 }; } diff --git a/src/app/search/adapters/ru.ts b/src/app/search/adapters/ru.ts index 2d85eea..b529dd4 100644 --- a/src/app/search/adapters/ru.ts +++ b/src/app/search/adapters/ru.ts @@ -1,25 +1,26 @@ -import { HttpClient } from '@angular/common/http'; +import { HttpClient, HttpParams } from '@angular/common/http'; import { firstValueFrom } from 'rxjs'; import type { ProviderAdapter, ProviderSearchParams, SearchResult } from '../models'; +import { VideoItem } from 'src/app/shared/models/video-item.model'; -export class RuAdapter implements ProviderAdapter { +export class RuAdapter implements ProviderAdapter { key = 'ru' as const; label = 'Rumble'; constructor(private http: HttpClient) {} - async search(params: ProviderSearchParams, _signal: AbortSignal): Promise { - const res = await firstValueFrom(this.http.get(`/api/search`, { params: { q: params.q, providers: 'ru' } })); - const items = (res?.groups?.ru || []).map((it: any) => ({ + async search(params: ProviderSearchParams, _signal: AbortSignal): Promise> { + let httpParams = new HttpParams().set('q', params.q).set('providers', 'ru'); + if (params.pageToken) httpParams = httpParams.set('page', params.pageToken); + if (params.sort) httpParams = httpParams.set('sort', params.sort); + const res = await firstValueFrom(this.http.get(`/api/search`, { params: httpParams })); + const items: VideoItem[] = (res?.groups?.ru || []).map((it: any) => ({ id: it.id, - provider: this.key, + provider: 'rumble', title: it.title, - channel: it.uploaderName, + channelName: it.uploaderName, durationSec: it.duration, - thumbUrl: it.thumbnail, - watchUrl: it.url || '', - views: undefined, - publishedAt: undefined, - isLive: false, - isShort: false + thumbnailUrl: it.thumbnail, + viewCount: typeof it.views === 'number' ? it.views : undefined, + publishedAt: it.publishedAt, })); return { items, total: Array.isArray(res?.groups?.ru) ? res.groups.ru.length : 0 }; } diff --git a/src/app/search/adapters/tw.ts b/src/app/search/adapters/tw.ts index 306fd22..148e2a7 100644 --- a/src/app/search/adapters/tw.ts +++ b/src/app/search/adapters/tw.ts @@ -1,26 +1,31 @@ -import { HttpClient } from '@angular/common/http'; +import { HttpClient, HttpParams } from '@angular/common/http'; import { firstValueFrom } from 'rxjs'; import type { ProviderAdapter, ProviderSearchParams, SearchResult } from '../models'; +import { VideoItem } from 'src/app/shared/models/video-item.model'; -export class TwAdapter implements ProviderAdapter { +export class TwAdapter implements ProviderAdapter { key = 'tw' as const; label = 'Twitch'; constructor(private http: HttpClient) {} - async search(params: ProviderSearchParams, _signal: AbortSignal): Promise { - const res = await firstValueFrom(this.http.get(`/api/search`, { params: { q: params.q, providers: 'tw' } })); - const items = (res?.groups?.tw || []).map((it: any) => ({ - id: it.id, - provider: this.key, - title: it.title, - channel: it.uploaderName, - durationSec: it.duration, - thumbUrl: it.thumbnail, - watchUrl: it.url || '', - views: undefined, - publishedAt: undefined, - isLive: it.type === 'live', - isShort: false - })); + async search(params: ProviderSearchParams, _signal: AbortSignal): Promise> { + let httpParams = new HttpParams().set('q', params.q).set('providers', 'tw'); + if (params.pageToken) httpParams = httpParams.set('page', params.pageToken); + if (params.sort) httpParams = httpParams.set('sort', params.sort); + const res = await firstValueFrom(this.http.get(`/api/search`, { params: httpParams })); + const items: VideoItem[] = (res?.groups?.tw || []).map((it: any) => { + const isChannel = String(it?.type || '').toLowerCase() === 'channel'; + return { + id: it.id, + provider: 'twitch', + title: it.title, + channelName: it.uploaderName, + durationSec: it.duration, + thumbnailUrl: it.thumbnail, + viewCount: typeof it.views === 'number' ? it.views : undefined, + publishedAt: it.publishedAt, + channel: isChannel ? it.id : undefined, + } as VideoItem; + }); return { items, total: Array.isArray(res?.groups?.tw) ? res.groups.tw.length : 0 }; } } diff --git a/src/app/search/adapters/yt.ts b/src/app/search/adapters/yt.ts index dccb112..03ce94e 100644 --- a/src/app/search/adapters/yt.ts +++ b/src/app/search/adapters/yt.ts @@ -1,25 +1,26 @@ -import { HttpClient } from '@angular/common/http'; +import { HttpClient, HttpParams } from '@angular/common/http'; import { firstValueFrom } from 'rxjs'; import type { ProviderAdapter, ProviderSearchParams, SearchResult } from '../models'; +import { VideoItem } from 'src/app/shared/models/video-item.model'; -export class YtAdapter implements ProviderAdapter { +export class YtAdapter implements ProviderAdapter { key = 'yt' as const; label = 'YouTube'; constructor(private http: HttpClient) {} - async search(params: ProviderSearchParams, _signal: AbortSignal): Promise { - const res = await firstValueFrom(this.http.get(`/api/search`, { params: { q: params.q, providers: 'yt' } })); - const items = (res?.groups?.yt || []).map((it: any) => ({ + async search(params: ProviderSearchParams, _signal: AbortSignal): Promise> { + let httpParams = new HttpParams().set('q', params.q).set('providers', 'yt'); + if (params.pageToken) httpParams = httpParams.set('page', params.pageToken); + if (params.sort) httpParams = httpParams.set('sort', params.sort); + const res = await firstValueFrom(this.http.get(`/api/search`, { params: httpParams })); + const items: VideoItem[] = (res?.groups?.yt || []).map((it: any) => ({ id: it.id, - provider: this.key, + provider: 'youtube', title: it.title, - channel: it.uploaderName, + channelName: it.uploaderName, durationSec: it.duration, - thumbUrl: it.thumbnail, - watchUrl: it.url || '', - views: undefined, - publishedAt: undefined, - isLive: it.type === 'live', - isShort: it.isShort === true + thumbnailUrl: it.thumbnail, + viewCount: typeof it.views === 'number' ? it.views : (typeof it.viewCount === 'number' ? it.viewCount : undefined), + publishedAt: it.publishedAt, })); return { items, total: Array.isArray(res?.groups?.yt) ? res.groups.yt.length : 0 }; } diff --git a/src/app/search/models.ts b/src/app/search/models.ts index 95e8d08..5dd5472 100644 --- a/src/app/search/models.ts +++ b/src/app/search/models.ts @@ -14,8 +14,8 @@ export interface SearchItem { watchUrl: string; // internal or external } -export interface SearchResult { - items: SearchItem[]; +export interface SearchResult { + items: T[]; total?: number; nextPageToken?: string; // or page: string|number } @@ -29,8 +29,8 @@ export interface ProviderSearchParams { type?: 'video'|'live'|'shorts'|'all'; } -export interface ProviderAdapter { +export interface ProviderAdapter { key: ProviderId; label: string; - search(params: ProviderSearchParams, signal: AbortSignal): Promise; + search(params: ProviderSearchParams, signal: AbortSignal): Promise>; } diff --git a/src/app/search/search.service.ts b/src/app/search/search.service.ts index 36f2aa7..cfad41e 100644 --- a/src/app/search/search.service.ts +++ b/src/app/search/search.service.ts @@ -10,12 +10,13 @@ import { PtAdapter } from './adapters/pt'; import { OdAdapter } from './adapters/od'; import { RuAdapter } from './adapters/ru'; import type { ProviderAdapter, ProviderSearchParams, SearchResult } from './models'; +import { VideoItem } from 'src/app/shared/models/video-item.model'; export type SuggestionItem = SuggestionItemV1; export type SearchResponse = SearchResponseV1; type CacheKey = string; -interface CacheEntry { t: number; data: SearchResult; } +interface CacheEntry { t: number; data: SearchResult; } @Injectable({ providedIn: 'root' }) export class SearchService { @@ -29,11 +30,11 @@ export class SearchService { readonly sort$ = new BehaviorSubject<'relevance' | 'date' | 'views' | 'duration'>('relevance'); // In-memory cache 60s per (provider, q, params) - private cache = new Map(); + private cache = new Map>(); private cacheTtlMs = 60_000; // Adapters registry - private adapters: Record = { + private adapters: Record> = { yt: new YtAdapter(this.http), dm: new DmAdapter(this.http), tw: new TwAdapter(this.http), @@ -57,22 +58,13 @@ export class SearchService { // global filter knobs could be added here: time/length/type in the future }, prov))) , - // Map normalized items to legacy "groups" response expected by UI + // Map provider results to the format expected by the UI map((byProvider) => { const groups = Object.entries(byProvider).reduce((acc, [pid, result]) => { - const arr: SuggestionItemV1[] = (result?.items || []).map(it => ({ - id: it.id, - title: it.title, - duration: it.durationSec, - isShort: it.isShort, - thumbnail: it.thumbUrl, - uploaderName: it.channel, - url: it.watchUrl, - type: it.isLive ? 'live' : 'video' - })); - (acc as any)[pid as ProviderId] = arr; + acc[pid as ProviderId] = result.items; return acc; - }, {} as Record); + }, {} as Record); + const providers = Object.keys(byProvider) as ProviderId[]; const resp: SearchResponse = { q: this.q$.value, providers, groups }; return resp; @@ -81,13 +73,13 @@ export class SearchService { ); // Orchestrate all active providers in parallel with timeout(8s), retry(1) and abort on param change. - private async runAdapters(params: ProviderSearchParams, prov: ProviderId[] | 'all') { + private async runAdapters(params: ProviderSearchParams, prov: ProviderId[] | 'all'): Promise>> { const active: ProviderId[] = prov === 'all' ? ['yt','dm','tw','pt','od','ru'] : (Array.isArray(prov) ? prov : []); const controller = new AbortController(); const signal = controller.signal; const tasks = active.map(async (pid) => { const adapter = this.adapters[pid]; - if (!adapter) return [pid, { items: [] as any[] } as SearchResult] as const; + if (!adapter) return [pid, { items: [] } as SearchResult] as const; const key: CacheKey = `${pid}|${params.q}|${params.pageToken}|${params.sort}`; const now = Date.now(); const cached = this.cache.get(key); @@ -99,9 +91,9 @@ export class SearchService { const tid = setTimeout(() => reject(new Error('timeout')), perProviderTimeout); p.then(v => { clearTimeout(tid); resolve(v); }).catch(e => { clearTimeout(tid); reject(e); }); }); - const attempt = async (): Promise => withTimeout(adapter.search(params, signal)); + const attempt = async (): Promise> => withTimeout(adapter.search(params, signal)); try { - const res = await attempt().catch(async (e) => { + const res: SearchResult = await attempt().catch(async (e) => { // retry once on network-like errors if (e && (e.name === 'AbortError' || String(e.message || '').includes('abort'))) throw e; try { return await attempt(); } catch (err) { throw err; } @@ -110,11 +102,11 @@ export class SearchService { return [pid, res] as const; } catch { // Swallow errors per provider, return empty - return [pid, { items: [] }] as const; + return [pid, { items: [] } as SearchResult] as const; } }); const results = await Promise.all(tasks); - return Object.fromEntries(results) as Record; + return Object.fromEntries(results) as Record>; } // Convenience setter helpers diff --git a/src/app/shared/components/search-result-grid/search-result-grid.component.html b/src/app/shared/components/search-result-grid/search-result-grid.component.html new file mode 100644 index 0000000..2477a57 --- /dev/null +++ b/src/app/shared/components/search-result-grid/search-result-grid.component.html @@ -0,0 +1,14 @@ +
+ + + + + + + +
+ +
+

Aucun résultat

+

Essayez une autre recherche ou sélectionnez un autre fournisseur.

+
diff --git a/src/app/shared/components/search-result-grid/search-result-grid.component.scss b/src/app/shared/components/search-result-grid/search-result-grid.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/shared/components/search-result-grid/search-result-grid.component.ts b/src/app/shared/components/search-result-grid/search-result-grid.component.ts new file mode 100644 index 0000000..21ab5fb --- /dev/null +++ b/src/app/shared/components/search-result-grid/search-result-grid.component.ts @@ -0,0 +1,22 @@ +import { Component, Input } from '@angular/core'; +import { VideoItem } from '../../models/video-item.model'; +import { CommonModule } from '@angular/common'; +import { VideoCardComponent } from '../video-card/video-card.component'; +import { VideoCardSkeletonComponent } from '../video-card-skeleton/video-card-skeleton.component'; + +@Component({ + selector: 'app-search-result-grid', + templateUrl: './search-result-grid.component.html', + styleUrls: ['./search-result-grid.component.scss'], + standalone: true, + imports: [CommonModule, VideoCardComponent, VideoCardSkeletonComponent], +}) +export class SearchResultGridComponent { + @Input() videos: VideoItem[] = []; + @Input() loading = false; + @Input() skeletons = 12; + + get skeletonItems() { + return new Array(this.skeletons); + } +} diff --git a/src/app/shared/components/video-card-skeleton/video-card-skeleton.component.html b/src/app/shared/components/video-card-skeleton/video-card-skeleton.component.html new file mode 100644 index 0000000..97bfe75 --- /dev/null +++ b/src/app/shared/components/video-card-skeleton/video-card-skeleton.component.html @@ -0,0 +1,7 @@ +
+
+
+
+
+
+
diff --git a/src/app/shared/components/video-card-skeleton/video-card-skeleton.component.scss b/src/app/shared/components/video-card-skeleton/video-card-skeleton.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/shared/components/video-card-skeleton/video-card-skeleton.component.ts b/src/app/shared/components/video-card-skeleton/video-card-skeleton.component.ts new file mode 100644 index 0000000..540f154 --- /dev/null +++ b/src/app/shared/components/video-card-skeleton/video-card-skeleton.component.ts @@ -0,0 +1,9 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-video-card-skeleton', + templateUrl: './video-card-skeleton.component.html', + styleUrls: ['./video-card-skeleton.component.scss'], + standalone: true, +}) +export class VideoCardSkeletonComponent {} diff --git a/src/app/shared/components/video-card/video-card.component.html b/src/app/shared/components/video-card/video-card.component.html new file mode 100644 index 0000000..4e1486c --- /dev/null +++ b/src/app/shared/components/video-card/video-card.component.html @@ -0,0 +1,21 @@ + +
+ + + {{ video.durationSec | date:'mm:ss' }} + +
+ +
+

+ {{ video.title }} +

+
+

{{ video.channelName }}

+
+ {{ video.viewCount | number }} vues + {{ video.publishedAt | date:'shortDate' }} +
+
+
+
diff --git a/src/app/shared/components/video-card/video-card.component.scss b/src/app/shared/components/video-card/video-card.component.scss new file mode 100644 index 0000000..0acf9f0 --- /dev/null +++ b/src/app/shared/components/video-card/video-card.component.scss @@ -0,0 +1,7 @@ +.line-clamp-2 { + display: -webkit-box; + -webkit-line-clamp: 2; + line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; +} diff --git a/src/app/shared/components/video-card/video-card.component.ts b/src/app/shared/components/video-card/video-card.component.ts new file mode 100644 index 0000000..609da49 --- /dev/null +++ b/src/app/shared/components/video-card/video-card.component.ts @@ -0,0 +1,22 @@ +import { Component, Input } from '@angular/core'; +import { VideoItem } from '../../models/video-item.model'; +import { CommonModule } from '@angular/common'; +import { RouterLink } from '@angular/router'; + +@Component({ + selector: 'app-video-card', + templateUrl: './video-card.component.html', + styleUrls: ['./video-card.component.scss'], + standalone: true, + imports: [CommonModule, RouterLink], +}) +export class VideoCardComponent { + @Input() video!: VideoItem; + + buildQueryParams(v: VideoItem): Record { + const qp: any = { p: v.provider }; + if (v.provider === 'odysee' && v.slug) qp.slug = v.slug; + if (v.provider === 'twitch' && v.channel) qp.channel = v.channel; + return qp; + } +} diff --git a/src/app/shared/models/video-item.model.ts b/src/app/shared/models/video-item.model.ts new file mode 100644 index 0000000..b1dcd60 --- /dev/null +++ b/src/app/shared/models/video-item.model.ts @@ -0,0 +1,13 @@ +export interface VideoItem { + id: string; // id vidéo canonicalisé + provider: 'youtube' | 'dailymotion' | 'twitch' | 'peertube' | 'odysee' | 'rumble'; + title: string; + thumbnailUrl: string; + durationSec?: number; + channelName?: string; + viewCount?: number; + publishedAt?: string; // ISO + // Provider-specific routing hints + slug?: string; // Odysee slug when available + channel?: string; // Twitch channel when item represents a channel/live +} diff --git a/src/components/account/history/history.component.html b/src/components/account/history/history.component.html index fd2104e..2264f15 100644 --- a/src/components/account/history/history.component.html +++ b/src/components/account/history/history.component.html @@ -66,7 +66,7 @@
  • -
    @@ -114,7 +114,7 @@
    • -
      diff --git a/src/components/account/history/history.component.ts b/src/components/account/history/history.component.ts index 5744747..94ea36c 100644 --- a/src/components/account/history/history.component.ts +++ b/src/components/account/history/history.component.ts @@ -230,6 +230,17 @@ getSearchProvider(item: SearchHistoryItem): { name: string; id: string; provider return []; } + // Get query params for search navigation + getSearchQueryParams(item: SearchHistoryItem): any { + const providerInfo = this.getSearchProvider(item); + if (providerInfo.providers && providerInfo.providers.length > 1) { + // Convert array to comma-separated string for URL + return { q: item.query, providers: providerInfo.providers.join(',') }; + } else { + return { q: item.query, provider: providerInfo.id }; + } + } + // Format provider ID to a display name private formatProviderName(providerId: string): string { const providerMap: { [key: string]: string } = { diff --git a/src/components/search/search.component.html b/src/components/search/search.component.html index 2027e21..a6d67df 100644 --- a/src/components/search/search.component.html +++ b/src/components/search/search.component.html @@ -1,7 +1,18 @@
      -
      -

      {{ pageHeading() }}

      -

      {{ activeProvidersDisplay() }}

      +
      +

      {{ pageHeading() }}

      + +
      + @for (provider of activeProvidersInfo(); track provider.id) { +
      + + + + {{ provider.label }} +
      + } +
      @if (notice()) { @@ -30,38 +41,6 @@
      } - - @if (showUnified()) { -
      -
      -

      {{ providerDisplay(p) }} ({{ groups()[p].length || 0 }})

      - -
      - -
      - -
      Aucun résultat pour ce fournisseur.
      -
      -
      - } - @if (hasQuery()) {
      @@ -80,150 +59,14 @@
      - } - @if (showUnified() && !loading() && unifiedTotal() === 0 && hasQuery()) { -

      Aucun résultat pour « {{ q() }} » avec les fournisseurs sélectionnés.

      - } - - @if (error()) { -
      - {{ error() }} - -
      - } - - @if (loading()) { -
      - @for (item of [1,2,3,4,5,6,7,8]; track item) { -
      -
      -
      -
      -
      -
      -
      - } -
      - } @else if (selectedProviderForView() === 'twitch') { - -
      - -
      -

      Chaînes en direct

      - @if (twitchChannels().length > 0) { - - @if (twitchCursorChannels()) { -
      - -
      - } - } @else { -

      Aucune chaîne en direct trouvée.

      - } -
      - - -
      -

      Vidéos (VOD)

      - @if (twitchVods().length > 0) { - - @if (twitchCursorVods()) { -
      - -
      - } - } @else { -

      Aucune vidéo VOD trouvée.

      - } -
      -
      - } @else if (results().length > 0) { - - - - @if (busyMore()) { -
      - - {{ 'loading.more' | t }} + @if (error()) { +
      + {{ error() }} +
      } - } @else if (hasQuery()) { -

      {{ 'search.noResults' | t }}

      + + }
      diff --git a/src/components/search/search.component.ts b/src/components/search/search.component.ts index c15f2ed..1e9aae6 100644 --- a/src/components/search/search.component.ts +++ b/src/components/search/search.component.ts @@ -1,26 +1,25 @@ -import { ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, signal, untracked, ViewChild } from '@angular/core'; +import { ChangeDetectionStrategy, Component, computed, effect, inject, signal, ViewChild, ElementRef } from '@angular/core'; +import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { CommonModule } from '@angular/common'; -import { ActivatedRoute, Router, RouterLink } from '@angular/router'; +import { ActivatedRoute, Router, ParamMap } from '@angular/router'; import { YoutubeApiService } from '../../services/youtube-api.service'; -import { Video } from '../../models/video.model'; -import { InfiniteAnchorComponent } from '../shared/infinite-anchor/infinite-anchor.component'; import { formatRelativeFr } from '../../utils/date.util'; import { InstanceService, Provider } from '../../services/instance.service'; import { HistoryService } from '../../services/history.service'; import { Title } from '@angular/platform-browser'; import { TranslatePipe } from '../../pipes/translate.pipe'; -import { LikeButtonComponent } from '../shared/components/like-button/like-button.component'; -import { AddToPlaylistComponent } from '../shared/components/add-to-playlist/add-to-playlist.component'; +import { SearchResultGridComponent } from 'src/app/shared/components/search-result-grid/search-result-grid.component'; +import { VideoItem } from 'src/app/shared/models/video-item.model'; import { SearchService, type SearchResponse } from '../../app/search/search.service'; import type { ProviderId } from '../../app/core/providers/provider-registry'; -import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; +import { Observable, Subscription } from 'rxjs'; @Component({ selector: 'app-search', standalone: true, templateUrl: './search.component.html', changeDetection: ChangeDetectionStrategy.OnPush, - imports: [CommonModule, RouterLink, InfiniteAnchorComponent, TranslatePipe, LikeButtonComponent, AddToPlaylistComponent] + imports: [CommonModule, TranslatePipe, SearchResultGridComponent] }) export class SearchComponent { private route = inject(ActivatedRoute); @@ -33,16 +32,6 @@ export class SearchComponent { q = signal(''); loading = signal(false); - results = signal([]); - busyMore = signal(false); - nextCursor = signal(null); - // Twitch-specific dual lists - twitchChannels = signal([]); - twitchVods = signal([]); - twitchCursorChannels = signal(null); - twitchCursorVods = signal(null); - twitchBusyChannels = signal(false); - twitchBusyVods = signal(false); notice = signal(null); providerParam = signal(null); themeParam = signal(null); @@ -51,7 +40,7 @@ export class SearchComponent { sortParam = signal<'relevance' | 'date' | 'views'>('relevance'); // Unified multi-provider response (grouped suggestions) - groups = signal>({} as any); + groups = signal>({}); showUnified = signal(false); error = signal(null); @@ -79,20 +68,52 @@ export class SearchComponent { return ['yt','dm','tw','pt','od','ru']; }); - // Subtitle display: codes separated by middot - activeProvidersDisplay = computed(() => this.activeProviders().join(' · ')); + // Map between Provider and ProviderId + private readonly providerIdMap: Record = { + 'yt': 'youtube', + 'dm': 'dailymotion', + 'tw': 'twitch', + 'pt': 'peertube', + 'od': 'odysee', + 'ru': 'rumble' + }; - // Helper to display provider label from registry/instances - providerDisplay(p: ProviderId): string { - try { - const found = (this.instances.providers() || []).find(x => (x.id as any) === p); - return found?.label || p.toUpperCase(); - } catch { return p.toUpperCase(); } + // Get active providers with full info + activeProvidersInfo = computed(() => { + const activeIds = this.activeProviders(); + return this.instances.providers().filter(p => + activeIds.some(id => this.providerIdMap[id] === p.id) + ); + }); + + // Brand colors for provider badge (inline styles to match History badges) + getProviderColors(providerId: string | null | undefined): { [key: string]: string } { + const id = (providerId || '').toLowerCase(); + switch (id) { + case 'youtube': + return { backgroundColor: 'rgba(220, 38, 38, 0.15)', color: 'rgb(248, 113, 113)', borderColor: 'rgba(239, 68, 68, 0.3)' }; + case 'dailymotion': + return { backgroundColor: 'rgba(37, 99, 235, 0.15)', color: 'rgb(147, 197, 253)', borderColor: 'rgba(59, 130, 246, 0.3)' }; + case 'peertube': + return { backgroundColor: 'rgba(245, 158, 11, 0.15)', color: 'rgb(252, 211, 77)', borderColor: 'rgba(245, 158, 11, 0.3)' }; + case 'rumble': + return { backgroundColor: 'rgba(22, 163, 74, 0.15)', color: 'rgb(134, 239, 172)', borderColor: 'rgba(34, 197, 94, 0.3)' }; + case 'twitch': + return { backgroundColor: 'rgba(168, 85, 247, 0.15)', color: 'rgb(216, 180, 254)', borderColor: 'rgba(168, 85, 247, 0.3)' }; + case 'odysee': + return { backgroundColor: 'rgba(236, 72, 153, 0.15)', color: 'rgb(251, 207, 232)', borderColor: 'rgba(236, 72, 153, 0.3)' }; + default: + return { backgroundColor: 'rgba(30, 41, 59, 0.8)', color: 'rgb(203, 213, 225)', borderColor: 'rgb(51, 65, 85)' }; + } } - // Title: Search ${q ? ` — “${q}”` : ''} + + // Page title with search query pageHeading = computed(() => { const q = this.q(); - return `Search ${q ? ` — “${q}”` : ''}`; + if (q) { + return `Résultats pour « ${q} »`; + } + return 'Recherche'; }); // Public computed used by the template to avoid referencing private `instances` selectedProviderForView = computed(() => this.providerParam() || this.instances.selectedProvider()); @@ -111,46 +132,19 @@ export class SearchComponent { canPrev = computed(() => (this.pageParam() || 1) > 1); - // Helper computed: filtered list based on active tag (non-Twitch only) + // Flatten all unified results into a single list of VideoItems + allVideos = computed(() => { + const g = this.groups(); + if (!g) return []; + return Object.values(g).flat(); + }); + + // Helper computed: filtered list based on active tag filteredResults = computed(() => { const tag = this.filterTag(); + const list = this.allVideos(); const provider = this.selectedProviderForView(); - // Use unified results if available - if (this.showUnified()) { - const groups = this.groups(); - const list: Video[] = []; - - // Convert unified groups to Video objects - Object.entries(groups).forEach(([providerId, items]) => { - items.forEach((item: any) => { - list.push({ - videoId: item.id, - title: item.title, - thumbnail: item.thumbnail || '', - uploaderName: item.uploaderName || 'Unknown', - uploaderAvatar: '', - views: 0, - uploaded: Date.now(), - uploadedDate: new Date().toISOString(), - duration: 0, - url: item.url || '', - type: 'video', - provider: providerId as 'youtube'|'dailymotion'|'twitch'|'rumble'|'odysee'|'peertube' - }); - }); - }); - - // Apply tag filtering to unified results - if (provider === 'twitch') return list; // Not used for Twitch (separate sections) - if (tag === 'all') return list; - - // For now, return all results since we don't have duration/uploaded info from unified search - return list; - } - - // Fallback to legacy results - const list = this.results(); if (provider === 'twitch') return list; // Not used for Twitch (separate sections) if (tag === 'all') return list; @@ -162,84 +156,76 @@ export class SearchComponent { // Duration filters if (tag === 'short') return list.filter(v => { - const d = Number(v.duration || 0); + const d = Number(v.durationSec || 0); return d > 0 && d < 4 * 60; }); if (tag === 'medium') return list.filter(v => { - const d = Number(v.duration || 0); + const d = Number(v.durationSec || 0); return d >= 4 * 60 && d < 20 * 60; }); if (tag === 'long') return list.filter(v => { - const d = Number(v.duration || 0); + const d = Number(v.durationSec || 0); return d >= 20 * 60; }); // Date filters if (tag === 'today') return list.filter(v => { - const uploadTime = typeof v.uploaded === 'number' ? v.uploaded : 0; + const uploadTime = v.publishedAt ? new Date(v.publishedAt).getTime() : 0; return uploadTime > 0 && (now - uploadTime) <= oneDay; }); if (tag === 'this_week') return list.filter(v => { - const uploadTime = typeof v.uploaded === 'number' ? v.uploaded : 0; + const uploadTime = v.publishedAt ? new Date(v.publishedAt).getTime() : 0; return uploadTime > 0 && (now - uploadTime) <= sevenDays; }); if (tag === 'this_month') return list.filter(v => { - const uploadTime = typeof v.uploaded === 'number' ? v.uploaded : 0; + const uploadTime = v.publishedAt ? new Date(v.publishedAt).getTime() : 0; return uploadTime > 0 && (now - uploadTime) <= thirtyDays; }); if (tag === 'this_year') return list.filter(v => { - const uploadTime = typeof v.uploaded === 'number' ? v.uploaded : 0; + const uploadTime = v.publishedAt ? new Date(v.publishedAt).getTime() : 0; return uploadTime > 0 && (now - uploadTime) <= oneYear; }); return list; }); + // Filter each provider group separately for sectioned rendering + filteredGroups = computed(() => { + const tag = this.filterTag(); + const g = this.groups(); + const result: Record = {}; + const now = Date.now(); + const oneDay = 24 * 60 * 60 * 1000; + const sevenDays = 7 * oneDay; + const thirtyDays = 30 * oneDay; + const oneYear = 365 * oneDay; + + const applyFilter = (list: any[]): any[] => { + if (tag === 'all' || this.selectedProviderForView() === 'twitch') return list; + if (tag === 'short') return list.filter(v => { const d = Number(v.durationSec || 0); return d > 0 && d < 4 * 60; }); + if (tag === 'medium') return list.filter(v => { const d = Number(v.durationSec || 0); return d >= 4 * 60 && d < 20 * 60; }); + if (tag === 'long') return list.filter(v => { const d = Number(v.durationSec || 0); return d >= 20 * 60; }); + if (tag === 'today') return list.filter(v => { const t = v.publishedAt ? new Date(v.publishedAt).getTime() : 0; return t > 0 && (now - t) <= oneDay; }); + if (tag === 'this_week') return list.filter(v => { const t = v.publishedAt ? new Date(v.publishedAt).getTime() : 0; return t > 0 && (now - t) <= sevenDays; }); + if (tag === 'this_month') return list.filter(v => { const t = v.publishedAt ? new Date(v.publishedAt).getTime() : 0; return t > 0 && (now - t) <= thirtyDays; }); + if (tag === 'this_year') return list.filter(v => { const t = v.publishedAt ? new Date(v.publishedAt).getTime() : 0; return t > 0 && (now - t) <= oneYear; }); + return list; + }; + + Object.entries(g || {}).forEach(([pid, list]) => { + result[pid] = Array.isArray(list) ? applyFilter(list) : []; + }); + return result; + }); + // Available tags computed from current results (only show tags that can apply) availableTags = computed(() => { - const provider = this.selectedProviderForView(); + const list = this.allVideos(); + if (list.length === 0) return []; + const tags: { key: string; label: string; show: boolean }[] = []; const now = Date.now(); - // Use unified results if available - const list = this.showUnified() ? - (() => { - const groups = this.groups(); - const results: Video[] = []; - Object.entries(groups).forEach(([_, items]) => { - items.forEach((item: any) => { - results.push({ - videoId: item.id, - title: item.title, - thumbnail: item.thumbnail || '', - uploaderName: item.uploaderName || 'Unknown', - uploaderAvatar: '', - views: 0, - uploaded: Date.now(), - uploadedDate: new Date().toISOString(), - duration: 0, - url: item.url || '', - type: 'video', - provider: 'youtube' as any - }); - }); - }); - return results; - })() : - this.results(); - - if (provider === 'twitch') { - const hasLive = this.twitchChannels().length > 0; - const hasVods = this.twitchVods().length > 0; - // Show the group if at least one of the sections is available - if (hasLive || hasVods) { - tags.push({ key: 'twitch_all', label: 'Tout', show: hasLive && hasVods }); - tags.push({ key: 'twitch_live', label: 'En direct', show: hasLive }); - tags.push({ key: 'twitch_vod', label: 'VOD', show: hasVods }); - } - return tags.filter(t => t.show); - } - // Non-Twitch providers: duration + date filters const oneDay = 24 * 60 * 60 * 1000; const sevenDays = 7 * oneDay; @@ -250,8 +236,8 @@ export class SearchComponent { hasToday = false, hasThisWeek = false, hasThisMonth = false, hasThisYear = false; for (const v of list) { - const d = Number(v.duration || 0); - const uploadTime = typeof v.uploaded === 'number' ? v.uploaded : 0; + const d = Number(v.durationSec || 0); + const uploadTime = v.publishedAt ? new Date(v.publishedAt).getTime() : 0; const timeDiff = now - uploadTime; // Duration filters @@ -290,21 +276,32 @@ export class SearchComponent { }); // Subscribe once to unified multi-provider results and reflect to UI - this.unified.request$.pipe(takeUntilDestroyed()).subscribe({ - next: (resp: SearchResponse) => { - this.groups.set(resp.groups as any); - this.loading.set(false); - this.error.set(null); - }, - error: () => { - this.groups.set({} as any); - this.loading.set(false); - this.error.set('Le service de recherche est temporairement indisponible. Réessayer.'); - } - }); + const subscription: Subscription = this.unified.request$ + .pipe(takeUntilDestroyed()) + .subscribe({ + next: (resp: any) => { + // Convertir la réponse en un format compatible avec notre modèle + const groups: Record = {}; + if (resp.groups) { + Object.entries(resp.groups).forEach(([key, value]) => { + groups[key] = Array.isArray(value) ? value : []; + }); + } + this.groups.set(groups); + this.loading.set(false); + this.error.set(null); + }, + error: () => { + this.groups.set({} as any); + this.loading.set(false); + this.error.set('Le service de recherche est temporairement indisponible. Réessayer.'); + } + }); // Listen to query param changes (so subsequent searches update) - this.route.queryParamMap.pipe(takeUntilDestroyed()).subscribe((pm) => { + const paramSubscription: Subscription = this.route.queryParamMap + .pipe(takeUntilDestroyed()) + .subscribe((pm: ParamMap) => { const q = (pm.get('q') || '').trim(); this.q.set(q); const prov = (pm.get('provider') as Provider) || (pm.get('p') as Provider) || null; @@ -361,8 +358,6 @@ export class SearchComponent { this.groups.set({} as any); // Clear previous results this.error.set(null); } else { - this.results.set([]); - this.nextCursor.set(null); this.loading.set(false); this.groups.set({} as any); this.showUnified.set(false); @@ -370,139 +365,8 @@ export class SearchComponent { } }); - // React to provider/region/PeerTube instance changes to refresh search automatically - effect(() => { - const provider = this.instances.selectedProvider(); - const region = this.instances.region(); - const ptInstance = this.instances.activePeerTubeInstance(); - - untracked(() => { - // If provider is explicitly specified in query, do not override it with global changes - if (this.providerParam()) return; - if (!this.q()) return; - this.notice.set(null); - // If unified mode is active, re-emit providers to trigger a refresh instead of legacy reload - if (this.showUnified()) { - const provParam = this.providersListParam(); - const provider = this.instances.selectedProvider(); - const providersToUse = (provParam && (provParam === 'all' || (Array.isArray(provParam) && provParam.length > 0))) - ? (provParam as any) - : [provider as unknown as ProviderId]; - this.unified.setProviders(providersToUse); - this.loading.set(true); - } else { - this.reloadSearch(); - } - }); - }, { allowSignalWrites: true }); } - reloadSearch() { - const readiness = this.instances.getProviderReadiness(this.providerParam() || undefined as any); - if (!readiness.ready) { - this.notice.set(readiness.reason || 'Le provider sélectionné n\'est pas prêt.'); - this.results.set([]); - this.nextCursor.set(null); - this.twitchChannels.set([]); - this.twitchVods.set([]); - this.twitchCursorChannels.set(null); - this.twitchCursorVods.set(null); - this.loading.set(false); - return; - } - this.loading.set(true); - this.results.set([]); - this.nextCursor.set(null); - this.twitchChannels.set([]); - this.twitchVods.set([]); - this.twitchCursorChannels.set(null); - this.twitchCursorVods.set(null); - const provider = this.providerParam() || this.instances.selectedProvider(); - // Record search term with provider once per reload - try { - this.history.recordSearch(this.q(), { provider }).subscribe({ - next: () => {}, - error: (err) => console.error('Error recording search:', err) - }); - } catch (err) { - console.error('Error in recordSearch:', err); - } - // Ensure default tag matches provider - this.filterTag.set(provider === 'twitch' ? 'twitch_all' : 'all'); - if (provider === 'twitch') { - // Load both sections in parallel - this.twitchBusyChannels.set(true); - this.twitchBusyVods.set(true); - this.api.searchTwitchChannelsPage(this.q(), null).subscribe(res => { - this.twitchChannels.set(res.items); - this.twitchCursorChannels.set(res.nextCursor || null); - this.twitchBusyChannels.set(false); - this.loading.set(false); - }); - this.api.searchTwitchVodsPage(this.q(), null).subscribe(res => { - this.twitchVods.set(res.items); - this.twitchCursorVods.set(res.nextCursor || null); - this.twitchBusyVods.set(false); - this.loading.set(false); - }); - } else { - this.fetchNextPage(); - } - } - - fetchNextPage() { - if (this.busyMore() || !this.q()) return; - const readiness = this.instances.getProviderReadiness(this.providerParam() || undefined as any); - if (!readiness.ready) { - if (!this.notice()) this.notice.set(readiness.reason || 'Le provider sélectionné n\'est pas prêt.'); - return; - } - this.busyMore.set(true); - const providerOverride = this.providerParam(); - this.api.searchVideosPage(this.q(), this.nextCursor(), providerOverride as any).subscribe(res => { - const merged = [...this.results(), ...res.items]; - this.results.set(merged); - this.nextCursor.set(res.nextCursor || null); - this.busyMore.set(false); - this.loading.set(false); - // Provider/instance availability notices (avoid overriding legitimate no-results unless clear) - if (merged.length === 0 && !this.notice()) { - const readiness2 = this.instances.getProviderReadiness(); - if (!readiness2.ready) { - this.notice.set(readiness2.reason || 'Le provider sélectionné n\'est pas prêt.'); - } else { - const provider = this.providerParam() || this.instances.selectedProvider(); - if (provider === 'peertube') { - const inst = this.instances.activePeerTubeInstance(); - this.notice.set(`PeerTube: les vidéos ne sont pas disponibles depuis l'instance "${inst}" pour le moment. Essayez une autre instance dans l'en-tête.`); - } else if (provider === 'rumble') { - const label = this.instances.selectedProviderLabel(); - this.notice.set(`Les vidéos ne sont pas disponibles pour le provider "${label}" pour le moment. Réessayez plus tard ou choisissez un autre provider.`); - } - } - } - }); - } - - loadMoreTwitchChannels() { - if (this.twitchBusyChannels() || !this.twitchCursorChannels()) return; - this.twitchBusyChannels.set(true); - this.api.searchTwitchChannelsPage(this.q(), this.twitchCursorChannels()).subscribe(res => { - this.twitchChannels.set([...this.twitchChannels(), ...res.items]); - this.twitchCursorChannels.set(res.nextCursor || null); - this.twitchBusyChannels.set(false); - }); - } - - loadMoreTwitchVods() { - if (this.twitchBusyVods() || !this.twitchCursorVods()) return; - this.twitchBusyVods.set(true); - this.api.searchTwitchVodsPage(this.q(), this.twitchCursorVods()).subscribe(res => { - this.twitchVods.set([...this.twitchVods(), ...res.items]); - this.twitchCursorVods.set(res.nextCursor || null); - this.twitchBusyVods.set(false); - }); - } formatViews(views: number): string { if (views >= 1_000_000_000) return (views / 1_000_000_000).toFixed(1) + 'B'; @@ -516,40 +380,56 @@ export class SearchComponent { return formatRelativeFr(dateIso); } - // Build query params for Watch page (provider + optional odysee slug) - watchQueryParams(v: Video): Record | null { - const p = this.providerParam() || this.instances.selectedProvider(); - const qp: any = { p }; - if (p === 'odysee' && v.url?.startsWith('https://odysee.com/')) { - let slug = v.url.substring('https://odysee.com/'.length); - if (slug.startsWith('/')) slug = slug.slice(1); - qp.slug = slug; + + // Méthode utilitaire pour nettoyer les paramètres de l'URL + private cleanUrlParams(params: any): any { + const cleanParams = { ...params }; + // Supprimer explicitement le paramètre theme + if ('theme' in cleanParams) { + delete cleanParams.theme; } - if (p === 'twitch' && v.type === 'channel') { - // Extract channel login from uploaderUrl if available - const url = v.uploaderUrl || v.url || ''; - try { - const u = new URL(url); - const parts = u.pathname.split('/').filter(Boolean); - if (parts.length > 0) qp.channel = parts[0]; - } catch {} - } - return qp; + // Nettoyer les valeurs null/undefined + Object.keys(cleanParams).forEach(key => { + if (cleanParams[key] === null || cleanParams[key] === undefined) { + delete cleanParams[key]; + } + }); + return cleanParams; } // Submit handler from the embedded SearchBox: keep URL as source of truth onSearchBarSubmit(evt: { q: string; providers: ProviderId[] | 'all' }) { const q = (evt?.q || '').trim(); if (!q) return; - const provider = this.providerParam() || this.instances.selectedProvider(); - const qp: any = { q, p: provider, provider: null }; - if (Array.isArray(evt.providers)) qp.providers = evt.providers.join(','); - else if (evt.providers === 'all') qp.providers = 'yt,dm,tw,pt,od,ru'; - qp.page = 1; // reset pagination on new search - this.router.navigate([], { relativeTo: this.route, queryParams: qp, queryParamsHandling: 'merge' }); + + // Créer un nouvel objet de paramètres de requête + const queryParams: any = { + q, + p: this.providerParam() || this.instances.selectedProvider(), + page: 1 // reset pagination on new search + }; + + // Gérer les fournisseurs + if (Array.isArray(evt.providers)) { + queryParams.providers = evt.providers.join(','); + } else if (evt.providers === 'all') { + queryParams.providers = 'yt,dm,tw,pt,od,ru'; + } + + // Nettoyer les paramètres avant la navigation + const cleanParams = this.cleanUrlParams(queryParams); + + // Utiliser replaceUrl: true pour éviter d'ajouter une entrée dans l'historique + // et forcer le rechargement avec les nouveaux paramètres + this.router.navigate([], { + relativeTo: this.route, + queryParams: cleanParams, + queryParamsHandling: '', + replaceUrl: true + }); } - @ViewChild('searchInput') searchInput?: ElementRef; + @ViewChild('searchInput', { static: false }) searchInput?: ElementRef; // Legacy input handlers removed; SearchBox handles keyboard and submit @@ -574,18 +454,47 @@ export class SearchComponent { // Pagination controls nextPage() { const next = (this.pageParam() || 1) + 1; - this.router.navigate([], { relativeTo: this.route, queryParams: { page: next }, queryParamsHandling: 'merge' }); + const cleanParams = this.cleanUrlParams({ + ...this.route.snapshot.queryParams, + page: next + }); + this.router.navigate([], { + relativeTo: this.route, + queryParams: cleanParams, + queryParamsHandling: '', + replaceUrl: true + }); } + prevPage() { const prev = Math.max(1, (this.pageParam() || 1) - 1); - this.router.navigate([], { relativeTo: this.route, queryParams: { page: prev }, queryParamsHandling: 'merge' }); + const cleanParams = this.cleanUrlParams({ + ...this.route.snapshot.queryParams, + page: prev + }); + this.router.navigate([], { + relativeTo: this.route, + queryParams: cleanParams, + queryParamsHandling: '', + replaceUrl: true + }); } // Sort control onSortChange(event: Event) { const value = (event.target as HTMLSelectElement)?.value as 'relevance' | 'date' | 'views' | ''; const sort = (value === 'date' || value === 'views') ? value : 'relevance'; - this.router.navigate([], { relativeTo: this.route, queryParams: { sort, page: 1 }, queryParamsHandling: 'merge' }); + const cleanParams = this.cleanUrlParams({ + ...this.route.snapshot.queryParams, + sort, + page: 1 + }); + this.router.navigate([], { + relativeTo: this.route, + queryParams: cleanParams, + queryParamsHandling: '', + replaceUrl: true + }); } // CTA handler: navigate to focus on a single provider while preserving q @@ -593,6 +502,12 @@ export class SearchComponent { const q = (this.q() || '').trim(); const qp: any = { provider: p, p, providers: p, page: 1 }; if (q) qp.q = q; - this.router.navigate([], { relativeTo: this.route, queryParams: qp, queryParamsHandling: 'merge' }); + const cleanParams = this.cleanUrlParams(qp); + this.router.navigate([], { + relativeTo: this.route, + queryParams: cleanParams, + queryParamsHandling: '', + replaceUrl: true + }); } } diff --git a/src/components/themes/themes-nav.component.html.bak b/src/components/themes/themes-nav.component.html.bak deleted file mode 100644 index 57aa1ce..0000000 --- a/src/components/themes/themes-nav.component.html.bak +++ /dev/null @@ -1,50 +0,0 @@ - diff --git a/src/services/youtube-api.service.ts b/src/services/youtube-api.service.ts index 95f50c5..f097a16 100644 --- a/src/services/youtube-api.service.ts +++ b/src/services/youtube-api.service.ts @@ -379,7 +379,7 @@ export class YoutubeApiService { // search.list only supports 'snippet' part: 'snippet', // Optimize for quota usage: reduce initial results - maxResults: '12', + maxResults: '25', q: String(query), regionCode: String(region), // Add safeSearch for better content filtering