iptdevs-design-system 3.1.550 → 3.1.552

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,10 +3,11 @@ import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/common";
4
4
  import * as i2 from "primeng/panel";
5
5
  import * as i3 from "primeng/api";
6
- import * as i4 from "../../atoms/loader/loader.component";
7
- import * as i5 from "../../../core/pipes/course-pipes/schedule-form.pipe";
8
- import * as i6 from "../../../core/pipes/course-pipes/time-form.pipe";
9
- import * as i7 from "../../../core/pipes/course-pipes/type-level.pipe";
6
+ import * as i4 from "primeng/skeleton";
7
+ import * as i5 from "../../atoms/loader/loader.component";
8
+ import * as i6 from "../../../core/pipes/course-pipes/schedule-form.pipe";
9
+ import * as i7 from "../../../core/pipes/course-pipes/time-form.pipe";
10
+ import * as i8 from "../../../core/pipes/course-pipes/type-level.pipe";
10
11
  export class CardCourseComponent {
11
12
  constructor() {
12
13
  this.isLoading = true;
@@ -17,6 +18,7 @@ export class CardCourseComponent {
17
18
  this.visibleAcademy = false;
18
19
  this.visibleKids = false;
19
20
  this.visibleSchools = false;
21
+ this.skeleton = [{}, {}];
20
22
  }
21
23
  ngOnInit() {
22
24
  if (this.CourseData.length == 0) {
@@ -79,10 +81,10 @@ export class CardCourseComponent {
79
81
  }
80
82
  }
81
83
  CardCourseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CardCourseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
82
- CardCourseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CardCourseComponent, selector: "ipt-card-course-self-cod-managed", inputs: { CourseData: "CourseData", isLoading: "isLoading" }, outputs: { codeCourse: "codeCourse" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"main-container\">\n\n <!-- cards Academy -->\n\n <p-panel\n *ngIf=\"visibleAcademy\"\n header=\"Plan Academy\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"academic_plan\"\n class=\"academic_plan\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main *ngIf=\"!isLoading\" class=\"flex flex-col\">\n <section *ngFor=\"let course of courseAcademy\" class=\"card1 animate__animated\" (click)=\"viewDataCourse(course)\">\n <h3 class=\"card1__title__academic\">{{ course.course_type.label }}</h3>\n <p class=\"card1__content\">\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ course.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ course.course_schedule | scheduleTimeFormat }}<br>\n <!-- <strong class=\"type-theory\">Theory Teacher: </strong>{{ course.teacher | titlecase }}<br> -->\n <!-- <strong class=\"type-theory\">Theory Classroom: </strong><span>{{ course.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <!-- <strong class=\"type-club\">Club Teacher: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.teacher | titlecase }}</span><br> -->\n <!-- <strong class=\"type-club\">Club Classroom: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <!-- <strong><hr></strong> -->\n <strong *ngIf=\"course.start_date === null\">Posible inicio: </strong>{{ course.start_date === null ? course.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.start_date === null\">\n <strong *ngIf=\"course.start_date !== null\">Fecha Inicio: </strong>{{ course.start_date !== null ? course.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <strong *ngIf=\"course.finish_date !== null\">Fecha culminacion: </strong>{{ course.finish_date !== null ? course.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <!-- <strong>Created: </strong>{{ course.created_at | date:'dd/MM/yyyy' }}<br> -->\n </p>\n <div class=\"card1__date\">\n <!-- <span\n [ngClass]=\"course.status?.color_status\"\n ></span> -->\n <!-- <span class=\"course-code\">Code: {{course.code}}</span> -->\n </div>\n <div class=\"card1__arrow\" [ngClass]=\"getCssClass(course.english_level.name)\">\n <span>{{ course.english_level.name | typeLevel}}</span>\n </div>\n </section>\n </main>\n <ipt-loader *ngIf=\"isLoading\"></ipt-loader>\n </p-panel>\n\n <!-- cards Kids -->\n\n <p-panel\n *ngIf=\"visibleKids\"\n header=\"Plan Kids\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"social_kids\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main *ngIf=\"!isLoading\" class=\"flex flex-col\">\n <section *ngFor=\"let course of courseKids\" class=\"card1 animate__animated\" (click)=\"viewDataCourse(course)\">\n <h3 class=\"card1__title__kids\">{{ course.course_type.label }}</h3>\n <p class=\"card1__content\">\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ course.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ course.course_schedule | scheduleTimeFormat }}<br>\n <!-- <strong class=\"type-theory\">Theory Teacher: </strong>{{ course.teacher | titlecase }}<br>\n <strong class=\"type-theory\">Theory Classroom: </strong><span>{{ course.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <!-- <strong class=\"type-club\">Club Teacher: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.teacher | titlecase }}</span><br> -->\n <!-- <strong class=\"type-club\">Club Classroom: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <!-- <strong><hr></strong> -->\n <strong *ngIf=\"course.start_date === null\">Posible inicio: </strong>{{ course.start_date === null ? course.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.start_date === null\">\n <strong *ngIf=\"course.start_date !== null\">Fecha Inicio: </strong>{{ course.start_date !== null ? course.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <strong *ngIf=\"course.finish_date !== null\">Fecha culminacion: </strong>{{ course.finish_date !== null ? course.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <!-- <strong>Created: </strong>{{ course.created_at | date:'dd/MM/yyyy' }}<br> -->\n </p>\n <div class=\"card1__date\">\n <!-- <span\n [ngClass]=\"course.status?.color_status\"\n ></span> -->\n <!-- <span class=\"course-code\">Code: {{course.code}}</span> -->\n </div>\n <div class=\"card1__arrow\" [ngClass]=\"getCssClass(course.english_level.name)\">\n <span>{{ course.english_level.name | typeLevel}}</span>\n </div>\n </section>\n </main>\n <ipt-loader *ngIf=\"isLoading\"></ipt-loader>\n </p-panel>\n\n <!-- cards Schools -->\n\n <p-panel\n *ngIf=\"visibleSchools\"\n header=\"Plan Schools\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"social_school\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main *ngIf=\"!isLoading\" class=\"flex flex-col\">\n <section *ngFor=\"let course of courseSchools\" class=\"card1 animate__animated\" (click)=\"viewDataCourse(course)\">\n <h3 class=\"card1__title__schools\">{{ course.course_type.label }}</h3>\n <p class=\"card1__content\">\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ course.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ course.course_schedule | scheduleTimeFormat }}<br>\n <!-- <strong class=\"type-theory\">Theory Teacher: </strong>{{ course.teacher | titlecase }}<br>\n <strong class=\"type-theory\">Theory Classroom: </strong><span>{{ course.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <!-- <strong class=\"type-club\">Club Teacher: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.teacher | titlecase }}</span><br>\n <strong class=\"type-club\">Club Classroom: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <!-- <strong><hr></strong> -->\n <strong *ngIf=\"course.start_date === null\">Posible inicio: </strong>{{ course.start_date === null ? course.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.start_date === null\">\n <strong *ngIf=\"course.start_date !== null\">Fecha Inicio: </strong>{{ course.start_date !== null ? course.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <strong *ngIf=\"course.finish_date !== null\">Fecha culminacion: </strong>{{ course.finish_date !== null ? course.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <!-- <strong>Created: </strong>{{ course.created_at | date:'dd/MM/yyyy' }}<br> -->\n </p>\n <div class=\"card1__date\">\n <!-- <span\n [ngClass]=\"course.status?.color_status\"\n ></span> -->\n <!-- <span class=\"course-code\">Code: {{course.code}}</span> -->\n </div>\n <div class=\"card1__arrow\" [ngClass]=\"getCssClass(course.english_level.name)\">\n <span>{{ course.english_level.name | typeLevel}}</span>\n </div>\n </section>\n </main>\n <ipt-loader *ngIf=\"isLoading\"></ipt-loader>\n </p-panel>\n\n </div>\n\n\n", styles: ["main{display:flex;gap:.7rem;flex-wrap:wrap}.card1{--border-radius: 6px;--primary-color: #1c77f7;--secondary-color: #2c2c2c;--tertiary-color: #ffffff;width:340px;font-family:Poppins,sans-serif;cursor:pointer;border-radius:var(--border-radius);background:#f1f1f3;box-shadow:0 8px 16px #00000008;position:relative;transition:.3s;border:solid .5px #e0e0e0}.type-theory{color:#00aecc}.type-club{color:#0d9d36}.msg-two-coup{color:#000!important;padding-left:7px;padding-right:7px;border-radius:5px;background-color:#4ed1e9}.msg-two-lev{color:#000!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#fb8f42}.beginner{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#94b9aa}.levelAone{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#c4291c}.levelAonetwo{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#418ed1}.levelAtwo{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#4fad65}.levelBone{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#6824b8}.levelBtwo{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#06161e}.levelBplus{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#cc6529}.main-container{margin-top:1%}.course-code{font-size:12px;font-weight:400;margin-left:.5rem}.card1:hover{box-shadow:#0000003d 0 3px 8px}.card1>*+*{margin-top:.7em}.card1 .card1__content{padding-left:10px;color:var(--secondary-color);font-size:.86rem;font-weight:200;z-index:1;position:relative}strong{color:var(--secondary-color);font-weight:300}:host ::ng-deep .p-panel .p-panel-header .p-panel-header-icon{color:#fff!important}.card1 .card1__title__academic{color:#fff;padding-left:10px;padding-right:10px;font-size:1.1rem;font-weight:300;z-index:1;position:relative;background:rgb(4,18,106);background:linear-gradient(175deg,rgba(4,18,106,1) 27%,rgba(48,63,155,1) 53%,rgba(28,119,247,1)90%);border-radius:6px 6px 0 0}:host ::ng-deep #academic_plan .p-panel .p-panel-header{color:#fff!important;background:rgb(4,18,106);background:linear-gradient(175deg,rgba(4,18,106,1) 27%,rgba(48,63,155,1) 53%,rgba(28,119,247,1)90%);border-radius:6px 6px 0 0}.card1 .card1__title__kids{color:#fff;padding-left:10px;padding-right:10px;font-size:1.1rem;font-weight:300;z-index:1;position:relative;background:rgb(127,33,99);background:linear-gradient(175deg,rgba(127,33,99,1) 27%,rgba(171,49,135,1) 53%,rgba(220,76,178,1) 90%);border-radius:6px 6px 0 0}:host ::ng-deep #social_kids .p-panel .p-panel-header{color:#fff!important;background:rgb(127,33,99);background:linear-gradient(175deg,rgba(127,33,99,1) 27%,rgba(171,49,135,1) 53%,rgba(220,76,178,1) 90%);border-radius:6px 6px 0 0}.card1 .card1__title__schools{color:#fff;padding-left:10px;padding-right:10px;font-size:1.1rem;font-weight:300;z-index:1;position:relative;background:rgb(57,130,154);background:linear-gradient(175deg,rgba(57,130,154,1) 27%,rgba(44,147,180,1) 53%,rgba(135,182,197,1) 90%);border-radius:6px 6px 0 0}:host ::ng-deep #social_school .p-panel .p-panel-header{color:#fff!important;background:rgb(57,130,154);background:linear-gradient(175deg,rgba(57,130,154,1) 27%,rgba(44,147,180,1) 53%,rgba(135,182,197,1) 90%);border-radius:6px 6px 0 0}.card1 .card1__date{color:#807c7c;padding-left:10px;font-size:.4rem;z-index:1;position:relative;margin-bottom:2%;margin-top:.7rem}.card1 .card1__arrow{padding-left:10px;position:absolute;padding:.1rem;border-top-left-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius);bottom:0;right:0;transition:.2s;display:flex;justify-content:center;align-items:center;width:50px}.card1 svg{transition:.2s}.card1:hover .card1__title{color:var(--secondary-color)}.card1:hover .card1__arrow{background:rgb(170,41,170)}.card1:hover .card1__arrow svg{transform:translate(3px)}.card1:hover strong{color:#aa29aa;font-weight:400}.card1:hover .course-code{color:#aa29aa;font-weight:500}.image-container{display:flex;border-radius:6px;width:250px;height:207px;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 1px 3px 1px}:host ::ng-deep .p-menubar .p-menuitem{position:relative;width:auto}.green300{height:2%;width:2%;padding-right:9px;border-radius:70%;background:#76db9b;box-shadow:-1px 0 1px 1px #000000fa;border:1px solid rgb(0 0 0 / 40%)}.red300{height:2%;width:2%;padding-right:9px;border-radius:70%;background:#e35b53;box-shadow:-1px 0 1px 1px #000000fa;border:1px solid rgb(0 0 0 / 40%)}.gray300{height:2%;width:2%;padding-right:9px;border-radius:70%;color:#9e9a99;background-color:#9e9a99;box-shadow:-1px 0 1px 1px #000000fa;border:1px solid rgb(0 0 0 / 40%)}label{border-radius:50%}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.Panel, selector: "p-panel", inputs: ["toggleable", "header", "collapsed", "style", "styleClass", "iconPos", "expandIcon", "collapseIcon", "showHeader", "toggler", "transitionOptions"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4.LoaderComponent, selector: "ipt-loader", inputs: ["message", "isDialog"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: i5.ScheduleFormatPipe, name: "scheduleFormat" }, { kind: "pipe", type: i6.ScheduleTimeFormatPipe, name: "scheduleTimeFormat" }, { kind: "pipe", type: i7.TypeLevelPipe, name: "typeLevel" }] });
84
+ CardCourseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CardCourseComponent, selector: "ipt-card-course-self-cod-managed", inputs: { CourseData: "CourseData", isLoading: "isLoading" }, outputs: { codeCourse: "codeCourse" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"!isLoading\" class=\"main-container\">\n\n <!-- cards Academy -->\n <div class=\"container__span-header\" *ngIf=\"visibleAcademy || visibleKids || visibleSchools\">\n <span>Selecciona un Plan</span>\n </div>\n\n <p-panel\n *ngIf=\"visibleAcademy\"\n header=\"Plan Academy\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"academic_plan\"\n class=\"academic_plan\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main *ngIf=\"!isLoading\" class=\"flex flex-col\">\n <section *ngFor=\"let course of courseAcademy\" class=\"card1 animate__animated\" (click)=\"viewDataCourse(course)\">\n <h3 class=\"card1__title__academic\">{{ course.course_type.label }}</h3>\n <p class=\"card1__content\">\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ course.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ course.course_schedule | scheduleTimeFormat }}<br>\n <!-- <strong class=\"type-theory\">Theory Teacher: </strong>{{ course.teacher | titlecase }}<br> -->\n <!-- <strong class=\"type-theory\">Theory Classroom: </strong><span>{{ course.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <!-- <strong class=\"type-club\">Club Teacher: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.teacher | titlecase }}</span><br> -->\n <!-- <strong class=\"type-club\">Club Classroom: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <!-- <strong><hr></strong> -->\n <strong *ngIf=\"course.start_date === null\">Posible inicio: </strong>{{ course.start_date === null ? course.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.start_date === null\">\n <strong *ngIf=\"course.start_date !== null\">Fecha Inicio: </strong>{{ course.start_date !== null ? course.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <strong *ngIf=\"course.finish_date !== null\">Fecha culminacion: </strong>{{ course.finish_date !== null ? course.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <!-- <strong>Created: </strong>{{ course.created_at | date:'dd/MM/yyyy' }}<br> -->\n </p>\n <div class=\"card1__date\">\n <!-- <span\n [ngClass]=\"course.status?.color_status\"\n ></span> -->\n <!-- <span class=\"course-code\">Code: {{course.code}}</span> -->\n </div>\n <div class=\"card1__arrow\" [ngClass]=\"getCssClass(course.english_level.name)\">\n <span>{{ course.english_level.name | typeLevel}}</span>\n </div>\n </section>\n </main>\n <ipt-loader *ngIf=\"isLoading\"></ipt-loader>\n </p-panel>\n\n <!-- cards Kids -->\n\n <p-panel\n *ngIf=\"visibleKids\"\n header=\"Plan Kids\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"social_kids\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main *ngIf=\"!isLoading\" class=\"flex flex-col\">\n <section *ngFor=\"let course of courseKids\" class=\"card1 animate__animated\" (click)=\"viewDataCourse(course)\">\n <h3 class=\"card1__title__kids\">{{ course.course_type.label }}</h3>\n <p class=\"card1__content\">\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ course.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ course.course_schedule | scheduleTimeFormat }}<br>\n <!-- <strong class=\"type-theory\">Theory Teacher: </strong>{{ course.teacher | titlecase }}<br>\n <strong class=\"type-theory\">Theory Classroom: </strong><span>{{ course.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <!-- <strong class=\"type-club\">Club Teacher: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.teacher | titlecase }}</span><br> -->\n <!-- <strong class=\"type-club\">Club Classroom: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <!-- <strong><hr></strong> -->\n <strong *ngIf=\"course.start_date === null\">Posible inicio: </strong>{{ course.start_date === null ? course.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.start_date === null\">\n <strong *ngIf=\"course.start_date !== null\">Fecha Inicio: </strong>{{ course.start_date !== null ? course.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <strong *ngIf=\"course.finish_date !== null\">Fecha culminacion: </strong>{{ course.finish_date !== null ? course.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <!-- <strong>Created: </strong>{{ course.created_at | date:'dd/MM/yyyy' }}<br> -->\n </p>\n <div class=\"card1__date\">\n <!-- <span\n [ngClass]=\"course.status?.color_status\"\n ></span> -->\n <!-- <span class=\"course-code\">Code: {{course.code}}</span> -->\n </div>\n <div class=\"card1__arrow\" [ngClass]=\"getCssClass(course.english_level.name)\">\n <span>{{ course.english_level.name | typeLevel}}</span>\n </div>\n </section>\n </main>\n <ipt-loader *ngIf=\"isLoading\"></ipt-loader>\n </p-panel>\n\n <!-- cards Schools -->\n\n <p-panel\n *ngIf=\"visibleSchools\"\n header=\"Plan Schools\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"social_school\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main *ngIf=\"!isLoading\" class=\"flex flex-col\">\n <section *ngFor=\"let course of courseSchools\" class=\"card1 animate__animated\" (click)=\"viewDataCourse(course)\">\n <h3 class=\"card1__title__schools\">{{ course.course_type.label }}</h3>\n <p class=\"card1__content\">\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ course.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ course.course_schedule | scheduleTimeFormat }}<br>\n <!-- <strong class=\"type-theory\">Theory Teacher: </strong>{{ course.teacher | titlecase }}<br>\n <strong class=\"type-theory\">Theory Classroom: </strong><span>{{ course.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <!-- <strong class=\"type-club\">Club Teacher: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.teacher | titlecase }}</span><br>\n <strong class=\"type-club\">Club Classroom: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <!-- <strong><hr></strong> -->\n <strong *ngIf=\"course.start_date === null\">Posible inicio: </strong>{{ course.start_date === null ? course.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.start_date === null\">\n <strong *ngIf=\"course.start_date !== null\">Fecha Inicio: </strong>{{ course.start_date !== null ? course.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <strong *ngIf=\"course.finish_date !== null\">Fecha culminacion: </strong>{{ course.finish_date !== null ? course.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <!-- <strong>Created: </strong>{{ course.created_at | date:'dd/MM/yyyy' }}<br> -->\n </p>\n <div class=\"card1__date\">\n <!-- <span\n [ngClass]=\"course.status?.color_status\"\n ></span> -->\n <!-- <span class=\"course-code\">Code: {{course.code}}</span> -->\n </div>\n <div class=\"card1__arrow\" [ngClass]=\"getCssClass(course.english_level.name)\">\n <span>{{ course.english_level.name | typeLevel}}</span>\n </div>\n </section>\n </main>\n <ipt-loader *ngIf=\"isLoading\"></ipt-loader>\n </p-panel>\n\n <div class=\"container__span-footer\" *ngIf=\"!visibleAcademy && !visibleKids && !visibleSchools\">\n <span>No se encontraron planes</span>\n </div>\n</div>\n<div *ngIf=\"!isLoading\">\n\n <p-panel\n header=\"\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main class=\"flex flex-col\">\n <section *ngFor=\"let course of skeleton\" class=\"card1 animate__animated\" >\n <p-skeleton width=\"10rem\" styleClass=\"mb-2\" ></p-skeleton>\n <p class=\"card1__content_skeleton\">\n <p-skeleton width=\"10rem\" styleClass=\"mb-2\" ></p-skeleton>\n <p-skeleton width=\"5rem\" styleClass=\"mb-2\" ></p-skeleton>\n <strong><hr></strong>\n <p-skeleton width=\"5rem\" styleClass=\"mb-2\" ></p-skeleton><br>\n <p-skeleton width=\"5rem\" styleClass=\"mb-2\" ></p-skeleton><br>\n\n </p>\n <div class=\"card1__date__skeleton\">\n\n </div>\n <div class=\"card1__arrow__skeleton\" >\n <p-skeleton width=\"5rem\" styleClass=\"mb-2\" ></p-skeleton>\n </div>\n </section>\n </main>\n </p-panel>\n\n</div>\n\n", styles: ["main{display:flex;gap:.7rem;flex-wrap:wrap}.card1{--border-radius: 6px;--primary-color: #1c77f7;--secondary-color: #2c2c2c;--tertiary-color: #ffffff;width:340px;font-family:Poppins,sans-serif;cursor:pointer;border-radius:var(--border-radius);background:#f1f1f3;box-shadow:0 8px 16px #00000008;position:relative;transition:.3s;border:solid .5px #e0e0e0}.type-theory{color:#00aecc}.type-club{color:#0d9d36}.msg-two-coup{color:#000!important;padding-left:7px;padding-right:7px;border-radius:5px;background-color:#4ed1e9}.msg-two-lev{color:#000!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#fb8f42}.beginner{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#94b9aa}.levelAone{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#c4291c}.levelAonetwo{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#418ed1}.levelAtwo{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#4fad65}.levelBone{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#6824b8}.levelBtwo{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#06161e}.levelBplus{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#cc6529}.main-container{margin-top:1%}.course-code{font-size:12px;font-weight:400;margin-left:.5rem}.card1:hover{box-shadow:#0000003d 0 3px 8px}.card1>*+*{margin-top:.7em}.card1 .card1__content{padding-left:10px;color:var(--secondary-color);font-size:.86rem;font-weight:200;z-index:1;position:relative}strong{color:var(--secondary-color);font-weight:300}:host ::ng-deep .p-panel .p-panel-header .p-panel-header-icon{color:#fff!important}.card1 .card1__title__academic{color:#fff;padding-left:10px;padding-right:10px;font-size:1.1rem;font-weight:300;z-index:1;position:relative;background:rgb(4,18,106);background:linear-gradient(175deg,rgba(4,18,106,1) 27%,rgba(48,63,155,1) 53%,rgba(28,119,247,1)90%);border-radius:6px 6px 0 0}:host ::ng-deep #academic_plan .p-panel .p-panel-header{color:#fff!important;background:rgb(4,18,106);background:linear-gradient(175deg,rgba(4,18,106,1) 27%,rgba(48,63,155,1) 53%,rgba(28,119,247,1)90%);border-radius:6px 6px 0 0}.card1 .card1__title__kids{color:#fff;padding-left:10px;padding-right:10px;font-size:1.1rem;font-weight:300;z-index:1;position:relative;background:rgb(127,33,99);background:linear-gradient(175deg,rgba(127,33,99,1) 27%,rgba(171,49,135,1) 53%,rgba(220,76,178,1) 90%);border-radius:6px 6px 0 0}:host ::ng-deep #social_kids .p-panel .p-panel-header{color:#fff!important;background:rgb(127,33,99);background:linear-gradient(175deg,rgba(127,33,99,1) 27%,rgba(171,49,135,1) 53%,rgba(220,76,178,1) 90%);border-radius:6px 6px 0 0}.card1 .card1__title__schools{color:#fff;padding-left:10px;padding-right:10px;font-size:1.1rem;font-weight:300;z-index:1;position:relative;background:rgb(57,130,154);background:linear-gradient(175deg,rgba(57,130,154,1) 27%,rgba(44,147,180,1) 53%,rgba(135,182,197,1) 90%);border-radius:6px 6px 0 0}:host ::ng-deep #social_school .p-panel .p-panel-header{color:#fff!important;background:rgb(57,130,154);background:linear-gradient(175deg,rgba(57,130,154,1) 27%,rgba(44,147,180,1) 53%,rgba(135,182,197,1) 90%);border-radius:6px 6px 0 0}.card1 .card1__date{color:#807c7c;padding-left:10px;font-size:.4rem;z-index:1;position:relative;margin-bottom:2%;margin-top:.7rem}.card1 .card1__arrow{padding-left:10px;position:absolute;padding:.1rem;border-top-left-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius);bottom:0;right:0;transition:.2s;display:flex;justify-content:center;align-items:center;width:50px}.card1 svg{transition:.2s}.card1:hover .card1__title{color:var(--secondary-color)}.card1:hover .card1__arrow{background:rgb(170,41,170)}.card1:hover .card1__arrow svg{transform:translate(3px)}.card1:hover strong{color:#aa29aa;font-weight:400}.card1:hover .course-code{color:#aa29aa;font-weight:500}.image-container{display:flex;border-radius:6px;width:250px;height:207px;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 1px 3px 1px}:host ::ng-deep .p-menubar .p-menuitem{position:relative;width:auto}.green300{height:2%;width:2%;padding-right:9px;border-radius:70%;background:#76db9b;box-shadow:-1px 0 1px 1px #000000fa;border:1px solid rgb(0 0 0 / 40%)}.red300{height:2%;width:2%;padding-right:9px;border-radius:70%;background:#e35b53;box-shadow:-1px 0 1px 1px #000000fa;border:1px solid rgb(0 0 0 / 40%)}.gray300{height:2%;width:2%;padding-right:9px;border-radius:70%;color:#9e9a99;background-color:#9e9a99;box-shadow:-1px 0 1px 1px #000000fa;border:1px solid rgb(0 0 0 / 40%)}label{border-radius:50%}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.Panel, selector: "p-panel", inputs: ["toggleable", "header", "collapsed", "style", "styleClass", "iconPos", "expandIcon", "collapseIcon", "showHeader", "toggler", "transitionOptions"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "component", type: i5.LoaderComponent, selector: "ipt-loader", inputs: ["message", "isDialog"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: i6.ScheduleFormatPipe, name: "scheduleFormat" }, { kind: "pipe", type: i7.ScheduleTimeFormatPipe, name: "scheduleTimeFormat" }, { kind: "pipe", type: i8.TypeLevelPipe, name: "typeLevel" }] });
83
85
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CardCourseComponent, decorators: [{
84
86
  type: Component,
85
- args: [{ selector: 'ipt-card-course-self-cod-managed', template: "<div class=\"main-container\">\n\n <!-- cards Academy -->\n\n <p-panel\n *ngIf=\"visibleAcademy\"\n header=\"Plan Academy\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"academic_plan\"\n class=\"academic_plan\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main *ngIf=\"!isLoading\" class=\"flex flex-col\">\n <section *ngFor=\"let course of courseAcademy\" class=\"card1 animate__animated\" (click)=\"viewDataCourse(course)\">\n <h3 class=\"card1__title__academic\">{{ course.course_type.label }}</h3>\n <p class=\"card1__content\">\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ course.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ course.course_schedule | scheduleTimeFormat }}<br>\n <!-- <strong class=\"type-theory\">Theory Teacher: </strong>{{ course.teacher | titlecase }}<br> -->\n <!-- <strong class=\"type-theory\">Theory Classroom: </strong><span>{{ course.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <!-- <strong class=\"type-club\">Club Teacher: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.teacher | titlecase }}</span><br> -->\n <!-- <strong class=\"type-club\">Club Classroom: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <!-- <strong><hr></strong> -->\n <strong *ngIf=\"course.start_date === null\">Posible inicio: </strong>{{ course.start_date === null ? course.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.start_date === null\">\n <strong *ngIf=\"course.start_date !== null\">Fecha Inicio: </strong>{{ course.start_date !== null ? course.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <strong *ngIf=\"course.finish_date !== null\">Fecha culminacion: </strong>{{ course.finish_date !== null ? course.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <!-- <strong>Created: </strong>{{ course.created_at | date:'dd/MM/yyyy' }}<br> -->\n </p>\n <div class=\"card1__date\">\n <!-- <span\n [ngClass]=\"course.status?.color_status\"\n ></span> -->\n <!-- <span class=\"course-code\">Code: {{course.code}}</span> -->\n </div>\n <div class=\"card1__arrow\" [ngClass]=\"getCssClass(course.english_level.name)\">\n <span>{{ course.english_level.name | typeLevel}}</span>\n </div>\n </section>\n </main>\n <ipt-loader *ngIf=\"isLoading\"></ipt-loader>\n </p-panel>\n\n <!-- cards Kids -->\n\n <p-panel\n *ngIf=\"visibleKids\"\n header=\"Plan Kids\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"social_kids\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main *ngIf=\"!isLoading\" class=\"flex flex-col\">\n <section *ngFor=\"let course of courseKids\" class=\"card1 animate__animated\" (click)=\"viewDataCourse(course)\">\n <h3 class=\"card1__title__kids\">{{ course.course_type.label }}</h3>\n <p class=\"card1__content\">\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ course.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ course.course_schedule | scheduleTimeFormat }}<br>\n <!-- <strong class=\"type-theory\">Theory Teacher: </strong>{{ course.teacher | titlecase }}<br>\n <strong class=\"type-theory\">Theory Classroom: </strong><span>{{ course.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <!-- <strong class=\"type-club\">Club Teacher: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.teacher | titlecase }}</span><br> -->\n <!-- <strong class=\"type-club\">Club Classroom: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <!-- <strong><hr></strong> -->\n <strong *ngIf=\"course.start_date === null\">Posible inicio: </strong>{{ course.start_date === null ? course.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.start_date === null\">\n <strong *ngIf=\"course.start_date !== null\">Fecha Inicio: </strong>{{ course.start_date !== null ? course.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <strong *ngIf=\"course.finish_date !== null\">Fecha culminacion: </strong>{{ course.finish_date !== null ? course.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <!-- <strong>Created: </strong>{{ course.created_at | date:'dd/MM/yyyy' }}<br> -->\n </p>\n <div class=\"card1__date\">\n <!-- <span\n [ngClass]=\"course.status?.color_status\"\n ></span> -->\n <!-- <span class=\"course-code\">Code: {{course.code}}</span> -->\n </div>\n <div class=\"card1__arrow\" [ngClass]=\"getCssClass(course.english_level.name)\">\n <span>{{ course.english_level.name | typeLevel}}</span>\n </div>\n </section>\n </main>\n <ipt-loader *ngIf=\"isLoading\"></ipt-loader>\n </p-panel>\n\n <!-- cards Schools -->\n\n <p-panel\n *ngIf=\"visibleSchools\"\n header=\"Plan Schools\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"social_school\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main *ngIf=\"!isLoading\" class=\"flex flex-col\">\n <section *ngFor=\"let course of courseSchools\" class=\"card1 animate__animated\" (click)=\"viewDataCourse(course)\">\n <h3 class=\"card1__title__schools\">{{ course.course_type.label }}</h3>\n <p class=\"card1__content\">\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ course.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ course.course_schedule | scheduleTimeFormat }}<br>\n <!-- <strong class=\"type-theory\">Theory Teacher: </strong>{{ course.teacher | titlecase }}<br>\n <strong class=\"type-theory\">Theory Classroom: </strong><span>{{ course.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <!-- <strong class=\"type-club\">Club Teacher: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.teacher | titlecase }}</span><br>\n <strong class=\"type-club\">Club Classroom: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <!-- <strong><hr></strong> -->\n <strong *ngIf=\"course.start_date === null\">Posible inicio: </strong>{{ course.start_date === null ? course.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.start_date === null\">\n <strong *ngIf=\"course.start_date !== null\">Fecha Inicio: </strong>{{ course.start_date !== null ? course.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <strong *ngIf=\"course.finish_date !== null\">Fecha culminacion: </strong>{{ course.finish_date !== null ? course.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <!-- <strong>Created: </strong>{{ course.created_at | date:'dd/MM/yyyy' }}<br> -->\n </p>\n <div class=\"card1__date\">\n <!-- <span\n [ngClass]=\"course.status?.color_status\"\n ></span> -->\n <!-- <span class=\"course-code\">Code: {{course.code}}</span> -->\n </div>\n <div class=\"card1__arrow\" [ngClass]=\"getCssClass(course.english_level.name)\">\n <span>{{ course.english_level.name | typeLevel}}</span>\n </div>\n </section>\n </main>\n <ipt-loader *ngIf=\"isLoading\"></ipt-loader>\n </p-panel>\n\n </div>\n\n\n", styles: ["main{display:flex;gap:.7rem;flex-wrap:wrap}.card1{--border-radius: 6px;--primary-color: #1c77f7;--secondary-color: #2c2c2c;--tertiary-color: #ffffff;width:340px;font-family:Poppins,sans-serif;cursor:pointer;border-radius:var(--border-radius);background:#f1f1f3;box-shadow:0 8px 16px #00000008;position:relative;transition:.3s;border:solid .5px #e0e0e0}.type-theory{color:#00aecc}.type-club{color:#0d9d36}.msg-two-coup{color:#000!important;padding-left:7px;padding-right:7px;border-radius:5px;background-color:#4ed1e9}.msg-two-lev{color:#000!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#fb8f42}.beginner{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#94b9aa}.levelAone{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#c4291c}.levelAonetwo{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#418ed1}.levelAtwo{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#4fad65}.levelBone{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#6824b8}.levelBtwo{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#06161e}.levelBplus{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#cc6529}.main-container{margin-top:1%}.course-code{font-size:12px;font-weight:400;margin-left:.5rem}.card1:hover{box-shadow:#0000003d 0 3px 8px}.card1>*+*{margin-top:.7em}.card1 .card1__content{padding-left:10px;color:var(--secondary-color);font-size:.86rem;font-weight:200;z-index:1;position:relative}strong{color:var(--secondary-color);font-weight:300}:host ::ng-deep .p-panel .p-panel-header .p-panel-header-icon{color:#fff!important}.card1 .card1__title__academic{color:#fff;padding-left:10px;padding-right:10px;font-size:1.1rem;font-weight:300;z-index:1;position:relative;background:rgb(4,18,106);background:linear-gradient(175deg,rgba(4,18,106,1) 27%,rgba(48,63,155,1) 53%,rgba(28,119,247,1)90%);border-radius:6px 6px 0 0}:host ::ng-deep #academic_plan .p-panel .p-panel-header{color:#fff!important;background:rgb(4,18,106);background:linear-gradient(175deg,rgba(4,18,106,1) 27%,rgba(48,63,155,1) 53%,rgba(28,119,247,1)90%);border-radius:6px 6px 0 0}.card1 .card1__title__kids{color:#fff;padding-left:10px;padding-right:10px;font-size:1.1rem;font-weight:300;z-index:1;position:relative;background:rgb(127,33,99);background:linear-gradient(175deg,rgba(127,33,99,1) 27%,rgba(171,49,135,1) 53%,rgba(220,76,178,1) 90%);border-radius:6px 6px 0 0}:host ::ng-deep #social_kids .p-panel .p-panel-header{color:#fff!important;background:rgb(127,33,99);background:linear-gradient(175deg,rgba(127,33,99,1) 27%,rgba(171,49,135,1) 53%,rgba(220,76,178,1) 90%);border-radius:6px 6px 0 0}.card1 .card1__title__schools{color:#fff;padding-left:10px;padding-right:10px;font-size:1.1rem;font-weight:300;z-index:1;position:relative;background:rgb(57,130,154);background:linear-gradient(175deg,rgba(57,130,154,1) 27%,rgba(44,147,180,1) 53%,rgba(135,182,197,1) 90%);border-radius:6px 6px 0 0}:host ::ng-deep #social_school .p-panel .p-panel-header{color:#fff!important;background:rgb(57,130,154);background:linear-gradient(175deg,rgba(57,130,154,1) 27%,rgba(44,147,180,1) 53%,rgba(135,182,197,1) 90%);border-radius:6px 6px 0 0}.card1 .card1__date{color:#807c7c;padding-left:10px;font-size:.4rem;z-index:1;position:relative;margin-bottom:2%;margin-top:.7rem}.card1 .card1__arrow{padding-left:10px;position:absolute;padding:.1rem;border-top-left-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius);bottom:0;right:0;transition:.2s;display:flex;justify-content:center;align-items:center;width:50px}.card1 svg{transition:.2s}.card1:hover .card1__title{color:var(--secondary-color)}.card1:hover .card1__arrow{background:rgb(170,41,170)}.card1:hover .card1__arrow svg{transform:translate(3px)}.card1:hover strong{color:#aa29aa;font-weight:400}.card1:hover .course-code{color:#aa29aa;font-weight:500}.image-container{display:flex;border-radius:6px;width:250px;height:207px;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 1px 3px 1px}:host ::ng-deep .p-menubar .p-menuitem{position:relative;width:auto}.green300{height:2%;width:2%;padding-right:9px;border-radius:70%;background:#76db9b;box-shadow:-1px 0 1px 1px #000000fa;border:1px solid rgb(0 0 0 / 40%)}.red300{height:2%;width:2%;padding-right:9px;border-radius:70%;background:#e35b53;box-shadow:-1px 0 1px 1px #000000fa;border:1px solid rgb(0 0 0 / 40%)}.gray300{height:2%;width:2%;padding-right:9px;border-radius:70%;color:#9e9a99;background-color:#9e9a99;box-shadow:-1px 0 1px 1px #000000fa;border:1px solid rgb(0 0 0 / 40%)}label{border-radius:50%}\n"] }]
87
+ args: [{ selector: 'ipt-card-course-self-cod-managed', template: "<div *ngIf=\"!isLoading\" class=\"main-container\">\n\n <!-- cards Academy -->\n <div class=\"container__span-header\" *ngIf=\"visibleAcademy || visibleKids || visibleSchools\">\n <span>Selecciona un Plan</span>\n </div>\n\n <p-panel\n *ngIf=\"visibleAcademy\"\n header=\"Plan Academy\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"academic_plan\"\n class=\"academic_plan\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main *ngIf=\"!isLoading\" class=\"flex flex-col\">\n <section *ngFor=\"let course of courseAcademy\" class=\"card1 animate__animated\" (click)=\"viewDataCourse(course)\">\n <h3 class=\"card1__title__academic\">{{ course.course_type.label }}</h3>\n <p class=\"card1__content\">\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ course.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ course.course_schedule | scheduleTimeFormat }}<br>\n <!-- <strong class=\"type-theory\">Theory Teacher: </strong>{{ course.teacher | titlecase }}<br> -->\n <!-- <strong class=\"type-theory\">Theory Classroom: </strong><span>{{ course.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <!-- <strong class=\"type-club\">Club Teacher: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.teacher | titlecase }}</span><br> -->\n <!-- <strong class=\"type-club\">Club Classroom: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <!-- <strong><hr></strong> -->\n <strong *ngIf=\"course.start_date === null\">Posible inicio: </strong>{{ course.start_date === null ? course.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.start_date === null\">\n <strong *ngIf=\"course.start_date !== null\">Fecha Inicio: </strong>{{ course.start_date !== null ? course.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <strong *ngIf=\"course.finish_date !== null\">Fecha culminacion: </strong>{{ course.finish_date !== null ? course.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <!-- <strong>Created: </strong>{{ course.created_at | date:'dd/MM/yyyy' }}<br> -->\n </p>\n <div class=\"card1__date\">\n <!-- <span\n [ngClass]=\"course.status?.color_status\"\n ></span> -->\n <!-- <span class=\"course-code\">Code: {{course.code}}</span> -->\n </div>\n <div class=\"card1__arrow\" [ngClass]=\"getCssClass(course.english_level.name)\">\n <span>{{ course.english_level.name | typeLevel}}</span>\n </div>\n </section>\n </main>\n <ipt-loader *ngIf=\"isLoading\"></ipt-loader>\n </p-panel>\n\n <!-- cards Kids -->\n\n <p-panel\n *ngIf=\"visibleKids\"\n header=\"Plan Kids\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"social_kids\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main *ngIf=\"!isLoading\" class=\"flex flex-col\">\n <section *ngFor=\"let course of courseKids\" class=\"card1 animate__animated\" (click)=\"viewDataCourse(course)\">\n <h3 class=\"card1__title__kids\">{{ course.course_type.label }}</h3>\n <p class=\"card1__content\">\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ course.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ course.course_schedule | scheduleTimeFormat }}<br>\n <!-- <strong class=\"type-theory\">Theory Teacher: </strong>{{ course.teacher | titlecase }}<br>\n <strong class=\"type-theory\">Theory Classroom: </strong><span>{{ course.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <!-- <strong class=\"type-club\">Club Teacher: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.teacher | titlecase }}</span><br> -->\n <!-- <strong class=\"type-club\">Club Classroom: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <!-- <strong><hr></strong> -->\n <strong *ngIf=\"course.start_date === null\">Posible inicio: </strong>{{ course.start_date === null ? course.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.start_date === null\">\n <strong *ngIf=\"course.start_date !== null\">Fecha Inicio: </strong>{{ course.start_date !== null ? course.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <strong *ngIf=\"course.finish_date !== null\">Fecha culminacion: </strong>{{ course.finish_date !== null ? course.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <!-- <strong>Created: </strong>{{ course.created_at | date:'dd/MM/yyyy' }}<br> -->\n </p>\n <div class=\"card1__date\">\n <!-- <span\n [ngClass]=\"course.status?.color_status\"\n ></span> -->\n <!-- <span class=\"course-code\">Code: {{course.code}}</span> -->\n </div>\n <div class=\"card1__arrow\" [ngClass]=\"getCssClass(course.english_level.name)\">\n <span>{{ course.english_level.name | typeLevel}}</span>\n </div>\n </section>\n </main>\n <ipt-loader *ngIf=\"isLoading\"></ipt-loader>\n </p-panel>\n\n <!-- cards Schools -->\n\n <p-panel\n *ngIf=\"visibleSchools\"\n header=\"Plan Schools\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"social_school\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main *ngIf=\"!isLoading\" class=\"flex flex-col\">\n <section *ngFor=\"let course of courseSchools\" class=\"card1 animate__animated\" (click)=\"viewDataCourse(course)\">\n <h3 class=\"card1__title__schools\">{{ course.course_type.label }}</h3>\n <p class=\"card1__content\">\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ course.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ course.course_schedule | scheduleTimeFormat }}<br>\n <!-- <strong class=\"type-theory\">Theory Teacher: </strong>{{ course.teacher | titlecase }}<br>\n <strong class=\"type-theory\">Theory Classroom: </strong><span>{{ course.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <!-- <strong class=\"type-club\">Club Teacher: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.teacher | titlecase }}</span><br>\n <strong class=\"type-club\">Club Classroom: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <!-- <strong><hr></strong> -->\n <strong *ngIf=\"course.start_date === null\">Posible inicio: </strong>{{ course.start_date === null ? course.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.start_date === null\">\n <strong *ngIf=\"course.start_date !== null\">Fecha Inicio: </strong>{{ course.start_date !== null ? course.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <strong *ngIf=\"course.finish_date !== null\">Fecha culminacion: </strong>{{ course.finish_date !== null ? course.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <!-- <strong>Created: </strong>{{ course.created_at | date:'dd/MM/yyyy' }}<br> -->\n </p>\n <div class=\"card1__date\">\n <!-- <span\n [ngClass]=\"course.status?.color_status\"\n ></span> -->\n <!-- <span class=\"course-code\">Code: {{course.code}}</span> -->\n </div>\n <div class=\"card1__arrow\" [ngClass]=\"getCssClass(course.english_level.name)\">\n <span>{{ course.english_level.name | typeLevel}}</span>\n </div>\n </section>\n </main>\n <ipt-loader *ngIf=\"isLoading\"></ipt-loader>\n </p-panel>\n\n <div class=\"container__span-footer\" *ngIf=\"!visibleAcademy && !visibleKids && !visibleSchools\">\n <span>No se encontraron planes</span>\n </div>\n</div>\n<div *ngIf=\"!isLoading\">\n\n <p-panel\n header=\"\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main class=\"flex flex-col\">\n <section *ngFor=\"let course of skeleton\" class=\"card1 animate__animated\" >\n <p-skeleton width=\"10rem\" styleClass=\"mb-2\" ></p-skeleton>\n <p class=\"card1__content_skeleton\">\n <p-skeleton width=\"10rem\" styleClass=\"mb-2\" ></p-skeleton>\n <p-skeleton width=\"5rem\" styleClass=\"mb-2\" ></p-skeleton>\n <strong><hr></strong>\n <p-skeleton width=\"5rem\" styleClass=\"mb-2\" ></p-skeleton><br>\n <p-skeleton width=\"5rem\" styleClass=\"mb-2\" ></p-skeleton><br>\n\n </p>\n <div class=\"card1__date__skeleton\">\n\n </div>\n <div class=\"card1__arrow__skeleton\" >\n <p-skeleton width=\"5rem\" styleClass=\"mb-2\" ></p-skeleton>\n </div>\n </section>\n </main>\n </p-panel>\n\n</div>\n\n", styles: ["main{display:flex;gap:.7rem;flex-wrap:wrap}.card1{--border-radius: 6px;--primary-color: #1c77f7;--secondary-color: #2c2c2c;--tertiary-color: #ffffff;width:340px;font-family:Poppins,sans-serif;cursor:pointer;border-radius:var(--border-radius);background:#f1f1f3;box-shadow:0 8px 16px #00000008;position:relative;transition:.3s;border:solid .5px #e0e0e0}.type-theory{color:#00aecc}.type-club{color:#0d9d36}.msg-two-coup{color:#000!important;padding-left:7px;padding-right:7px;border-radius:5px;background-color:#4ed1e9}.msg-two-lev{color:#000!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#fb8f42}.beginner{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#94b9aa}.levelAone{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#c4291c}.levelAonetwo{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#418ed1}.levelAtwo{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#4fad65}.levelBone{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#6824b8}.levelBtwo{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#06161e}.levelBplus{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#cc6529}.main-container{margin-top:1%}.course-code{font-size:12px;font-weight:400;margin-left:.5rem}.card1:hover{box-shadow:#0000003d 0 3px 8px}.card1>*+*{margin-top:.7em}.card1 .card1__content{padding-left:10px;color:var(--secondary-color);font-size:.86rem;font-weight:200;z-index:1;position:relative}strong{color:var(--secondary-color);font-weight:300}:host ::ng-deep .p-panel .p-panel-header .p-panel-header-icon{color:#fff!important}.card1 .card1__title__academic{color:#fff;padding-left:10px;padding-right:10px;font-size:1.1rem;font-weight:300;z-index:1;position:relative;background:rgb(4,18,106);background:linear-gradient(175deg,rgba(4,18,106,1) 27%,rgba(48,63,155,1) 53%,rgba(28,119,247,1)90%);border-radius:6px 6px 0 0}:host ::ng-deep #academic_plan .p-panel .p-panel-header{color:#fff!important;background:rgb(4,18,106);background:linear-gradient(175deg,rgba(4,18,106,1) 27%,rgba(48,63,155,1) 53%,rgba(28,119,247,1)90%);border-radius:6px 6px 0 0}.card1 .card1__title__kids{color:#fff;padding-left:10px;padding-right:10px;font-size:1.1rem;font-weight:300;z-index:1;position:relative;background:rgb(127,33,99);background:linear-gradient(175deg,rgba(127,33,99,1) 27%,rgba(171,49,135,1) 53%,rgba(220,76,178,1) 90%);border-radius:6px 6px 0 0}:host ::ng-deep #social_kids .p-panel .p-panel-header{color:#fff!important;background:rgb(127,33,99);background:linear-gradient(175deg,rgba(127,33,99,1) 27%,rgba(171,49,135,1) 53%,rgba(220,76,178,1) 90%);border-radius:6px 6px 0 0}.card1 .card1__title__schools{color:#fff;padding-left:10px;padding-right:10px;font-size:1.1rem;font-weight:300;z-index:1;position:relative;background:rgb(57,130,154);background:linear-gradient(175deg,rgba(57,130,154,1) 27%,rgba(44,147,180,1) 53%,rgba(135,182,197,1) 90%);border-radius:6px 6px 0 0}:host ::ng-deep #social_school .p-panel .p-panel-header{color:#fff!important;background:rgb(57,130,154);background:linear-gradient(175deg,rgba(57,130,154,1) 27%,rgba(44,147,180,1) 53%,rgba(135,182,197,1) 90%);border-radius:6px 6px 0 0}.card1 .card1__date{color:#807c7c;padding-left:10px;font-size:.4rem;z-index:1;position:relative;margin-bottom:2%;margin-top:.7rem}.card1 .card1__arrow{padding-left:10px;position:absolute;padding:.1rem;border-top-left-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius);bottom:0;right:0;transition:.2s;display:flex;justify-content:center;align-items:center;width:50px}.card1 svg{transition:.2s}.card1:hover .card1__title{color:var(--secondary-color)}.card1:hover .card1__arrow{background:rgb(170,41,170)}.card1:hover .card1__arrow svg{transform:translate(3px)}.card1:hover strong{color:#aa29aa;font-weight:400}.card1:hover .course-code{color:#aa29aa;font-weight:500}.image-container{display:flex;border-radius:6px;width:250px;height:207px;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 1px 3px 1px}:host ::ng-deep .p-menubar .p-menuitem{position:relative;width:auto}.green300{height:2%;width:2%;padding-right:9px;border-radius:70%;background:#76db9b;box-shadow:-1px 0 1px 1px #000000fa;border:1px solid rgb(0 0 0 / 40%)}.red300{height:2%;width:2%;padding-right:9px;border-radius:70%;background:#e35b53;box-shadow:-1px 0 1px 1px #000000fa;border:1px solid rgb(0 0 0 / 40%)}.gray300{height:2%;width:2%;padding-right:9px;border-radius:70%;color:#9e9a99;background-color:#9e9a99;box-shadow:-1px 0 1px 1px #000000fa;border:1px solid rgb(0 0 0 / 40%)}label{border-radius:50%}\n"] }]
86
88
  }], propDecorators: { CourseData: [{
87
89
  type: Input
88
90
  }], isLoading: [{
@@ -90,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImpor
90
92
  }], codeCourse: [{
91
93
  type: Output
92
94
  }] } });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1jb3Vyc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NhcmQtY291cnNlL2NhcmQtY291cnNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jYXJkLWNvdXJzZS9jYXJkLWNvdXJzZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7OztBQVF6RyxNQUFNLE9BQU8sbUJBQW1CO0lBTGhDO1FBT1csY0FBUyxHQUFHLElBQUksQ0FBQTtRQUNmLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBb0IsQ0FBQztRQUU1RCxrQkFBYSxHQUFPLEVBQUUsQ0FBQztRQUN2QixlQUFVLEdBQU8sRUFBRSxDQUFDO1FBQ3BCLGtCQUFhLEdBQU8sRUFBRSxDQUFDO1FBQ3ZCLG1CQUFjLEdBQUksS0FBSyxDQUFDO1FBQ3hCLGdCQUFXLEdBQUksS0FBSyxDQUFDO1FBQ3JCLG1CQUFjLEdBQUksS0FBSyxDQUFDO0tBNkR6QjtJQTNEQyxRQUFRO1FBQ1IsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBQyxJQUFJLENBQUM7U0FDckI7YUFBSTtZQUNILElBQUksQ0FBQyxTQUFTLEdBQUMsS0FBSyxDQUFDO1NBQ3RCO0lBQ0QsQ0FBQztJQUNELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBQyxLQUFLLENBQUE7Z0JBQ3BCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO2dCQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztnQkFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7YUFDN0I7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBQyxLQUFLLENBQUE7Z0JBQ3BCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7Z0JBQzdDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7Z0JBQzdDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2dCQUM3RCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztnQkFDdkQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7YUFDOUQ7U0FDRjtJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsVUFBNEI7UUFDekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFhO1FBQ3ZCLFFBQU8sS0FBSyxFQUFFO1lBQ1osS0FBSyxRQUFRO2dCQUNYLE9BQU8sV0FBVyxDQUFBO1lBQ3BCLEtBQUssSUFBSTtnQkFDUCxPQUFPLGNBQWMsQ0FBQTtZQUN2QixLQUFLLElBQUk7Z0JBQ1AsT0FBTyxXQUFXLENBQUM7WUFDckIsS0FBSyxJQUFJO2dCQUNQLE9BQU8sV0FBVyxDQUFBO1lBQ3BCLEtBQUssSUFBSTtnQkFDUCxPQUFPLFdBQVcsQ0FBQTtZQUNwQixLQUFLLEtBQUs7Z0JBQ1IsT0FBTyxZQUFZLENBQUE7WUFDckIsS0FBSyxVQUFVLENBQUM7WUFDaEIsS0FBSyxXQUFXLENBQUM7WUFDakIsS0FBSyxhQUFhLENBQUM7WUFDbkIsS0FBSyxjQUFjLENBQUM7WUFDcEIsS0FBSyxlQUFlLENBQUM7WUFDckIsS0FBSyxZQUFZLENBQUM7WUFDbEIsS0FBSyxhQUFhO2dCQUNoQixPQUFPLFVBQVUsQ0FBQztZQUNwQjtnQkFDRSxPQUFPLEVBQUUsQ0FBQztTQUNiO0lBQ0gsQ0FBQzs7Z0hBdEVVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLGtNQ1RoQyxna1NBbUpBOzJGRDFJYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0Usa0NBQWtDOzhCQUtsQyxVQUFVO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElDb3Vyc2VCeVRva2VuUnMgfSBmcm9tICcuLy4uLy4uLy4uL2NvcmUvbW9kZWxzL2FjdGl2aXRpZXMvYWN0aXZpdGllcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXB0LWNhcmQtY291cnNlLXNlbGYtY29kLW1hbmFnZWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FyZC1jb3Vyc2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYXJkLWNvdXJzZS5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ2FyZENvdXJzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0IHtcbiAgQElucHV0ICgpIENvdXJzZURhdGE/OmFueTtcbiAgQElucHV0KCkgaXNMb2FkaW5nID0gdHJ1ZVxuICBAT3V0cHV0KCkgY29kZUNvdXJzZSA9IG5ldyBFdmVudEVtaXR0ZXI8SUNvdXJzZUJ5VG9rZW5Scz4oKTtcblxuICBjb3Vyc2VBY2FkZW15OmFueVtdPVtdO1xuICBjb3Vyc2VLaWRzOmFueVtdPVtdO1xuICBjb3Vyc2VTY2hvb2xzOmFueVtdPVtdO1xuICB2aXNpYmxlQWNhZGVteSA9ICBmYWxzZTtcbiAgdmlzaWJsZUtpZHMgPSAgZmFsc2U7XG4gIHZpc2libGVTY2hvb2xzID0gIGZhbHNlO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICBpZiAodGhpcy5Db3Vyc2VEYXRhLmxlbmd0aCA9PSAwKSB7XG4gICAgdGhpcy5pc0xvYWRpbmc9dHJ1ZTtcbiAgfWVsc2V7XG4gICAgdGhpcy5pc0xvYWRpbmc9ZmFsc2U7XG4gIH1cbiAgfVxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ0NvdXJzZURhdGEnXSkge1xuICAgICAgaWYgKCF0aGlzLkNvdXJzZURhdGEpIHtcbiAgICAgICAgdGhpcy5jb3Vyc2VBY2FkZW15ID0gW107XG4gICAgICAgIHRoaXMuY291cnNlS2lkcyA9IFtdO1xuICAgICAgICB0aGlzLmNvdXJzZVNjaG9vbHMgPSBbXTtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmc9ZmFsc2VcbiAgICAgICAgdGhpcy52aXNpYmxlQWNhZGVteSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnZpc2libGVLaWRzID0gZmFsc2U7XG4gICAgICAgIHRoaXMudmlzaWJsZVNjaG9vbHMgPSBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nPWZhbHNlXG4gICAgICAgIHRoaXMuY291cnNlQWNhZGVteSA9IHRoaXMuQ291cnNlRGF0YS5BY2FkZW15O1xuICAgICAgICB0aGlzLmNvdXJzZUtpZHMgPSB0aGlzLkNvdXJzZURhdGEuS2lkcztcbiAgICAgICAgdGhpcy5jb3Vyc2VTY2hvb2xzID0gdGhpcy5Db3Vyc2VEYXRhLlNjaG9vbHM7XG4gICAgICAgIHRoaXMudmlzaWJsZUFjYWRlbXkgPSB0aGlzLkNvdXJzZURhdGEuQWNhZGVteSA/IHRydWUgOiBmYWxzZTtcbiAgICAgICAgdGhpcy52aXNpYmxlS2lkcyA9IHRoaXMuQ291cnNlRGF0YS5LaWRzID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICB0aGlzLnZpc2libGVTY2hvb2xzID0gdGhpcy5Db3Vyc2VEYXRhLlNjaG9vbHMgPyB0cnVlIDogZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmlld0RhdGFDb3Vyc2UoY29kZUNvdXJzZTogSUNvdXJzZUJ5VG9rZW5Scyl7XG4gICAgdGhpcy5jb2RlQ291cnNlLmVtaXQoY29kZUNvdXJzZSk7XG4gIH1cblxuICBnZXRDc3NDbGFzcyhsZXZlbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBzd2l0Y2gobGV2ZWwpIHtcbiAgICAgIGNhc2UgJ1BSRS1BMSc6XG4gICAgICAgIHJldHVybiAnbGV2ZWxBb25lJ1xuICAgICAgY2FzZSAnQTEnOlxuICAgICAgICByZXR1cm4gJ2xldmVsQW9uZXR3bydcbiAgICAgIGNhc2UgJ0EyJzpcbiAgICAgICAgcmV0dXJuICdsZXZlbEF0d28nO1xuICAgICAgY2FzZSAnQjEnOlxuICAgICAgICByZXR1cm4gJ2xldmVsQm9uZSdcbiAgICAgIGNhc2UgJ0IyJzpcbiAgICAgICAgcmV0dXJuICdsZXZlbEJ0d28nXG4gICAgICBjYXNlICdCMSsnOlxuICAgICAgICByZXR1cm4gJ2xldmVsQnBsdXMnXG4gICAgICBjYXNlICdNT1ZFUlMgSSc6XG4gICAgICBjYXNlICdNT1ZFUlMgSUknOlxuICAgICAgY2FzZSAnQkVHSU5ORVJTIEknOlxuICAgICAgY2FzZSAnQkVHSU5ORVJTIElJJzpcbiAgICAgIGNhc2UgJ0JFR0lOTkVSUyBJSUknOlxuICAgICAgY2FzZSAnU1RBUlRFUlMgSSc6XG4gICAgICBjYXNlICdTVEFSVEVSUyBJSSc6XG4gICAgICAgIHJldHVybiAnYmVnaW5uZXInO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1haW4tY29udGFpbmVyXCI+XG5cbiAgPCEtLSBjYXJkcyBBY2FkZW15IC0tPlxuXG4gIDxwLXBhbmVsXG4gICpuZ0lmPVwidmlzaWJsZUFjYWRlbXlcIlxuICBoZWFkZXI9XCJQbGFuIEFjYWRlbXlcIlxuICBbdG9nZ2xlYWJsZV09XCJ0cnVlXCJcbiAgW2NvbGxhcHNlZF09XCJmYWxzZVwiXG4gIGlkPVwiYWNhZGVtaWNfcGxhblwiXG4gIGNsYXNzPVwiYWNhZGVtaWNfcGxhblwiXG4gID5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImljb25zXCI+IDwvbmctdGVtcGxhdGU+XG4gICAgPG1haW4gKm5nSWY9XCIhaXNMb2FkaW5nXCIgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XG4gICAgICA8c2VjdGlvbiAqbmdGb3I9XCJsZXQgY291cnNlIG9mIGNvdXJzZUFjYWRlbXlcIiBjbGFzcz1cImNhcmQxIGFuaW1hdGVfX2FuaW1hdGVkXCIgIChjbGljayk9XCJ2aWV3RGF0YUNvdXJzZShjb3Vyc2UpXCI+XG4gICAgICAgIDxoMyBjbGFzcz1cImNhcmQxX190aXRsZV9fYWNhZGVtaWNcIj57eyBjb3Vyc2UuY291cnNlX3R5cGUubGFiZWwgfX08L2gzPlxuICAgICAgICA8cCBjbGFzcz1cImNhcmQxX19jb250ZW50XCI+XG4gICAgICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtdGhlb3J5XCI+Q2xhc2VzIFRlb3JpY2FzOiA8L3N0cm9uZz57eyBjb3Vyc2UuY291cnNlX3NjaGVkdWxlIHwgc2NoZWR1bGVGb3JtYXQgfX08YnI+XG4gICAgICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtdGhlb3J5XCI+SG9yYXJpbyBUZW9yaWNvOiA8L3N0cm9uZz57eyBjb3Vyc2UuY291cnNlX3NjaGVkdWxlIHwgc2NoZWR1bGVUaW1lRm9ybWF0IH19PGJyPlxuICAgICAgICAgIDwhLS0gPHN0cm9uZyBjbGFzcz1cInR5cGUtdGhlb3J5XCI+VGhlb3J5IFRlYWNoZXI6IDwvc3Ryb25nPnt7IGNvdXJzZS50ZWFjaGVyIHwgdGl0bGVjYXNlIH19PGJyPiAtLT5cbiAgICAgICAgICA8IS0tIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLXRoZW9yeVwiPlRoZW9yeSBDbGFzc3Jvb206IDwvc3Ryb25nPjxzcGFuPnt7IGNvdXJzZS5jb3Vyc2Vfc2NoZWR1bGVEZXRhaWxzWzBdLkNsYXNzUm9vbS5uYW1lICB8IHRpdGxlY2FzZX19PC9zcGFuPjxicj4gLS0+XG4gICAgICAgICAgPHN0cm9uZz48aHI+PC9zdHJvbmc+XG4gICAgICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtY2x1YlwiPkNsYXNlcyBDbHViOiA8L3N0cm9uZz5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY291cnNlLmNvdXJzZV9jbHViXCI+e3sgY291cnNlLmNvdXJzZV9jbHViLmNvdXJzZV9zY2hlZHVsZSB8IHNjaGVkdWxlRm9ybWF0IH19PC9zcGFuPjxicj5cbiAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS1jbHViXCI+SG9yYXJpbyBDbHViOiA8L3N0cm9uZz5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY291cnNlLmNvdXJzZV9jbHViXCI+e3sgY291cnNlLmNvdXJzZV9jbHViLmNvdXJzZV9zY2hlZHVsZSB8IHNjaGVkdWxlVGltZUZvcm1hdCB9fTwvc3Bhbj48YnI+XG4gICAgICAgICAgPCEtLSA8c3Ryb25nIGNsYXNzPVwidHlwZS1jbHViXCI+Q2x1YiBUZWFjaGVyOiA8L3N0cm9uZz5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY291cnNlLmNvdXJzZV9jbHViXCI+e3sgY291cnNlLmNvdXJzZV9jbHViLnRlYWNoZXIgfCB0aXRsZWNhc2UgfX08L3NwYW4+PGJyPiAtLT5cbiAgICAgICAgICA8IS0tIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLWNsdWJcIj5DbHViIENsYXNzcm9vbTogPC9zdHJvbmc+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvdXJzZS5jb3Vyc2VfY2x1YlwiPnt7IGNvdXJzZS5jb3Vyc2VfY2x1Yi5jb3Vyc2Vfc2NoZWR1bGVEZXRhaWxzWzBdLkNsYXNzUm9vbS5uYW1lICB8IHRpdGxlY2FzZX19PC9zcGFuPjxicj4gLS0+XG4gICAgICAgICAgPCEtLSA8c3Ryb25nPjxocj48L3N0cm9uZz4gLS0+XG4gICAgICAgICAgPHN0cm9uZyAqbmdJZj1cImNvdXJzZS5zdGFydF9kYXRlID09PSBudWxsXCI+UG9zaWJsZSBpbmljaW86IDwvc3Ryb25nPnt7IGNvdXJzZS5zdGFydF9kYXRlID09PSBudWxsID8gY291cnNlLnRvX3N0YXJ0IDogbnVsbCB8IGRhdGU6J2RkL01NL3l5eXknIH19PGJyICpuZ0lmPVwiY291cnNlLnN0YXJ0X2RhdGUgPT09IG51bGxcIj5cbiAgICAgICAgICA8c3Ryb25nICpuZ0lmPVwiY291cnNlLnN0YXJ0X2RhdGUgIT09IG51bGxcIj5GZWNoYSBJbmljaW86IDwvc3Ryb25nPnt7IGNvdXJzZS5zdGFydF9kYXRlICE9PSBudWxsID8gY291cnNlLnN0YXJ0X2RhdGUgOiBudWxsIHwgZGF0ZTonZGQvTU0veXl5eScgfX08YnIgKm5nSWY9XCJjb3Vyc2UuZmluaXNoX2RhdGUgIT09IG51bGxcIj5cbiAgICAgICAgICA8c3Ryb25nICpuZ0lmPVwiY291cnNlLmZpbmlzaF9kYXRlICE9PSBudWxsXCI+RmVjaGEgY3VsbWluYWNpb246IDwvc3Ryb25nPnt7IGNvdXJzZS5maW5pc2hfZGF0ZSAhPT0gbnVsbCA/IGNvdXJzZS5maW5pc2hfZGF0ZSA6IG51bGwgfCBkYXRlOidkZC9NTS95eXl5JyB9fTxiciAqbmdJZj1cImNvdXJzZS5maW5pc2hfZGF0ZSAhPT0gbnVsbFwiPlxuICAgICAgICAgIDwhLS0gPHN0cm9uZz5DcmVhdGVkOiA8L3N0cm9uZz57eyBjb3Vyc2UuY3JlYXRlZF9hdCB8IGRhdGU6J2RkL01NL3l5eXknIH19PGJyPiAtLT5cbiAgICAgICAgPC9wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZDFfX2RhdGVcIj5cbiAgICAgICAgICA8IS0tIDxzcGFuXG4gICAgICAgICAgW25nQ2xhc3NdPVwiY291cnNlLnN0YXR1cz8uY29sb3Jfc3RhdHVzXCJcbiAgICAgICAgICA+PC9zcGFuPiAtLT5cbiAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwiY291cnNlLWNvZGVcIj5Db2RlOiB7e2NvdXJzZS5jb2RlfX08L3NwYW4+IC0tPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQxX19hcnJvd1wiIFtuZ0NsYXNzXT1cImdldENzc0NsYXNzKGNvdXJzZS5lbmdsaXNoX2xldmVsLm5hbWUpXCI+XG4gICAgICAgICAgPHNwYW4+e3sgY291cnNlLmVuZ2xpc2hfbGV2ZWwubmFtZSB8IHR5cGVMZXZlbH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvc2VjdGlvbj5cbiAgICA8L21haW4+XG4gICAgPGlwdC1sb2FkZXIgKm5nSWY9XCJpc0xvYWRpbmdcIj48L2lwdC1sb2FkZXI+XG4gIDwvcC1wYW5lbD5cblxuICA8IS0tIGNhcmRzIEtpZHMgLS0+XG5cbiAgPHAtcGFuZWxcbiAgKm5nSWY9XCJ2aXNpYmxlS2lkc1wiXG4gIGhlYWRlcj1cIlBsYW4gS2lkc1wiXG4gIFt0b2dnbGVhYmxlXT1cInRydWVcIlxuICBbY29sbGFwc2VkXT1cImZhbHNlXCJcbiAgaWQ9XCJzb2NpYWxfa2lkc1wiXG4gID5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImljb25zXCI+IDwvbmctdGVtcGxhdGU+XG4gICAgPG1haW4gKm5nSWY9XCIhaXNMb2FkaW5nXCIgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XG4gICAgICA8c2VjdGlvbiAqbmdGb3I9XCJsZXQgY291cnNlIG9mIGNvdXJzZUtpZHNcIiBjbGFzcz1cImNhcmQxIGFuaW1hdGVfX2FuaW1hdGVkXCIgIChjbGljayk9XCJ2aWV3RGF0YUNvdXJzZShjb3Vyc2UpXCI+XG4gICAgICAgIDxoMyBjbGFzcz1cImNhcmQxX190aXRsZV9fa2lkc1wiPnt7IGNvdXJzZS5jb3Vyc2VfdHlwZS5sYWJlbCB9fTwvaDM+XG4gICAgICAgIDxwIGNsYXNzPVwiY2FyZDFfX2NvbnRlbnRcIj5cbiAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS10aGVvcnlcIj5DbGFzZXMgVGVvcmljYXM6IDwvc3Ryb25nPnt7IGNvdXJzZS5jb3Vyc2Vfc2NoZWR1bGUgfCBzY2hlZHVsZUZvcm1hdCB9fTxicj5cbiAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS10aGVvcnlcIj5Ib3JhcmlvIFRlb3JpY286IDwvc3Ryb25nPnt7IGNvdXJzZS5jb3Vyc2Vfc2NoZWR1bGUgfCBzY2hlZHVsZVRpbWVGb3JtYXQgfX08YnI+XG4gICAgICAgICAgPCEtLSA8c3Ryb25nIGNsYXNzPVwidHlwZS10aGVvcnlcIj5UaGVvcnkgVGVhY2hlcjogPC9zdHJvbmc+e3sgY291cnNlLnRlYWNoZXIgfCB0aXRsZWNhc2UgfX08YnI+XG4gICAgICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtdGhlb3J5XCI+VGhlb3J5IENsYXNzcm9vbTogPC9zdHJvbmc+PHNwYW4+e3sgY291cnNlLmNvdXJzZV9zY2hlZHVsZURldGFpbHNbMF0uQ2xhc3NSb29tLm5hbWUgIHwgdGl0bGVjYXNlfX08L3NwYW4+PGJyPiAtLT5cbiAgICAgICAgICA8c3Ryb25nPjxocj48L3N0cm9uZz5cbiAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS1jbHViXCI+Q2xhc2VzIENsdWI6IDwvc3Ryb25nPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb3Vyc2UuY291cnNlX2NsdWJcIj57eyBjb3Vyc2UuY291cnNlX2NsdWIuY291cnNlX3NjaGVkdWxlIHwgc2NoZWR1bGVGb3JtYXQgfX08L3NwYW4+PGJyPlxuICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLWNsdWJcIj5Ib3JhcmlvIENsdWI6IDwvc3Ryb25nPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb3Vyc2UuY291cnNlX2NsdWJcIj57eyBjb3Vyc2UuY291cnNlX2NsdWIuY291cnNlX3NjaGVkdWxlIHwgc2NoZWR1bGVUaW1lRm9ybWF0IH19PC9zcGFuPjxicj5cbiAgICAgICAgICA8IS0tIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLWNsdWJcIj5DbHViIFRlYWNoZXI6IDwvc3Ryb25nPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb3Vyc2UuY291cnNlX2NsdWJcIj57eyBjb3Vyc2UuY291cnNlX2NsdWIudGVhY2hlciB8IHRpdGxlY2FzZSB9fTwvc3Bhbj48YnI+IC0tPlxuICAgICAgICAgIDwhLS0gPHN0cm9uZyBjbGFzcz1cInR5cGUtY2x1YlwiPkNsdWIgQ2xhc3Nyb29tOiA8L3N0cm9uZz5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY291cnNlLmNvdXJzZV9jbHViXCI+e3sgY291cnNlLmNvdXJzZV9jbHViLmNvdXJzZV9zY2hlZHVsZURldGFpbHNbMF0uQ2xhc3NSb29tLm5hbWUgIHwgdGl0bGVjYXNlfX08L3NwYW4+PGJyPiAtLT5cbiAgICAgICAgICA8IS0tIDxzdHJvbmc+PGhyPjwvc3Ryb25nPiAtLT5cbiAgICAgICAgICA8c3Ryb25nICpuZ0lmPVwiY291cnNlLnN0YXJ0X2RhdGUgPT09IG51bGxcIj5Qb3NpYmxlIGluaWNpbzogPC9zdHJvbmc+e3sgY291cnNlLnN0YXJ0X2RhdGUgPT09IG51bGwgPyBjb3Vyc2UudG9fc3RhcnQgOiBudWxsIHwgZGF0ZTonZGQvTU0veXl5eScgfX08YnIgKm5nSWY9XCJjb3Vyc2Uuc3RhcnRfZGF0ZSA9PT0gbnVsbFwiPlxuICAgICAgICAgIDxzdHJvbmcgKm5nSWY9XCJjb3Vyc2Uuc3RhcnRfZGF0ZSAhPT0gbnVsbFwiPkZlY2hhIEluaWNpbzogPC9zdHJvbmc+e3sgY291cnNlLnN0YXJ0X2RhdGUgIT09IG51bGwgPyBjb3Vyc2Uuc3RhcnRfZGF0ZSA6IG51bGwgfCBkYXRlOidkZC9NTS95eXl5JyB9fTxiciAqbmdJZj1cImNvdXJzZS5maW5pc2hfZGF0ZSAhPT0gbnVsbFwiPlxuICAgICAgICAgIDxzdHJvbmcgKm5nSWY9XCJjb3Vyc2UuZmluaXNoX2RhdGUgIT09IG51bGxcIj5GZWNoYSBjdWxtaW5hY2lvbjogPC9zdHJvbmc+e3sgY291cnNlLmZpbmlzaF9kYXRlICE9PSBudWxsID8gY291cnNlLmZpbmlzaF9kYXRlIDogbnVsbCB8IGRhdGU6J2RkL01NL3l5eXknIH19PGJyICpuZ0lmPVwiY291cnNlLmZpbmlzaF9kYXRlICE9PSBudWxsXCI+XG4gICAgICAgICAgPCEtLSA8c3Ryb25nPkNyZWF0ZWQ6IDwvc3Ryb25nPnt7IGNvdXJzZS5jcmVhdGVkX2F0IHwgZGF0ZTonZGQvTU0veXl5eScgfX08YnI+IC0tPlxuICAgICAgICA8L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkMV9fZGF0ZVwiPlxuICAgICAgICAgIDwhLS0gPHNwYW5cbiAgICAgICAgICBbbmdDbGFzc109XCJjb3Vyc2Uuc3RhdHVzPy5jb2xvcl9zdGF0dXNcIlxuICAgICAgICAgID48L3NwYW4+IC0tPlxuICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJjb3Vyc2UtY29kZVwiPkNvZGU6IHt7Y291cnNlLmNvZGV9fTwvc3Bhbj4gLS0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZDFfX2Fycm93XCIgW25nQ2xhc3NdPVwiZ2V0Q3NzQ2xhc3MoY291cnNlLmVuZ2xpc2hfbGV2ZWwubmFtZSlcIj5cbiAgICAgICAgICA8c3Bhbj57eyBjb3Vyc2UuZW5nbGlzaF9sZXZlbC5uYW1lIHwgdHlwZUxldmVsfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9zZWN0aW9uPlxuICAgIDwvbWFpbj5cbiAgICA8aXB0LWxvYWRlciAqbmdJZj1cImlzTG9hZGluZ1wiPjwvaXB0LWxvYWRlcj5cbiAgPC9wLXBhbmVsPlxuXG4gIDwhLS0gY2FyZHMgU2Nob29scyAtLT5cblxuICA8cC1wYW5lbFxuICAqbmdJZj1cInZpc2libGVTY2hvb2xzXCJcbiAgaGVhZGVyPVwiUGxhbiBTY2hvb2xzXCJcbiAgW3RvZ2dsZWFibGVdPVwidHJ1ZVwiXG4gIFtjb2xsYXBzZWRdPVwiZmFsc2VcIlxuICBpZD1cInNvY2lhbF9zY2hvb2xcIlxuICA+XG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJpY29uc1wiPiA8L25nLXRlbXBsYXRlPlxuICAgIDxtYWluICpuZ0lmPVwiIWlzTG9hZGluZ1wiIGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgICAgPHNlY3Rpb24gKm5nRm9yPVwibGV0IGNvdXJzZSBvZiBjb3Vyc2VTY2hvb2xzXCIgY2xhc3M9XCJjYXJkMSBhbmltYXRlX19hbmltYXRlZFwiICAoY2xpY2spPVwidmlld0RhdGFDb3Vyc2UoY291cnNlKVwiPlxuICAgICAgICA8aDMgY2xhc3M9XCJjYXJkMV9fdGl0bGVfX3NjaG9vbHNcIj57eyBjb3Vyc2UuY291cnNlX3R5cGUubGFiZWwgfX08L2gzPlxuICAgICAgICA8cCBjbGFzcz1cImNhcmQxX19jb250ZW50XCI+XG4gICAgICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtdGhlb3J5XCI+Q2xhc2VzIFRlb3JpY2FzOiA8L3N0cm9uZz57eyBjb3Vyc2UuY291cnNlX3NjaGVkdWxlIHwgc2NoZWR1bGVGb3JtYXQgfX08YnI+XG4gICAgICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtdGhlb3J5XCI+SG9yYXJpbyBUZW9yaWNvOiA8L3N0cm9uZz57eyBjb3Vyc2UuY291cnNlX3NjaGVkdWxlIHwgc2NoZWR1bGVUaW1lRm9ybWF0IH19PGJyPlxuICAgICAgICAgIDwhLS0gPHN0cm9uZyBjbGFzcz1cInR5cGUtdGhlb3J5XCI+VGhlb3J5IFRlYWNoZXI6IDwvc3Ryb25nPnt7IGNvdXJzZS50ZWFjaGVyIHwgdGl0bGVjYXNlIH19PGJyPlxuICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLXRoZW9yeVwiPlRoZW9yeSBDbGFzc3Jvb206IDwvc3Ryb25nPjxzcGFuPnt7IGNvdXJzZS5jb3Vyc2Vfc2NoZWR1bGVEZXRhaWxzWzBdLkNsYXNzUm9vbS5uYW1lICB8IHRpdGxlY2FzZX19PC9zcGFuPjxicj4gLS0+XG4gICAgICAgICAgPHN0cm9uZz48aHI+PC9zdHJvbmc+XG4gICAgICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtY2x1YlwiPkNsYXNlcyBDbHViOiA8L3N0cm9uZz5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY291cnNlLmNvdXJzZV9jbHViXCI+e3sgY291cnNlLmNvdXJzZV9jbHViLmNvdXJzZV9zY2hlZHVsZSB8IHNjaGVkdWxlRm9ybWF0IH19PC9zcGFuPjxicj5cbiAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS1jbHViXCI+SG9yYXJpbyBDbHViOiA8L3N0cm9uZz5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY291cnNlLmNvdXJzZV9jbHViXCI+e3sgY291cnNlLmNvdXJzZV9jbHViLmNvdXJzZV9zY2hlZHVsZSB8IHNjaGVkdWxlVGltZUZvcm1hdCB9fTwvc3Bhbj48YnI+XG4gICAgICAgICAgPCEtLSA8c3Ryb25nIGNsYXNzPVwidHlwZS1jbHViXCI+Q2x1YiBUZWFjaGVyOiA8L3N0cm9uZz5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY291cnNlLmNvdXJzZV9jbHViXCI+e3sgY291cnNlLmNvdXJzZV9jbHViLnRlYWNoZXIgfCB0aXRsZWNhc2UgfX08L3NwYW4+PGJyPlxuICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLWNsdWJcIj5DbHViIENsYXNzcm9vbTogPC9zdHJvbmc+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvdXJzZS5jb3Vyc2VfY2x1YlwiPnt7IGNvdXJzZS5jb3Vyc2VfY2x1Yi5jb3Vyc2Vfc2NoZWR1bGVEZXRhaWxzWzBdLkNsYXNzUm9vbS5uYW1lICB8IHRpdGxlY2FzZX19PC9zcGFuPjxicj4gLS0+XG4gICAgICAgICAgPCEtLSA8c3Ryb25nPjxocj48L3N0cm9uZz4gLS0+XG4gICAgICAgICAgPHN0cm9uZyAqbmdJZj1cImNvdXJzZS5zdGFydF9kYXRlID09PSBudWxsXCI+UG9zaWJsZSBpbmljaW86IDwvc3Ryb25nPnt7IGNvdXJzZS5zdGFydF9kYXRlID09PSBudWxsID8gY291cnNlLnRvX3N0YXJ0IDogbnVsbCB8IGRhdGU6J2RkL01NL3l5eXknIH19PGJyICpuZ0lmPVwiY291cnNlLnN0YXJ0X2RhdGUgPT09IG51bGxcIj5cbiAgICAgICAgICA8c3Ryb25nICpuZ0lmPVwiY291cnNlLnN0YXJ0X2RhdGUgIT09IG51bGxcIj5GZWNoYSBJbmljaW86IDwvc3Ryb25nPnt7IGNvdXJzZS5zdGFydF9kYXRlICE9PSBudWxsID8gY291cnNlLnN0YXJ0X2RhdGUgOiBudWxsIHwgZGF0ZTonZGQvTU0veXl5eScgfX08YnIgKm5nSWY9XCJjb3Vyc2UuZmluaXNoX2RhdGUgIT09IG51bGxcIj5cbiAgICAgICAgICA8c3Ryb25nICpuZ0lmPVwiY291cnNlLmZpbmlzaF9kYXRlICE9PSBudWxsXCI+RmVjaGEgY3VsbWluYWNpb246IDwvc3Ryb25nPnt7IGNvdXJzZS5maW5pc2hfZGF0ZSAhPT0gbnVsbCA/IGNvdXJzZS5maW5pc2hfZGF0ZSA6IG51bGwgfCBkYXRlOidkZC9NTS95eXl5JyB9fTxiciAqbmdJZj1cImNvdXJzZS5maW5pc2hfZGF0ZSAhPT0gbnVsbFwiPlxuICAgICAgICAgIDwhLS0gPHN0cm9uZz5DcmVhdGVkOiA8L3N0cm9uZz57eyBjb3Vyc2UuY3JlYXRlZF9hdCB8IGRhdGU6J2RkL01NL3l5eXknIH19PGJyPiAtLT5cbiAgICAgICAgPC9wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZDFfX2RhdGVcIj5cbiAgICAgICAgICA8IS0tIDxzcGFuXG4gICAgICAgICAgW25nQ2xhc3NdPVwiY291cnNlLnN0YXR1cz8uY29sb3Jfc3RhdHVzXCJcbiAgICAgICAgICA+PC9zcGFuPiAtLT5cbiAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwiY291cnNlLWNvZGVcIj5Db2RlOiB7e2NvdXJzZS5jb2RlfX08L3NwYW4+IC0tPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQxX19hcnJvd1wiIFtuZ0NsYXNzXT1cImdldENzc0NsYXNzKGNvdXJzZS5lbmdsaXNoX2xldmVsLm5hbWUpXCI+XG4gICAgICAgICAgPHNwYW4+e3sgY291cnNlLmVuZ2xpc2hfbGV2ZWwubmFtZSB8IHR5cGVMZXZlbH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvc2VjdGlvbj5cbiAgICA8L21haW4+XG4gICAgPGlwdC1sb2FkZXIgKm5nSWY9XCJpc0xvYWRpbmdcIj48L2lwdC1sb2FkZXI+XG4gIDwvcC1wYW5lbD5cblxuICA8L2Rpdj5cblxuXG4iXX0=
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1jb3Vyc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NhcmQtY291cnNlL2NhcmQtY291cnNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jYXJkLWNvdXJzZS9jYXJkLWNvdXJzZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7QUFRekcsTUFBTSxPQUFPLG1CQUFtQjtJQUxoQztRQU9XLGNBQVMsR0FBRyxJQUFJLENBQUE7UUFDZixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFFNUQsa0JBQWEsR0FBTyxFQUFFLENBQUM7UUFDdkIsZUFBVSxHQUFPLEVBQUUsQ0FBQztRQUNwQixrQkFBYSxHQUFPLEVBQUUsQ0FBQztRQUN2QixtQkFBYyxHQUFJLEtBQUssQ0FBQztRQUN4QixnQkFBVyxHQUFJLEtBQUssQ0FBQztRQUNyQixtQkFBYyxHQUFJLEtBQUssQ0FBQztRQUN4QixhQUFRLEdBQUMsQ0FBQyxFQUFFLEVBQUMsRUFBRSxDQUFDLENBQUM7S0E2RGxCO0lBM0RDLFFBQVE7UUFDUixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsU0FBUyxHQUFDLElBQUksQ0FBQztTQUNyQjthQUFJO1lBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBQyxLQUFLLENBQUM7U0FDdEI7SUFDRCxDQUFDO0lBQ0QsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNwQixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO2dCQUN4QixJQUFJLENBQUMsU0FBUyxHQUFDLEtBQUssQ0FBQTtnQkFDcEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO2dCQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQzthQUM3QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsU0FBUyxHQUFDLEtBQUssQ0FBQTtnQkFDcEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztnQkFDN0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztnQkFDdkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztnQkFDN0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQzdELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2dCQUN2RCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQzthQUM5RDtTQUNGO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxVQUE0QjtRQUN6QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWE7UUFDdkIsUUFBTyxLQUFLLEVBQUU7WUFDWixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxXQUFXLENBQUE7WUFDcEIsS0FBSyxJQUFJO2dCQUNQLE9BQU8sY0FBYyxDQUFBO1lBQ3ZCLEtBQUssSUFBSTtnQkFDUCxPQUFPLFdBQVcsQ0FBQztZQUNyQixLQUFLLElBQUk7Z0JBQ1AsT0FBTyxXQUFXLENBQUE7WUFDcEIsS0FBSyxJQUFJO2dCQUNQLE9BQU8sV0FBVyxDQUFBO1lBQ3BCLEtBQUssS0FBSztnQkFDUixPQUFPLFlBQVksQ0FBQTtZQUNyQixLQUFLLFVBQVUsQ0FBQztZQUNoQixLQUFLLFdBQVcsQ0FBQztZQUNqQixLQUFLLGFBQWEsQ0FBQztZQUNuQixLQUFLLGNBQWMsQ0FBQztZQUNwQixLQUFLLGVBQWUsQ0FBQztZQUNyQixLQUFLLFlBQVksQ0FBQztZQUNsQixLQUFLLGFBQWE7Z0JBQ2hCLE9BQU8sVUFBVSxDQUFDO1lBQ3BCO2dCQUNFLE9BQU8sRUFBRSxDQUFDO1NBQ2I7SUFDSCxDQUFDOztnSEF2RVUsbUJBQW1CO29HQUFuQixtQkFBbUIsa01DVGhDLHMzVUFzTEE7MkZEN0thLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxrQ0FBa0M7OEJBS2xDLFVBQVU7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUNvdXJzZUJ5VG9rZW5ScyB9IGZyb20gJy4vLi4vLi4vLi4vY29yZS9tb2RlbHMvYWN0aXZpdGllcy9hY3Rpdml0aWVzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpcHQtY2FyZC1jb3Vyc2Utc2VsZi1jb2QtbWFuYWdlZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJkLWNvdXJzZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhcmQtY291cnNlLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDYXJkQ291cnNlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xuICBASW5wdXQgKCkgQ291cnNlRGF0YT86YW55O1xuICBASW5wdXQoKSBpc0xvYWRpbmcgPSB0cnVlXG4gIEBPdXRwdXQoKSBjb2RlQ291cnNlID0gbmV3IEV2ZW50RW1pdHRlcjxJQ291cnNlQnlUb2tlblJzPigpO1xuXG4gIGNvdXJzZUFjYWRlbXk6YW55W109W107XG4gIGNvdXJzZUtpZHM6YW55W109W107XG4gIGNvdXJzZVNjaG9vbHM6YW55W109W107XG4gIHZpc2libGVBY2FkZW15ID0gIGZhbHNlO1xuICB2aXNpYmxlS2lkcyA9ICBmYWxzZTtcbiAgdmlzaWJsZVNjaG9vbHMgPSAgZmFsc2U7XG4gIHNrZWxldG9uPVt7fSx7fV07XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIGlmICh0aGlzLkNvdXJzZURhdGEubGVuZ3RoID09IDApIHtcbiAgICB0aGlzLmlzTG9hZGluZz10cnVlO1xuICB9ZWxzZXtcbiAgICB0aGlzLmlzTG9hZGluZz1mYWxzZTtcbiAgfVxuICB9XG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snQ291cnNlRGF0YSddKSB7XG4gICAgICBpZiAoIXRoaXMuQ291cnNlRGF0YSkge1xuICAgICAgICB0aGlzLmNvdXJzZUFjYWRlbXkgPSBbXTtcbiAgICAgICAgdGhpcy5jb3Vyc2VLaWRzID0gW107XG4gICAgICAgIHRoaXMuY291cnNlU2Nob29scyA9IFtdO1xuICAgICAgICB0aGlzLmlzTG9hZGluZz1mYWxzZVxuICAgICAgICB0aGlzLnZpc2libGVBY2FkZW15ID0gZmFsc2U7XG4gICAgICAgIHRoaXMudmlzaWJsZUtpZHMgPSBmYWxzZTtcbiAgICAgICAgdGhpcy52aXNpYmxlU2Nob29scyA9IGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmc9ZmFsc2VcbiAgICAgICAgdGhpcy5jb3Vyc2VBY2FkZW15ID0gdGhpcy5Db3Vyc2VEYXRhLkFjYWRlbXk7XG4gICAgICAgIHRoaXMuY291cnNlS2lkcyA9IHRoaXMuQ291cnNlRGF0YS5LaWRzO1xuICAgICAgICB0aGlzLmNvdXJzZVNjaG9vbHMgPSB0aGlzLkNvdXJzZURhdGEuU2Nob29scztcbiAgICAgICAgdGhpcy52aXNpYmxlQWNhZGVteSA9IHRoaXMuQ291cnNlRGF0YS5BY2FkZW15ID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICB0aGlzLnZpc2libGVLaWRzID0gdGhpcy5Db3Vyc2VEYXRhLktpZHMgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgIHRoaXMudmlzaWJsZVNjaG9vbHMgPSB0aGlzLkNvdXJzZURhdGEuU2Nob29scyA/IHRydWUgOiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2aWV3RGF0YUNvdXJzZShjb2RlQ291cnNlOiBJQ291cnNlQnlUb2tlblJzKXtcbiAgICB0aGlzLmNvZGVDb3Vyc2UuZW1pdChjb2RlQ291cnNlKTtcbiAgfVxuXG4gIGdldENzc0NsYXNzKGxldmVsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHN3aXRjaChsZXZlbCkge1xuICAgICAgY2FzZSAnUFJFLUExJzpcbiAgICAgICAgcmV0dXJuICdsZXZlbEFvbmUnXG4gICAgICBjYXNlICdBMSc6XG4gICAgICAgIHJldHVybiAnbGV2ZWxBb25ldHdvJ1xuICAgICAgY2FzZSAnQTInOlxuICAgICAgICByZXR1cm4gJ2xldmVsQXR3byc7XG4gICAgICBjYXNlICdCMSc6XG4gICAgICAgIHJldHVybiAnbGV2ZWxCb25lJ1xuICAgICAgY2FzZSAnQjInOlxuICAgICAgICByZXR1cm4gJ2xldmVsQnR3bydcbiAgICAgIGNhc2UgJ0IxKyc6XG4gICAgICAgIHJldHVybiAnbGV2ZWxCcGx1cydcbiAgICAgIGNhc2UgJ01PVkVSUyBJJzpcbiAgICAgIGNhc2UgJ01PVkVSUyBJSSc6XG4gICAgICBjYXNlICdCRUdJTk5FUlMgSSc6XG4gICAgICBjYXNlICdCRUdJTk5FUlMgSUknOlxuICAgICAgY2FzZSAnQkVHSU5ORVJTIElJSSc6XG4gICAgICBjYXNlICdTVEFSVEVSUyBJJzpcbiAgICAgIGNhc2UgJ1NUQVJURVJTIElJJzpcbiAgICAgICAgcmV0dXJuICdiZWdpbm5lcic7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiIWlzTG9hZGluZ1wiIGNsYXNzPVwibWFpbi1jb250YWluZXJcIj5cblxuICA8IS0tIGNhcmRzIEFjYWRlbXkgLS0+XG4gIDxkaXYgY2xhc3M9XCJjb250YWluZXJfX3NwYW4taGVhZGVyXCIgKm5nSWY9XCJ2aXNpYmxlQWNhZGVteSB8fCB2aXNpYmxlS2lkcyB8fCB2aXNpYmxlU2Nob29sc1wiPlxuICAgIDxzcGFuPlNlbGVjY2lvbmEgdW4gUGxhbjwvc3Bhbj5cbiAgPC9kaXY+XG5cbiAgPHAtcGFuZWxcbiAgKm5nSWY9XCJ2aXNpYmxlQWNhZGVteVwiXG4gIGhlYWRlcj1cIlBsYW4gQWNhZGVteVwiXG4gIFt0b2dnbGVhYmxlXT1cInRydWVcIlxuICBbY29sbGFwc2VkXT1cImZhbHNlXCJcbiAgaWQ9XCJhY2FkZW1pY19wbGFuXCJcbiAgY2xhc3M9XCJhY2FkZW1pY19wbGFuXCJcbiAgPlxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaWNvbnNcIj4gPC9uZy10ZW1wbGF0ZT5cbiAgICA8bWFpbiAqbmdJZj1cIiFpc0xvYWRpbmdcIiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgIDxzZWN0aW9uICpuZ0Zvcj1cImxldCBjb3Vyc2Ugb2YgY291cnNlQWNhZGVteVwiIGNsYXNzPVwiY2FyZDEgYW5pbWF0ZV9fYW5pbWF0ZWRcIiAgKGNsaWNrKT1cInZpZXdEYXRhQ291cnNlKGNvdXJzZSlcIj5cbiAgICAgICAgPGgzIGNsYXNzPVwiY2FyZDFfX3RpdGxlX19hY2FkZW1pY1wiPnt7IGNvdXJzZS5jb3Vyc2VfdHlwZS5sYWJlbCB9fTwvaDM+XG4gICAgICAgIDxwIGNsYXNzPVwiY2FyZDFfX2NvbnRlbnRcIj5cbiAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS10aGVvcnlcIj5DbGFzZXMgVGVvcmljYXM6IDwvc3Ryb25nPnt7IGNvdXJzZS5jb3Vyc2Vfc2NoZWR1bGUgfCBzY2hlZHVsZUZvcm1hdCB9fTxicj5cbiAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS10aGVvcnlcIj5Ib3JhcmlvIFRlb3JpY286IDwvc3Ryb25nPnt7IGNvdXJzZS5jb3Vyc2Vfc2NoZWR1bGUgfCBzY2hlZHVsZVRpbWVGb3JtYXQgfX08YnI+XG4gICAgICAgICAgPCEtLSA8c3Ryb25nIGNsYXNzPVwidHlwZS10aGVvcnlcIj5UaGVvcnkgVGVhY2hlcjogPC9zdHJvbmc+e3sgY291cnNlLnRlYWNoZXIgfCB0aXRsZWNhc2UgfX08YnI+IC0tPlxuICAgICAgICAgIDwhLS0gPHN0cm9uZyBjbGFzcz1cInR5cGUtdGhlb3J5XCI+VGhlb3J5IENsYXNzcm9vbTogPC9zdHJvbmc+PHNwYW4+e3sgY291cnNlLmNvdXJzZV9zY2hlZHVsZURldGFpbHNbMF0uQ2xhc3NSb29tLm5hbWUgIHwgdGl0bGVjYXNlfX08L3NwYW4+PGJyPiAtLT5cbiAgICAgICAgICA8c3Ryb25nPjxocj48L3N0cm9uZz5cbiAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS1jbHViXCI+Q2xhc2VzIENsdWI6IDwvc3Ryb25nPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb3Vyc2UuY291cnNlX2NsdWJcIj57eyBjb3Vyc2UuY291cnNlX2NsdWIuY291cnNlX3NjaGVkdWxlIHwgc2NoZWR1bGVGb3JtYXQgfX08L3NwYW4+PGJyPlxuICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLWNsdWJcIj5Ib3JhcmlvIENsdWI6IDwvc3Ryb25nPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb3Vyc2UuY291cnNlX2NsdWJcIj57eyBjb3Vyc2UuY291cnNlX2NsdWIuY291cnNlX3NjaGVkdWxlIHwgc2NoZWR1bGVUaW1lRm9ybWF0IH19PC9zcGFuPjxicj5cbiAgICAgICAgICA8IS0tIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLWNsdWJcIj5DbHViIFRlYWNoZXI6IDwvc3Ryb25nPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb3Vyc2UuY291cnNlX2NsdWJcIj57eyBjb3Vyc2UuY291cnNlX2NsdWIudGVhY2hlciB8IHRpdGxlY2FzZSB9fTwvc3Bhbj48YnI+IC0tPlxuICAgICAgICAgIDwhLS0gPHN0cm9uZyBjbGFzcz1cInR5cGUtY2x1YlwiPkNsdWIgQ2xhc3Nyb29tOiA8L3N0cm9uZz5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY291cnNlLmNvdXJzZV9jbHViXCI+e3sgY291cnNlLmNvdXJzZV9jbHViLmNvdXJzZV9zY2hlZHVsZURldGFpbHNbMF0uQ2xhc3NSb29tLm5hbWUgIHwgdGl0bGVjYXNlfX08L3NwYW4+PGJyPiAtLT5cbiAgICAgICAgICA8IS0tIDxzdHJvbmc+PGhyPjwvc3Ryb25nPiAtLT5cbiAgICAgICAgICA8c3Ryb25nICpuZ0lmPVwiY291cnNlLnN0YXJ0X2RhdGUgPT09IG51bGxcIj5Qb3NpYmxlIGluaWNpbzogPC9zdHJvbmc+e3sgY291cnNlLnN0YXJ0X2RhdGUgPT09IG51bGwgPyBjb3Vyc2UudG9fc3RhcnQgOiBudWxsIHwgZGF0ZTonZGQvTU0veXl5eScgfX08YnIgKm5nSWY9XCJjb3Vyc2Uuc3RhcnRfZGF0ZSA9PT0gbnVsbFwiPlxuICAgICAgICAgIDxzdHJvbmcgKm5nSWY9XCJjb3Vyc2Uuc3RhcnRfZGF0ZSAhPT0gbnVsbFwiPkZlY2hhIEluaWNpbzogPC9zdHJvbmc+e3sgY291cnNlLnN0YXJ0X2RhdGUgIT09IG51bGwgPyBjb3Vyc2Uuc3RhcnRfZGF0ZSA6IG51bGwgfCBkYXRlOidkZC9NTS95eXl5JyB9fTxiciAqbmdJZj1cImNvdXJzZS5maW5pc2hfZGF0ZSAhPT0gbnVsbFwiPlxuICAgICAgICAgIDxzdHJvbmcgKm5nSWY9XCJjb3Vyc2UuZmluaXNoX2RhdGUgIT09IG51bGxcIj5GZWNoYSBjdWxtaW5hY2lvbjogPC9zdHJvbmc+e3sgY291cnNlLmZpbmlzaF9kYXRlICE9PSBudWxsID8gY291cnNlLmZpbmlzaF9kYXRlIDogbnVsbCB8IGRhdGU6J2RkL01NL3l5eXknIH19PGJyICpuZ0lmPVwiY291cnNlLmZpbmlzaF9kYXRlICE9PSBudWxsXCI+XG4gICAgICAgICAgPCEtLSA8c3Ryb25nPkNyZWF0ZWQ6IDwvc3Ryb25nPnt7IGNvdXJzZS5jcmVhdGVkX2F0IHwgZGF0ZTonZGQvTU0veXl5eScgfX08YnI+IC0tPlxuICAgICAgICA8L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkMV9fZGF0ZVwiPlxuICAgICAgICAgIDwhLS0gPHNwYW5cbiAgICAgICAgICBbbmdDbGFzc109XCJjb3Vyc2Uuc3RhdHVzPy5jb2xvcl9zdGF0dXNcIlxuICAgICAgICAgID48L3NwYW4+IC0tPlxuICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJjb3Vyc2UtY29kZVwiPkNvZGU6IHt7Y291cnNlLmNvZGV9fTwvc3Bhbj4gLS0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZDFfX2Fycm93XCIgW25nQ2xhc3NdPVwiZ2V0Q3NzQ2xhc3MoY291cnNlLmVuZ2xpc2hfbGV2ZWwubmFtZSlcIj5cbiAgICAgICAgICA8c3Bhbj57eyBjb3Vyc2UuZW5nbGlzaF9sZXZlbC5uYW1lIHwgdHlwZUxldmVsfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9zZWN0aW9uPlxuICAgIDwvbWFpbj5cbiAgICA8aXB0LWxvYWRlciAqbmdJZj1cImlzTG9hZGluZ1wiPjwvaXB0LWxvYWRlcj5cbiAgPC9wLXBhbmVsPlxuXG4gIDwhLS0gY2FyZHMgS2lkcyAtLT5cblxuICA8cC1wYW5lbFxuICAqbmdJZj1cInZpc2libGVLaWRzXCJcbiAgaGVhZGVyPVwiUGxhbiBLaWRzXCJcbiAgW3RvZ2dsZWFibGVdPVwidHJ1ZVwiXG4gIFtjb2xsYXBzZWRdPVwiZmFsc2VcIlxuICBpZD1cInNvY2lhbF9raWRzXCJcbiAgPlxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaWNvbnNcIj4gPC9uZy10ZW1wbGF0ZT5cbiAgICA8bWFpbiAqbmdJZj1cIiFpc0xvYWRpbmdcIiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgIDxzZWN0aW9uICpuZ0Zvcj1cImxldCBjb3Vyc2Ugb2YgY291cnNlS2lkc1wiIGNsYXNzPVwiY2FyZDEgYW5pbWF0ZV9fYW5pbWF0ZWRcIiAgKGNsaWNrKT1cInZpZXdEYXRhQ291cnNlKGNvdXJzZSlcIj5cbiAgICAgICAgPGgzIGNsYXNzPVwiY2FyZDFfX3RpdGxlX19raWRzXCI+e3sgY291cnNlLmNvdXJzZV90eXBlLmxhYmVsIH19PC9oMz5cbiAgICAgICAgPHAgY2xhc3M9XCJjYXJkMV9fY29udGVudFwiPlxuICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLXRoZW9yeVwiPkNsYXNlcyBUZW9yaWNhczogPC9zdHJvbmc+e3sgY291cnNlLmNvdXJzZV9zY2hlZHVsZSB8IHNjaGVkdWxlRm9ybWF0IH19PGJyPlxuICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLXRoZW9yeVwiPkhvcmFyaW8gVGVvcmljbzogPC9zdHJvbmc+e3sgY291cnNlLmNvdXJzZV9zY2hlZHVsZSB8IHNjaGVkdWxlVGltZUZvcm1hdCB9fTxicj5cbiAgICAgICAgICA8IS0tIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLXRoZW9yeVwiPlRoZW9yeSBUZWFjaGVyOiA8L3N0cm9uZz57eyBjb3Vyc2UudGVhY2hlciB8IHRpdGxlY2FzZSB9fTxicj5cbiAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS10aGVvcnlcIj5UaGVvcnkgQ2xhc3Nyb29tOiA8L3N0cm9uZz48c3Bhbj57eyBjb3Vyc2UuY291cnNlX3NjaGVkdWxlRGV0YWlsc1swXS5DbGFzc1Jvb20ubmFtZSAgfCB0aXRsZWNhc2V9fTwvc3Bhbj48YnI+IC0tPlxuICAgICAgICAgIDxzdHJvbmc+PGhyPjwvc3Ryb25nPlxuICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLWNsdWJcIj5DbGFzZXMgQ2x1YjogPC9zdHJvbmc+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvdXJzZS5jb3Vyc2VfY2x1YlwiPnt7IGNvdXJzZS5jb3Vyc2VfY2x1Yi5jb3Vyc2Vfc2NoZWR1bGUgfCBzY2hlZHVsZUZvcm1hdCB9fTwvc3Bhbj48YnI+XG4gICAgICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtY2x1YlwiPkhvcmFyaW8gQ2x1YjogPC9zdHJvbmc+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvdXJzZS5jb3Vyc2VfY2x1YlwiPnt7IGNvdXJzZS5jb3Vyc2VfY2x1Yi5jb3Vyc2Vfc2NoZWR1bGUgfCBzY2hlZHVsZVRpbWVGb3JtYXQgfX08L3NwYW4+PGJyPlxuICAgICAgICAgIDwhLS0gPHN0cm9uZyBjbGFzcz1cInR5cGUtY2x1YlwiPkNsdWIgVGVhY2hlcjogPC9zdHJvbmc+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvdXJzZS5jb3Vyc2VfY2x1YlwiPnt7IGNvdXJzZS5jb3Vyc2VfY2x1Yi50ZWFjaGVyIHwgdGl0bGVjYXNlIH19PC9zcGFuPjxicj4gLS0+XG4gICAgICAgICAgPCEtLSA8c3Ryb25nIGNsYXNzPVwidHlwZS1jbHViXCI+Q2x1YiBDbGFzc3Jvb206IDwvc3Ryb25nPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb3Vyc2UuY291cnNlX2NsdWJcIj57eyBjb3Vyc2UuY291cnNlX2NsdWIuY291cnNlX3NjaGVkdWxlRGV0YWlsc1swXS5DbGFzc1Jvb20ubmFtZSAgfCB0aXRsZWNhc2V9fTwvc3Bhbj48YnI+IC0tPlxuICAgICAgICAgIDwhLS0gPHN0cm9uZz48aHI+PC9zdHJvbmc+IC0tPlxuICAgICAgICAgIDxzdHJvbmcgKm5nSWY9XCJjb3Vyc2Uuc3RhcnRfZGF0ZSA9PT0gbnVsbFwiPlBvc2libGUgaW5pY2lvOiA8L3N0cm9uZz57eyBjb3Vyc2Uuc3RhcnRfZGF0ZSA9PT0gbnVsbCA/IGNvdXJzZS50b19zdGFydCA6IG51bGwgfCBkYXRlOidkZC9NTS95eXl5JyB9fTxiciAqbmdJZj1cImNvdXJzZS5zdGFydF9kYXRlID09PSBudWxsXCI+XG4gICAgICAgICAgPHN0cm9uZyAqbmdJZj1cImNvdXJzZS5zdGFydF9kYXRlICE9PSBudWxsXCI+RmVjaGEgSW5pY2lvOiA8L3N0cm9uZz57eyBjb3Vyc2Uuc3RhcnRfZGF0ZSAhPT0gbnVsbCA/IGNvdXJzZS5zdGFydF9kYXRlIDogbnVsbCB8IGRhdGU6J2RkL01NL3l5eXknIH19PGJyICpuZ0lmPVwiY291cnNlLmZpbmlzaF9kYXRlICE9PSBudWxsXCI+XG4gICAgICAgICAgPHN0cm9uZyAqbmdJZj1cImNvdXJzZS5maW5pc2hfZGF0ZSAhPT0gbnVsbFwiPkZlY2hhIGN1bG1pbmFjaW9uOiA8L3N0cm9uZz57eyBjb3Vyc2UuZmluaXNoX2RhdGUgIT09IG51bGwgPyBjb3Vyc2UuZmluaXNoX2RhdGUgOiBudWxsIHwgZGF0ZTonZGQvTU0veXl5eScgfX08YnIgKm5nSWY9XCJjb3Vyc2UuZmluaXNoX2RhdGUgIT09IG51bGxcIj5cbiAgICAgICAgICA8IS0tIDxzdHJvbmc+Q3JlYXRlZDogPC9zdHJvbmc+e3sgY291cnNlLmNyZWF0ZWRfYXQgfCBkYXRlOidkZC9NTS95eXl5JyB9fTxicj4gLS0+XG4gICAgICAgIDwvcD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQxX19kYXRlXCI+XG4gICAgICAgICAgPCEtLSA8c3BhblxuICAgICAgICAgIFtuZ0NsYXNzXT1cImNvdXJzZS5zdGF0dXM/LmNvbG9yX3N0YXR1c1wiXG4gICAgICAgICAgPjwvc3Bhbj4gLS0+XG4gICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cImNvdXJzZS1jb2RlXCI+Q29kZToge3tjb3Vyc2UuY29kZX19PC9zcGFuPiAtLT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkMV9fYXJyb3dcIiBbbmdDbGFzc109XCJnZXRDc3NDbGFzcyhjb3Vyc2UuZW5nbGlzaF9sZXZlbC5uYW1lKVwiPlxuICAgICAgICAgIDxzcGFuPnt7IGNvdXJzZS5lbmdsaXNoX2xldmVsLm5hbWUgfCB0eXBlTGV2ZWx9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3NlY3Rpb24+XG4gICAgPC9tYWluPlxuICAgIDxpcHQtbG9hZGVyICpuZ0lmPVwiaXNMb2FkaW5nXCI+PC9pcHQtbG9hZGVyPlxuICA8L3AtcGFuZWw+XG5cbiAgPCEtLSBjYXJkcyBTY2hvb2xzIC0tPlxuXG4gIDxwLXBhbmVsXG4gICpuZ0lmPVwidmlzaWJsZVNjaG9vbHNcIlxuICBoZWFkZXI9XCJQbGFuIFNjaG9vbHNcIlxuICBbdG9nZ2xlYWJsZV09XCJ0cnVlXCJcbiAgW2NvbGxhcHNlZF09XCJmYWxzZVwiXG4gIGlkPVwic29jaWFsX3NjaG9vbFwiXG4gID5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImljb25zXCI+IDwvbmctdGVtcGxhdGU+XG4gICAgPG1haW4gKm5nSWY9XCIhaXNMb2FkaW5nXCIgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XG4gICAgICA8c2VjdGlvbiAqbmdGb3I9XCJsZXQgY291cnNlIG9mIGNvdXJzZVNjaG9vbHNcIiBjbGFzcz1cImNhcmQxIGFuaW1hdGVfX2FuaW1hdGVkXCIgIChjbGljayk9XCJ2aWV3RGF0YUNvdXJzZShjb3Vyc2UpXCI+XG4gICAgICAgIDxoMyBjbGFzcz1cImNhcmQxX190aXRsZV9fc2Nob29sc1wiPnt7IGNvdXJzZS5jb3Vyc2VfdHlwZS5sYWJlbCB9fTwvaDM+XG4gICAgICAgIDxwIGNsYXNzPVwiY2FyZDFfX2NvbnRlbnRcIj5cbiAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS10aGVvcnlcIj5DbGFzZXMgVGVvcmljYXM6IDwvc3Ryb25nPnt7IGNvdXJzZS5jb3Vyc2Vfc2NoZWR1bGUgfCBzY2hlZHVsZUZvcm1hdCB9fTxicj5cbiAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS10aGVvcnlcIj5Ib3JhcmlvIFRlb3JpY286IDwvc3Ryb25nPnt7IGNvdXJzZS5jb3Vyc2Vfc2NoZWR1bGUgfCBzY2hlZHVsZVRpbWVGb3JtYXQgfX08YnI+XG4gICAgICAgICAgPCEtLSA8c3Ryb25nIGNsYXNzPVwidHlwZS10aGVvcnlcIj5UaGVvcnkgVGVhY2hlcjogPC9zdHJvbmc+e3sgY291cnNlLnRlYWNoZXIgfCB0aXRsZWNhc2UgfX08YnI+XG4gICAgICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtdGhlb3J5XCI+VGhlb3J5IENsYXNzcm9vbTogPC9zdHJvbmc+PHNwYW4+e3sgY291cnNlLmNvdXJzZV9zY2hlZHVsZURldGFpbHNbMF0uQ2xhc3NSb29tLm5hbWUgIHwgdGl0bGVjYXNlfX08L3NwYW4+PGJyPiAtLT5cbiAgICAgICAgICA8c3Ryb25nPjxocj48L3N0cm9uZz5cbiAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS1jbHViXCI+Q2xhc2VzIENsdWI6IDwvc3Ryb25nPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb3Vyc2UuY291cnNlX2NsdWJcIj57eyBjb3Vyc2UuY291cnNlX2NsdWIuY291cnNlX3NjaGVkdWxlIHwgc2NoZWR1bGVGb3JtYXQgfX08L3NwYW4+PGJyPlxuICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLWNsdWJcIj5Ib3JhcmlvIENsdWI6IDwvc3Ryb25nPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb3Vyc2UuY291cnNlX2NsdWJcIj57eyBjb3Vyc2UuY291cnNlX2NsdWIuY291cnNlX3NjaGVkdWxlIHwgc2NoZWR1bGVUaW1lRm9ybWF0IH19PC9zcGFuPjxicj5cbiAgICAgICAgICA8IS0tIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLWNsdWJcIj5DbHViIFRlYWNoZXI6IDwvc3Ryb25nPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb3Vyc2UuY291cnNlX2NsdWJcIj57eyBjb3Vyc2UuY291cnNlX2NsdWIudGVhY2hlciB8IHRpdGxlY2FzZSB9fTwvc3Bhbj48YnI+XG4gICAgICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtY2x1YlwiPkNsdWIgQ2xhc3Nyb29tOiA8L3N0cm9uZz5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY291cnNlLmNvdXJzZV9jbHViXCI+e3sgY291cnNlLmNvdXJzZV9jbHViLmNvdXJzZV9zY2hlZHVsZURldGFpbHNbMF0uQ2xhc3NSb29tLm5hbWUgIHwgdGl0bGVjYXNlfX08L3NwYW4+PGJyPiAtLT5cbiAgICAgICAgICA8IS0tIDxzdHJvbmc+PGhyPjwvc3Ryb25nPiAtLT5cbiAgICAgICAgICA8c3Ryb25nICpuZ0lmPVwiY291cnNlLnN0YXJ0X2RhdGUgPT09IG51bGxcIj5Qb3NpYmxlIGluaWNpbzogPC9zdHJvbmc+e3sgY291cnNlLnN0YXJ0X2RhdGUgPT09IG51bGwgPyBjb3Vyc2UudG9fc3RhcnQgOiBudWxsIHwgZGF0ZTonZGQvTU0veXl5eScgfX08YnIgKm5nSWY9XCJjb3Vyc2Uuc3RhcnRfZGF0ZSA9PT0gbnVsbFwiPlxuICAgICAgICAgIDxzdHJvbmcgKm5nSWY9XCJjb3Vyc2Uuc3RhcnRfZGF0ZSAhPT0gbnVsbFwiPkZlY2hhIEluaWNpbzogPC9zdHJvbmc+e3sgY291cnNlLnN0YXJ0X2RhdGUgIT09IG51bGwgPyBjb3Vyc2Uuc3RhcnRfZGF0ZSA6IG51bGwgfCBkYXRlOidkZC9NTS95eXl5JyB9fTxiciAqbmdJZj1cImNvdXJzZS5maW5pc2hfZGF0ZSAhPT0gbnVsbFwiPlxuICAgICAgICAgIDxzdHJvbmcgKm5nSWY9XCJjb3Vyc2UuZmluaXNoX2RhdGUgIT09IG51bGxcIj5GZWNoYSBjdWxtaW5hY2lvbjogPC9zdHJvbmc+e3sgY291cnNlLmZpbmlzaF9kYXRlICE9PSBudWxsID8gY291cnNlLmZpbmlzaF9kYXRlIDogbnVsbCB8IGRhdGU6J2RkL01NL3l5eXknIH19PGJyICpuZ0lmPVwiY291cnNlLmZpbmlzaF9kYXRlICE9PSBudWxsXCI+XG4gICAgICAgICAgPCEtLSA8c3Ryb25nPkNyZWF0ZWQ6IDwvc3Ryb25nPnt7IGNvdXJzZS5jcmVhdGVkX2F0IHwgZGF0ZTonZGQvTU0veXl5eScgfX08YnI+IC0tPlxuICAgICAgICA8L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkMV9fZGF0ZVwiPlxuICAgICAgICAgIDwhLS0gPHNwYW5cbiAgICAgICAgICBbbmdDbGFzc109XCJjb3Vyc2Uuc3RhdHVzPy5jb2xvcl9zdGF0dXNcIlxuICAgICAgICAgID48L3NwYW4+IC0tPlxuICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJjb3Vyc2UtY29kZVwiPkNvZGU6IHt7Y291cnNlLmNvZGV9fTwvc3Bhbj4gLS0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZDFfX2Fycm93XCIgW25nQ2xhc3NdPVwiZ2V0Q3NzQ2xhc3MoY291cnNlLmVuZ2xpc2hfbGV2ZWwubmFtZSlcIj5cbiAgICAgICAgICA8c3Bhbj57eyBjb3Vyc2UuZW5nbGlzaF9sZXZlbC5uYW1lIHwgdHlwZUxldmVsfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9zZWN0aW9uPlxuICAgIDwvbWFpbj5cbiAgICA8aXB0LWxvYWRlciAqbmdJZj1cImlzTG9hZGluZ1wiPjwvaXB0LWxvYWRlcj5cbiAgPC9wLXBhbmVsPlxuXG4gIDxkaXYgY2xhc3M9XCJjb250YWluZXJfX3NwYW4tZm9vdGVyXCIgKm5nSWY9XCIhdmlzaWJsZUFjYWRlbXkgJiYgIXZpc2libGVLaWRzICYmICF2aXNpYmxlU2Nob29sc1wiPlxuICAgIDxzcGFuPk5vIHNlIGVuY29udHJhcm9uIHBsYW5lczwvc3Bhbj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgKm5nSWY9XCIhaXNMb2FkaW5nXCI+XG5cbiAgPHAtcGFuZWxcbiAgaGVhZGVyPVwiXCJcbiAgW3RvZ2dsZWFibGVdPVwidHJ1ZVwiXG4gIFtjb2xsYXBzZWRdPVwiZmFsc2VcIlxuICA+XG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJpY29uc1wiPiA8L25nLXRlbXBsYXRlPlxuICAgIDxtYWluIGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgICAgPHNlY3Rpb24gKm5nRm9yPVwibGV0IGNvdXJzZSBvZiBza2VsZXRvblwiIGNsYXNzPVwiY2FyZDEgYW5pbWF0ZV9fYW5pbWF0ZWRcIiAgPlxuICAgICAgICA8cC1za2VsZXRvbiB3aWR0aD1cIjEwcmVtXCIgc3R5bGVDbGFzcz1cIm1iLTJcIiA+PC9wLXNrZWxldG9uPlxuICAgICAgICA8cCBjbGFzcz1cImNhcmQxX19jb250ZW50X3NrZWxldG9uXCI+XG4gICAgICAgICAgPHAtc2tlbGV0b24gd2lkdGg9XCIxMHJlbVwiIHN0eWxlQ2xhc3M9XCJtYi0yXCIgPjwvcC1za2VsZXRvbj5cbiAgICAgICAgICA8cC1za2VsZXRvbiB3aWR0aD1cIjVyZW1cIiBzdHlsZUNsYXNzPVwibWItMlwiID48L3Atc2tlbGV0b24+XG4gICAgICAgICAgPHN0cm9uZz48aHI+PC9zdHJvbmc+XG4gICAgICAgICAgPHAtc2tlbGV0b24gd2lkdGg9XCI1cmVtXCIgc3R5bGVDbGFzcz1cIm1iLTJcIiA+PC9wLXNrZWxldG9uPjxicj5cbiAgICAgICAgICA8cC1za2VsZXRvbiB3aWR0aD1cIjVyZW1cIiBzdHlsZUNsYXNzPVwibWItMlwiID48L3Atc2tlbGV0b24+PGJyPlxuXG4gICAgICAgIDwvcD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQxX19kYXRlX19za2VsZXRvblwiPlxuXG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZDFfX2Fycm93X19za2VsZXRvblwiID5cbiAgICAgICAgICA8cC1za2VsZXRvbiB3aWR0aD1cIjVyZW1cIiBzdHlsZUNsYXNzPVwibWItMlwiID48L3Atc2tlbGV0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9zZWN0aW9uPlxuICAgIDwvbWFpbj5cbiAgPC9wLXBhbmVsPlxuXG48L2Rpdj5cblxuIl19