aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--_www/functions.js24
-rw-r--r--_www/functions.ts36
-rw-r--r--_www/http_target.js16
-rw-r--r--_www/http_target.ts22
-rw-r--r--_www/interface.ts30
-rw-r--r--_www/nav_links.ts4
-rw-r--r--_www/target.js42
-rw-r--r--_www/target.ts50
-rw-r--r--_www/trunks.js32
-rw-r--r--_www/trunks.ts46
-rw-r--r--attack_result.go12
-rw-r--r--common.go2
-rw-r--r--errors.go6
-rw-r--r--example/example.go108
-rw-r--r--form_input.go2
-rw-r--r--http_server.go54
-rw-r--r--http_target.go52
-rw-r--r--key_form_input.go12
-rw-r--r--memfs_www_embed.go42
-rw-r--r--run_request.go22
-rw-r--r--run_response.go12
-rw-r--r--target.go27
-rw-r--r--trunks.go124
23 files changed, 397 insertions, 380 deletions
diff --git a/_www/functions.js b/_www/functions.js
index 759ff91..220228e 100644
--- a/_www/functions.js
+++ b/_www/functions.js
@@ -51,7 +51,7 @@ export function generateFormInput(parent, fi) {
break;
}
}
-export function HttpMethodToString(m) {
+export function HTTPMethodToString(m) {
switch (m) {
case 0:
return "GET";
@@ -75,10 +75,10 @@ export function HttpMethodToString(m) {
return "???";
}
//
-// loadHttpTargetHeader get HttpTarget header from local storage by key.
-// If no header exist in storage return the one from HttpTarget itself.
+// loadHTTPTargetHeader get HTTPTarget header from local storage by key.
+// If no header exist in storage return the one from HTTPTarget itself.
//
-export function loadHttpTargetHeader(target, httpTarget, key) {
+export function loadHTTPTargetHeader(target, httpTarget, key) {
const storageKey = `${target.ID}.http.${httpTarget.ID}.header.${key}`;
const val = window.localStorage.getItem(storageKey);
if (val) {
@@ -90,15 +90,15 @@ export function loadHttpTargetHeader(target, httpTarget, key) {
}
return "";
}
-function saveHttpTargetHeader(target, httpTarget, key, value) {
+function saveHTTPTargetHeader(target, httpTarget, key, value) {
const storageKey = `${target.ID}.http.${httpTarget.ID}.header.${key}`;
window.localStorage.setItem(storageKey, value);
}
//
-// loadHttpTargetParam get HttpTarget parameter from local storage by key.
-// If no parameter exist in storage return the one from HttpTarget itself.
+// loadHTTPTargetParam get HTTPTarget parameter from local storage by key.
+// If no parameter exist in storage return the one from HTTPTarget itself.
//
-export function loadHttpTargetParam(target, httpTarget, key) {
+export function loadHTTPTargetParam(target, httpTarget, key) {
const storageKey = `${target.ID}.http.${httpTarget.ID}.param.${key}`;
const val = window.localStorage.getItem(storageKey);
if (val) {
@@ -110,7 +110,7 @@ export function loadHttpTargetParam(target, httpTarget, key) {
}
return "";
}
-function saveHttpTargetParam(target, httpTarget, key, value) {
+function saveHTTPTargetParam(target, httpTarget, key, value) {
const storageKey = `${target.ID}.http.${httpTarget.ID}.param.${key}`;
window.localStorage.setItem(storageKey, value);
}
@@ -210,7 +210,7 @@ function saveWsTargetParam(target, wsTarget, key, value) {
window.localStorage.setItem(storageKey, value);
}
//
-// save the variables on the Target, Params and Headers on HttpTarget or
+// save the variables on the Target, Params and Headers on HTTPTarget or
// WebSocket to local storage.
//
export function save(target, httpTarget, wsTarget) {
@@ -222,10 +222,10 @@ export function save(target, httpTarget, wsTarget) {
}
if (httpTarget) {
for (const [k, fi] of Object.entries(httpTarget.Headers)) {
- saveHttpTargetHeader(target, httpTarget, k, fi.value);
+ saveHTTPTargetHeader(target, httpTarget, k, fi.value);
}
for (const [k, fi] of Object.entries(httpTarget.Params)) {
- saveHttpTargetParam(target, httpTarget, k, fi.value);
+ saveHTTPTargetParam(target, httpTarget, k, fi.value);
}
}
if (wsTarget) {
diff --git a/_www/functions.ts b/_www/functions.ts
index 64f68ff..f927f80 100644
--- a/_www/functions.ts
+++ b/_www/functions.ts
@@ -9,7 +9,7 @@ import {
CLASS_INPUT_LABEL,
FormInput,
FormInputKindNumber,
- HttpTargetInterface,
+ HTTPTargetInterface,
TargetInterface,
WebSocketTargetInterface,
} from "./interface.js";
@@ -70,7 +70,7 @@ export function generateFormInput(parent: HTMLElement, fi: FormInput) {
}
}
-export function HttpMethodToString(m: number): string {
+export function HTTPMethodToString(m: number): string {
switch (m) {
case 0:
return "GET";
@@ -95,12 +95,12 @@ export function HttpMethodToString(m: number): string {
}
//
-// loadHttpTargetHeader get HttpTarget header from local storage by key.
-// If no header exist in storage return the one from HttpTarget itself.
+// loadHTTPTargetHeader get HTTPTarget header from local storage by key.
+// If no header exist in storage return the one from HTTPTarget itself.
//
-export function loadHttpTargetHeader(
+export function loadHTTPTargetHeader(
target: TargetInterface,
- httpTarget: HttpTargetInterface,
+ httpTarget: HTTPTargetInterface,
key: string,
): string {
const storageKey = `${target.ID}.http.${httpTarget.ID}.header.${key}`;
@@ -115,9 +115,9 @@ export function loadHttpTargetHeader(
return "";
}
-function saveHttpTargetHeader(
+function saveHTTPTargetHeader(
target: TargetInterface,
- httpTarget: HttpTargetInterface,
+ httpTarget: HTTPTargetInterface,
key: string,
value: string,
) {
@@ -126,12 +126,12 @@ function saveHttpTargetHeader(
}
//
-// loadHttpTargetParam get HttpTarget parameter from local storage by key.
-// If no parameter exist in storage return the one from HttpTarget itself.
+// loadHTTPTargetParam get HTTPTarget parameter from local storage by key.
+// If no parameter exist in storage return the one from HTTPTarget itself.
//
-export function loadHttpTargetParam(
+export function loadHTTPTargetParam(
target: TargetInterface,
- httpTarget: HttpTargetInterface,
+ httpTarget: HTTPTargetInterface,
key: string,
): string {
const storageKey = `${target.ID}.http.${httpTarget.ID}.param.${key}`;
@@ -146,9 +146,9 @@ export function loadHttpTargetParam(
return "";
}
-function saveHttpTargetParam(
+function saveHTTPTargetParam(
target: TargetInterface,
- httpTarget: HttpTargetInterface,
+ httpTarget: HTTPTargetInterface,
key: string,
value: string,
) {
@@ -282,12 +282,12 @@ function saveWsTargetParam(
}
//
-// save the variables on the Target, Params and Headers on HttpTarget or
+// save the variables on the Target, Params and Headers on HTTPTarget or
// WebSocket to local storage.
//
export function save(
target: TargetInterface,
- httpTarget: HttpTargetInterface | null,
+ httpTarget: HTTPTargetInterface | null,
wsTarget: WebSocketTargetInterface | null,
) {
saveTargetOptDuration(target);
@@ -299,10 +299,10 @@ export function save(
}
if (httpTarget) {
for (const [k, fi] of Object.entries(httpTarget.Headers)) {
- saveHttpTargetHeader(target, httpTarget, k, fi.value);
+ saveHTTPTargetHeader(target, httpTarget, k, fi.value);
}
for (const [k, fi] of Object.entries(httpTarget.Params)) {
- saveHttpTargetParam(target, httpTarget, k, fi.value);
+ saveHTTPTargetParam(target, httpTarget, k, fi.value);
}
}
if (wsTarget) {
diff --git a/_www/http_target.js b/_www/http_target.js
index 7e3928a..ee3b395 100644
--- a/_www/http_target.js
+++ b/_www/http_target.js
@@ -2,7 +2,7 @@
// SPDX-License-Identifier: GPL-3.0-or-later
import { WuiInputSelect } from "./wui/input/select.js";
import { WuiInputString } from "./wui/input/string.js";
-import { generateFormInput, loadHttpTargetHeader, loadHttpTargetParam, } from "./functions.js";
+import { generateFormInput, loadHTTPTargetHeader, loadHTTPTargetParam, } from "./functions.js";
import { CLASS_INPUT, CLASS_INPUT_LABEL, } from "./interface.js";
const CLASS_HTTP_TARGET = "http_target";
const CLASS_HTTP_TARGET_ACTIONS = "http_target_actions";
@@ -15,7 +15,7 @@ const CLASS_HTTP_TARGET_OUT_ATTACK = "http_target_out_attack";
const CLASS_HTTP_TARGET_OUT_MONO = "http_target_out_mono";
const CLASS_HTTP_TARGET_OUT_RUN = "http_target_out_run";
const CONTENT_TYPE_JSON = "application/json";
-export class HttpTarget {
+export class HTTPTarget {
constructor(trunks, target, opts) {
this.trunks = trunks;
this.target = target;
@@ -185,7 +185,7 @@ export class HttpTarget {
legend.innerText = "Headers";
wrapper.appendChild(legend);
for (const [key, fi] of Object.entries(this.opts.Headers)) {
- fi.value = loadHttpTargetHeader(this.target, this.opts, key);
+ fi.value = loadHTTPTargetHeader(this.target, this.opts, key);
generateFormInput(wrapper, fi);
}
parent.appendChild(wrapper);
@@ -203,7 +203,7 @@ export class HttpTarget {
title.innerText = "Parameters";
wrapper.appendChild(title);
for (const [key, fi] of Object.entries(this.opts.Params)) {
- fi.value = loadHttpTargetParam(this.target, this.opts, key);
+ fi.value = loadHTTPTargetParam(this.target, this.opts, key);
generateFormInput(wrapper, fi);
}
parent.appendChild(wrapper);
@@ -279,10 +279,10 @@ export class HttpTarget {
}
}
async onClickAttack() {
- await this.trunks.attackHttp(this.target, this.opts);
+ await this.trunks.attackHTTP(this.target, this.opts);
}
async onClickAttackDelete(result) {
- const res = await this.trunks.attackHttpDelete(result.Name);
+ const res = await this.trunks.attackHTTPDelete(result.Name);
if (!res) {
return;
}
@@ -301,7 +301,7 @@ export class HttpTarget {
elReportHist.style.display = "none";
return;
}
- const resJSON = await this.trunks.attackHttpGet(resultName);
+ const resJSON = await this.trunks.attackHTTPGet(resultName);
if (resJSON.code != 200) {
return;
}
@@ -318,7 +318,7 @@ export class HttpTarget {
this.elOutResponseBody.innerText = "JSON formatted response body";
}
async onClickRun() {
- const res = await this.trunks.runHttp(this.target, this.opts);
+ const res = await this.trunks.runHTTP(this.target, this.opts);
if (!res) {
return;
}
diff --git a/_www/http_target.ts b/_www/http_target.ts
index 69a76b8..62fe969 100644
--- a/_www/http_target.ts
+++ b/_www/http_target.ts
@@ -6,14 +6,14 @@ import { WuiInputString, WuiInputStringOpts } from "./wui/input/string.js";
import {
generateFormInput,
- loadHttpTargetHeader,
- loadHttpTargetParam,
+ loadHTTPTargetHeader,
+ loadHTTPTargetParam,
} from "./functions.js";
import {
CLASS_INPUT,
CLASS_INPUT_LABEL,
AttackResult,
- HttpTargetInterface,
+ HTTPTargetInterface,
TargetInterface,
TrunksInterface,
} from "./interface.js";
@@ -32,7 +32,7 @@ const CLASS_HTTP_TARGET_OUT_RUN = "http_target_out_run";
const CONTENT_TYPE_JSON = "application/json";
-export class HttpTarget {
+export class HTTPTarget {
el: HTMLElement = document.createElement("div");
elButtonRun: HTMLButtonElement = document.createElement("button");
elButtonAttack: HTMLButtonElement = document.createElement("button");
@@ -46,7 +46,7 @@ export class HttpTarget {
constructor(
public trunks: TrunksInterface,
public target: TargetInterface,
- public opts: HttpTargetInterface,
+ public opts: HTTPTargetInterface,
) {
this.el.id = opts.ID;
this.el.classList.add(CLASS_HTTP_TARGET);
@@ -223,7 +223,7 @@ export class HttpTarget {
wrapper.appendChild(legend);
for (const [key, fi] of Object.entries(this.opts.Headers)) {
- fi.value = loadHttpTargetHeader(this.target, this.opts, key);
+ fi.value = loadHTTPTargetHeader(this.target, this.opts, key);
generateFormInput(wrapper, fi);
}
@@ -246,7 +246,7 @@ export class HttpTarget {
wrapper.appendChild(title);
for (const [key, fi] of Object.entries(this.opts.Params)) {
- fi.value = loadHttpTargetParam(this.target, this.opts, key);
+ fi.value = loadHTTPTargetParam(this.target, this.opts, key);
generateFormInput(wrapper, fi);
}
@@ -352,11 +352,11 @@ export class HttpTarget {
}
private async onClickAttack() {
- await this.trunks.attackHttp(this.target, this.opts);
+ await this.trunks.attackHTTP(this.target, this.opts);
}
private async onClickAttackDelete(result: AttackResult) {
- const res = await this.trunks.attackHttpDelete(result.Name);
+ const res = await this.trunks.attackHTTPDelete(result.Name);
if (!res) {
return;
}
@@ -382,7 +382,7 @@ export class HttpTarget {
return;
}
- const resJSON = await this.trunks.attackHttpGet(resultName);
+ const resJSON = await this.trunks.attackHTTPGet(resultName);
if (resJSON.code != 200) {
return;
}
@@ -405,7 +405,7 @@ export class HttpTarget {
}
private async onClickRun() {
- const res = await this.trunks.runHttp(this.target, this.opts);
+ const res = await this.trunks.runHTTP(this.target, this.opts);
if (!res) {
return;
}
diff --git a/_www/interface.ts b/_www/interface.ts
index bc12b87..2b756b9 100644
--- a/_www/interface.ts
+++ b/_www/interface.ts
@@ -20,7 +20,7 @@ export interface AttackOptionsInterface {
export interface AttackResult {
TargetID: string;
- HttpTargetID: string;
+ HTTPTargetID: string;
Name: string;
TextReport: string;
HistReport: string;
@@ -44,13 +44,13 @@ export interface FormInput {
min?: number;
}
-export interface HttpResponseInterface {
+export interface HTTPResponseInterface {
code: number;
message: string;
data?: any; // eslint-disable-line @typescript-eslint/no-explicit-any
}
-export interface HttpTargetInterface {
+export interface HTTPTargetInterface {
Name: string;
Hint?: string;
ID: string;
@@ -85,7 +85,7 @@ export interface NavLinkInterface {
export interface RunRequestInterface {
Target: TargetInterface;
- HttpTarget: HttpTargetInterface | null;
+ HTTPTarget: HTTPTargetInterface | null;
WebSocketTarget: WebSocketTargetInterface | null;
Result?: AttackResult | null;
}
@@ -103,26 +103,26 @@ export interface TargetInterface {
ID: string;
Name: string;
Hint?: string;
- BaseUrl: string;
+ BaseURL: string;
Opts: AttackOptionsInterface;
Vars: KeyFormInput;
- HttpTargets: HttpTargetInterface[];
+ HTTPTargets: HTTPTargetInterface[];
WebSocketTargets: WebSocketTargetInterface[];
}
export interface TrunksInterface {
- attackHttp(
+ attackHTTP(
target: TargetInterface,
- http_target: HttpTargetInterface,
- ): Promise<HttpResponseInterface | null>;
+ http_target: HTTPTargetInterface,
+ ): Promise<HTTPResponseInterface | null>;
- attackHttpDelete(name: string): Promise<HttpResponseInterface | null>;
+ attackHTTPDelete(name: string): Promise<HTTPResponseInterface | null>;
- attackHttpGet(name: string): Promise<HttpResponseInterface>;
+ attackHTTPGet(name: string): Promise<HTTPResponseInterface>;
contentRenderer(
target: TargetInterface,
- http_target: HttpTargetInterface | null,
+ http_target: HTTPTargetInterface | null,
ws_target: WebSocketTargetInterface | null,
nav_link: NavLinkInterface | null,
el: HTMLElement,
@@ -130,15 +130,15 @@ export interface TrunksInterface {
setContent(path: string, el: HTMLElement | null): void;
- runHttp(
+ runHTTP(
target: TargetInterface,
- http_target: HttpTargetInterface,
+ http_target: HTTPTargetInterface,
): Promise<RunResponseInterface | null>;
runWebSocket(
target: TargetInterface,
WebSocketTargetInterface: WebSocketTargetInterface,
- ): Promise<HttpResponseInterface | null>;
+ ): Promise<HTTPResponseInterface | null>;
}
export interface WebSocketTargetInterface {
diff --git a/_www/nav_links.ts b/_www/nav_links.ts
index 73b6873..4acd7b6 100644
--- a/_www/nav_links.ts
+++ b/_www/nav_links.ts
@@ -65,10 +65,10 @@ export class NavLinks {
const target: TargetInterface = {
ID: "nav",
Name: "",
- BaseUrl: "",
+ BaseURL: "",
Opts: {} as AttackOptionsInterface,
Vars: {} as KeyFormInput,
- HttpTargets: [],
+ HTTPTargets: [],
WebSocketTargets: [],
};
this.trunks.contentRenderer(target, null, null, nav, this.elContent);
diff --git a/_www/target.js b/_www/target.js
index 587333f..aebdd8a 100644
--- a/_www/target.js
+++ b/_www/target.js
@@ -4,7 +4,7 @@ import { WuiInputNumber } from "./wui/input/number.js";
import { WuiInputString } from "./wui/input/string.js";
import { generateFormInput, loadTargetOptDuration, loadTargetOptRatePerSecond, loadTargetOptTimeout, loadTargetVar, } from "./functions.js";
import { CLASS_INPUT, CLASS_INPUT_LABEL, CLASS_NAV_TARGET, } from "./interface.js";
-import { HttpTarget } from "./http_target.js";
+import { HTTPTarget } from "./http_target.js";
import { WebSocketTarget } from "./ws_target.js";
const CLASS_NAV_TARGET_HTTP = "nav_http_target";
const CLASS_NAV_TARGET_WS = "nav_ws_target";
@@ -27,16 +27,16 @@ export class Target {
trunks.contentRenderer(this.opts, null, null, null, this.elContent);
};
this.elNav.appendChild(elTargetMenu);
- if (this.opts.HttpTargets) {
- for (const ht of this.opts.HttpTargets) {
- const elTargetHttp = document.createElement("div");
- elTargetHttp.innerHTML = ht.Name;
- elTargetHttp.id = `/http/${this.opts.ID}/${ht.ID}`;
- elTargetHttp.classList.add(CLASS_NAV_TARGET_HTTP);
- elTargetHttp.onclick = () => {
+ if (this.opts.HTTPTargets) {
+ for (const ht of this.opts.HTTPTargets) {
+ const elTargetHTTP = document.createElement("div");
+ elTargetHTTP.innerHTML = ht.Name;
+ elTargetHTTP.id = `/http/${this.opts.ID}/${ht.ID}`;
+ elTargetHTTP.classList.add(CLASS_NAV_TARGET_HTTP);
+ elTargetHTTP.onclick = () => {
trunks.contentRenderer(this.opts, ht, null, null, this.elContent);
};
- this.elNav.appendChild(elTargetHttp);
+ this.elNav.appendChild(elTargetHTTP);
}
}
if (this.opts.WebSocketTargets) {
@@ -56,7 +56,7 @@ export class Target {
this.generateContentBaseURL();
this.generateContentAttackOptions();
this.generateContentVars();
- this.generateHttpTargets(trunks);
+ this.generateHTTPTargets(trunks);
this.generateWebSocketTargets(trunks);
}
generateContentBaseURL() {
@@ -65,24 +65,24 @@ export class Target {
hdrTarget.id = this.opts.ID;
const elHint = document.createElement("p");
elHint.innerHTML = this.opts.Hint || "";
- const optsBaseUrl = {
+ const optsBaseURL = {
label: "Base URL",
hint: "The base URL where the HTTP request will be send or the target of attack.",
- value: this.opts.BaseUrl,
+ value: this.opts.BaseURL,
class_input: CLASS_INPUT,
class_label: CLASS_INPUT_LABEL,
is_hint_toggled: true,
is_disabled: true,
onChangeHandler: (v) => {
- this.opts.BaseUrl = v;
+ this.opts.BaseURL = v;
},
};
- const comInputBaseUrl = new WuiInputString(optsBaseUrl);
+ const comInputBaseURL = new WuiInputString(optsBaseURL);
this.elContent.appendChild(hdrTarget);
if (this.opts.Hint) {
this.elContent.appendChild(elHint);
}
- this.elContent.appendChild(comInputBaseUrl.el);
+ this.elContent.appendChild(comInputBaseURL.el);
}
generateContentAttackOptions() {
const wrapper = document.createElement("fieldset");
@@ -147,14 +147,14 @@ export class Target {
}
this.elContent.appendChild(wrapper);
}
- generateHttpTargets(trunks) {
- if (!this.opts.HttpTargets) {
+ generateHTTPTargets(trunks) {
+ if (!this.opts.HTTPTargets) {
return;
}
- this.opts.HttpTargets.forEach((httpTarget) => {
- const comHttpTarget = new HttpTarget(trunks, this.opts, httpTarget);
- this.http_targets[httpTarget.ID] = comHttpTarget;
- this.elContent.appendChild(comHttpTarget.el);
+ this.opts.HTTPTargets.forEach((httpTarget) => {
+ const comHTTPTarget = new HTTPTarget(trunks, this.opts, httpTarget);
+ this.http_targets[httpTarget.ID] = comHTTPTarget;
+ this.elContent.appendChild(comHTTPTarget.el);
});
}
generateWebSocketTargets(trunks) {
diff --git a/_www/target.ts b/_www/target.ts
index 58eedff..daf2652 100644
--- a/_www/target.ts
+++ b/_www/target.ts
@@ -15,19 +15,19 @@ import {
CLASS_INPUT,
CLASS_INPUT_LABEL,
CLASS_NAV_TARGET,
- HttpTargetInterface,
+ HTTPTargetInterface,
TargetInterface,
TrunksInterface,
WebSocketTargetInterface,
} from "./interface.js";
-import { HttpTarget } from "./http_target.js";
+import { HTTPTarget } from "./http_target.js";
import { WebSocketTarget } from "./ws_target.js";
const CLASS_NAV_TARGET_HTTP = "nav_http_target";
const CLASS_NAV_TARGET_WS = "nav_ws_target";
-interface MapHttpTarget {
- [key: string]: HttpTarget;
+interface MapHTTPTarget {
+ [key: string]: HTTPTarget;
}
interface MapWebSocketTarget {
@@ -38,7 +38,7 @@ export class Target {
elNav: HTMLElement = document.createElement("div");
elContent: HTMLElement = document.createElement("div");
- http_targets: MapHttpTarget = {};
+ http_targets: MapHTTPTarget = {};
ws_targets: MapWebSocketTarget = {};
constructor(
@@ -60,16 +60,16 @@ export class Target {
this.elNav.appendChild(elTargetMenu);
- if (this.opts.HttpTargets) {
- for (const ht of this.opts.HttpTargets) {
- const elTargetHttp = document.createElement("div");
- elTargetHttp.innerHTML = ht.Name;
- elTargetHttp.id = `/http/${this.opts.ID}/${ht.ID}`;
- elTargetHttp.classList.add(CLASS_NAV_TARGET_HTTP);
- elTargetHttp.onclick = () => {
+ if (this.opts.HTTPTargets) {
+ for (const ht of this.opts.HTTPTargets) {
+ const elTargetHTTP = document.createElement("div");
+ elTargetHTTP.innerHTML = ht.Name;
+ elTargetHTTP.id = `/http/${this.opts.ID}/${ht.ID}`;
+ elTargetHTTP.classList.add(CLASS_NAV_TARGET_HTTP);
+ elTargetHTTP.onclick = () => {
trunks.contentRenderer(this.opts, ht, null, null, this.elContent);
};
- this.elNav.appendChild(elTargetHttp);
+ this.elNav.appendChild(elTargetHTTP);
}
}
@@ -91,7 +91,7 @@ export class Target {
this.generateContentBaseURL();
this.generateContentAttackOptions();
this.generateContentVars();
- this.generateHttpTargets(trunks);
+ this.generateHTTPTargets(trunks);
this.generateWebSocketTargets(trunks);
}
@@ -103,25 +103,25 @@ export class Target {
const elHint = document.createElement("p");
elHint.innerHTML = this.opts.Hint || "";
- const optsBaseUrl: WuiInputStringOpts = {
+ const optsBaseURL: WuiInputStringOpts = {
label: "Base URL",
hint: "The base URL where the HTTP request will be send or the target of attack.",
- value: this.opts.BaseUrl,
+ value: this.opts.BaseURL,
class_input: CLASS_INPUT,
class_label: CLASS_INPUT_LABEL,
is_hint_toggled: true,
is_disabled: true,
onChangeHandler: (v: string) => {
- this.opts.BaseUrl = v;
+ this.opts.BaseURL = v;
},
};
- const comInputBaseUrl = new WuiInputString(optsBaseUrl);
+ const comInputBaseURL = new WuiInputString(optsBaseURL);
this.elContent.appendChild(hdrTarget);
if (this.opts.Hint) {
this.elContent.appendChild(elHint);
}
- this.elContent.appendChild(comInputBaseUrl.el);
+ this.elContent.appendChild(comInputBaseURL.el);
}
private generateContentAttackOptions() {
@@ -198,16 +198,16 @@ export class Target {
this.elContent.appendChild(wrapper);
}
- private generateHttpTargets(trunks: TrunksInterface) {
- if (!this.opts.HttpTargets) {
+ private generateHTTPTargets(trunks: TrunksInterface) {
+ if (!this.opts.HTTPTargets) {
return;
}
- this.opts.HttpTargets.forEach((httpTarget: HttpTargetInterface) => {
- const comHttpTarget = new HttpTarget(trunks, this.opts, httpTarget);
- this.http_targets[httpTarget.ID] = comHttpTarget;
+ this.opts.HTTPTargets.forEach((httpTarget: HTTPTargetInterface) => {
+ const comHTTPTarget = new HTTPTarget(trunks, this.opts, httpTarget);
+ this.http_targets[httpTarget.ID] = comHTTPTarget;
- this.elContent.appendChild(comHttpTarget.el);
+ this.elContent.appendChild(comHTTPTarget.el);
});
}
diff --git a/_www/trunks.js b/_www/trunks.js
index 8e8eaac..bae22fe 100644
--- a/_www/trunks.js
+++ b/_www/trunks.js
@@ -198,22 +198,22 @@ export class Trunks {
this.elAttackRunning.innerHTML = "-";
return;
}
- if (!runRequest.Target || !runRequest.HttpTarget) {
+ if (!runRequest.Target || !runRequest.HTTPTarget) {
this.elAttackRunning.innerHTML = "-";
return;
}
this.elAttackRunning.innerHTML = `
${runRequest.Target.Name} <br/>
- / ${runRequest.HttpTarget.Name} <br/>
+ / ${runRequest.HTTPTarget.Name} <br/>
<br/>
`;
this.elAttackCancel.onclick = () => {
this.onClickAttackCancel();
};
this.elAttackRunning.appendChild(this.elAttackCancel);
- wuiNotif.info(`Attacking "${runRequest.Target.Name}/${runRequest.HttpTarget.Name}" ...`);
+ wuiNotif.info(`Attacking "${runRequest.Target.Name}/${runRequest.HTTPTarget.Name}" ...`);
}
- async attackHttp(target, httpTarget) {
+ async attackHTTP(target, httpTarget) {
save(target, httpTarget, null);
const attackReq = {
Target: {
@@ -221,11 +221,11 @@ export class Trunks {
Opts: target.Opts,
Vars: target.Vars,
Name: target.Name,
- BaseUrl: target.BaseUrl,
- HttpTargets: [],
+ BaseURL: target.BaseURL,
+ HTTPTargets: [],
WebSocketTargets: [],
},
- HttpTarget: {
+ HTTPTarget: {
ID: httpTarget.ID,
Name: httpTarget.Name,
Method: httpTarget.Method,
@@ -254,7 +254,7 @@ export class Trunks {
this.setAttackRunning(attackReq);
return jsonRes;
}
- async attackHttpDelete(name) {
+ async attackHTTPDelete(name) {
const msg = `Are you sure you want to delete the result: ${name}?`;
const yes = window.confirm(msg);
if (!yes) {
@@ -271,7 +271,7 @@ export class Trunks {
}
return jsonRes;
}
- async attackHttpGet(name) {
+ async attackHTTPGet(name) {
const url = API_ATTACK_RESULT + "?name=" + name;
const fres = await fetch(url);
const res = await fres.json();
@@ -295,7 +295,7 @@ export class Trunks {
this.elContent.innerHTML = "";
this.elContent.appendChild(el);
}
- async runHttp(target, httpTarget) {
+ async runHTTP(target, httpTarget) {
save(target, httpTarget, null);
const req = {
Target: {
@@ -303,11 +303,11 @@ export class Trunks {
Opts: target.Opts,
Vars: target.Vars,
Name: "",
- BaseUrl: "",
- HttpTargets: [],
+ BaseURL: "",
+ HTTPTargets: [],
WebSocketTargets: [],
},
- HttpTarget: httpTarget,
+ HTTPTarget: httpTarget,
WebSocketTarget: null,
};
const httpRes = await fetch(API_TARGET_RUN_HTTP, {
@@ -339,11 +339,11 @@ export class Trunks {
Opts: target.Opts,
Vars: target.Vars,
Name: "",
- BaseUrl: "",
- HttpTargets: [],
+ BaseURL: "",
+ HTTPTargets: [],
WebSocketTargets: [],
},
- HttpTarget: null,
+ HTTPTarget: null,
WebSocketTarget: wsTarget,
};
const fres = await fetch(API_TARGET_RUN_WEBSOCKET, {
diff --git a/_www/trunks.ts b/_www/trunks.ts
index 30549f2..c35977c 100644
--- a/_www/trunks.ts
+++ b/_www/trunks.ts
@@ -6,8 +6,8 @@ import { save } from "./functions.js";
import {
HASH_ENVIRONMENT,
EnvironmentInterface,
- HttpResponseInterface,
- HttpTargetInterface,
+ HTTPResponseInterface,
+ HTTPTargetInterface,
NavLinkInterface,
RunRequestInterface,
RunResponseInterface,
@@ -266,13 +266,13 @@ export class Trunks {
this.elAttackRunning.innerHTML = "-";
return;
}
- if (!runRequest.Target || !runRequest.HttpTarget) {
+ if (!runRequest.Target || !runRequest.HTTPTarget) {
this.elAttackRunning.innerHTML = "-";
return;
}
this.elAttackRunning.innerHTML = `
${runRequest.Target.Name} <br/>
- / ${runRequest.HttpTarget.Name} <br/>
+ / ${runRequest.HTTPTarget.Name} <br/>
<br/>
`;
this.elAttackCancel.onclick = () => {
@@ -281,14 +281,14 @@ export class Trunks {
this.elAttackRunning.appendChild(this.elAttackCancel);
wuiNotif.info(
- `Attacking "${runRequest.Target.Name}/${runRequest.HttpTarget.Name}" ...`,
+ `Attacking "${runRequest.Target.Name}/${runRequest.HTTPTarget.Name}" ...`,
);
}
- async attackHttp(
+ async attackHTTP(
target: TargetInterface,
- httpTarget: HttpTargetInterface,
- ): Promise<HttpResponseInterface | null> {
+ httpTarget: HTTPTargetInterface,
+ ): Promise<HTTPResponseInterface | null> {
save(target, httpTarget, null);
const attackReq: RunRequestInterface = {
@@ -297,11 +297,11 @@ export class Trunks {
Opts: target.Opts,
Vars: target.Vars,
Name: target.Name,
- BaseUrl: target.BaseUrl,
- HttpTargets: [],
+ BaseURL: target.BaseURL,
+ HTTPTargets: [],
WebSocketTargets: [],
},
- HttpTarget: {
+ HTTPTarget: {
ID: httpTarget.ID,
Name: httpTarget.Name,
Method: httpTarget.Method,
@@ -334,7 +334,7 @@ export class Trunks {
return jsonRes;
}
- async attackHttpDelete(name: string): Promise<HttpResponseInterface | null> {
+ async attackHTTPDelete(name: string): Promise<HTTPResponseInterface | null> {
const msg = `Are you sure you want to delete the result: ${name}?`;
const yes = window.confirm(msg);
if (!yes) {
@@ -353,7 +353,7 @@ export class Trunks {
return jsonRes;
}
- async attackHttpGet(name: string): Promise<HttpResponseInterface> {
+ async attackHTTPGet(name: string): Promise<HTTPResponseInterface> {
const url = API_ATTACK_RESULT + "?name=" + name;
const fres = await fetch(url);
const res = await fres.json();
@@ -365,7 +365,7 @@ export class Trunks {
contentRenderer(
target: TargetInterface,
- httpTarget: HttpTargetInterface,
+ httpTarget: HTTPTargetInterface,
wsTarget: WebSocketTargetInterface,
navLink: NavLinkInterface,
el: HTMLElement,
@@ -384,9 +384,9 @@ export class Trunks {
this.elContent.appendChild(el);
}
- async runHttp(
+ async runHTTP(
target: TargetInterface,
- httpTarget: HttpTargetInterface,
+ httpTarget: HTTPTargetInterface,
): Promise<RunResponseInterface | null> {
save(target, httpTarget, null);
@@ -396,11 +396,11 @@ export class Trunks {
Opts: target.Opts,
Vars: target.Vars,
Name: "",
- BaseUrl: "",
- HttpTargets: [],
+ BaseURL: "",
+ HTTPTargets: [],
WebSocketTargets: [],
},
- HttpTarget: httpTarget,
+ HTTPTarget: httpTarget,
WebSocketTarget: null,
};
@@ -432,7 +432,7 @@ export class Trunks {
async runWebSocket(
target: TargetInterface,
wsTarget: WebSocketTargetInterface,
- ): Promise<HttpResponseInterface | null> {
+ ): Promise<HTTPResponseInterface | null> {
save(target, null, wsTarget);
const req: RunRequestInterface = {
@@ -441,11 +441,11 @@ export class Trunks {
Opts: target.Opts,
Vars: target.Vars,
Name: "",
- BaseUrl: "",
- HttpTargets: [],
+ BaseURL: "",
+ HTTPTargets: [],
WebSocketTargets: [],
},
- HttpTarget: null,
+ HTTPTarget: null,
WebSocketTarget: wsTarget,
};
diff --git a/attack_result.go b/attack_result.go
index 26f1a9d..4902885 100644
--- a/attack_result.go
+++ b/attack_result.go
@@ -32,7 +32,7 @@ type AttackResult struct {
hist *vegeta.Histogram
TargetID string // ID of Target.
- HttpTargetID string // ID of HTTP target which own the result.
+ HTTPTargetID string // ID of HTTP target which own the result.
Name string // Name of output file without path.
fullpath string
@@ -49,13 +49,13 @@ func newAttackResult(env *Environment, rr *RunRequest) (
logp := "newAttackResult"
ar = &AttackResult{
TargetID: rr.Target.ID,
- HttpTargetID: rr.HttpTarget.ID,
+ HTTPTargetID: rr.HTTPTarget.ID,
metrics: &vegeta.Metrics{},
hist: &vegeta.Histogram{},
}
ar.Name = fmt.Sprintf("%s.%s.%s.%dx%s.%s.bin",
- rr.Target.ID, rr.HttpTarget.ID,
+ rr.Target.ID, rr.HTTPTarget.ID,
time.Now().Format(outputSuffixDate),
rr.Target.Opts.RatePerSecond, rr.Target.Opts.Duration,
env.ResultsSuffix)
@@ -99,14 +99,14 @@ func (ar *AttackResult) cancel() {
if ar.fout != nil {
err := ar.fout.Close()
if err != nil {
- mlog.Errf(`AttackResult.cancel %s: %s`, ar.HttpTargetID, err)
+ mlog.Errf(`AttackResult.cancel %s: %s`, ar.HTTPTargetID, err)
}
ar.fout = nil
if len(ar.fullpath) > 0 {
err = os.Remove(ar.fullpath)
if err != nil {
- mlog.Errf(`AttackResult.cancel %s: %s`, ar.HttpTargetID, err)
+ mlog.Errf(`AttackResult.cancel %s: %s`, ar.HTTPTargetID, err)
}
}
}
@@ -126,7 +126,7 @@ func (ar *AttackResult) finish() (err error) {
if ar.fout != nil {
err = ar.fout.Close()
if err != nil {
- return fmt.Errorf("%s: %w", ar.HttpTargetID, err)
+ return fmt.Errorf(`%s: %w`, ar.HTTPTargetID, err)
}
ar.fout = nil
}
diff --git a/common.go b/common.go
index 629975f..9982509 100644
--- a/common.go
+++ b/common.go
@@ -10,7 +10,7 @@ import (
// generateID replace non-letter and non-number from input string with '_'.
func generateID(in string) (out string) {
- var r []rune = make([]rune, 0, len(in))
+ var r = make([]rune, 0, len(in))
in = strings.ToLower(in)
for _, c := range in {
if unicode.IsLetter(c) || unicode.IsNumber(c) {
diff --git a/errors.go b/errors.go
index 2da10e6..614cd87 100644
--- a/errors.go
+++ b/errors.go
@@ -16,7 +16,7 @@ func errAttackConflict(rr *RunRequest) error {
E: liberrors.E{
Code: http.StatusConflict,
Message: fmt.Sprintf(`Another attack is already running: "%s/%s`,
- rr.Target.Name, rr.HttpTarget.Name),
+ rr.Target.Name, rr.HTTPTarget.Name),
Name: "ERR_ATTACK_CONFLICT",
},
Data: rr,
@@ -76,11 +76,11 @@ func errInvalidTarget(id string) error {
return res
}
-func errInvalidHttpTarget(id string) error {
+func errInvalidHTTPTarget(id string) error {
res := &libhttp.EndpointResponse{
E: liberrors.E{
Code: http.StatusBadRequest,
- Message: fmt.Sprintf("invalid or emtpy HttpTarget.ID: %q", id),
+ Message: fmt.Sprintf("invalid or emtpy HTTPTarget.ID: %q", id),
Name: "ERR_INVALID_HTTP_TARGET",
},
}
diff --git a/example/example.go b/example/example.go
index 1be51ef..f67d94c 100644
--- a/example/example.go
+++ b/example/example.go
@@ -42,7 +42,7 @@ const (
type requestResponse struct {
Method string
- Url string
+ URL string
Headers http.Header
Form url.Values
MultipartForm *multipart.Form
@@ -175,10 +175,10 @@ func (ex *Example) registerWebSocketEndpoints() (err error) {
}
func (ex *Example) registerTargets() (err error) {
- targetHttp := &trunks.Target{
+ var targetHTTP = &trunks.Target{
Name: "Example HTTP",
Hint: "This section provide an example of HTTP endpoints that can be tested and attacked.",
- BaseUrl: fmt.Sprintf("http://%s", ex.trunks.Env.ListenAddress),
+ BaseURL: fmt.Sprintf(`http://%s`, ex.trunks.Env.ListenAddress),
Opts: &trunks.AttackOptions{
Duration: 300 * time.Second,
RatePerSecond: 1,
@@ -191,7 +191,7 @@ func (ex *Example) registerTargets() (err error) {
Value: "1",
},
},
- HttpTargets: []*trunks.HttpTarget{{
+ HTTPTargets: []*trunks.HTTPTarget{{
Name: "HTTP Get",
Hint: fmt.Sprintf("Test or attack endpoint %q using HTTP GET.", pathExample),
Method: libhttp.RequestMethodGet,
@@ -319,7 +319,7 @@ func (ex *Example) registerTargets() (err error) {
}},
}
- err = ex.trunks.RegisterTarget(targetHttp)
+ err = ex.trunks.RegisterTarget(targetHTTP)
if err != nil {
return err
}
@@ -327,7 +327,7 @@ func (ex *Example) registerTargets() (err error) {
targetWebSocket := &trunks.Target{
Name: "Example WebSocket",
Hint: "This section provide an example of WebSocket endpoints that can be tested.",
- BaseUrl: fmt.Sprintf("ws://%s", websocketAddress),
+ BaseURL: fmt.Sprintf(`ws://%s`, websocketAddress),
Opts: &trunks.AttackOptions{},
Vars: trunks.KeyFormInput{
"WebSocketVar": trunks.FormInput{
@@ -385,7 +385,7 @@ func (ex *Example) registerNavLinks() (err error) {
func (ex *Example) pathExampleGet(epr *libhttp.EndpointRequest) ([]byte, error) {
data := &requestResponse{
Method: epr.HttpRequest.Method,
- Url: epr.HttpRequest.URL.String(),
+ URL: epr.HttpRequest.URL.String(),
Headers: epr.HttpRequest.Header,
Form: epr.HttpRequest.Form,
MultipartForm: epr.HttpRequest.MultipartForm,
@@ -407,7 +407,7 @@ func (ex *Example) pathExampleErrorGet(_ *libhttp.EndpointRequest) ([]byte, erro
func (ex *Example) pathExamplePost(epr *libhttp.EndpointRequest) (resb []byte, err error) {
data := &requestResponse{
Method: epr.HttpRequest.Method,
- Url: epr.HttpRequest.URL.String(),
+ URL: epr.HttpRequest.URL.String(),
Headers: epr.HttpRequest.Header,
Form: epr.HttpRequest.Form,
MultipartForm: epr.HttpRequest.MultipartForm,
@@ -423,23 +423,27 @@ func (ex *Example) pathExamplePost(epr *libhttp.EndpointRequest) (resb []byte, e
}
func (ex *Example) runExampleGet(req *trunks.RunRequest) (res *trunks.RunResponse, err error) {
- if req.Target.HttpClient == nil {
- httpcOpts := &libhttp.ClientOptions{
- ServerUrl: req.Target.BaseUrl,
+ if req.Target.HTTPClient == nil {
+ var httpcOpts = &libhttp.ClientOptions{
+ ServerUrl: req.Target.BaseURL,
AllowInsecure: true,
}
- req.Target.HttpClient = libhttp.NewClient(httpcOpts)
+ req.Target.HTTPClient = libhttp.NewClient(httpcOpts)
}
res = &trunks.RunResponse{}
- headers := req.HttpTarget.Headers.ToHttpHeader()
- params := req.HttpTarget.Params.ToUrlValues()
+ var (
+ headers = req.HTTPTarget.Headers.ToHTTPHeader()
+ params = req.HTTPTarget.Params.ToURLValues()
+
+ httpRequest *http.Request
+ )
- httpRequest, err := req.Target.HttpClient.GenerateHttpRequest(
- req.HttpTarget.Method,
- req.HttpTarget.Path,
- req.HttpTarget.RequestType,
+ httpRequest, err = req.Target.HTTPClient.GenerateHttpRequest(
+ req.HTTPTarget.Method,
+ req.HTTPTarget.Path,
+ req.HTTPTarget.RequestType,
headers,
params,
)
@@ -447,17 +451,19 @@ func (ex *Example) runExampleGet(req *trunks.RunRequest) (res *trunks.RunRespons
return nil, err
}
- err = res.SetHttpRequest(httpRequest)
+ err = res.SetHTTPRequest(httpRequest)
if err != nil {
return nil, err
}
- httpResponse, _, err := req.Target.HttpClient.Do(httpRequest)
+ var httpResponse *http.Response
+
+ httpResponse, _, err = req.Target.HTTPClient.Do(httpRequest)
if err != nil {
return nil, err
}
- err = res.SetHttpResponse(httpResponse)
+ err = res.SetHTTPResponse(httpResponse)
if err != nil {
return nil, err
}
@@ -467,12 +473,12 @@ func (ex *Example) runExampleGet(req *trunks.RunRequest) (res *trunks.RunRespons
func (ex *Example) preattackExampleErrorGet(rr *trunks.RunRequest) {
ex.targetExampleErrorGet = vegeta.Target{
- Method: rr.HttpTarget.Method.String(),
- URL: fmt.Sprintf("%s%s", rr.Target.BaseUrl, rr.HttpTarget.Path),
- Header: rr.HttpTarget.Headers.ToHttpHeader(),
+ Method: rr.HTTPTarget.Method.String(),
+ URL: fmt.Sprintf("%s%s", rr.Target.BaseURL, rr.HTTPTarget.Path),
+ Header: rr.HTTPTarget.Headers.ToHTTPHeader(),
}
- q := rr.HttpTarget.Params.ToUrlValues().Encode()
+ q := rr.HTTPTarget.Params.ToURLValues().Encode()
if len(q) > 0 {
ex.targetExampleErrorGet.URL += "?" + q
}
@@ -482,12 +488,12 @@ func (ex *Example) preattackExampleErrorGet(rr *trunks.RunRequest) {
func (ex *Example) preattackExampleGet(rr *trunks.RunRequest) {
ex.targetExampleGet = vegeta.Target{
- Method: rr.HttpTarget.Method.String(),
- URL: fmt.Sprintf("%s%s", rr.Target.BaseUrl, rr.HttpTarget.Path),
- Header: rr.HttpTarget.Headers.ToHttpHeader(),
+ Method: rr.HTTPTarget.Method.String(),
+ URL: fmt.Sprintf("%s%s", rr.Target.BaseURL, rr.HTTPTarget.Path),
+ Header: rr.HTTPTarget.Headers.ToHTTPHeader(),
}
- q := rr.HttpTarget.Params.ToUrlValues().Encode()
+ q := rr.HTTPTarget.Params.ToURLValues().Encode()
if len(q) > 0 {
ex.targetExampleGet.URL += "?" + q
}
@@ -497,40 +503,40 @@ func (ex *Example) preattackExampleGet(rr *trunks.RunRequest) {
func (ex *Example) attackExampleErrorGet(rr *trunks.RunRequest) vegeta.Targeter {
return func(tgt *vegeta.Target) error {
- rr.HttpTarget.Lock()
+ rr.HTTPTarget.Lock()
*tgt = ex.targetExampleErrorGet
- rr.HttpTarget.Unlock()
+ rr.HTTPTarget.Unlock()
return nil
}
}
func (ex *Example) attackExampleGet(rr *trunks.RunRequest) vegeta.Targeter {
return func(tgt *vegeta.Target) error {
- rr.HttpTarget.Lock()
+ rr.HTTPTarget.Lock()
*tgt = ex.targetExampleGet
- rr.HttpTarget.Unlock()
+ rr.HTTPTarget.Unlock()
return nil
}
}
func (ex *Example) runExamplePostForm(req *trunks.RunRequest) (res *trunks.RunResponse, err error) {
- if req.Target.HttpClient == nil {
+ if req.Target.HTTPClient == nil {
httpcOpts := &libhttp.ClientOptions{
- ServerUrl: req.Target.BaseUrl,
+ ServerUrl: req.Target.BaseURL,
AllowInsecure: true,
}
- req.Target.HttpClient = libhttp.NewClient(httpcOpts)
+ req.Target.HTTPClient = libhttp.NewClient(httpcOpts)
}
res = &trunks.RunResponse{}
- headers := req.HttpTarget.Headers.ToHttpHeader()
- params := req.HttpTarget.Params.ToUrlValues()
+ headers := req.HTTPTarget.Headers.ToHTTPHeader()
+ params := req.HTTPTarget.Params.ToURLValues()
- httpRequest, err := req.Target.HttpClient.GenerateHttpRequest(
- req.HttpTarget.Method,
- req.HttpTarget.Path,
- req.HttpTarget.RequestType,
+ httpRequest, err := req.Target.HTTPClient.GenerateHttpRequest(
+ req.HTTPTarget.Method,
+ req.HTTPTarget.Path,
+ req.HTTPTarget.RequestType,
headers,
params,
)
@@ -538,17 +544,17 @@ func (ex *Example) runExamplePostForm(req *trunks.RunRequest) (res *trunks.RunRe
return nil, err
}
- err = res.SetHttpRequest(httpRequest)
+ err = res.SetHTTPRequest(httpRequest)
if err != nil {
return nil, err
}
- httpResponse, _, err := req.Target.HttpClient.Do(httpRequest)
+ httpResponse, _, err := req.Target.HTTPClient.Do(httpRequest)
if err != nil {
return nil, err
}
- err = res.SetHttpResponse(httpResponse)
+ err = res.SetHTTPResponse(httpResponse)
if err != nil {
return nil, err
}
@@ -558,12 +564,12 @@ func (ex *Example) runExamplePostForm(req *trunks.RunRequest) (res *trunks.RunRe
func (ex *Example) preattackExamplePostForm(rr *trunks.RunRequest) {
ex.targetExamplePostForm = vegeta.Target{
- Method: rr.HttpTarget.Method.String(),
- URL: fmt.Sprintf("%s%s", rr.Target.BaseUrl, rr.HttpTarget.Path),
- Header: rr.HttpTarget.Headers.ToHttpHeader(),
+ Method: rr.HTTPTarget.Method.String(),
+ URL: fmt.Sprintf("%s%s", rr.Target.BaseURL, rr.HTTPTarget.Path),
+ Header: rr.HTTPTarget.Headers.ToHTTPHeader(),
}
- q := rr.HttpTarget.Params.ToUrlValues().Encode()
+ q := rr.HTTPTarget.Params.ToURLValues().Encode()
if len(q) > 0 {
ex.targetExamplePostForm.Body = []byte(q)
}
@@ -573,9 +579,9 @@ func (ex *Example) preattackExamplePostForm(rr *trunks.RunRequest) {
func (ex *Example) attackExamplePostForm(rr *trunks.RunRequest) vegeta.Targeter {
return func(tgt *vegeta.Target) error {
- rr.HttpTarget.Lock()
+ rr.HTTPTarget.Lock()
*tgt = ex.targetExamplePostForm
- rr.HttpTarget.Unlock()
+ rr.HTTPTarget.Unlock()
return nil
}
}
diff --git a/form_input.go b/form_input.go
index 9934f51..9576c98 100644
--- a/form_input.go
+++ b/form_input.go
@@ -9,7 +9,7 @@ type FormInputKind string
// List of valid value for field FormInput.Kind.
const (
// FormInputKindBoolean only used for convertion, for example
- // ToJsonObject.
+ // ToJSONObject.
// In the WUI, it will be rendered as string.
FormInputKindBoolean = `boolean`
FormInputKindNumber = `number`
diff --git a/http_server.go b/http_server.go
index 4b89358..37c5988 100644
--- a/http_server.go
+++ b/http_server.go
@@ -12,6 +12,12 @@ import (
"github.com/shuLhan/share/lib/memfs"
)
+// List of HTTP APIs.
+const (
+ pathAPIAttackHTTP = `/_trunks/api/attack/http`
+ pathAPIAttackResult = `/_trunks/api/attack/result`
+)
+
// List of HTTP APIs provided by Trunks HTTP server.
var (
apiEnvironmentGet = &libhttp.Endpoint{
@@ -21,13 +27,13 @@ var (
ResponseType: libhttp.ResponseTypeJSON,
}
- apiAttackHttp = libhttp.Endpoint{
+ apiAttackHTTP = libhttp.Endpoint{
Method: libhttp.RequestMethodPost,
Path: `/_trunks/api/attack/http`,
RequestType: libhttp.RequestTypeJSON,
ResponseType: libhttp.ResponseTypeJSON,
}
- apiAttackHttpCancel = libhttp.Endpoint{
+ apiAttackHTTPCancel = libhttp.Endpoint{
Method: libhttp.RequestMethodDelete,
Path: `/_trunks/api/attack/http`,
RequestType: libhttp.RequestTypeJSON,
@@ -36,13 +42,13 @@ var (
apiAttackResultDelete = &libhttp.Endpoint{
Method: libhttp.RequestMethodDelete,
- Path: pathApiAttackResult,
+ Path: pathAPIAttackResult,
RequestType: libhttp.RequestTypeJSON,
ResponseType: libhttp.ResponseTypeJSON,
}
apiAttackResultGet = &libhttp.Endpoint{
Method: libhttp.RequestMethodGet,
- Path: pathApiAttackResult,
+ Path: pathAPIAttackResult,
RequestType: libhttp.RequestTypeQuery,
ResponseType: libhttp.ResponseTypeJSON,
}
@@ -54,7 +60,7 @@ var (
ResponseType: libhttp.ResponseTypeJSON,
}
- apiTargetRunHttp = &libhttp.Endpoint{
+ apiTargetRunHTTP = &libhttp.Endpoint{
Method: libhttp.RequestMethodPost,
Path: "/_trunks/api/target/run/http",
RequestType: libhttp.RequestTypeJSON,
@@ -75,8 +81,8 @@ var (
}
)
-func (trunks *Trunks) initHttpServer(isDevelopment bool) (err error) {
- logp := "initHttpServer"
+func (trunks *Trunks) initHTTPServer(isDevelopment bool) (err error) {
+ var logp = `initHTTPServer`
if memfsWWW == nil {
mfsOptions := memfs.Options{
@@ -110,14 +116,14 @@ func (trunks *Trunks) initHttpServer(isDevelopment bool) (err error) {
return fmt.Errorf("%s: %w", logp, err)
}
- apiAttackHttp.Call = trunks.apiAttackHttp
- err = trunks.Httpd.RegisterEndpoint(&apiAttackHttp)
+ apiAttackHTTP.Call = trunks.apiAttackHTTP
+ err = trunks.Httpd.RegisterEndpoint(&apiAttackHTTP)
if err != nil {
return fmt.Errorf(`%s: %w`, logp, err)
}
- apiAttackHttpCancel.Call = trunks.apiAttackHttpCancel
- err = trunks.Httpd.RegisterEndpoint(&apiAttackHttpCancel)
+ apiAttackHTTPCancel.Call = trunks.apiAttackHTTPCancel
+ err = trunks.Httpd.RegisterEndpoint(&apiAttackHTTPCancel)
if err != nil {
return fmt.Errorf(`%s: %w`, logp, err)
}
@@ -139,8 +145,8 @@ func (trunks *Trunks) initHttpServer(isDevelopment bool) (err error) {
return fmt.Errorf("%s: %w", logp, err)
}
- apiTargetRunHttp.Call = trunks.apiTargetRunHttp
- err = trunks.Httpd.RegisterEndpoint(apiTargetRunHttp)
+ apiTargetRunHTTP.Call = trunks.apiTargetRunHTTP
+ err = trunks.Httpd.RegisterEndpoint(apiTargetRunHTTP)
if err != nil {
return fmt.Errorf("%s: %w", logp, err)
}
@@ -167,7 +173,7 @@ func (trunks *Trunks) apiEnvironmentGet(_ *libhttp.EndpointRequest) (resbody []b
return json.Marshal(&res)
}
-// apiAttackHttp request to attack HTTP target.
+// apiAttackHTTP request to attack HTTP target.
//
// Request format,
//
@@ -185,9 +191,9 @@ func (trunks *Trunks) apiEnvironmentGet(_ *libhttp.EndpointRequest) (resbody []b
// Response codes,
// - 200 OK: success.
// - 500 ERR_INTERNAL: internal server error.
-func (trunks *Trunks) apiAttackHttp(epr *libhttp.EndpointRequest) (resbody []byte, err error) {
+func (trunks *Trunks) apiAttackHTTP(epr *libhttp.EndpointRequest) (resbody []byte, err error) {
var (
- logp = `apiAttackHttp`
+ logp = `apiAttackHTTP`
runRequest = &RunRequest{}
)
@@ -196,7 +202,7 @@ func (trunks *Trunks) apiAttackHttp(epr *libhttp.EndpointRequest) (resbody []byt
return nil, fmt.Errorf(`%s: %w`, logp, err)
}
- err = trunks.AttackHttp(runRequest)
+ err = trunks.AttackHTTP(runRequest)
if err != nil {
return nil, fmt.Errorf(`%s: %w`, logp, err)
}
@@ -213,7 +219,7 @@ func (trunks *Trunks) apiAttackHttp(epr *libhttp.EndpointRequest) (resbody []byt
return resbody, nil
}
-// apiAttackHttpCancel request to cancel the running attack on HTTP target.
+// apiAttackHTTPCancel request to cancel the running attack on HTTP target.
//
// Request format,
//
@@ -228,13 +234,13 @@ func (trunks *Trunks) apiAttackHttp(epr *libhttp.EndpointRequest) (resbody []byt
// Response codes,
// - 200 OK: success, return the RunRequest object that has been cancelled.
// - 500 ERR_INTERNAL: internal server error.
-func (trunks *Trunks) apiAttackHttpCancel(_ *libhttp.EndpointRequest) (resbody []byte, err error) {
+func (trunks *Trunks) apiAttackHTTPCancel(_ *libhttp.EndpointRequest) (resbody []byte, err error) {
var (
- logp = `apiAttackHttpCancel`
+ logp = `apiAttackHTTPCancel`
runRequest *RunRequest
)
- runRequest, err = trunks.AttackHttpCancel()
+ runRequest, err = trunks.AttackHTTPCancel()
if err != nil {
return nil, fmt.Errorf(`%s: %w`, logp, err)
}
@@ -243,7 +249,7 @@ func (trunks *Trunks) apiAttackHttpCancel(_ *libhttp.EndpointRequest) (resbody [
res.Code = http.StatusOK
res.Name = `OK_ATTACK_HTTP_CANCEL`
res.Message = fmt.Sprintf(`Attack on target "%s/%s" has been canceled`,
- runRequest.Target.Name, runRequest.HttpTarget.Name)
+ runRequest.Target.Name, runRequest.HTTPTarget.Name)
res.Data = runRequest
resbody, err = json.Marshal(res)
@@ -305,14 +311,14 @@ func (trunks *Trunks) apiNavLinks(_ *libhttp.EndpointRequest) (resbody []byte, e
return json.Marshal(&res)
}
-func (trunks *Trunks) apiTargetRunHttp(epr *libhttp.EndpointRequest) ([]byte, error) {
+func (trunks *Trunks) apiTargetRunHTTP(epr *libhttp.EndpointRequest) ([]byte, error) {
req := &RunRequest{}
err := json.Unmarshal(epr.RequestBody, req)
if err != nil {
return nil, errInternal(err)
}
- res, err := trunks.RunHttp(req)
+ res, err := trunks.RunHTTP(req)
if err != nil {
return nil, errInternal(err)
}
diff --git a/http_target.go b/http_target.go
index 0ce1265..62ba582 100644
--- a/http_target.go
+++ b/http_target.go
@@ -18,32 +18,32 @@ import (
vegeta "github.com/tsenart/vegeta/v12/lib"
)
-// HttpConvertParams is a handler that will be called inside the Run handler
+// HTTPConvertParams is a handler that will be called inside the Run handler
// to convert the Params values to type that will be send as request.
-type HttpConvertParams func(target *HttpTarget) (interface{}, error)
+type HTTPConvertParams func(target *HTTPTarget) (interface{}, error)
-// HttpRunHandler define the function type that will be called when client
+// HTTPRunHandler define the function type that will be called when client
// send request to run the HTTP target.
-type HttpRunHandler func(rr *RunRequest) (runres *RunResponse, err error)
+type HTTPRunHandler func(rr *RunRequest) (runres *RunResponse, err error)
-// HttpAttackHandler define the function type that will be called when client
+// HTTPAttackHandler define the function type that will be called when client
// send request to attack HTTP target.
-type HttpAttackHandler func(rr *RunRequest) vegeta.Targeter
+type HTTPAttackHandler func(rr *RunRequest) vegeta.Targeter
-// HttpPreAttackHandler define the function type that will be called before
+// HTTPPreAttackHandler define the function type that will be called before
// the actual Attack being called.
-type HttpPreAttackHandler func(rr *RunRequest)
+type HTTPPreAttackHandler func(rr *RunRequest)
-// HttpTarget define the HTTP endpoint that can be attached to Trunks.
-type HttpTarget struct {
+// HTTPTarget define the HTTP endpoint that can be attached to Trunks.
+type HTTPTarget struct {
Params KeyFormInput
- ConvertParams HttpConvertParams `json:"-"`
+ ConvertParams HTTPConvertParams `json:"-"`
Headers KeyFormInput
- Run HttpRunHandler `json:"-"`
- PreAttack HttpPreAttackHandler `json:"-"`
- Attack HttpAttackHandler `json:"-"`
+ Run HTTPRunHandler `json:"-"`
+ PreAttack HTTPPreAttackHandler `json:"-"`
+ Attack HTTPAttackHandler `json:"-"`
// ID of target, optional.
// If its empty, it will generated using value from Name.
@@ -61,7 +61,7 @@ type HttpTarget struct {
// AllowAttack if its true the "Attack" button will be showed on user
// interface and client will be allowed to run load testing on this
- // HttpTarget.
+ // HTTPTarget.
AllowAttack bool
// IsCustomizable allow client to modify the Method, Path, and
@@ -69,9 +69,9 @@ type HttpTarget struct {
IsCustomizable bool
}
-// clone the source HttpTarget.
+// clone the source HTTPTarget.
// This method is provided to prevent the sync.Mutex being copied.
-func (ht *HttpTarget) clone(src *HttpTarget) {
+func (ht *HTTPTarget) clone(src *HTTPTarget) {
ht.Params = src.Params
ht.ConvertParams = src.ConvertParams
ht.Headers = src.Headers
@@ -89,9 +89,9 @@ func (ht *HttpTarget) clone(src *HttpTarget) {
ht.IsCustomizable = src.IsCustomizable
}
-func (ht *HttpTarget) init() (err error) {
+func (ht *HTTPTarget) init() (err error) {
if len(ht.Name) == 0 {
- return fmt.Errorf("HttpTarget.Name is empty")
+ return fmt.Errorf(`HTTPTarget.Name is empty`)
}
if len(ht.ID) == 0 {
@@ -109,7 +109,7 @@ func (ht *HttpTarget) init() (err error) {
return nil
}
-func (ht *HttpTarget) deleteResult(result *AttackResult) {
+func (ht *HTTPTarget) deleteResult(result *AttackResult) {
var x int
for ; x < len(ht.Results); x++ {
if ht.Results[x].Name == result.Name {
@@ -132,9 +132,9 @@ func (ht *HttpTarget) deleteResult(result *AttackResult) {
}
}
-func (ht *HttpTarget) addResult(dir, name string) {
+func (ht *HTTPTarget) addResult(dir, name string) {
ar := &AttackResult{
- HttpTargetID: ht.ID,
+ HTTPTargetID: ht.ID,
Name: name,
fullpath: filepath.Join(dir, name),
}
@@ -142,7 +142,7 @@ func (ht *HttpTarget) addResult(dir, name string) {
ht.Results = append(ht.Results, ar)
}
-func (ht *HttpTarget) getResultByName(name string) (result *AttackResult) {
+func (ht *HTTPTarget) getResultByName(name string) (result *AttackResult) {
for _, result = range ht.Results {
if result.Name == name {
return result
@@ -155,7 +155,7 @@ func (ht *HttpTarget) getResultByName(name string) (result *AttackResult) {
// The key is sub-path that start with ":", for example "/:name", the key is
// name.
// The key in Params will be deleted if its exists in Path.
-func (ht *HttpTarget) paramsToPath() {
+func (ht *HTTPTarget) paramsToPath() {
var (
logp = `paramsToPath`
@@ -189,13 +189,13 @@ func (ht *HttpTarget) paramsToPath() {
ht.Path = rute.String()
}
-func (ht *HttpTarget) sortResults() {
+func (ht *HTTPTarget) sortResults() {
sort.Slice(ht.Results, func(x, y int) bool {
return ht.Results[x].Name > ht.Results[y].Name
})
}
-func (ht *HttpTarget) String() string {
+func (ht *HTTPTarget) String() string {
var sb strings.Builder
fmt.Fprintf(&sb, `ID:%s Name:%s Hint:%s Path:%s `+
diff --git a/key_form_input.go b/key_form_input.go
index e457466..afcbce7 100644
--- a/key_form_input.go
+++ b/key_form_input.go
@@ -15,8 +15,8 @@ import (
// and request parameters (either in query or in the parameter body).
type KeyFormInput map[string]FormInput
-// ToHttpHeader convert the KeyFormInputs to the standard http.Header.
-func (kfi KeyFormInput) ToHttpHeader() (headers http.Header) {
+// ToHTTPHeader convert the KeyFormInputs to the standard http.Header.
+func (kfi KeyFormInput) ToHTTPHeader() (headers http.Header) {
headers = http.Header{}
if len(kfi) == 0 {
return headers
@@ -27,10 +27,10 @@ func (kfi KeyFormInput) ToHttpHeader() (headers http.Header) {
return headers
}
-// ToJsonObject convert the KeyFormInput into JSON object.
+// ToJSONObject convert the KeyFormInput into JSON object.
// FormInput with Kind is FormInputKindBoolean will be converted to true if
// the Value is either "true", "yes", or "1".
-func (kfi KeyFormInput) ToJsonObject() (data map[string]interface{}) {
+func (kfi KeyFormInput) ToJSONObject() (data map[string]interface{}) {
var (
k string
fi FormInput
@@ -69,8 +69,8 @@ func (kfi KeyFormInput) ToMultipartFormData() (data map[string][]byte) {
return data
}
-// ToUrlValues convert the KeyFormInput to the standard url.Values.
-func (kfi KeyFormInput) ToUrlValues() (vals url.Values) {
+// ToURLValues convert the KeyFormInput to the standard url.Values.
+func (kfi KeyFormInput) ToURLValues() (vals url.Values) {
vals = url.Values{}
if len(kfi) == 0 {
return vals
diff --git a/memfs_www_embed.go b/memfs_www_embed.go
index 253c2d5..5cffbe6 100644
--- a/memfs_www_embed.go
+++ b/memfs_www_embed.go
@@ -124,7 +124,7 @@ func generate__www_environment_js() *memfs.Node {
Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x75\x69\x2F\x69\x6E\x70\x75\x74\x2F\x73\x74\x72\x69\x6E\x67\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x75\x69\x2F\x69\x6E\x70\x75\x74\x2F\x6E\x75\x6D\x62\x65\x72\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x20\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x2C\x20\x48\x41\x53\x48\x5F\x45\x4E\x56\x49\x52\x4F\x4E\x4D\x45\x4E\x54\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x69\x6E\x74\x65\x72\x66\x61\x63\x65\x2E\x6A\x73\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6C\x61\x73\x73\x20\x45\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72\x28\x74\x72\x75\x6E\x6B\x73\x2C\x20\x6F\x70\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x20\x3D\x20\x74\x72\x75\x6E\x6B\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x20\x3D\x20\x6F\x70\x74\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x68\x33\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x45\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x75\x6E\x6B\x73\x2E\x73\x65\x74\x43\x6F\x6E\x74\x65\x6E\x74\x28\x48\x41\x53\x48\x5F\x45\x4E\x56\x49\x52\x4F\x4E\x4D\x45\x4E\x54\x2C\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x54\x69\x74\x6C\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x68\x32\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x69\x74\x6C\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x45\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6F\x70\x74\x73\x4C\x69\x73\x74\x65\x6E\x41\x64\x64\x72\x65\x73\x73\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x4C\x69\x73\x74\x65\x6E\x20\x61\x64\x64\x72\x65\x73\x73\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x22\x54\x68\x65\x20\x61\x64\x64\x72\x65\x73\x73\x20\x61\x6E\x64\x20\x70\x6F\x72\x74\x20\x77\x68\x65\x72\x65\x20\x54\x72\x75\x6E\x6B\x73\x20\x69\x73\x20\x72\x75\x6E\x6E\x69\x6E\x67\x2E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4C\x69\x73\x74\x65\x6E\x41\x64\x64\x72\x65\x73\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4C\x69\x73\x74\x65\x6E\x41\x64\x64\x72\x65\x73\x73\x20\x3D\x20\x76\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x4C\x69\x73\x74\x65\x6E\x41\x64\x64\x72\x65\x73\x73\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x28\x6F\x70\x74\x73\x4C\x69\x73\x74\x65\x6E\x41\x64\x64\x72\x65\x73\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6F\x70\x74\x73\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x44\x75\x72\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x4D\x61\x78\x2E\x20\x61\x74\x74\x61\x63\x6B\x20\x64\x75\x72\x61\x74\x69\x6F\x6E\x20\x28\x73\x65\x63\x6F\x6E\x64\x73\x29\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x22\x4D\x61\x78\x69\x6D\x75\x6D\x20\x61\x74\x74\x61\x63\x6B\x20\x64\x75\x72\x61\x74\x69\x6F\x6E\x20\x66\x6F\x72\x20\x61\x6C\x6C\x20\x74\x61\x72\x67\x65\x74\x73\x2C\x20\x69\x6E\x20\x73\x65\x63\x6F\x6E\x64\x73\x2E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x44\x75\x72\x61\x74\x69\x6F\x6E\x20\x2F\x20\x31\x65\x39\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x69\x6E\x3A\x20\x31\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x44\x75\x72\x61\x74\x69\x6F\x6E\x20\x3D\x20\x76\x20\x2A\x20\x31\x65\x39\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x44\x75\x72\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x28\x6F\x70\x74\x73\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x44\x75\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6F\x70\x74\x73\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x52\x61\x74\x65\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x4D\x61\x78\x2E\x20\x61\x74\x74\x61\x63\x6B\x20\x72\x61\x74\x65\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x22\x4D\x61\x78\x69\x6D\x75\x6D\x20\x61\x74\x74\x61\x63\x6B\x20\x72\x61\x74\x65\x20\x66\x6F\x72\x20\x61\x6C\x6C\x20\x74\x61\x72\x67\x65\x74\x73\x2E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x52\x61\x74\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x69\x6E\x3A\x20\x31\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x52\x61\x74\x65\x20\x3D\x20\x76\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x52\x61\x74\x65\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x28\x6F\x70\x74\x73\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x52\x61\x74\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6F\x70\x74\x73\x52\x65\x73\x75\x6C\x74\x73\x44\x69\x72\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x52\x65\x73\x75\x6C\x74\x73\x20\x64\x69\x72\x65\x63\x74\x6F\x72\x79\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x22\x54\x68\x65\x20\x64\x69\x72\x65\x63\x74\x6F\x72\x79\x20\x77\x68\x65\x72\x65\x20\x74\x68\x65\x20\x61\x74\x74\x61\x63\x6B\x20\x72\x65\x73\x75\x6C\x74\x20\x77\x69\x6C\x6C\x20\x62\x65\x20\x73\x61\x76\x65\x64\x2E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x44\x69\x72\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x44\x69\x72\x20\x3D\x20\x76\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x52\x65\x73\x75\x6C\x74\x73\x44\x69\x72\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x28\x6F\x70\x74\x73\x52\x65\x73\x75\x6C\x74\x73\x44\x69\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6F\x70\x74\x73\x52\x65\x73\x75\x6C\x74\x73\x53\x75\x66\x66\x69\x78\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x52\x65\x73\x75\x6C\x74\x73\x20\x73\x75\x66\x66\x69\x78\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x22\x4F\x70\x74\x69\x6F\x6E\x61\x6C\x20\x73\x75\x66\x66\x69\x78\x20\x66\x6F\x72\x20\x74\x68\x65\x20\x66\x69\x6C\x65\x20\x6E\x61\x6D\x65\x20\x6F\x66\x20\x61\x74\x74\x61\x63\x6B\x20\x72\x65\x73\x75\x6C\x74\x2E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x53\x75\x66\x66\x69\x78\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x53\x75\x66\x66\x69\x78\x20\x3D\x20\x76\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x52\x65\x73\x75\x6C\x74\x73\x53\x75\x66\x66\x69\x78\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x28\x6F\x70\x74\x73\x52\x65\x73\x75\x6C\x74\x73\x53\x75\x66\x66\x69\x78\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x54\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x63\x6F\x6D\x4C\x69\x73\x74\x65\x6E\x41\x64\x64\x72\x65\x73\x73\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x63\x6F\x6D\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x44\x75\x72\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x63\x6F\x6D\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x52\x61\x74\x65\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x63\x6F\x6D\x52\x65\x73\x75\x6C\x74\x73\x44\x69\x72\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x63\x6F\x6D\x52\x65\x73\x75\x6C\x74\x73\x53\x75\x66\x66\x69\x78\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x73\x65\x74\x28\x6F\x70\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x20\x3D\x20\x6F\x70\x74\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x4C\x69\x73\x74\x65\x6E\x41\x64\x64\x72\x65\x73\x73\x2E\x73\x65\x74\x28\x6F\x70\x74\x73\x2E\x4C\x69\x73\x74\x65\x6E\x41\x64\x64\x72\x65\x73\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x44\x75\x72\x2E\x73\x65\x74\x28\x6F\x70\x74\x73\x2E\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x44\x75\x72\x61\x74\x69\x6F\x6E\x20\x2F\x20\x31\x65\x39\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x52\x61\x74\x65\x2E\x73\x65\x74\x28\x6F\x70\x74\x73\x2E\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x52\x61\x74\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x52\x65\x73\x75\x6C\x74\x73\x44\x69\x72\x2E\x73\x65\x74\x28\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x44\x69\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x52\x65\x73\x75\x6C\x74\x73\x53\x75\x66\x66\x69\x78\x2E\x73\x65\x74\x28\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x53\x75\x66\x66\x69\x78\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"),
}
node.SetMode(420)
- node.SetModTimeUnix(1699681934, 234371293)
+ node.SetModTimeUnix(1706186497, 739740706)
node.SetName("environment.js")
node.SetSize(4231)
return node
@@ -166,10 +166,10 @@ func generate__www_functions_js() *memfs.Node {
Path: "/functions.js",
ContentType: "text/javascript; charset=utf-8",
GenFuncName: "generate__www_functions_js",
- Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x75\x69\x2F\x69\x6E\x70\x75\x74\x2F\x6E\x75\x6D\x62\x65\x72\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x75\x69\x2F\x69\x6E\x70\x75\x74\x2F\x73\x74\x72\x69\x6E\x67\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x20\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x4B\x69\x6E\x64\x4E\x75\x6D\x62\x65\x72\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x69\x6E\x74\x65\x72\x66\x61\x63\x65\x2E\x6A\x73\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x67\x65\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74\x48\x65\x69\x67\x68\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x44\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x3B\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x4D\x61\x74\x68\x2E\x6D\x61\x78\x28\x4D\x61\x74\x68\x2E\x6D\x61\x78\x28\x44\x2E\x62\x6F\x64\x79\x2E\x73\x63\x72\x6F\x6C\x6C\x48\x65\x69\x67\x68\x74\x2C\x20\x44\x2E\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74\x2E\x73\x63\x72\x6F\x6C\x6C\x48\x65\x69\x67\x68\x74\x29\x2C\x20\x4D\x61\x74\x68\x2E\x6D\x61\x78\x28\x44\x2E\x62\x6F\x64\x79\x2E\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74\x2C\x20\x44\x2E\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74\x2E\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74\x29\x2C\x20\x4D\x61\x74\x68\x2E\x6D\x61\x78\x28\x44\x2E\x62\x6F\x64\x79\x2E\x63\x6C\x69\x65\x6E\x74\x48\x65\x69\x67\x68\x74\x2C\x20\x44\x2E\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74\x2E\x63\x6C\x69\x65\x6E\x74\x48\x65\x69\x67\x68\x74\x29\x29\x3B\x0A\x7D\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x28\x70\x61\x72\x65\x6E\x74\x2C\x20\x66\x69\x29\x20\x7B\x0A\x20\x20\x20\x20\x6C\x65\x74\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x4F\x70\x74\x73\x3B\x0A\x20\x20\x20\x20\x6C\x65\x74\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x4F\x70\x74\x73\x3B\x0A\x20\x20\x20\x20\x6C\x65\x74\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x3B\x0A\x20\x20\x20\x20\x6C\x65\x74\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x3B\x0A\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x66\x69\x2E\x6B\x69\x6E\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x4B\x69\x6E\x64\x4E\x75\x6D\x62\x65\x72\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x4F\x70\x74\x73\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x66\x69\x2E\x6C\x61\x62\x65\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x66\x69\x2E\x68\x69\x6E\x74\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x2B\x66\x69\x2E\x76\x61\x6C\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x6E\x65\x77\x56\x61\x6C\x75\x65\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x22\x22\x20\x2B\x20\x6E\x65\x77\x56\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x66\x69\x2E\x6D\x61\x78\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x4F\x70\x74\x73\x2E\x6D\x61\x78\x20\x3D\x20\x66\x69\x2E\x6D\x61\x78\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x66\x69\x2E\x6D\x69\x6E\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x4F\x70\x74\x73\x2E\x6D\x69\x6E\x20\x3D\x20\x66\x69\x2E\x6D\x69\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x28\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x4F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6B\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6C\x74\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x4F\x70\x74\x73\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x66\x69\x2E\x6C\x61\x62\x65\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x66\x69\x2E\x68\x69\x6E\x74\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x6E\x65\x77\x56\x61\x6C\x75\x65\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x6E\x65\x77\x56\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x28\x77\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x4F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6B\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x48\x74\x74\x70\x4D\x65\x74\x68\x6F\x64\x54\x6F\x53\x74\x72\x69\x6E\x67\x28\x6D\x29\x20\x7B\x0A\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x6D\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x30\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x47\x45\x54\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x31\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x43\x4F\x4E\x4E\x45\x43\x54\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x32\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x44\x45\x4C\x45\x54\x45\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x33\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x48\x45\x41\x44\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x34\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x4F\x50\x54\x49\x4F\x4E\x53\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x35\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x50\x41\x54\x43\x48\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x36\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x50\x4F\x53\x54\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x37\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x50\x55\x54\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x38\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x54\x52\x41\x43\x45\x22\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x3F\x3F\x3F\x22\x3B\x0A\x7D\x0A\x2F\x2F\x0A\x2F\x2F\x20\x6C\x6F\x61\x64\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x20\x67\x65\x74\x20\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x20\x68\x65\x61\x64\x65\x72\x20\x66\x72\x6F\x6D\x20\x6C\x6F\x63\x61\x6C\x20\x73\x74\x6F\x72\x61\x67\x65\x20\x62\x79\x20\x6B\x65\x79\x2E\x0A\x2F\x2F\x20\x49\x66\x20\x6E\x6F\x20\x68\x65\x61\x64\x65\x72\x20\x65\x78\x69\x73\x74\x20\x69\x6E\x20\x73\x74\x6F\x72\x61\x67\x65\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x68\x65\x20\x6F\x6E\x65\x20\x66\x72\x6F\x6D\x20\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x20\x69\x74\x73\x65\x6C\x66\x2E\x0A\x2F\x2F\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x74\x74\x70\x2E\x24\x7B\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x65\x61\x64\x65\x72\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x76\x61\x6C\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x65\x61\x64\x65\x72\x20\x3D\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x48\x65\x61\x64\x65\x72\x73\x5B\x6B\x65\x79\x5D\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x68\x65\x61\x64\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x68\x65\x61\x64\x65\x72\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x22\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x74\x74\x70\x2E\x24\x7B\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x65\x61\x64\x65\x72\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x3B\x0A\x7D\x0A\x2F\x2F\x0A\x2F\x2F\x20\x6C\x6F\x61\x64\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x20\x67\x65\x74\x20\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x20\x70\x61\x72\x61\x6D\x65\x74\x65\x72\x20\x66\x72\x6F\x6D\x20\x6C\x6F\x63\x61\x6C\x20\x73\x74\x6F\x72\x61\x67\x65\x20\x62\x79\x20\x6B\x65\x79\x2E\x0A\x2F\x2F\x20\x49\x66\x20\x6E\x6F\x20\x70\x61\x72\x61\x6D\x65\x74\x65\x72\x20\x65\x78\x69\x73\x74\x20\x69\x6E\x20\x73\x74\x6F\x72\x61\x67\x65\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x68\x65\x20\x6F\x6E\x65\x20\x66\x72\x6F\x6D\x20\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x20\x69\x74\x73\x65\x6C\x66\x2E\x0A\x2F\x2F\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x74\x74\x70\x2E\x24\x7B\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x70\x61\x72\x61\x6D\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x76\x61\x6C\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x70\x61\x72\x61\x6D\x20\x3D\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x50\x61\x72\x61\x6D\x73\x5B\x6B\x65\x79\x5D\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x72\x61\x6D\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x70\x61\x72\x61\x6D\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x22\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x74\x74\x70\x2E\x24\x7B\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x70\x61\x72\x61\x6D\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x3B\x0A\x7D\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x44\x75\x72\x61\x74\x69\x6F\x6E\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x6F\x70\x74\x2E\x44\x75\x72\x61\x74\x69\x6F\x6E\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x2B\x76\x61\x6C\x20\x2F\x20\x31\x65\x39\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2E\x44\x75\x72\x61\x74\x69\x6F\x6E\x20\x2F\x20\x31\x65\x39\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x44\x75\x72\x61\x74\x69\x6F\x6E\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x6F\x70\x74\x2E\x44\x75\x72\x61\x74\x69\x6F\x6E\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x22\x22\x20\x2B\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2E\x44\x75\x72\x61\x74\x69\x6F\x6E\x29\x3B\x0A\x7D\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x6F\x70\x74\x2E\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x2B\x76\x61\x6C\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2E\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x6F\x70\x74\x2E\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x22\x22\x20\x2B\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2E\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x29\x3B\x0A\x7D\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x54\x69\x6D\x65\x6F\x75\x74\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x6F\x70\x74\x2E\x54\x69\x6D\x65\x6F\x75\x74\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x2B\x76\x61\x6C\x20\x2F\x20\x31\x65\x39\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2E\x54\x69\x6D\x65\x6F\x75\x74\x20\x2F\x20\x31\x65\x39\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x54\x69\x6D\x65\x6F\x75\x74\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x6F\x70\x74\x2E\x54\x69\x6D\x65\x6F\x75\x74\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x22\x22\x20\x2B\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2E\x54\x69\x6D\x65\x6F\x75\x74\x29\x3B\x0A\x7D\x0A\x2F\x2F\x0A\x2F\x2F\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x56\x61\x72\x20\x67\x65\x74\x20\x74\x61\x72\x67\x65\x74\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x66\x72\x6F\x6D\x20\x6C\x6F\x63\x61\x6C\x20\x73\x74\x6F\x72\x61\x67\x65\x20\x6F\x72\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x68\x65\x20\x6F\x72\x69\x67\x69\x6E\x61\x6C\x0A\x2F\x2F\x20\x76\x61\x6C\x75\x65\x2E\x0A\x2F\x2F\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x56\x61\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x76\x61\x72\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x76\x61\x6C\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x76\x61\x72\x20\x3D\x20\x74\x61\x72\x67\x65\x74\x2E\x56\x61\x72\x73\x5B\x6B\x65\x79\x5D\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x74\x76\x61\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x76\x61\x72\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x22\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x56\x61\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x76\x61\x72\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x3B\x0A\x7D\x0A\x2F\x2F\x0A\x2F\x2F\x20\x6C\x6F\x61\x64\x57\x73\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x20\x67\x65\x74\x20\x74\x68\x65\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x20\x66\x72\x6F\x6D\x20\x6C\x6F\x63\x61\x6C\x20\x73\x74\x6F\x72\x61\x67\x65\x20\x62\x79\x20\x6B\x65\x79\x2E\x0A\x2F\x2F\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x57\x73\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x77\x73\x2E\x24\x7B\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x65\x61\x64\x65\x72\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x76\x61\x6C\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x65\x61\x64\x65\x72\x20\x3D\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x48\x65\x61\x64\x65\x72\x73\x5B\x6B\x65\x79\x5D\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x68\x65\x61\x64\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x68\x65\x61\x64\x65\x72\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x22\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x57\x73\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x77\x73\x2E\x24\x7B\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x65\x61\x64\x65\x72\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x3B\x0A\x7D\x0A\x2F\x2F\x0A\x2F\x2F\x20\x6C\x6F\x61\x64\x57\x73\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x20\x67\x65\x74\x20\x74\x68\x65\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x20\x70\x61\x72\x61\x6D\x65\x74\x65\x72\x20\x66\x72\x6F\x6D\x20\x6C\x6F\x63\x61\x6C\x20\x73\x74\x6F\x72\x61\x67\x65\x20\x6F\x72\x0A\x2F\x2F\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x68\x65\x20\x6F\x6E\x65\x20\x66\x72\x6F\x6D\x20\x77\x73\x54\x61\x72\x67\x65\x74\x20\x69\x66\x20\x69\x74\x73\x20\x6E\x6F\x74\x20\x65\x78\x69\x73\x74\x2E\x0A\x2F\x2F\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x57\x73\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x77\x73\x2E\x24\x7B\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x70\x61\x72\x61\x6D\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x76\x61\x6C\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x70\x61\x72\x61\x6D\x20\x3D\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x50\x61\x72\x61\x6D\x73\x5B\x6B\x65\x79\x5D\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x72\x61\x6D\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x70\x61\x72\x61\x6D\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x22\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x57\x73\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x77\x73\x2E\x24\x7B\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x70\x61\x72\x61\x6D\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x3B\x0A\x7D\x0A\x2F\x2F\x0A\x2F\x2F\x20\x73\x61\x76\x65\x20\x74\x68\x65\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x73\x20\x6F\x6E\x20\x74\x68\x65\x20\x54\x61\x72\x67\x65\x74\x2C\x20\x50\x61\x72\x61\x6D\x73\x20\x61\x6E\x64\x20\x48\x65\x61\x64\x65\x72\x73\x20\x6F\x6E\x20\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x20\x6F\x72\x0A\x2F\x2F\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x20\x74\x6F\x20\x6C\x6F\x63\x61\x6C\x20\x73\x74\x6F\x72\x61\x67\x65\x2E\x0A\x2F\x2F\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x44\x75\x72\x61\x74\x69\x6F\x6E\x28\x74\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x28\x74\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x54\x69\x6D\x65\x6F\x75\x74\x28\x74\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x74\x61\x72\x67\x65\x74\x2E\x56\x61\x72\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x56\x61\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x6B\x2C\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x48\x65\x61\x64\x65\x72\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x2C\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x50\x61\x72\x61\x6D\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x2C\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x77\x73\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x48\x65\x61\x64\x65\x72\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x57\x73\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x2C\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x50\x61\x72\x61\x6D\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x57\x73\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x2C\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"),
+ Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x75\x69\x2F\x69\x6E\x70\x75\x74\x2F\x6E\x75\x6D\x62\x65\x72\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x75\x69\x2F\x69\x6E\x70\x75\x74\x2F\x73\x74\x72\x69\x6E\x67\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x20\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x4B\x69\x6E\x64\x4E\x75\x6D\x62\x65\x72\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x69\x6E\x74\x65\x72\x66\x61\x63\x65\x2E\x6A\x73\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x67\x65\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74\x48\x65\x69\x67\x68\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x44\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x3B\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x4D\x61\x74\x68\x2E\x6D\x61\x78\x28\x4D\x61\x74\x68\x2E\x6D\x61\x78\x28\x44\x2E\x62\x6F\x64\x79\x2E\x73\x63\x72\x6F\x6C\x6C\x48\x65\x69\x67\x68\x74\x2C\x20\x44\x2E\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74\x2E\x73\x63\x72\x6F\x6C\x6C\x48\x65\x69\x67\x68\x74\x29\x2C\x20\x4D\x61\x74\x68\x2E\x6D\x61\x78\x28\x44\x2E\x62\x6F\x64\x79\x2E\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74\x2C\x20\x44\x2E\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74\x2E\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74\x29\x2C\x20\x4D\x61\x74\x68\x2E\x6D\x61\x78\x28\x44\x2E\x62\x6F\x64\x79\x2E\x63\x6C\x69\x65\x6E\x74\x48\x65\x69\x67\x68\x74\x2C\x20\x44\x2E\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74\x2E\x63\x6C\x69\x65\x6E\x74\x48\x65\x69\x67\x68\x74\x29\x29\x3B\x0A\x7D\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x28\x70\x61\x72\x65\x6E\x74\x2C\x20\x66\x69\x29\x20\x7B\x0A\x20\x20\x20\x20\x6C\x65\x74\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x4F\x70\x74\x73\x3B\x0A\x20\x20\x20\x20\x6C\x65\x74\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x4F\x70\x74\x73\x3B\x0A\x20\x20\x20\x20\x6C\x65\x74\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x3B\x0A\x20\x20\x20\x20\x6C\x65\x74\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x3B\x0A\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x66\x69\x2E\x6B\x69\x6E\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x4B\x69\x6E\x64\x4E\x75\x6D\x62\x65\x72\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x4F\x70\x74\x73\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x66\x69\x2E\x6C\x61\x62\x65\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x66\x69\x2E\x68\x69\x6E\x74\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x2B\x66\x69\x2E\x76\x61\x6C\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x6E\x65\x77\x56\x61\x6C\x75\x65\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x22\x22\x20\x2B\x20\x6E\x65\x77\x56\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x66\x69\x2E\x6D\x61\x78\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x4F\x70\x74\x73\x2E\x6D\x61\x78\x20\x3D\x20\x66\x69\x2E\x6D\x61\x78\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x66\x69\x2E\x6D\x69\x6E\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x4F\x70\x74\x73\x2E\x6D\x69\x6E\x20\x3D\x20\x66\x69\x2E\x6D\x69\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x28\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x4F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6B\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6C\x74\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x4F\x70\x74\x73\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x66\x69\x2E\x6C\x61\x62\x65\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x66\x69\x2E\x68\x69\x6E\x74\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x6E\x65\x77\x56\x61\x6C\x75\x65\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x6E\x65\x77\x56\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x28\x77\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x4F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6B\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x48\x54\x54\x50\x4D\x65\x74\x68\x6F\x64\x54\x6F\x53\x74\x72\x69\x6E\x67\x28\x6D\x29\x20\x7B\x0A\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x6D\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x30\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x47\x45\x54\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x31\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x43\x4F\x4E\x4E\x45\x43\x54\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x32\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x44\x45\x4C\x45\x54\x45\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x33\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x48\x45\x41\x44\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x34\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x4F\x50\x54\x49\x4F\x4E\x53\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x35\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x50\x41\x54\x43\x48\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x36\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x50\x4F\x53\x54\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x37\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x50\x55\x54\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x38\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x54\x52\x41\x43\x45\x22\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x3F\x3F\x3F\x22\x3B\x0A\x7D\x0A\x2F\x2F\x0A\x2F\x2F\x20\x6C\x6F\x61\x64\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x20\x67\x65\x74\x20\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x20\x68\x65\x61\x64\x65\x72\x20\x66\x72\x6F\x6D\x20\x6C\x6F\x63\x61\x6C\x20\x73\x74\x6F\x72\x61\x67\x65\x20\x62\x79\x20\x6B\x65\x79\x2E\x0A\x2F\x2F\x20\x49\x66\x20\x6E\x6F\x20\x68\x65\x61\x64\x65\x72\x20\x65\x78\x69\x73\x74\x20\x69\x6E\x20\x73\x74\x6F\x72\x61\x67\x65\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x68\x65\x20\x6F\x6E\x65\x20\x66\x72\x6F\x6D\x20\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x20\x69\x74\x73\x65\x6C\x66\x2E\x0A\x2F\x2F\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x74\x74\x70\x2E\x24\x7B\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x65\x61\x64\x65\x72\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x76\x61\x6C\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x65\x61\x64\x65\x72\x20\x3D\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x48\x65\x61\x64\x65\x72\x73\x5B\x6B\x65\x79\x5D\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x68\x65\x61\x64\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x68\x65\x61\x64\x65\x72\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x22\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x74\x74\x70\x2E\x24\x7B\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x65\x61\x64\x65\x72\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x3B\x0A\x7D\x0A\x2F\x2F\x0A\x2F\x2F\x20\x6C\x6F\x61\x64\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x20\x67\x65\x74\x20\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x20\x70\x61\x72\x61\x6D\x65\x74\x65\x72\x20\x66\x72\x6F\x6D\x20\x6C\x6F\x63\x61\x6C\x20\x73\x74\x6F\x72\x61\x67\x65\x20\x62\x79\x20\x6B\x65\x79\x2E\x0A\x2F\x2F\x20\x49\x66\x20\x6E\x6F\x20\x70\x61\x72\x61\x6D\x65\x74\x65\x72\x20\x65\x78\x69\x73\x74\x20\x69\x6E\x20\x73\x74\x6F\x72\x61\x67\x65\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x68\x65\x20\x6F\x6E\x65\x20\x66\x72\x6F\x6D\x20\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x20\x69\x74\x73\x65\x6C\x66\x2E\x0A\x2F\x2F\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x74\x74\x70\x2E\x24\x7B\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x70\x61\x72\x61\x6D\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x76\x61\x6C\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x70\x61\x72\x61\x6D\x20\x3D\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x50\x61\x72\x61\x6D\x73\x5B\x6B\x65\x79\x5D\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x72\x61\x6D\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x70\x61\x72\x61\x6D\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x22\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x74\x74\x70\x2E\x24\x7B\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x70\x61\x72\x61\x6D\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x3B\x0A\x7D\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x44\x75\x72\x61\x74\x69\x6F\x6E\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x6F\x70\x74\x2E\x44\x75\x72\x61\x74\x69\x6F\x6E\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x2B\x76\x61\x6C\x20\x2F\x20\x31\x65\x39\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2E\x44\x75\x72\x61\x74\x69\x6F\x6E\x20\x2F\x20\x31\x65\x39\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x44\x75\x72\x61\x74\x69\x6F\x6E\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x6F\x70\x74\x2E\x44\x75\x72\x61\x74\x69\x6F\x6E\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x22\x22\x20\x2B\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2E\x44\x75\x72\x61\x74\x69\x6F\x6E\x29\x3B\x0A\x7D\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x6F\x70\x74\x2E\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x2B\x76\x61\x6C\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2E\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x6F\x70\x74\x2E\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x22\x22\x20\x2B\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2E\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x29\x3B\x0A\x7D\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x54\x69\x6D\x65\x6F\x75\x74\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x6F\x70\x74\x2E\x54\x69\x6D\x65\x6F\x75\x74\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x2B\x76\x61\x6C\x20\x2F\x20\x31\x65\x39\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2E\x54\x69\x6D\x65\x6F\x75\x74\x20\x2F\x20\x31\x65\x39\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x54\x69\x6D\x65\x6F\x75\x74\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x6F\x70\x74\x2E\x54\x69\x6D\x65\x6F\x75\x74\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x22\x22\x20\x2B\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2E\x54\x69\x6D\x65\x6F\x75\x74\x29\x3B\x0A\x7D\x0A\x2F\x2F\x0A\x2F\x2F\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x56\x61\x72\x20\x67\x65\x74\x20\x74\x61\x72\x67\x65\x74\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x66\x72\x6F\x6D\x20\x6C\x6F\x63\x61\x6C\x20\x73\x74\x6F\x72\x61\x67\x65\x20\x6F\x72\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x68\x65\x20\x6F\x72\x69\x67\x69\x6E\x61\x6C\x0A\x2F\x2F\x20\x76\x61\x6C\x75\x65\x2E\x0A\x2F\x2F\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x56\x61\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x76\x61\x72\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x76\x61\x6C\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x76\x61\x72\x20\x3D\x20\x74\x61\x72\x67\x65\x74\x2E\x56\x61\x72\x73\x5B\x6B\x65\x79\x5D\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x74\x76\x61\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x76\x61\x72\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x22\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x56\x61\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x76\x61\x72\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x3B\x0A\x7D\x0A\x2F\x2F\x0A\x2F\x2F\x20\x6C\x6F\x61\x64\x57\x73\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x20\x67\x65\x74\x20\x74\x68\x65\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x20\x66\x72\x6F\x6D\x20\x6C\x6F\x63\x61\x6C\x20\x73\x74\x6F\x72\x61\x67\x65\x20\x62\x79\x20\x6B\x65\x79\x2E\x0A\x2F\x2F\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x57\x73\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x77\x73\x2E\x24\x7B\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x65\x61\x64\x65\x72\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x76\x61\x6C\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x65\x61\x64\x65\x72\x20\x3D\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x48\x65\x61\x64\x65\x72\x73\x5B\x6B\x65\x79\x5D\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x68\x65\x61\x64\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x68\x65\x61\x64\x65\x72\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x22\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x57\x73\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x77\x73\x2E\x24\x7B\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x65\x61\x64\x65\x72\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x3B\x0A\x7D\x0A\x2F\x2F\x0A\x2F\x2F\x20\x6C\x6F\x61\x64\x57\x73\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x20\x67\x65\x74\x20\x74\x68\x65\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x20\x70\x61\x72\x61\x6D\x65\x74\x65\x72\x20\x66\x72\x6F\x6D\x20\x6C\x6F\x63\x61\x6C\x20\x73\x74\x6F\x72\x61\x67\x65\x20\x6F\x72\x0A\x2F\x2F\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x68\x65\x20\x6F\x6E\x65\x20\x66\x72\x6F\x6D\x20\x77\x73\x54\x61\x72\x67\x65\x74\x20\x69\x66\x20\x69\x74\x73\x20\x6E\x6F\x74\x20\x65\x78\x69\x73\x74\x2E\x0A\x2F\x2F\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x57\x73\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x77\x73\x2E\x24\x7B\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x70\x61\x72\x61\x6D\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x76\x61\x6C\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x70\x61\x72\x61\x6D\x20\x3D\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x50\x61\x72\x61\x6D\x73\x5B\x6B\x65\x79\x5D\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x72\x61\x6D\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x70\x61\x72\x61\x6D\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x22\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x57\x73\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x77\x73\x2E\x24\x7B\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x70\x61\x72\x61\x6D\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x3B\x0A\x7D\x0A\x2F\x2F\x0A\x2F\x2F\x20\x73\x61\x76\x65\x20\x74\x68\x65\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x73\x20\x6F\x6E\x20\x74\x68\x65\x20\x54\x61\x72\x67\x65\x74\x2C\x20\x50\x61\x72\x61\x6D\x73\x20\x61\x6E\x64\x20\x48\x65\x61\x64\x65\x72\x73\x20\x6F\x6E\x20\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x20\x6F\x72\x0A\x2F\x2F\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x20\x74\x6F\x20\x6C\x6F\x63\x61\x6C\x20\x73\x74\x6F\x72\x61\x67\x65\x2E\x0A\x2F\x2F\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x44\x75\x72\x61\x74\x69\x6F\x6E\x28\x74\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x28\x74\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x54\x69\x6D\x65\x6F\x75\x74\x28\x74\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x74\x61\x72\x67\x65\x74\x2E\x56\x61\x72\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x56\x61\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x6B\x2C\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x48\x65\x61\x64\x65\x72\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x2C\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x50\x61\x72\x61\x6D\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x2C\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x77\x73\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x48\x65\x61\x64\x65\x72\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x57\x73\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x2C\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x50\x61\x72\x61\x6D\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x57\x73\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x2C\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"),
}
node.SetMode(420)
- node.SetModTimeUnix(1699681934, 234371293)
+ node.SetModTimeUnix(1706186497, 749740764)
node.SetName("functions.js")
node.SetSize(7954)
return node
@@ -181,10 +181,10 @@ func generate__www_http_target_js() *memfs.Node {
Path: "/http_target.js",
ContentType: "text/javascript; charset=utf-8",
GenFuncName: "generate__www_http_target_js",
- Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x65\x6C\x65\x63\x74\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x75\x69\x2F\x69\x6E\x70\x75\x74\x2F\x73\x65\x6C\x65\x63\x74\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x75\x69\x2F\x69\x6E\x70\x75\x74\x2F\x73\x74\x72\x69\x6E\x67\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x2C\x20\x6C\x6F\x61\x64\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x2C\x20\x6C\x6F\x61\x64\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x66\x75\x6E\x63\x74\x69\x6F\x6E\x73\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x69\x6E\x74\x65\x72\x66\x61\x63\x65\x2E\x6A\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x41\x43\x54\x49\x4F\x4E\x53\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x61\x63\x74\x69\x6F\x6E\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x45\x53\x55\x4C\x54\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x61\x74\x74\x61\x63\x6B\x5F\x72\x65\x73\x75\x6C\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x45\x53\x55\x4C\x54\x5F\x41\x43\x54\x49\x4F\x4E\x53\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x61\x74\x74\x61\x63\x6B\x5F\x72\x65\x73\x75\x6C\x74\x5F\x61\x63\x74\x69\x6F\x6E\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x69\x6E\x70\x75\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x5F\x48\x45\x41\x44\x45\x52\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x69\x6E\x70\x75\x74\x5F\x68\x65\x61\x64\x65\x72\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x5F\x50\x41\x52\x41\x4D\x53\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x69\x6E\x70\x75\x74\x5F\x70\x61\x72\x61\x6D\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x41\x54\x54\x41\x43\x4B\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x6F\x75\x74\x5F\x61\x74\x74\x61\x63\x6B\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x4D\x4F\x4E\x4F\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x6F\x75\x74\x5F\x6D\x6F\x6E\x6F\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x52\x55\x4E\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x6F\x75\x74\x5F\x72\x75\x6E\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4F\x4E\x54\x45\x4E\x54\x5F\x54\x59\x50\x45\x5F\x4A\x53\x4F\x4E\x20\x3D\x20\x22\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6C\x61\x73\x73\x20\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72\x28\x74\x72\x75\x6E\x6B\x73\x2C\x20\x74\x61\x72\x67\x65\x74\x2C\x20\x6F\x70\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x20\x3D\x20\x74\x72\x75\x6E\x6B\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x20\x3D\x20\x74\x61\x72\x67\x65\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x20\x3D\x20\x6F\x70\x74\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x52\x75\x6E\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x62\x75\x74\x74\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x41\x74\x74\x61\x63\x6B\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x62\x75\x74\x74\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x52\x65\x71\x75\x65\x73\x74\x49\x6E\x70\x75\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x71\x75\x65\x73\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x69\x64\x20\x3D\x20\x6F\x70\x74\x73\x2E\x49\x44\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x54\x69\x74\x6C\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x68\x33\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x69\x74\x6C\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x6F\x70\x74\x73\x2E\x4E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x54\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x41\x63\x74\x69\x6F\x6E\x73\x28\x65\x6C\x54\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x28\x74\x68\x69\x73\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x49\x6E\x70\x75\x74\x28\x74\x68\x69\x73\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x4F\x75\x74\x70\x75\x74\x28\x74\x68\x69\x73\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x4F\x75\x74\x70\x75\x74\x41\x74\x74\x61\x63\x6B\x28\x74\x68\x69\x73\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x41\x63\x74\x69\x6F\x6E\x73\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x41\x63\x74\x69\x6F\x6E\x73\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x73\x70\x61\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x41\x63\x74\x69\x6F\x6E\x73\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x41\x43\x54\x49\x4F\x4E\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x52\x75\x6E\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x52\x75\x6E\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x52\x75\x6E\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x52\x75\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x41\x63\x74\x69\x6F\x6E\x73\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x52\x75\x6E\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x41\x6C\x6C\x6F\x77\x41\x74\x74\x61\x63\x6B\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x41\x74\x74\x61\x63\x6B\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x41\x74\x74\x61\x63\x6B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x41\x74\x74\x61\x63\x6B\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x41\x63\x74\x69\x6F\x6E\x73\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x41\x74\x74\x61\x63\x6B\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x41\x63\x74\x69\x6F\x6E\x73\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x69\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x48\x69\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x70\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x48\x69\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x69\x6E\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x48\x69\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x49\x6E\x70\x75\x74\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x52\x65\x71\x75\x65\x73\x74\x49\x6E\x70\x75\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x4D\x65\x74\x68\x6F\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x52\x65\x71\x75\x65\x73\x74\x49\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x43\x6F\x6E\x74\x65\x6E\x74\x54\x79\x70\x65\x28\x74\x68\x69\x73\x2E\x65\x6C\x52\x65\x71\x75\x65\x73\x74\x49\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72\x73\x28\x74\x68\x69\x73\x2E\x65\x6C\x52\x65\x71\x75\x65\x73\x74\x49\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x50\x61\x72\x61\x6D\x65\x74\x65\x72\x73\x28\x74\x68\x69\x73\x2E\x65\x6C\x52\x65\x71\x75\x65\x73\x74\x49\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x52\x65\x71\x75\x65\x73\x74\x49\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x4D\x65\x74\x68\x6F\x64\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6D\x20\x3D\x20\x22\x22\x20\x2B\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4D\x65\x74\x68\x6F\x64\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x65\x6C\x65\x63\x74\x4F\x70\x74\x73\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x61\x6D\x65\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x70\x74\x69\x6F\x6E\x73\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x47\x45\x54\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x30\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x30\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x43\x4F\x4E\x4E\x45\x43\x54\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x31\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x31\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x44\x45\x4C\x45\x54\x45\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x32\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x32\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x45\x41\x44\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x33\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x33\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4F\x50\x54\x49\x4F\x4E\x53\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x34\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x34\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x50\x41\x54\x43\x48\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x35\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x35\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x50\x4F\x53\x54\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x36\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x36\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x50\x55\x54\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x37\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x37\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x54\x52\x41\x43\x45\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x38\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x38\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x3A\x20\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x49\x73\x43\x75\x73\x74\x6F\x6D\x69\x7A\x61\x62\x6C\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x5F\x2C\x20\x76\x61\x6C\x75\x65\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4D\x65\x74\x68\x6F\x64\x20\x3D\x20\x70\x61\x72\x73\x65\x49\x6E\x74\x28\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x75\x69\x52\x65\x71\x75\x65\x73\x74\x4D\x65\x74\x68\x6F\x64\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x65\x6C\x65\x63\x74\x28\x73\x65\x6C\x65\x63\x74\x4F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x70\x61\x74\x68\x4F\x70\x74\x73\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x77\x75\x69\x52\x65\x71\x75\x65\x73\x74\x4D\x65\x74\x68\x6F\x64\x2E\x65\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x50\x61\x74\x68\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x3A\x20\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x49\x73\x43\x75\x73\x74\x6F\x6D\x69\x7A\x61\x62\x6C\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x70\x61\x74\x68\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x50\x61\x74\x68\x20\x3D\x20\x70\x61\x74\x68\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x75\x69\x52\x65\x71\x75\x65\x73\x74\x50\x61\x74\x68\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x28\x70\x61\x74\x68\x4F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x75\x69\x52\x65\x71\x75\x65\x73\x74\x50\x61\x74\x68\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x43\x6F\x6E\x74\x65\x6E\x74\x54\x79\x70\x65\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x74\x20\x3D\x20\x22\x22\x20\x2B\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x71\x75\x65\x73\x74\x54\x79\x70\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x65\x6C\x65\x63\x74\x4F\x70\x74\x73\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x43\x6F\x6E\x74\x65\x6E\x74\x20\x74\x79\x70\x65\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x61\x6D\x65\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x70\x74\x69\x6F\x6E\x73\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x28\x6E\x6F\x6E\x65\x29\x22\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x30\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x63\x74\x20\x3D\x3D\x3D\x20\x22\x30\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x28\x71\x75\x65\x72\x79\x29\x22\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x31\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x63\x74\x20\x3D\x3D\x3D\x20\x22\x31\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x78\x2D\x77\x77\x77\x2D\x66\x6F\x72\x6D\x2D\x75\x72\x6C\x65\x6E\x63\x6F\x64\x65\x64\x22\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x32\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x63\x74\x20\x3D\x3D\x3D\x20\x22\x32\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x6D\x75\x6C\x74\x69\x70\x61\x72\x74\x2F\x66\x6F\x72\x6D\x2D\x64\x61\x74\x61\x22\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x33\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x63\x74\x20\x3D\x3D\x3D\x20\x22\x33\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E\x22\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x34\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x63\x74\x20\x3D\x3D\x3D\x20\x22\x34\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x3A\x20\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x49\x73\x43\x75\x73\x74\x6F\x6D\x69\x7A\x61\x62\x6C\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x5F\x2C\x20\x76\x61\x6C\x75\x65\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x71\x75\x65\x73\x74\x54\x79\x70\x65\x20\x3D\x20\x70\x61\x72\x73\x65\x49\x6E\x74\x28\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x75\x69\x52\x65\x71\x75\x65\x73\x74\x54\x79\x70\x65\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x65\x6C\x65\x63\x74\x28\x73\x65\x6C\x65\x63\x74\x4F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x75\x69\x52\x65\x71\x75\x65\x73\x74\x54\x79\x70\x65\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72\x73\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x65\x61\x64\x65\x72\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x4F\x62\x6A\x65\x63\x74\x2E\x6B\x65\x79\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x65\x61\x64\x65\x72\x73\x29\x2E\x6C\x65\x6E\x67\x74\x68\x20\x3D\x3D\x3D\x20\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x5F\x48\x45\x41\x44\x45\x52\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6C\x65\x67\x65\x6E\x64\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x65\x67\x65\x6E\x64\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x48\x65\x61\x64\x65\x72\x73\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x6C\x65\x67\x65\x6E\x64\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x65\x79\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x65\x61\x64\x65\x72\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x6C\x6F\x61\x64\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x28\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x6B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x2C\x20\x66\x69\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x50\x61\x72\x61\x6D\x65\x74\x65\x72\x73\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x50\x61\x72\x61\x6D\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x4F\x62\x6A\x65\x63\x74\x2E\x6B\x65\x79\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x50\x61\x72\x61\x6D\x73\x29\x2E\x6C\x65\x6E\x67\x74\x68\x20\x3D\x3D\x3D\x20\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x5F\x50\x41\x52\x41\x4D\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x69\x74\x6C\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x69\x74\x6C\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x50\x61\x72\x61\x6D\x65\x74\x65\x72\x73\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x65\x79\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x50\x61\x72\x61\x6D\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x6C\x6F\x61\x64\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x28\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x6B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x2C\x20\x66\x69\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x4F\x75\x74\x70\x75\x74\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x52\x55\x4E\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x69\x74\x6C\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x69\x74\x6C\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x52\x75\x6E\x20\x6F\x75\x74\x70\x75\x74\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x62\x74\x6E\x43\x6C\x65\x61\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x62\x75\x74\x74\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x43\x6C\x65\x61\x72\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x43\x6C\x65\x61\x72\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x43\x6C\x65\x61\x72\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x43\x6C\x65\x61\x72\x4F\x75\x74\x70\x75\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x69\x74\x6C\x65\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x62\x74\x6E\x43\x6C\x65\x61\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x71\x75\x65\x73\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x4D\x4F\x4E\x4F\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x4D\x4F\x4E\x4F\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x4D\x4F\x4E\x4F\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x71\x75\x65\x73\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x43\x6C\x65\x61\x72\x4F\x75\x74\x70\x75\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x4F\x75\x74\x70\x75\x74\x41\x74\x74\x61\x63\x6B\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x41\x6C\x6C\x6F\x77\x41\x74\x74\x61\x63\x6B\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x41\x54\x54\x41\x43\x4B\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x69\x74\x6C\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x69\x74\x6C\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x41\x74\x74\x61\x63\x6B\x20\x72\x65\x73\x75\x6C\x74\x73\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x75\x6C\x74\x20\x6F\x66\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x45\x53\x55\x4C\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x4D\x4F\x4E\x4F\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x4D\x4F\x4E\x4F\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x72\x65\x73\x75\x6C\x74\x2E\x4E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x61\x63\x74\x69\x6F\x6E\x73\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x73\x70\x61\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x63\x74\x69\x6F\x6E\x73\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x45\x53\x55\x4C\x54\x5F\x41\x43\x54\x49\x4F\x4E\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x53\x68\x6F\x77\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x62\x75\x74\x74\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x53\x68\x6F\x77\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x53\x68\x6F\x77\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x53\x68\x6F\x77\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x53\x68\x6F\x77\x28\x72\x65\x73\x75\x6C\x74\x2E\x4E\x61\x6D\x65\x2C\x20\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x53\x68\x6F\x77\x2C\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x2C\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x44\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x62\x75\x74\x74\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x44\x65\x6C\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x44\x65\x6C\x65\x74\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x44\x65\x6C\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x44\x65\x6C\x65\x74\x65\x28\x72\x65\x73\x75\x6C\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x63\x74\x69\x6F\x6E\x73\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x53\x68\x6F\x77\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x63\x74\x69\x6F\x6E\x73\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x44\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x61\x63\x74\x69\x6F\x6E\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x61\x77\x61\x69\x74\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x2E\x61\x74\x74\x61\x63\x6B\x48\x74\x74\x70\x28\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x44\x65\x6C\x65\x74\x65\x28\x72\x65\x73\x75\x6C\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x2E\x61\x74\x74\x61\x63\x6B\x48\x74\x74\x70\x44\x65\x6C\x65\x74\x65\x28\x72\x65\x73\x75\x6C\x74\x2E\x4E\x61\x6D\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x72\x65\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x2E\x66\x6F\x72\x45\x61\x63\x68\x28\x28\x72\x2C\x20\x78\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x2E\x4E\x61\x6D\x65\x20\x3D\x3D\x20\x72\x65\x73\x75\x6C\x74\x2E\x4E\x61\x6D\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x2E\x73\x70\x6C\x69\x63\x65\x28\x78\x2C\x20\x31\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x53\x68\x6F\x77\x28\x72\x65\x73\x75\x6C\x74\x4E\x61\x6D\x65\x2C\x20\x62\x74\x6E\x2C\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x2C\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x62\x74\x6E\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x3D\x3D\x20\x22\x48\x69\x64\x65\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x53\x68\x6F\x77\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x4A\x53\x4F\x4E\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x2E\x61\x74\x74\x61\x63\x6B\x48\x74\x74\x70\x47\x65\x74\x28\x72\x65\x73\x75\x6C\x74\x4E\x61\x6D\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x4A\x53\x4F\x4E\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x72\x65\x73\x4A\x53\x4F\x4E\x2E\x64\x61\x74\x61\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x61\x74\x6F\x62\x28\x72\x65\x73\x2E\x54\x65\x78\x74\x52\x65\x70\x6F\x72\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x62\x6C\x6F\x63\x6B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x61\x74\x6F\x62\x28\x72\x65\x73\x2E\x48\x69\x73\x74\x52\x65\x70\x6F\x72\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x62\x6C\x6F\x63\x6B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x48\x69\x64\x65\x22\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x43\x6C\x65\x61\x72\x4F\x75\x74\x70\x75\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x71\x75\x65\x73\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x52\x61\x77\x20\x72\x65\x71\x75\x65\x73\x74\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x52\x61\x77\x20\x72\x65\x73\x70\x6F\x6E\x73\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x4A\x53\x4F\x4E\x20\x66\x6F\x72\x6D\x61\x74\x74\x65\x64\x20\x72\x65\x73\x70\x6F\x6E\x73\x65\x20\x62\x6F\x64\x79\x22\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x52\x75\x6E\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x2E\x72\x75\x6E\x48\x74\x74\x70\x28\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x72\x65\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x71\x75\x65\x73\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x61\x74\x6F\x62\x28\x72\x65\x73\x2E\x44\x75\x6D\x70\x52\x65\x71\x75\x65\x73\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x61\x74\x6F\x62\x28\x72\x65\x73\x2E\x44\x75\x6D\x70\x52\x65\x73\x70\x6F\x6E\x73\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x62\x6F\x64\x79\x20\x3D\x20\x61\x74\x6F\x62\x28\x72\x65\x73\x2E\x52\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x2E\x52\x65\x73\x70\x6F\x6E\x73\x65\x54\x79\x70\x65\x20\x3D\x3D\x3D\x20\x43\x4F\x4E\x54\x45\x4E\x54\x5F\x54\x59\x50\x45\x5F\x4A\x53\x4F\x4E\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x4A\x53\x4F\x4E\x2E\x73\x74\x72\x69\x6E\x67\x69\x66\x79\x28\x4A\x53\x4F\x4E\x2E\x70\x61\x72\x73\x65\x28\x62\x6F\x64\x79\x29\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x32\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x62\x6F\x64\x79\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x41\x64\x64\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x28\x72\x65\x73\x75\x6C\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x2E\x70\x75\x73\x68\x28\x72\x65\x73\x75\x6C\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"),
+ Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x65\x6C\x65\x63\x74\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x75\x69\x2F\x69\x6E\x70\x75\x74\x2F\x73\x65\x6C\x65\x63\x74\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x75\x69\x2F\x69\x6E\x70\x75\x74\x2F\x73\x74\x72\x69\x6E\x67\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x2C\x20\x6C\x6F\x61\x64\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x2C\x20\x6C\x6F\x61\x64\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x66\x75\x6E\x63\x74\x69\x6F\x6E\x73\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x69\x6E\x74\x65\x72\x66\x61\x63\x65\x2E\x6A\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x41\x43\x54\x49\x4F\x4E\x53\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x61\x63\x74\x69\x6F\x6E\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x45\x53\x55\x4C\x54\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x61\x74\x74\x61\x63\x6B\x5F\x72\x65\x73\x75\x6C\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x45\x53\x55\x4C\x54\x5F\x41\x43\x54\x49\x4F\x4E\x53\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x61\x74\x74\x61\x63\x6B\x5F\x72\x65\x73\x75\x6C\x74\x5F\x61\x63\x74\x69\x6F\x6E\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x69\x6E\x70\x75\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x5F\x48\x45\x41\x44\x45\x52\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x69\x6E\x70\x75\x74\x5F\x68\x65\x61\x64\x65\x72\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x5F\x50\x41\x52\x41\x4D\x53\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x69\x6E\x70\x75\x74\x5F\x70\x61\x72\x61\x6D\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x41\x54\x54\x41\x43\x4B\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x6F\x75\x74\x5F\x61\x74\x74\x61\x63\x6B\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x4D\x4F\x4E\x4F\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x6F\x75\x74\x5F\x6D\x6F\x6E\x6F\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x52\x55\x4E\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x6F\x75\x74\x5F\x72\x75\x6E\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4F\x4E\x54\x45\x4E\x54\x5F\x54\x59\x50\x45\x5F\x4A\x53\x4F\x4E\x20\x3D\x20\x22\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6C\x61\x73\x73\x20\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72\x28\x74\x72\x75\x6E\x6B\x73\x2C\x20\x74\x61\x72\x67\x65\x74\x2C\x20\x6F\x70\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x20\x3D\x20\x74\x72\x75\x6E\x6B\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x20\x3D\x20\x74\x61\x72\x67\x65\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x20\x3D\x20\x6F\x70\x74\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x52\x75\x6E\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x62\x75\x74\x74\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x41\x74\x74\x61\x63\x6B\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x62\x75\x74\x74\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x52\x65\x71\x75\x65\x73\x74\x49\x6E\x70\x75\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x71\x75\x65\x73\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x69\x64\x20\x3D\x20\x6F\x70\x74\x73\x2E\x49\x44\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x54\x69\x74\x6C\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x68\x33\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x69\x74\x6C\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x6F\x70\x74\x73\x2E\x4E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x54\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x41\x63\x74\x69\x6F\x6E\x73\x28\x65\x6C\x54\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x28\x74\x68\x69\x73\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x49\x6E\x70\x75\x74\x28\x74\x68\x69\x73\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x4F\x75\x74\x70\x75\x74\x28\x74\x68\x69\x73\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x4F\x75\x74\x70\x75\x74\x41\x74\x74\x61\x63\x6B\x28\x74\x68\x69\x73\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x41\x63\x74\x69\x6F\x6E\x73\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x41\x63\x74\x69\x6F\x6E\x73\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x73\x70\x61\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x41\x63\x74\x69\x6F\x6E\x73\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x41\x43\x54\x49\x4F\x4E\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x52\x75\x6E\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x52\x75\x6E\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x52\x75\x6E\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x52\x75\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x41\x63\x74\x69\x6F\x6E\x73\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x52\x75\x6E\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x41\x6C\x6C\x6F\x77\x41\x74\x74\x61\x63\x6B\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x41\x74\x74\x61\x63\x6B\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x41\x74\x74\x61\x63\x6B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x41\x74\x74\x61\x63\x6B\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x41\x63\x74\x69\x6F\x6E\x73\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x41\x74\x74\x61\x63\x6B\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x41\x63\x74\x69\x6F\x6E\x73\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x69\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x48\x69\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x70\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x48\x69\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x69\x6E\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x48\x69\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x49\x6E\x70\x75\x74\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x52\x65\x71\x75\x65\x73\x74\x49\x6E\x70\x75\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x4D\x65\x74\x68\x6F\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x52\x65\x71\x75\x65\x73\x74\x49\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x43\x6F\x6E\x74\x65\x6E\x74\x54\x79\x70\x65\x28\x74\x68\x69\x73\x2E\x65\x6C\x52\x65\x71\x75\x65\x73\x74\x49\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72\x73\x28\x74\x68\x69\x73\x2E\x65\x6C\x52\x65\x71\x75\x65\x73\x74\x49\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x50\x61\x72\x61\x6D\x65\x74\x65\x72\x73\x28\x74\x68\x69\x73\x2E\x65\x6C\x52\x65\x71\x75\x65\x73\x74\x49\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x52\x65\x71\x75\x65\x73\x74\x49\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x4D\x65\x74\x68\x6F\x64\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6D\x20\x3D\x20\x22\x22\x20\x2B\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4D\x65\x74\x68\x6F\x64\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x65\x6C\x65\x63\x74\x4F\x70\x74\x73\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x61\x6D\x65\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x70\x74\x69\x6F\x6E\x73\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x47\x45\x54\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x30\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x30\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x43\x4F\x4E\x4E\x45\x43\x54\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x31\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x31\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x44\x45\x4C\x45\x54\x45\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x32\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x32\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x45\x41\x44\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x33\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x33\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4F\x50\x54\x49\x4F\x4E\x53\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x34\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x34\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x50\x41\x54\x43\x48\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x35\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x35\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x50\x4F\x53\x54\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x36\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x36\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x50\x55\x54\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x37\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x37\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x54\x52\x41\x43\x45\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x38\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x38\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x3A\x20\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x49\x73\x43\x75\x73\x74\x6F\x6D\x69\x7A\x61\x62\x6C\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x5F\x2C\x20\x76\x61\x6C\x75\x65\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4D\x65\x74\x68\x6F\x64\x20\x3D\x20\x70\x61\x72\x73\x65\x49\x6E\x74\x28\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x75\x69\x52\x65\x71\x75\x65\x73\x74\x4D\x65\x74\x68\x6F\x64\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x65\x6C\x65\x63\x74\x28\x73\x65\x6C\x65\x63\x74\x4F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x70\x61\x74\x68\x4F\x70\x74\x73\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x77\x75\x69\x52\x65\x71\x75\x65\x73\x74\x4D\x65\x74\x68\x6F\x64\x2E\x65\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x50\x61\x74\x68\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x3A\x20\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x49\x73\x43\x75\x73\x74\x6F\x6D\x69\x7A\x61\x62\x6C\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x70\x61\x74\x68\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x50\x61\x74\x68\x20\x3D\x20\x70\x61\x74\x68\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x75\x69\x52\x65\x71\x75\x65\x73\x74\x50\x61\x74\x68\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x28\x70\x61\x74\x68\x4F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x75\x69\x52\x65\x71\x75\x65\x73\x74\x50\x61\x74\x68\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x43\x6F\x6E\x74\x65\x6E\x74\x54\x79\x70\x65\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x74\x20\x3D\x20\x22\x22\x20\x2B\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x71\x75\x65\x73\x74\x54\x79\x70\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x65\x6C\x65\x63\x74\x4F\x70\x74\x73\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x43\x6F\x6E\x74\x65\x6E\x74\x20\x74\x79\x70\x65\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x61\x6D\x65\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x70\x74\x69\x6F\x6E\x73\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x28\x6E\x6F\x6E\x65\x29\x22\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x30\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x63\x74\x20\x3D\x3D\x3D\x20\x22\x30\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x28\x71\x75\x65\x72\x79\x29\x22\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x31\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x63\x74\x20\x3D\x3D\x3D\x20\x22\x31\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x78\x2D\x77\x77\x77\x2D\x66\x6F\x72\x6D\x2D\x75\x72\x6C\x65\x6E\x63\x6F\x64\x65\x64\x22\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x32\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x63\x74\x20\x3D\x3D\x3D\x20\x22\x32\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x6D\x75\x6C\x74\x69\x70\x61\x72\x74\x2F\x66\x6F\x72\x6D\x2D\x64\x61\x74\x61\x22\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x33\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x63\x74\x20\x3D\x3D\x3D\x20\x22\x33\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E\x22\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x34\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x63\x74\x20\x3D\x3D\x3D\x20\x22\x34\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x3A\x20\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x49\x73\x43\x75\x73\x74\x6F\x6D\x69\x7A\x61\x62\x6C\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x5F\x2C\x20\x76\x61\x6C\x75\x65\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x71\x75\x65\x73\x74\x54\x79\x70\x65\x20\x3D\x20\x70\x61\x72\x73\x65\x49\x6E\x74\x28\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x75\x69\x52\x65\x71\x75\x65\x73\x74\x54\x79\x70\x65\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x65\x6C\x65\x63\x74\x28\x73\x65\x6C\x65\x63\x74\x4F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x75\x69\x52\x65\x71\x75\x65\x73\x74\x54\x79\x70\x65\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72\x73\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x65\x61\x64\x65\x72\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x4F\x62\x6A\x65\x63\x74\x2E\x6B\x65\x79\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x65\x61\x64\x65\x72\x73\x29\x2E\x6C\x65\x6E\x67\x74\x68\x20\x3D\x3D\x3D\x20\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x5F\x48\x45\x41\x44\x45\x52\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6C\x65\x67\x65\x6E\x64\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x65\x67\x65\x6E\x64\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x48\x65\x61\x64\x65\x72\x73\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x6C\x65\x67\x65\x6E\x64\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x65\x79\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x65\x61\x64\x65\x72\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x6C\x6F\x61\x64\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x28\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x6B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x2C\x20\x66\x69\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x50\x61\x72\x61\x6D\x65\x74\x65\x72\x73\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x50\x61\x72\x61\x6D\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x4F\x62\x6A\x65\x63\x74\x2E\x6B\x65\x79\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x50\x61\x72\x61\x6D\x73\x29\x2E\x6C\x65\x6E\x67\x74\x68\x20\x3D\x3D\x3D\x20\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x5F\x50\x41\x52\x41\x4D\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x69\x74\x6C\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x69\x74\x6C\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x50\x61\x72\x61\x6D\x65\x74\x65\x72\x73\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x65\x79\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x50\x61\x72\x61\x6D\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x6C\x6F\x61\x64\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x28\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x6B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x2C\x20\x66\x69\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x4F\x75\x74\x70\x75\x74\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x52\x55\x4E\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x69\x74\x6C\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x69\x74\x6C\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x52\x75\x6E\x20\x6F\x75\x74\x70\x75\x74\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x62\x74\x6E\x43\x6C\x65\x61\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x62\x75\x74\x74\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x43\x6C\x65\x61\x72\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x43\x6C\x65\x61\x72\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x43\x6C\x65\x61\x72\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x43\x6C\x65\x61\x72\x4F\x75\x74\x70\x75\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x69\x74\x6C\x65\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x62\x74\x6E\x43\x6C\x65\x61\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x71\x75\x65\x73\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x4D\x4F\x4E\x4F\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x4D\x4F\x4E\x4F\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x4D\x4F\x4E\x4F\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x71\x75\x65\x73\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x43\x6C\x65\x61\x72\x4F\x75\x74\x70\x75\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x4F\x75\x74\x70\x75\x74\x41\x74\x74\x61\x63\x6B\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x41\x6C\x6C\x6F\x77\x41\x74\x74\x61\x63\x6B\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x41\x54\x54\x41\x43\x4B\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x69\x74\x6C\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x69\x74\x6C\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x41\x74\x74\x61\x63\x6B\x20\x72\x65\x73\x75\x6C\x74\x73\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x75\x6C\x74\x20\x6F\x66\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x45\x53\x55\x4C\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x4D\x4F\x4E\x4F\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x4D\x4F\x4E\x4F\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x72\x65\x73\x75\x6C\x74\x2E\x4E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x61\x63\x74\x69\x6F\x6E\x73\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x73\x70\x61\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x63\x74\x69\x6F\x6E\x73\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x45\x53\x55\x4C\x54\x5F\x41\x43\x54\x49\x4F\x4E\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x53\x68\x6F\x77\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x62\x75\x74\x74\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x53\x68\x6F\x77\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x53\x68\x6F\x77\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x53\x68\x6F\x77\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x53\x68\x6F\x77\x28\x72\x65\x73\x75\x6C\x74\x2E\x4E\x61\x6D\x65\x2C\x20\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x53\x68\x6F\x77\x2C\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x2C\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x44\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x62\x75\x74\x74\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x44\x65\x6C\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x44\x65\x6C\x65\x74\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x44\x65\x6C\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x44\x65\x6C\x65\x74\x65\x28\x72\x65\x73\x75\x6C\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x63\x74\x69\x6F\x6E\x73\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x53\x68\x6F\x77\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x63\x74\x69\x6F\x6E\x73\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x44\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x61\x63\x74\x69\x6F\x6E\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x61\x77\x61\x69\x74\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x2E\x61\x74\x74\x61\x63\x6B\x48\x54\x54\x50\x28\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x44\x65\x6C\x65\x74\x65\x28\x72\x65\x73\x75\x6C\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x2E\x61\x74\x74\x61\x63\x6B\x48\x54\x54\x50\x44\x65\x6C\x65\x74\x65\x28\x72\x65\x73\x75\x6C\x74\x2E\x4E\x61\x6D\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x72\x65\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x2E\x66\x6F\x72\x45\x61\x63\x68\x28\x28\x72\x2C\x20\x78\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x2E\x4E\x61\x6D\x65\x20\x3D\x3D\x20\x72\x65\x73\x75\x6C\x74\x2E\x4E\x61\x6D\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x2E\x73\x70\x6C\x69\x63\x65\x28\x78\x2C\x20\x31\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x53\x68\x6F\x77\x28\x72\x65\x73\x75\x6C\x74\x4E\x61\x6D\x65\x2C\x20\x62\x74\x6E\x2C\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x2C\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x62\x74\x6E\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x3D\x3D\x20\x22\x48\x69\x64\x65\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x53\x68\x6F\x77\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x4A\x53\x4F\x4E\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x2E\x61\x74\x74\x61\x63\x6B\x48\x54\x54\x50\x47\x65\x74\x28\x72\x65\x73\x75\x6C\x74\x4E\x61\x6D\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x4A\x53\x4F\x4E\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x72\x65\x73\x4A\x53\x4F\x4E\x2E\x64\x61\x74\x61\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x61\x74\x6F\x62\x28\x72\x65\x73\x2E\x54\x65\x78\x74\x52\x65\x70\x6F\x72\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x62\x6C\x6F\x63\x6B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x61\x74\x6F\x62\x28\x72\x65\x73\x2E\x48\x69\x73\x74\x52\x65\x70\x6F\x72\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x62\x6C\x6F\x63\x6B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x48\x69\x64\x65\x22\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x43\x6C\x65\x61\x72\x4F\x75\x74\x70\x75\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x71\x75\x65\x73\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x52\x61\x77\x20\x72\x65\x71\x75\x65\x73\x74\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x52\x61\x77\x20\x72\x65\x73\x70\x6F\x6E\x73\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x4A\x53\x4F\x4E\x20\x66\x6F\x72\x6D\x61\x74\x74\x65\x64\x20\x72\x65\x73\x70\x6F\x6E\x73\x65\x20\x62\x6F\x64\x79\x22\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x52\x75\x6E\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x2E\x72\x75\x6E\x48\x54\x54\x50\x28\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x72\x65\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x71\x75\x65\x73\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x61\x74\x6F\x62\x28\x72\x65\x73\x2E\x44\x75\x6D\x70\x52\x65\x71\x75\x65\x73\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x61\x74\x6F\x62\x28\x72\x65\x73\x2E\x44\x75\x6D\x70\x52\x65\x73\x70\x6F\x6E\x73\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x62\x6F\x64\x79\x20\x3D\x20\x61\x74\x6F\x62\x28\x72\x65\x73\x2E\x52\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x2E\x52\x65\x73\x70\x6F\x6E\x73\x65\x54\x79\x70\x65\x20\x3D\x3D\x3D\x20\x43\x4F\x4E\x54\x45\x4E\x54\x5F\x54\x59\x50\x45\x5F\x4A\x53\x4F\x4E\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x4A\x53\x4F\x4E\x2E\x73\x74\x72\x69\x6E\x67\x69\x66\x79\x28\x4A\x53\x4F\x4E\x2E\x70\x61\x72\x73\x65\x28\x62\x6F\x64\x79\x29\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x32\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x62\x6F\x64\x79\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x41\x64\x64\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x28\x72\x65\x73\x75\x6C\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x2E\x70\x75\x73\x68\x28\x72\x65\x73\x75\x6C\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"),
}
node.SetMode(420)
- node.SetModTimeUnix(1699681934, 234371293)
+ node.SetModTimeUnix(1706186497, 769740880)
node.SetName("http_target.js")
node.SetSize(13210)
return node
@@ -214,7 +214,7 @@ func generate__www_index_js() *memfs.Node {
Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x54\x72\x75\x6E\x6B\x73\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x74\x72\x75\x6E\x6B\x73\x2E\x6A\x73\x22\x3B\x0A\x61\x73\x79\x6E\x63\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6D\x61\x69\x6E\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x72\x75\x6E\x6B\x73\x20\x3D\x20\x6E\x65\x77\x20\x54\x72\x75\x6E\x6B\x73\x28\x29\x3B\x0A\x20\x20\x20\x20\x61\x77\x61\x69\x74\x20\x74\x72\x75\x6E\x6B\x73\x2E\x69\x6E\x69\x74\x28\x29\x3B\x0A\x7D\x0A\x6D\x61\x69\x6E\x28\x29\x3B\x0A"),
}
node.SetMode(420)
- node.SetModTimeUnix(1699681934, 237704643)
+ node.SetModTimeUnix(1706186497, 789740996)
node.SetName("index.js")
node.SetSize(236)
return node
@@ -229,7 +229,7 @@ func generate__www_interface_js() *memfs.Node {
Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x20\x3D\x20\x22\x74\x72\x75\x6E\x6B\x73\x5F\x69\x6E\x70\x75\x74\x5F\x6C\x61\x62\x65\x6C\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x20\x3D\x20\x22\x74\x72\x75\x6E\x6B\x73\x5F\x69\x6E\x70\x75\x74\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x4C\x49\x4E\x4B\x20\x3D\x20\x22\x6E\x61\x76\x5F\x6C\x69\x6E\x6B\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x20\x3D\x20\x22\x6E\x61\x76\x5F\x74\x61\x72\x67\x65\x74\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6F\x6E\x73\x74\x20\x48\x41\x53\x48\x5F\x45\x4E\x56\x49\x52\x4F\x4E\x4D\x45\x4E\x54\x20\x3D\x20\x22\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6F\x6E\x73\x74\x20\x48\x41\x53\x48\x5F\x4C\x49\x4E\x4B\x53\x20\x3D\x20\x22\x6C\x69\x6E\x6B\x73\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6F\x6E\x73\x74\x20\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x4B\x69\x6E\x64\x4E\x75\x6D\x62\x65\x72\x20\x3D\x20\x22\x6E\x75\x6D\x62\x65\x72\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6F\x6E\x73\x74\x20\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x4B\x69\x6E\x64\x53\x74\x72\x69\x6E\x67\x20\x3D\x20\x22\x73\x74\x72\x69\x6E\x67\x22\x3B\x0A"),
}
node.SetMode(420)
- node.SetModTimeUnix(1699681934, 234371293)
+ node.SetModTimeUnix(1706186497, 736407354)
node.SetName("interface.js")
node.SetSize(464)
return node
@@ -241,10 +241,10 @@ func generate__www_nav_links_js() *memfs.Node {
Path: "/nav_links.js",
ContentType: "text/javascript; charset=utf-8",
GenFuncName: "generate__www_nav_links_js",
- Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x48\x41\x53\x48\x5F\x4C\x49\x4E\x4B\x53\x2C\x20\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x4C\x49\x4E\x4B\x2C\x20\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x69\x6E\x74\x65\x72\x66\x61\x63\x65\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x67\x65\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74\x48\x65\x69\x67\x68\x74\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x66\x75\x6E\x63\x74\x69\x6F\x6E\x73\x2E\x6A\x73\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6C\x61\x73\x73\x20\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72\x28\x74\x72\x75\x6E\x6B\x73\x2C\x20\x6E\x61\x76\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x20\x3D\x20\x74\x72\x75\x6E\x6B\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6E\x61\x76\x73\x20\x3D\x20\x6E\x61\x76\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x53\x72\x63\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x49\x66\x72\x61\x6D\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x69\x66\x72\x61\x6D\x65\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x64\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x68\x33\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x68\x64\x72\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x4C\x69\x6E\x6B\x73\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x68\x64\x72\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x75\x6E\x6B\x73\x2E\x73\x65\x74\x43\x6F\x6E\x74\x65\x6E\x74\x28\x48\x41\x53\x48\x5F\x4C\x49\x4E\x4B\x53\x2C\x20\x6E\x75\x6C\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x68\x64\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x4E\x61\x76\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x4E\x61\x76\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6E\x61\x76\x73\x2E\x66\x6F\x72\x45\x61\x63\x68\x28\x28\x6E\x61\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x4C\x49\x4E\x4B\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x2E\x74\x65\x78\x74\x43\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x6E\x61\x76\x2E\x54\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x65\x6E\x28\x6E\x61\x76\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x49\x66\x72\x61\x6D\x65\x2E\x77\x69\x64\x74\x68\x20\x3D\x20\x22\x31\x30\x30\x25\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x49\x66\x72\x61\x6D\x65\x2E\x68\x65\x69\x67\x68\x74\x20\x3D\x20\x67\x65\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74\x48\x65\x69\x67\x68\x74\x28\x29\x20\x2D\x20\x36\x30\x20\x2B\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x53\x72\x63\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x49\x66\x72\x61\x6D\x65\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x6F\x70\x65\x6E\x28\x6E\x61\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6E\x61\x76\x2E\x4F\x70\x65\x6E\x49\x6E\x49\x46\x72\x61\x6D\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x53\x72\x63\x2E\x74\x65\x78\x74\x43\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x22\x53\x6F\x75\x72\x63\x65\x3A\x20\x22\x20\x2B\x20\x6E\x61\x76\x2E\x48\x72\x65\x66\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x49\x66\x72\x61\x6D\x65\x2E\x73\x72\x63\x20\x3D\x20\x6E\x61\x76\x2E\x48\x72\x65\x66\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x61\x72\x67\x65\x74\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x49\x44\x3A\x20\x22\x6E\x61\x76\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4E\x61\x6D\x65\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x42\x61\x73\x65\x55\x72\x6C\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4F\x70\x74\x73\x3A\x20\x7B\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x56\x61\x72\x73\x3A\x20\x7B\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x52\x65\x6E\x64\x65\x72\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x6E\x61\x76\x2C\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6F\x70\x65\x6E\x28\x6E\x61\x76\x2E\x48\x72\x65\x66\x2C\x20\x22\x5F\x62\x6C\x61\x6E\x6B\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"),
+ Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x48\x41\x53\x48\x5F\x4C\x49\x4E\x4B\x53\x2C\x20\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x4C\x49\x4E\x4B\x2C\x20\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x69\x6E\x74\x65\x72\x66\x61\x63\x65\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x67\x65\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74\x48\x65\x69\x67\x68\x74\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x66\x75\x6E\x63\x74\x69\x6F\x6E\x73\x2E\x6A\x73\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6C\x61\x73\x73\x20\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72\x28\x74\x72\x75\x6E\x6B\x73\x2C\x20\x6E\x61\x76\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x20\x3D\x20\x74\x72\x75\x6E\x6B\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6E\x61\x76\x73\x20\x3D\x20\x6E\x61\x76\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x53\x72\x63\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x49\x66\x72\x61\x6D\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x69\x66\x72\x61\x6D\x65\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x64\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x68\x33\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x68\x64\x72\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x4C\x69\x6E\x6B\x73\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x68\x64\x72\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x75\x6E\x6B\x73\x2E\x73\x65\x74\x43\x6F\x6E\x74\x65\x6E\x74\x28\x48\x41\x53\x48\x5F\x4C\x49\x4E\x4B\x53\x2C\x20\x6E\x75\x6C\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x68\x64\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x4E\x61\x76\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x4E\x61\x76\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6E\x61\x76\x73\x2E\x66\x6F\x72\x45\x61\x63\x68\x28\x28\x6E\x61\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x4C\x49\x4E\x4B\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x2E\x74\x65\x78\x74\x43\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x6E\x61\x76\x2E\x54\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x65\x6E\x28\x6E\x61\x76\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x49\x66\x72\x61\x6D\x65\x2E\x77\x69\x64\x74\x68\x20\x3D\x20\x22\x31\x30\x30\x25\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x49\x66\x72\x61\x6D\x65\x2E\x68\x65\x69\x67\x68\x74\x20\x3D\x20\x67\x65\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74\x48\x65\x69\x67\x68\x74\x28\x29\x20\x2D\x20\x36\x30\x20\x2B\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x53\x72\x63\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x49\x66\x72\x61\x6D\x65\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x6F\x70\x65\x6E\x28\x6E\x61\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6E\x61\x76\x2E\x4F\x70\x65\x6E\x49\x6E\x49\x46\x72\x61\x6D\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x53\x72\x63\x2E\x74\x65\x78\x74\x43\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x22\x53\x6F\x75\x72\x63\x65\x3A\x20\x22\x20\x2B\x20\x6E\x61\x76\x2E\x48\x72\x65\x66\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x49\x66\x72\x61\x6D\x65\x2E\x73\x72\x63\x20\x3D\x20\x6E\x61\x76\x2E\x48\x72\x65\x66\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x61\x72\x67\x65\x74\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x49\x44\x3A\x20\x22\x6E\x61\x76\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4E\x61\x6D\x65\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x42\x61\x73\x65\x55\x52\x4C\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4F\x70\x74\x73\x3A\x20\x7B\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x56\x61\x72\x73\x3A\x20\x7B\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x52\x65\x6E\x64\x65\x72\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x6E\x61\x76\x2C\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6F\x70\x65\x6E\x28\x6E\x61\x76\x2E\x48\x72\x65\x66\x2C\x20\x22\x5F\x62\x6C\x61\x6E\x6B\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"),
}
node.SetMode(420)
- node.SetModTimeUnix(1699681934, 234371293)
+ node.SetModTimeUnix(1706186497, 753074117)
node.SetName("nav_links.js")
node.SetSize(2028)
return node
@@ -256,10 +256,10 @@ func generate__www_target_js() *memfs.Node {
Path: "/target.js",
ContentType: "text/javascript; charset=utf-8",
GenFuncName: "generate__www_target_js",
- Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x75\x69\x2F\x69\x6E\x70\x75\x74\x2F\x6E\x75\x6D\x62\x65\x72\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x75\x69\x2F\x69\x6E\x70\x75\x74\x2F\x73\x74\x72\x69\x6E\x67\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x2C\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x44\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x2C\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x54\x69\x6D\x65\x6F\x75\x74\x2C\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x56\x61\x72\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x66\x75\x6E\x63\x74\x69\x6F\x6E\x73\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x20\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x69\x6E\x74\x65\x72\x66\x61\x63\x65\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x73\x5F\x74\x61\x72\x67\x65\x74\x2E\x6A\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x5F\x48\x54\x54\x50\x20\x3D\x20\x22\x6E\x61\x76\x5F\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x5F\x57\x53\x20\x3D\x20\x22\x6E\x61\x76\x5F\x77\x73\x5F\x74\x61\x72\x67\x65\x74\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6C\x61\x73\x73\x20\x54\x61\x72\x67\x65\x74\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72\x28\x74\x72\x75\x6E\x6B\x73\x2C\x20\x6F\x70\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x20\x3D\x20\x74\x72\x75\x6E\x6B\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x20\x3D\x20\x6F\x70\x74\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x73\x20\x3D\x20\x7B\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x77\x73\x5F\x74\x61\x72\x67\x65\x74\x73\x20\x3D\x20\x7B\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x4E\x61\x76\x28\x74\x72\x75\x6E\x6B\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x28\x74\x72\x75\x6E\x6B\x73\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x4E\x61\x76\x28\x74\x72\x75\x6E\x6B\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x4D\x65\x6E\x75\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x68\x33\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x4D\x65\x6E\x75\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x4D\x65\x6E\x75\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x75\x6E\x6B\x73\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x52\x65\x6E\x64\x65\x72\x65\x72\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x54\x61\x72\x67\x65\x74\x4D\x65\x6E\x75\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x68\x74\x20\x6F\x66\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x48\x74\x74\x70\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x48\x74\x74\x70\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x68\x74\x2E\x4E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x48\x74\x74\x70\x2E\x69\x64\x20\x3D\x20\x60\x2F\x68\x74\x74\x70\x2F\x24\x7B\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x49\x44\x7D\x2F\x24\x7B\x68\x74\x2E\x49\x44\x7D\x60\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x48\x74\x74\x70\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x5F\x48\x54\x54\x50\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x48\x74\x74\x70\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x75\x6E\x6B\x73\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x52\x65\x6E\x64\x65\x72\x65\x72\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x68\x74\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x54\x61\x72\x67\x65\x74\x48\x74\x74\x70\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x77\x73\x74\x20\x6F\x66\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x57\x53\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x57\x53\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x77\x73\x74\x2E\x4E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x57\x53\x2E\x69\x64\x20\x3D\x20\x60\x2F\x77\x73\x2F\x24\x7B\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x49\x44\x7D\x2F\x24\x7B\x77\x73\x74\x2E\x49\x44\x7D\x60\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x57\x53\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x5F\x57\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x57\x53\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x75\x6E\x6B\x73\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x52\x65\x6E\x64\x65\x72\x65\x72\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x77\x73\x74\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x54\x61\x72\x67\x65\x74\x57\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x28\x74\x72\x75\x6E\x6B\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x42\x61\x73\x65\x55\x52\x4C\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x41\x74\x74\x61\x63\x6B\x4F\x70\x74\x69\x6F\x6E\x73\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x56\x61\x72\x73\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x73\x28\x74\x72\x75\x6E\x6B\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x28\x74\x72\x75\x6E\x6B\x73\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x42\x61\x73\x65\x55\x52\x4C\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x64\x72\x54\x61\x72\x67\x65\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x68\x32\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x68\x64\x72\x54\x61\x72\x67\x65\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x68\x64\x72\x54\x61\x72\x67\x65\x74\x2E\x69\x64\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x49\x44\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x48\x69\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x70\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x48\x69\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x69\x6E\x74\x20\x7C\x7C\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6F\x70\x74\x73\x42\x61\x73\x65\x55\x72\x6C\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x42\x61\x73\x65\x20\x55\x52\x4C\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x22\x54\x68\x65\x20\x62\x61\x73\x65\x20\x55\x52\x4C\x20\x77\x68\x65\x72\x65\x20\x74\x68\x65\x20\x48\x54\x54\x50\x20\x72\x65\x71\x75\x65\x73\x74\x20\x77\x69\x6C\x6C\x20\x62\x65\x20\x73\x65\x6E\x64\x20\x6F\x72\x20\x74\x68\x65\x20\x74\x61\x72\x67\x65\x74\x20\x6F\x66\x20\x61\x74\x74\x61\x63\x6B\x2E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x42\x61\x73\x65\x55\x72\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x42\x61\x73\x65\x55\x72\x6C\x20\x3D\x20\x76\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x6F\x6D\x49\x6E\x70\x75\x74\x42\x61\x73\x65\x55\x72\x6C\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x28\x6F\x70\x74\x73\x42\x61\x73\x65\x55\x72\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x68\x64\x72\x54\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x69\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x48\x69\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x63\x6F\x6D\x49\x6E\x70\x75\x74\x42\x61\x73\x65\x55\x72\x6C\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x41\x74\x74\x61\x63\x6B\x4F\x70\x74\x69\x6F\x6E\x73\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6C\x65\x67\x65\x6E\x64\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x65\x67\x65\x6E\x64\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x41\x74\x74\x61\x63\x6B\x20\x6F\x70\x74\x69\x6F\x6E\x73\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6F\x70\x74\x73\x44\x75\x72\x61\x74\x69\x6F\x6E\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x44\x75\x72\x61\x74\x69\x6F\x6E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x22\x54\x68\x65\x20\x64\x75\x72\x61\x74\x69\x6F\x6E\x20\x6F\x66\x20\x61\x74\x74\x61\x63\x6B\x2C\x20\x69\x6E\x20\x73\x65\x63\x6F\x6E\x64\x73\x2E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x44\x75\x72\x61\x74\x69\x6F\x6E\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x29\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x69\x6E\x3A\x20\x31\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4F\x70\x74\x73\x2E\x44\x75\x72\x61\x74\x69\x6F\x6E\x20\x3D\x20\x76\x20\x2A\x20\x31\x65\x39\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x6F\x6D\x49\x6E\x70\x75\x74\x44\x75\x72\x61\x74\x69\x6F\x6E\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x28\x6F\x70\x74\x73\x44\x75\x72\x61\x74\x69\x6F\x6E\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6F\x70\x74\x73\x52\x61\x74\x65\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x52\x61\x74\x65\x20\x70\x65\x72\x20\x73\x65\x63\x6F\x6E\x64\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x22\x54\x68\x65\x20\x6E\x75\x6D\x62\x65\x72\x20\x6F\x66\x20\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x64\x20\x70\x65\x72\x20\x73\x65\x63\x6F\x6E\x64\x20\x77\x68\x65\x6E\x20\x61\x74\x74\x61\x63\x6B\x69\x6E\x67\x20\x74\x61\x72\x67\x65\x74\x2E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x29\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x69\x6E\x3A\x20\x31\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4F\x70\x74\x73\x2E\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x20\x3D\x20\x76\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x6F\x6D\x49\x6E\x70\x75\x74\x52\x61\x74\x65\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x28\x6F\x70\x74\x73\x52\x61\x74\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6F\x70\x74\x73\x54\x69\x6D\x65\x6F\x75\x74\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x54\x69\x6D\x65\x6F\x75\x74\x20\x28\x73\x65\x63\x6F\x6E\x64\x73\x29\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x22\x54\x69\x6D\x65\x6F\x75\x74\x20\x66\x6F\x72\x20\x65\x61\x63\x68\x20\x72\x65\x71\x75\x65\x73\x74\x2C\x20\x69\x6E\x20\x73\x65\x63\x6F\x6E\x64\x73\x2E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x54\x69\x6D\x65\x6F\x75\x74\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x29\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x69\x6E\x3A\x20\x35\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4F\x70\x74\x73\x2E\x54\x69\x6D\x65\x6F\x75\x74\x20\x3D\x20\x76\x20\x2A\x20\x31\x65\x39\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x6F\x6D\x49\x6E\x70\x75\x74\x54\x69\x6D\x65\x6F\x75\x74\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x28\x6F\x70\x74\x73\x54\x69\x6D\x65\x6F\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x6C\x65\x67\x65\x6E\x64\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x63\x6F\x6D\x49\x6E\x70\x75\x74\x44\x75\x72\x61\x74\x69\x6F\x6E\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x63\x6F\x6D\x49\x6E\x70\x75\x74\x52\x61\x74\x65\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x63\x6F\x6D\x49\x6E\x70\x75\x74\x54\x69\x6D\x65\x6F\x75\x74\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x56\x61\x72\x73\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x56\x61\x72\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6C\x65\x67\x65\x6E\x64\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x65\x67\x65\x6E\x64\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x56\x61\x72\x69\x61\x62\x6C\x65\x73\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x6C\x65\x67\x65\x6E\x64\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x65\x79\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x56\x61\x72\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x56\x61\x72\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x6B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x2C\x20\x66\x69\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x73\x28\x74\x72\x75\x6E\x6B\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x73\x2E\x66\x6F\x72\x45\x61\x63\x68\x28\x28\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x6F\x6D\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x20\x3D\x20\x6E\x65\x77\x20\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x28\x74\x72\x75\x6E\x6B\x73\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x73\x5B\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x5D\x20\x3D\x20\x63\x6F\x6D\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x63\x6F\x6D\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x28\x74\x72\x75\x6E\x6B\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x2E\x66\x6F\x72\x45\x61\x63\x68\x28\x28\x77\x73\x54\x61\x72\x67\x65\x74\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x6F\x6D\x57\x53\x54\x61\x72\x67\x65\x74\x20\x3D\x20\x6E\x65\x77\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x28\x74\x72\x75\x6E\x6B\x73\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x77\x73\x5F\x74\x61\x72\x67\x65\x74\x73\x5B\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x5D\x20\x3D\x20\x63\x6F\x6D\x57\x53\x54\x61\x72\x67\x65\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x63\x6F\x6D\x57\x53\x54\x61\x72\x67\x65\x74\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"),
+ Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x75\x69\x2F\x69\x6E\x70\x75\x74\x2F\x6E\x75\x6D\x62\x65\x72\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x75\x69\x2F\x69\x6E\x70\x75\x74\x2F\x73\x74\x72\x69\x6E\x67\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x2C\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x44\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x2C\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x54\x69\x6D\x65\x6F\x75\x74\x2C\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x56\x61\x72\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x66\x75\x6E\x63\x74\x69\x6F\x6E\x73\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x20\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x69\x6E\x74\x65\x72\x66\x61\x63\x65\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x73\x5F\x74\x61\x72\x67\x65\x74\x2E\x6A\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x5F\x48\x54\x54\x50\x20\x3D\x20\x22\x6E\x61\x76\x5F\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x5F\x57\x53\x20\x3D\x20\x22\x6E\x61\x76\x5F\x77\x73\x5F\x74\x61\x72\x67\x65\x74\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6C\x61\x73\x73\x20\x54\x61\x72\x67\x65\x74\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72\x28\x74\x72\x75\x6E\x6B\x73\x2C\x20\x6F\x70\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x20\x3D\x20\x74\x72\x75\x6E\x6B\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x20\x3D\x20\x6F\x70\x74\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x73\x20\x3D\x20\x7B\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x77\x73\x5F\x74\x61\x72\x67\x65\x74\x73\x20\x3D\x20\x7B\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x4E\x61\x76\x28\x74\x72\x75\x6E\x6B\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x28\x74\x72\x75\x6E\x6B\x73\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x4E\x61\x76\x28\x74\x72\x75\x6E\x6B\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x4D\x65\x6E\x75\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x68\x33\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x4D\x65\x6E\x75\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x4D\x65\x6E\x75\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x75\x6E\x6B\x73\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x52\x65\x6E\x64\x65\x72\x65\x72\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x54\x61\x72\x67\x65\x74\x4D\x65\x6E\x75\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x68\x74\x20\x6F\x66\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x48\x54\x54\x50\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x48\x54\x54\x50\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x68\x74\x2E\x4E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x48\x54\x54\x50\x2E\x69\x64\x20\x3D\x20\x60\x2F\x68\x74\x74\x70\x2F\x24\x7B\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x49\x44\x7D\x2F\x24\x7B\x68\x74\x2E\x49\x44\x7D\x60\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x48\x54\x54\x50\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x5F\x48\x54\x54\x50\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x48\x54\x54\x50\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x75\x6E\x6B\x73\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x52\x65\x6E\x64\x65\x72\x65\x72\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x68\x74\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x54\x61\x72\x67\x65\x74\x48\x54\x54\x50\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x77\x73\x74\x20\x6F\x66\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x57\x53\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x57\x53\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x77\x73\x74\x2E\x4E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x57\x53\x2E\x69\x64\x20\x3D\x20\x60\x2F\x77\x73\x2F\x24\x7B\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x49\x44\x7D\x2F\x24\x7B\x77\x73\x74\x2E\x49\x44\x7D\x60\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x57\x53\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x5F\x57\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x57\x53\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x75\x6E\x6B\x73\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x52\x65\x6E\x64\x65\x72\x65\x72\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x77\x73\x74\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x54\x61\x72\x67\x65\x74\x57\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x28\x74\x72\x75\x6E\x6B\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x42\x61\x73\x65\x55\x52\x4C\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x41\x74\x74\x61\x63\x6B\x4F\x70\x74\x69\x6F\x6E\x73\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x56\x61\x72\x73\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x73\x28\x74\x72\x75\x6E\x6B\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x28\x74\x72\x75\x6E\x6B\x73\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x42\x61\x73\x65\x55\x52\x4C\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x64\x72\x54\x61\x72\x67\x65\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x68\x32\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x68\x64\x72\x54\x61\x72\x67\x65\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x68\x64\x72\x54\x61\x72\x67\x65\x74\x2E\x69\x64\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x49\x44\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x48\x69\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x70\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x48\x69\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x69\x6E\x74\x20\x7C\x7C\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6F\x70\x74\x73\x42\x61\x73\x65\x55\x52\x4C\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x42\x61\x73\x65\x20\x55\x52\x4C\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x22\x54\x68\x65\x20\x62\x61\x73\x65\x20\x55\x52\x4C\x20\x77\x68\x65\x72\x65\x20\x74\x68\x65\x20\x48\x54\x54\x50\x20\x72\x65\x71\x75\x65\x73\x74\x20\x77\x69\x6C\x6C\x20\x62\x65\x20\x73\x65\x6E\x64\x20\x6F\x72\x20\x74\x68\x65\x20\x74\x61\x72\x67\x65\x74\x20\x6F\x66\x20\x61\x74\x74\x61\x63\x6B\x2E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x42\x61\x73\x65\x55\x52\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x42\x61\x73\x65\x55\x52\x4C\x20\x3D\x20\x76\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x6F\x6D\x49\x6E\x70\x75\x74\x42\x61\x73\x65\x55\x52\x4C\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x28\x6F\x70\x74\x73\x42\x61\x73\x65\x55\x52\x4C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x68\x64\x72\x54\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x69\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x48\x69\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x63\x6F\x6D\x49\x6E\x70\x75\x74\x42\x61\x73\x65\x55\x52\x4C\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x41\x74\x74\x61\x63\x6B\x4F\x70\x74\x69\x6F\x6E\x73\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6C\x65\x67\x65\x6E\x64\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x65\x67\x65\x6E\x64\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x41\x74\x74\x61\x63\x6B\x20\x6F\x70\x74\x69\x6F\x6E\x73\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6F\x70\x74\x73\x44\x75\x72\x61\x74\x69\x6F\x6E\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x44\x75\x72\x61\x74\x69\x6F\x6E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x22\x54\x68\x65\x20\x64\x75\x72\x61\x74\x69\x6F\x6E\x20\x6F\x66\x20\x61\x74\x74\x61\x63\x6B\x2C\x20\x69\x6E\x20\x73\x65\x63\x6F\x6E\x64\x73\x2E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x44\x75\x72\x61\x74\x69\x6F\x6E\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x29\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x69\x6E\x3A\x20\x31\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4F\x70\x74\x73\x2E\x44\x75\x72\x61\x74\x69\x6F\x6E\x20\x3D\x20\x76\x20\x2A\x20\x31\x65\x39\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x6F\x6D\x49\x6E\x70\x75\x74\x44\x75\x72\x61\x74\x69\x6F\x6E\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x28\x6F\x70\x74\x73\x44\x75\x72\x61\x74\x69\x6F\x6E\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6F\x70\x74\x73\x52\x61\x74\x65\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x52\x61\x74\x65\x20\x70\x65\x72\x20\x73\x65\x63\x6F\x6E\x64\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x22\x54\x68\x65\x20\x6E\x75\x6D\x62\x65\x72\x20\x6F\x66\x20\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x64\x20\x70\x65\x72\x20\x73\x65\x63\x6F\x6E\x64\x20\x77\x68\x65\x6E\x20\x61\x74\x74\x61\x63\x6B\x69\x6E\x67\x20\x74\x61\x72\x67\x65\x74\x2E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x29\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x69\x6E\x3A\x20\x31\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4F\x70\x74\x73\x2E\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x20\x3D\x20\x76\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x6F\x6D\x49\x6E\x70\x75\x74\x52\x61\x74\x65\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x28\x6F\x70\x74\x73\x52\x61\x74\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6F\x70\x74\x73\x54\x69\x6D\x65\x6F\x75\x74\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x54\x69\x6D\x65\x6F\x75\x74\x20\x28\x73\x65\x63\x6F\x6E\x64\x73\x29\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x22\x54\x69\x6D\x65\x6F\x75\x74\x20\x66\x6F\x72\x20\x65\x61\x63\x68\x20\x72\x65\x71\x75\x65\x73\x74\x2C\x20\x69\x6E\x20\x73\x65\x63\x6F\x6E\x64\x73\x2E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x54\x69\x6D\x65\x6F\x75\x74\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x29\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x69\x6E\x3A\x20\x35\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4F\x70\x74\x73\x2E\x54\x69\x6D\x65\x6F\x75\x74\x20\x3D\x20\x76\x20\x2A\x20\x31\x65\x39\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x6F\x6D\x49\x6E\x70\x75\x74\x54\x69\x6D\x65\x6F\x75\x74\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x28\x6F\x70\x74\x73\x54\x69\x6D\x65\x6F\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x6C\x65\x67\x65\x6E\x64\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x63\x6F\x6D\x49\x6E\x70\x75\x74\x44\x75\x72\x61\x74\x69\x6F\x6E\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x63\x6F\x6D\x49\x6E\x70\x75\x74\x52\x61\x74\x65\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x63\x6F\x6D\x49\x6E\x70\x75\x74\x54\x69\x6D\x65\x6F\x75\x74\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x56\x61\x72\x73\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x56\x61\x72\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6C\x65\x67\x65\x6E\x64\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x65\x67\x65\x6E\x64\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x56\x61\x72\x69\x61\x62\x6C\x65\x73\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x6C\x65\x67\x65\x6E\x64\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x65\x79\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x56\x61\x72\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x56\x61\x72\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x6B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x2C\x20\x66\x69\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x73\x28\x74\x72\x75\x6E\x6B\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x73\x2E\x66\x6F\x72\x45\x61\x63\x68\x28\x28\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x6F\x6D\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x20\x3D\x20\x6E\x65\x77\x20\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x28\x74\x72\x75\x6E\x6B\x73\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x73\x5B\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x5D\x20\x3D\x20\x63\x6F\x6D\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x63\x6F\x6D\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x28\x74\x72\x75\x6E\x6B\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x2E\x66\x6F\x72\x45\x61\x63\x68\x28\x28\x77\x73\x54\x61\x72\x67\x65\x74\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x6F\x6D\x57\x53\x54\x61\x72\x67\x65\x74\x20\x3D\x20\x6E\x65\x77\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x28\x74\x72\x75\x6E\x6B\x73\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x77\x73\x5F\x74\x61\x72\x67\x65\x74\x73\x5B\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x5D\x20\x3D\x20\x63\x6F\x6D\x57\x53\x54\x61\x72\x67\x65\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x63\x6F\x6D\x57\x53\x54\x61\x72\x67\x65\x74\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"),
}
node.SetMode(420)
- node.SetModTimeUnix(1699681934, 237704643)
+ node.SetModTimeUnix(1706186497, 779740938)
node.SetName("target.js")
node.SetSize(6937)
return node
@@ -271,10 +271,10 @@ func generate__www_trunks_js() *memfs.Node {
Path: "/trunks.js",
ContentType: "text/javascript; charset=utf-8",
GenFuncName: "generate__www_trunks_js",
- Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x45\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x73\x61\x76\x65\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x66\x75\x6E\x63\x74\x69\x6F\x6E\x73\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x48\x41\x53\x48\x5F\x45\x4E\x56\x49\x52\x4F\x4E\x4D\x45\x4E\x54\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x69\x6E\x74\x65\x72\x66\x61\x63\x65\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x6E\x61\x76\x5F\x6C\x69\x6E\x6B\x73\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x54\x61\x72\x67\x65\x74\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x74\x61\x72\x67\x65\x74\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x76\x61\x72\x73\x2E\x6A\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x41\x50\x49\x5F\x41\x54\x54\x41\x43\x4B\x5F\x48\x54\x54\x50\x20\x3D\x20\x22\x2F\x5F\x74\x72\x75\x6E\x6B\x73\x2F\x61\x70\x69\x2F\x61\x74\x74\x61\x63\x6B\x2F\x68\x74\x74\x70\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x41\x50\x49\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x45\x53\x55\x4C\x54\x20\x3D\x20\x22\x2F\x5F\x74\x72\x75\x6E\x6B\x73\x2F\x61\x70\x69\x2F\x61\x74\x74\x61\x63\x6B\x2F\x72\x65\x73\x75\x6C\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x41\x50\x49\x5F\x45\x4E\x56\x49\x52\x4F\x4E\x4D\x45\x4E\x54\x20\x3D\x20\x22\x2F\x5F\x74\x72\x75\x6E\x6B\x73\x2F\x61\x70\x69\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x41\x50\x49\x5F\x4E\x41\x56\x4C\x49\x4E\x4B\x53\x20\x3D\x20\x22\x2F\x5F\x74\x72\x75\x6E\x6B\x73\x2F\x61\x70\x69\x2F\x6E\x61\x76\x6C\x69\x6E\x6B\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x41\x50\x49\x5F\x54\x41\x52\x47\x45\x54\x53\x20\x3D\x20\x22\x2F\x5F\x74\x72\x75\x6E\x6B\x73\x2F\x61\x70\x69\x2F\x74\x61\x72\x67\x65\x74\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x41\x50\x49\x5F\x54\x41\x52\x47\x45\x54\x5F\x52\x55\x4E\x5F\x48\x54\x54\x50\x20\x3D\x20\x22\x2F\x5F\x74\x72\x75\x6E\x6B\x73\x2F\x61\x70\x69\x2F\x74\x61\x72\x67\x65\x74\x2F\x72\x75\x6E\x2F\x68\x74\x74\x70\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x41\x50\x49\x5F\x54\x41\x52\x47\x45\x54\x5F\x52\x55\x4E\x5F\x57\x45\x42\x53\x4F\x43\x4B\x45\x54\x20\x3D\x20\x22\x2F\x5F\x74\x72\x75\x6E\x6B\x73\x2F\x61\x70\x69\x2F\x74\x61\x72\x67\x65\x74\x2F\x72\x75\x6E\x2F\x77\x65\x62\x73\x6F\x63\x6B\x65\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x55\x4E\x4E\x49\x4E\x47\x20\x3D\x20\x22\x74\x72\x75\x6E\x6B\x73\x5F\x61\x74\x74\x61\x63\x6B\x5F\x72\x75\x6E\x6E\x69\x6E\x67\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x46\x4F\x4F\x54\x45\x52\x20\x3D\x20\x22\x74\x72\x75\x6E\x6B\x73\x5F\x66\x6F\x6F\x74\x65\x72\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x4D\x41\x49\x4E\x20\x3D\x20\x22\x74\x72\x75\x6E\x6B\x73\x5F\x6D\x61\x69\x6E\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x20\x3D\x20\x22\x74\x72\x75\x6E\x6B\x73\x5F\x6E\x61\x76\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6C\x61\x73\x73\x20\x54\x72\x75\x6E\x6B\x73\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6E\x76\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4C\x69\x73\x74\x65\x6E\x41\x64\x64\x72\x65\x73\x73\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x44\x75\x72\x61\x74\x69\x6F\x6E\x3A\x20\x30\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x52\x61\x74\x65\x3A\x20\x30\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x73\x75\x6C\x74\x73\x44\x69\x72\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x73\x75\x6C\x74\x73\x53\x75\x66\x66\x69\x78\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x3A\x20\x6E\x75\x6C\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x73\x20\x3D\x20\x7B\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6E\x61\x76\x4C\x69\x6E\x6B\x73\x20\x3D\x20\x7B\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x45\x6E\x76\x20\x3D\x20\x6E\x65\x77\x20\x45\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x28\x74\x68\x69\x73\x2C\x20\x74\x68\x69\x73\x2E\x65\x6E\x76\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x4E\x61\x76\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x62\x6F\x64\x79\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x4E\x61\x76\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x4E\x61\x76\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x57\x53\x43\x6F\x6E\x6E\x53\x74\x61\x74\x75\x73\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x66\x73\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6C\x65\x67\x65\x6E\x64\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x65\x67\x65\x6E\x64\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x41\x74\x74\x61\x63\x6B\x20\x72\x75\x6E\x6E\x69\x6E\x67\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x73\x70\x61\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x55\x4E\x4E\x49\x4E\x47\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x43\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x4E\x61\x76\x46\x6F\x6F\x74\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x46\x6F\x6F\x74\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x46\x4F\x4F\x54\x45\x52\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x46\x6F\x6F\x74\x65\x72\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x60\x0A\x09\x09\x09\x3C\x64\x69\x76\x3E\x0A\x09\x09\x09\x09\x3C\x64\x69\x76\x3E\x50\x6F\x77\x65\x72\x65\x64\x20\x62\x79\x20\x3C\x61\x20\x68\x72\x65\x66\x3D\x22\x68\x74\x74\x70\x73\x3A\x2F\x2F\x73\x72\x2E\x68\x74\x2F\x7E\x73\x68\x75\x6C\x68\x61\x6E\x2F\x74\x72\x75\x6E\x6B\x73\x22\x20\x74\x61\x72\x67\x65\x74\x3D\x22\x5F\x62\x6C\x61\x6E\x6B\x22\x3E\x54\x72\x75\x6E\x6B\x73\x3C\x2F\x61\x3E\x3C\x2F\x64\x69\x76\x3E\x0A\x09\x09\x09\x09\x3C\x64\x69\x76\x3E\x3C\x61\x20\x68\x72\x65\x66\x3D\x22\x2F\x64\x6F\x63\x2F\x22\x20\x74\x61\x72\x67\x65\x74\x3D\x22\x5F\x62\x6C\x61\x6E\x6B\x22\x3E\x44\x6F\x63\x75\x6D\x65\x6E\x74\x61\x74\x69\x6F\x6E\x3C\x2F\x61\x3E\x3C\x2F\x64\x69\x76\x3E\x0A\x09\x09\x09\x3C\x2F\x64\x69\x76\x3E\x0A\x09\x09\x60\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x57\x53\x43\x6F\x6E\x6E\x53\x74\x61\x74\x75\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x73\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x6C\x65\x67\x65\x6E\x64\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x73\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x66\x73\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x63\x6F\x6D\x45\x6E\x76\x2E\x65\x6C\x4E\x61\x76\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x68\x72\x22\x29\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x4E\x61\x76\x46\x6F\x6F\x74\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x4E\x61\x76\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x4D\x41\x49\x4E\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x43\x61\x6E\x63\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x62\x75\x74\x74\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x43\x61\x6E\x63\x65\x6C\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x43\x61\x6E\x63\x65\x6C\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x69\x6E\x69\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x61\x77\x61\x69\x74\x20\x74\x68\x69\x73\x2E\x61\x70\x69\x45\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x47\x65\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x61\x77\x61\x69\x74\x20\x74\x68\x69\x73\x2E\x69\x6E\x69\x74\x54\x61\x72\x67\x65\x74\x73\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x61\x77\x61\x69\x74\x20\x74\x68\x69\x73\x2E\x69\x6E\x69\x74\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x77\x69\x6E\x64\x6F\x77\x4F\x6E\x48\x61\x73\x68\x43\x68\x61\x6E\x67\x65\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6F\x6E\x68\x61\x73\x68\x63\x68\x61\x6E\x67\x65\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x77\x69\x6E\x64\x6F\x77\x4F\x6E\x48\x61\x73\x68\x43\x68\x61\x6E\x67\x65\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x61\x70\x69\x45\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x47\x65\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x74\x74\x70\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x41\x50\x49\x5F\x45\x4E\x56\x49\x52\x4F\x4E\x4D\x45\x4E\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x68\x74\x74\x70\x52\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x72\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6E\x76\x20\x3D\x20\x72\x65\x73\x2E\x64\x61\x74\x61\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x73\x65\x74\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x28\x74\x68\x69\x73\x2E\x65\x6E\x76\x2E\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x45\x6E\x76\x2E\x73\x65\x74\x28\x74\x68\x69\x73\x2E\x65\x6E\x76\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x69\x6E\x69\x74\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x74\x74\x70\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x41\x50\x49\x5F\x4E\x41\x56\x4C\x49\x4E\x4B\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x68\x74\x74\x70\x52\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x72\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x20\x3D\x20\x6E\x65\x77\x20\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x28\x74\x68\x69\x73\x2C\x20\x72\x65\x73\x2E\x64\x61\x74\x61\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x63\x6F\x6D\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x2E\x65\x6C\x4E\x61\x76\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x6E\x61\x76\x20\x6F\x66\x20\x72\x65\x73\x2E\x64\x61\x74\x61\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6E\x61\x76\x4C\x69\x6E\x6B\x73\x5B\x6E\x61\x76\x2E\x49\x44\x5D\x20\x3D\x20\x6E\x61\x76\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x69\x6E\x69\x74\x54\x61\x72\x67\x65\x74\x73\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x74\x74\x70\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x41\x50\x49\x5F\x54\x41\x52\x47\x45\x54\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x68\x74\x74\x70\x52\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x72\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x61\x72\x67\x65\x74\x73\x20\x3D\x20\x72\x65\x73\x2E\x64\x61\x74\x61\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x74\x61\x72\x67\x65\x74\x20\x6F\x66\x20\x74\x61\x72\x67\x65\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x6F\x6D\x54\x61\x72\x67\x65\x74\x20\x3D\x20\x6E\x65\x77\x20\x54\x61\x72\x67\x65\x74\x28\x74\x68\x69\x73\x2C\x20\x74\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x73\x5B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x5D\x20\x3D\x20\x63\x6F\x6D\x54\x61\x72\x67\x65\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x63\x6F\x6D\x54\x61\x72\x67\x65\x74\x2E\x65\x6C\x4E\x61\x76\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x43\x61\x6E\x63\x65\x6C\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x66\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x41\x50\x49\x5F\x41\x54\x54\x41\x43\x4B\x5F\x48\x54\x54\x50\x2C\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x65\x74\x68\x6F\x64\x3A\x20\x22\x44\x45\x4C\x45\x54\x45\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6A\x73\x6F\x6E\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x72\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6E\x75\x6C\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x69\x6E\x66\x6F\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x73\x65\x74\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x28\x6E\x75\x6C\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6A\x73\x6F\x6E\x52\x65\x73\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x4F\x6E\x48\x61\x73\x68\x43\x68\x61\x6E\x67\x65\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x2F\x2F\x20\x50\x61\x72\x73\x65\x20\x74\x68\x65\x20\x6C\x6F\x63\x61\x74\x69\x6F\x6E\x20\x68\x61\x73\x68\x2E\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x70\x61\x74\x68\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x74\x69\x6F\x6E\x2E\x68\x61\x73\x68\x2E\x73\x75\x62\x73\x74\x72\x69\x6E\x67\x28\x31\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x70\x61\x74\x68\x73\x20\x3D\x20\x70\x61\x74\x68\x2E\x73\x70\x6C\x69\x74\x28\x22\x2F\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x74\x68\x73\x2E\x6C\x65\x6E\x67\x74\x68\x20\x3C\x20\x32\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x74\x68\x73\x5B\x31\x5D\x20\x3D\x3D\x3D\x20\x48\x41\x53\x48\x5F\x45\x4E\x56\x49\x52\x4F\x4E\x4D\x45\x4E\x54\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x63\x6F\x6D\x45\x6E\x76\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x6F\x6C\x65\x2E\x6C\x6F\x67\x28\x22\x70\x61\x74\x68\x73\x3A\x20\x22\x2C\x20\x70\x61\x74\x68\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x65\x74\x20\x65\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x70\x61\x74\x68\x73\x5B\x31\x5D\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x61\x72\x67\x65\x74\x20\x3D\x20\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x73\x5B\x70\x61\x74\x68\x73\x5B\x31\x5D\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x70\x61\x74\x68\x73\x2E\x6C\x65\x6E\x67\x74\x68\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x32\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x33\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x61\x72\x67\x65\x74\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64\x28\x70\x61\x74\x68\x73\x5B\x31\x5D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x2E\x73\x63\x72\x6F\x6C\x6C\x49\x6E\x74\x6F\x56\x69\x65\x77\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6B\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x34\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x74\x68\x73\x5B\x32\x5D\x20\x3D\x3D\x3D\x20\x22\x68\x74\x74\x70\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x61\x72\x67\x65\x74\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x69\x66\x20\x28\x70\x61\x74\x68\x73\x5B\x32\x5D\x20\x3D\x3D\x3D\x20\x22\x77\x73\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x61\x72\x67\x65\x74\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x69\x66\x20\x28\x70\x61\x74\x68\x73\x5B\x32\x5D\x20\x3D\x3D\x3D\x20\x22\x6C\x69\x6E\x6B\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x74\x68\x73\x5B\x33\x5D\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6E\x61\x76\x20\x3D\x20\x74\x68\x69\x73\x2E\x6E\x61\x76\x4C\x69\x6E\x6B\x73\x5B\x70\x61\x74\x68\x73\x5B\x33\x5D\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6E\x61\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x2E\x6F\x70\x65\x6E\x28\x6E\x61\x76\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64\x28\x70\x61\x74\x68\x73\x5B\x33\x5D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x2E\x73\x63\x72\x6F\x6C\x6C\x49\x6E\x74\x6F\x56\x69\x65\x77\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6B\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x73\x65\x74\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x28\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x2D\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x2E\x54\x61\x72\x67\x65\x74\x20\x7C\x7C\x20\x21\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x2E\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x2D\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x60\x0A\x09\x09\x09\x24\x7B\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x2E\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x7D\x20\x3C\x62\x72\x2F\x3E\x0A\x09\x09\x09\x2F\x20\x24\x7B\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x2E\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x7D\x20\x3C\x62\x72\x2F\x3E\x0A\x09\x09\x09\x3C\x62\x72\x2F\x3E\x0A\x09\x09\x60\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x43\x61\x6E\x63\x65\x6C\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x43\x61\x6E\x63\x65\x6C\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x43\x61\x6E\x63\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x69\x6E\x66\x6F\x28\x60\x41\x74\x74\x61\x63\x6B\x69\x6E\x67\x20\x22\x24\x7B\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x2E\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x7D\x2F\x24\x7B\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x2E\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x7D\x22\x20\x2E\x2E\x2E\x60\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x61\x74\x74\x61\x63\x6B\x48\x74\x74\x70\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6E\x75\x6C\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x61\x74\x74\x61\x63\x6B\x52\x65\x71\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x54\x61\x72\x67\x65\x74\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x49\x44\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4F\x70\x74\x73\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x56\x61\x72\x73\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x56\x61\x72\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4E\x61\x6D\x65\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x42\x61\x73\x65\x55\x72\x6C\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x42\x61\x73\x65\x55\x72\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x49\x44\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4E\x61\x6D\x65\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4D\x65\x74\x68\x6F\x64\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x4D\x65\x74\x68\x6F\x64\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x50\x61\x74\x68\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x50\x61\x74\x68\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x71\x75\x65\x73\x74\x54\x79\x70\x65\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x52\x65\x71\x75\x65\x73\x74\x54\x79\x70\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x65\x61\x64\x65\x72\x73\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x48\x65\x61\x64\x65\x72\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x50\x61\x72\x61\x6D\x73\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x50\x61\x72\x61\x6D\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x73\x75\x6C\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x41\x6C\x6C\x6F\x77\x41\x74\x74\x61\x63\x6B\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x41\x6C\x6C\x6F\x77\x41\x74\x74\x61\x63\x6B\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x49\x73\x43\x75\x73\x74\x6F\x6D\x69\x7A\x61\x62\x6C\x65\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x73\x43\x75\x73\x74\x6F\x6D\x69\x7A\x61\x62\x6C\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x3A\x20\x6E\x75\x6C\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x74\x74\x70\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x41\x50\x49\x5F\x41\x54\x54\x41\x43\x4B\x5F\x48\x54\x54\x50\x2C\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x65\x74\x68\x6F\x64\x3A\x20\x22\x50\x4F\x53\x54\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x65\x61\x64\x65\x72\x73\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65\x22\x3A\x20\x22\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x6F\x64\x79\x3A\x20\x4A\x53\x4F\x4E\x2E\x73\x74\x72\x69\x6E\x67\x69\x66\x79\x28\x61\x74\x74\x61\x63\x6B\x52\x65\x71\x29\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6A\x73\x6F\x6E\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x68\x74\x74\x70\x52\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6E\x75\x6C\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x73\x65\x74\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x28\x61\x74\x74\x61\x63\x6B\x52\x65\x71\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6A\x73\x6F\x6E\x52\x65\x73\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x61\x74\x74\x61\x63\x6B\x48\x74\x74\x70\x44\x65\x6C\x65\x74\x65\x28\x6E\x61\x6D\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6D\x73\x67\x20\x3D\x20\x60\x41\x72\x65\x20\x79\x6F\x75\x20\x73\x75\x72\x65\x20\x79\x6F\x75\x20\x77\x61\x6E\x74\x20\x74\x6F\x20\x64\x65\x6C\x65\x74\x65\x20\x74\x68\x65\x20\x72\x65\x73\x75\x6C\x74\x3A\x20\x24\x7B\x6E\x61\x6D\x65\x7D\x3F\x60\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x79\x65\x73\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x63\x6F\x6E\x66\x69\x72\x6D\x28\x6D\x73\x67\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x79\x65\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6E\x75\x6C\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x75\x72\x6C\x20\x3D\x20\x41\x50\x49\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x45\x53\x55\x4C\x54\x20\x2B\x20\x22\x3F\x6E\x61\x6D\x65\x3D\x22\x20\x2B\x20\x6E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x66\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x75\x72\x6C\x2C\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x65\x74\x68\x6F\x64\x3A\x20\x22\x44\x45\x4C\x45\x54\x45\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6A\x73\x6F\x6E\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x72\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6E\x75\x6C\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6A\x73\x6F\x6E\x52\x65\x73\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x61\x74\x74\x61\x63\x6B\x48\x74\x74\x70\x47\x65\x74\x28\x6E\x61\x6D\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x75\x72\x6C\x20\x3D\x20\x41\x50\x49\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x45\x53\x55\x4C\x54\x20\x2B\x20\x22\x3F\x6E\x61\x6D\x65\x3D\x22\x20\x2B\x20\x6E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x66\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x75\x72\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x72\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x72\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x72\x65\x73\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x63\x6F\x6E\x74\x65\x6E\x74\x52\x65\x6E\x64\x65\x72\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x20\x6E\x61\x76\x4C\x69\x6E\x6B\x2C\x20\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x65\x74\x20\x68\x61\x73\x68\x20\x3D\x20\x22\x23\x2F\x22\x20\x2B\x20\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x68\x20\x2B\x3D\x20\x22\x2F\x68\x74\x74\x70\x2F\x22\x20\x2B\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x69\x66\x20\x28\x77\x73\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x68\x20\x2B\x3D\x20\x22\x2F\x77\x73\x2F\x22\x20\x2B\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x69\x66\x20\x28\x6E\x61\x76\x4C\x69\x6E\x6B\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x68\x20\x2B\x3D\x20\x22\x2F\x6C\x69\x6E\x6B\x2F\x22\x20\x2B\x20\x6E\x61\x76\x4C\x69\x6E\x6B\x2E\x49\x44\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x74\x69\x6F\x6E\x2E\x68\x61\x73\x68\x20\x3D\x20\x68\x61\x73\x68\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x72\x75\x6E\x48\x74\x74\x70\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6E\x75\x6C\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x71\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x54\x61\x72\x67\x65\x74\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x49\x44\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4F\x70\x74\x73\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x56\x61\x72\x73\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x56\x61\x72\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4E\x61\x6D\x65\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x42\x61\x73\x65\x55\x72\x6C\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x3A\x20\x6E\x75\x6C\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x74\x74\x70\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x41\x50\x49\x5F\x54\x41\x52\x47\x45\x54\x5F\x52\x55\x4E\x5F\x48\x54\x54\x50\x2C\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x65\x74\x68\x6F\x64\x3A\x20\x22\x50\x4F\x53\x54\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x65\x61\x64\x65\x72\x73\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65\x22\x3A\x20\x22\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x6F\x64\x79\x3A\x20\x4A\x53\x4F\x4E\x2E\x73\x74\x72\x69\x6E\x67\x69\x66\x79\x28\x72\x65\x71\x29\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6A\x73\x6F\x6E\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x68\x74\x74\x70\x52\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6E\x75\x6C\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x64\x61\x74\x61\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x2E\x52\x65\x73\x70\x6F\x6E\x73\x65\x53\x74\x61\x74\x75\x73\x43\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x60\x24\x7B\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x7D\x3A\x20\x24\x7B\x72\x65\x73\x2E\x52\x65\x73\x70\x6F\x6E\x73\x65\x53\x74\x61\x74\x75\x73\x7D\x60\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x69\x6E\x66\x6F\x28\x60\x24\x7B\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x7D\x3A\x20\x24\x7B\x72\x65\x73\x2E\x52\x65\x73\x70\x6F\x6E\x73\x65\x53\x74\x61\x74\x75\x73\x7D\x60\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x72\x65\x73\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x72\x75\x6E\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x71\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x54\x61\x72\x67\x65\x74\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x49\x44\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4F\x70\x74\x73\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x56\x61\x72\x73\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x56\x61\x72\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4E\x61\x6D\x65\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x42\x61\x73\x65\x55\x72\x6C\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x3A\x20\x6E\x75\x6C\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x3A\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x66\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x41\x50\x49\x5F\x54\x41\x52\x47\x45\x54\x5F\x52\x55\x4E\x5F\x57\x45\x42\x53\x4F\x43\x4B\x45\x54\x2C\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x65\x74\x68\x6F\x64\x3A\x20\x22\x50\x4F\x53\x54\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x65\x61\x64\x65\x72\x73\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65\x22\x3A\x20\x22\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x6F\x64\x79\x3A\x20\x4A\x53\x4F\x4E\x2E\x73\x74\x72\x69\x6E\x67\x69\x66\x79\x28\x72\x65\x71\x29\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6A\x73\x6F\x6E\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x72\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6E\x75\x6C\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x69\x6E\x66\x6F\x28\x60\x24\x7B\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x7D\x3A\x20\x73\x75\x63\x63\x65\x73\x73\x2E\x60\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6A\x73\x6F\x6E\x52\x65\x73\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x73\x65\x74\x43\x6F\x6E\x74\x65\x6E\x74\x28\x70\x61\x74\x68\x2C\x20\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x74\x69\x6F\x6E\x2E\x68\x61\x73\x68\x20\x3D\x20\x22\x23\x2F\x22\x20\x2B\x20\x70\x61\x74\x68\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"),
+ Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x45\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x73\x61\x76\x65\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x66\x75\x6E\x63\x74\x69\x6F\x6E\x73\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x48\x41\x53\x48\x5F\x45\x4E\x56\x49\x52\x4F\x4E\x4D\x45\x4E\x54\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x69\x6E\x74\x65\x72\x66\x61\x63\x65\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x6E\x61\x76\x5F\x6C\x69\x6E\x6B\x73\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x54\x61\x72\x67\x65\x74\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x74\x61\x72\x67\x65\x74\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x76\x61\x72\x73\x2E\x6A\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x41\x50\x49\x5F\x41\x54\x54\x41\x43\x4B\x5F\x48\x54\x54\x50\x20\x3D\x20\x22\x2F\x5F\x74\x72\x75\x6E\x6B\x73\x2F\x61\x70\x69\x2F\x61\x74\x74\x61\x63\x6B\x2F\x68\x74\x74\x70\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x41\x50\x49\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x45\x53\x55\x4C\x54\x20\x3D\x20\x22\x2F\x5F\x74\x72\x75\x6E\x6B\x73\x2F\x61\x70\x69\x2F\x61\x74\x74\x61\x63\x6B\x2F\x72\x65\x73\x75\x6C\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x41\x50\x49\x5F\x45\x4E\x56\x49\x52\x4F\x4E\x4D\x45\x4E\x54\x20\x3D\x20\x22\x2F\x5F\x74\x72\x75\x6E\x6B\x73\x2F\x61\x70\x69\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x41\x50\x49\x5F\x4E\x41\x56\x4C\x49\x4E\x4B\x53\x20\x3D\x20\x22\x2F\x5F\x74\x72\x75\x6E\x6B\x73\x2F\x61\x70\x69\x2F\x6E\x61\x76\x6C\x69\x6E\x6B\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x41\x50\x49\x5F\x54\x41\x52\x47\x45\x54\x53\x20\x3D\x20\x22\x2F\x5F\x74\x72\x75\x6E\x6B\x73\x2F\x61\x70\x69\x2F\x74\x61\x72\x67\x65\x74\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x41\x50\x49\x5F\x54\x41\x52\x47\x45\x54\x5F\x52\x55\x4E\x5F\x48\x54\x54\x50\x20\x3D\x20\x22\x2F\x5F\x74\x72\x75\x6E\x6B\x73\x2F\x61\x70\x69\x2F\x74\x61\x72\x67\x65\x74\x2F\x72\x75\x6E\x2F\x68\x74\x74\x70\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x41\x50\x49\x5F\x54\x41\x52\x47\x45\x54\x5F\x52\x55\x4E\x5F\x57\x45\x42\x53\x4F\x43\x4B\x45\x54\x20\x3D\x20\x22\x2F\x5F\x74\x72\x75\x6E\x6B\x73\x2F\x61\x70\x69\x2F\x74\x61\x72\x67\x65\x74\x2F\x72\x75\x6E\x2F\x77\x65\x62\x73\x6F\x63\x6B\x65\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x55\x4E\x4E\x49\x4E\x47\x20\x3D\x20\x22\x74\x72\x75\x6E\x6B\x73\x5F\x61\x74\x74\x61\x63\x6B\x5F\x72\x75\x6E\x6E\x69\x6E\x67\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x46\x4F\x4F\x54\x45\x52\x20\x3D\x20\x22\x74\x72\x75\x6E\x6B\x73\x5F\x66\x6F\x6F\x74\x65\x72\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x4D\x41\x49\x4E\x20\x3D\x20\x22\x74\x72\x75\x6E\x6B\x73\x5F\x6D\x61\x69\x6E\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x20\x3D\x20\x22\x74\x72\x75\x6E\x6B\x73\x5F\x6E\x61\x76\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6C\x61\x73\x73\x20\x54\x72\x75\x6E\x6B\x73\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6E\x76\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4C\x69\x73\x74\x65\x6E\x41\x64\x64\x72\x65\x73\x73\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x44\x75\x72\x61\x74\x69\x6F\x6E\x3A\x20\x30\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x52\x61\x74\x65\x3A\x20\x30\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x73\x75\x6C\x74\x73\x44\x69\x72\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x73\x75\x6C\x74\x73\x53\x75\x66\x66\x69\x78\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x3A\x20\x6E\x75\x6C\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x73\x20\x3D\x20\x7B\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6E\x61\x76\x4C\x69\x6E\x6B\x73\x20\x3D\x20\x7B\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x45\x6E\x76\x20\x3D\x20\x6E\x65\x77\x20\x45\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x28\x74\x68\x69\x73\x2C\x20\x74\x68\x69\x73\x2E\x65\x6E\x76\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x4E\x61\x76\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x62\x6F\x64\x79\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x4E\x61\x76\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x4E\x61\x76\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x57\x53\x43\x6F\x6E\x6E\x53\x74\x61\x74\x75\x73\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x66\x73\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6C\x65\x67\x65\x6E\x64\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x65\x67\x65\x6E\x64\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x41\x74\x74\x61\x63\x6B\x20\x72\x75\x6E\x6E\x69\x6E\x67\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x73\x70\x61\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x55\x4E\x4E\x49\x4E\x47\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x43\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x4E\x61\x76\x46\x6F\x6F\x74\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x46\x6F\x6F\x74\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x46\x4F\x4F\x54\x45\x52\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x46\x6F\x6F\x74\x65\x72\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x60\x0A\x09\x09\x09\x3C\x64\x69\x76\x3E\x0A\x09\x09\x09\x09\x3C\x64\x69\x76\x3E\x50\x6F\x77\x65\x72\x65\x64\x20\x62\x79\x20\x3C\x61\x20\x68\x72\x65\x66\x3D\x22\x68\x74\x74\x70\x73\x3A\x2F\x2F\x73\x72\x2E\x68\x74\x2F\x7E\x73\x68\x75\x6C\x68\x61\x6E\x2F\x74\x72\x75\x6E\x6B\x73\x22\x20\x74\x61\x72\x67\x65\x74\x3D\x22\x5F\x62\x6C\x61\x6E\x6B\x22\x3E\x54\x72\x75\x6E\x6B\x73\x3C\x2F\x61\x3E\x3C\x2F\x64\x69\x76\x3E\x0A\x09\x09\x09\x09\x3C\x64\x69\x76\x3E\x3C\x61\x20\x68\x72\x65\x66\x3D\x22\x2F\x64\x6F\x63\x2F\x22\x20\x74\x61\x72\x67\x65\x74\x3D\x22\x5F\x62\x6C\x61\x6E\x6B\x22\x3E\x44\x6F\x63\x75\x6D\x65\x6E\x74\x61\x74\x69\x6F\x6E\x3C\x2F\x61\x3E\x3C\x2F\x64\x69\x76\x3E\x0A\x09\x09\x09\x3C\x2F\x64\x69\x76\x3E\x0A\x09\x09\x60\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x57\x53\x43\x6F\x6E\x6E\x53\x74\x61\x74\x75\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x73\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x6C\x65\x67\x65\x6E\x64\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x73\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x66\x73\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x63\x6F\x6D\x45\x6E\x76\x2E\x65\x6C\x4E\x61\x76\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x68\x72\x22\x29\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x4E\x61\x76\x46\x6F\x6F\x74\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x4E\x61\x76\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x4D\x41\x49\x4E\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x43\x61\x6E\x63\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x62\x75\x74\x74\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x43\x61\x6E\x63\x65\x6C\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x43\x61\x6E\x63\x65\x6C\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x69\x6E\x69\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x61\x77\x61\x69\x74\x20\x74\x68\x69\x73\x2E\x61\x70\x69\x45\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x47\x65\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x61\x77\x61\x69\x74\x20\x74\x68\x69\x73\x2E\x69\x6E\x69\x74\x54\x61\x72\x67\x65\x74\x73\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x61\x77\x61\x69\x74\x20\x74\x68\x69\x73\x2E\x69\x6E\x69\x74\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x77\x69\x6E\x64\x6F\x77\x4F\x6E\x48\x61\x73\x68\x43\x68\x61\x6E\x67\x65\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6F\x6E\x68\x61\x73\x68\x63\x68\x61\x6E\x67\x65\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x77\x69\x6E\x64\x6F\x77\x4F\x6E\x48\x61\x73\x68\x43\x68\x61\x6E\x67\x65\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x61\x70\x69\x45\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x47\x65\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x74\x74\x70\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x41\x50\x49\x5F\x45\x4E\x56\x49\x52\x4F\x4E\x4D\x45\x4E\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x68\x74\x74\x70\x52\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x72\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6E\x76\x20\x3D\x20\x72\x65\x73\x2E\x64\x61\x74\x61\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x73\x65\x74\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x28\x74\x68\x69\x73\x2E\x65\x6E\x76\x2E\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x45\x6E\x76\x2E\x73\x65\x74\x28\x74\x68\x69\x73\x2E\x65\x6E\x76\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x69\x6E\x69\x74\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x74\x74\x70\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x41\x50\x49\x5F\x4E\x41\x56\x4C\x49\x4E\x4B\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x68\x74\x74\x70\x52\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x72\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x20\x3D\x20\x6E\x65\x77\x20\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x28\x74\x68\x69\x73\x2C\x20\x72\x65\x73\x2E\x64\x61\x74\x61\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x63\x6F\x6D\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x2E\x65\x6C\x4E\x61\x76\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x6E\x61\x76\x20\x6F\x66\x20\x72\x65\x73\x2E\x64\x61\x74\x61\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6E\x61\x76\x4C\x69\x6E\x6B\x73\x5B\x6E\x61\x76\x2E\x49\x44\x5D\x20\x3D\x20\x6E\x61\x76\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x69\x6E\x69\x74\x54\x61\x72\x67\x65\x74\x73\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x74\x74\x70\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x41\x50\x49\x5F\x54\x41\x52\x47\x45\x54\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x68\x74\x74\x70\x52\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x72\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x61\x72\x67\x65\x74\x73\x20\x3D\x20\x72\x65\x73\x2E\x64\x61\x74\x61\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x74\x61\x72\x67\x65\x74\x20\x6F\x66\x20\x74\x61\x72\x67\x65\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x6F\x6D\x54\x61\x72\x67\x65\x74\x20\x3D\x20\x6E\x65\x77\x20\x54\x61\x72\x67\x65\x74\x28\x74\x68\x69\x73\x2C\x20\x74\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x73\x5B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x5D\x20\x3D\x20\x63\x6F\x6D\x54\x61\x72\x67\x65\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x63\x6F\x6D\x54\x61\x72\x67\x65\x74\x2E\x65\x6C\x4E\x61\x76\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x43\x61\x6E\x63\x65\x6C\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x66\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x41\x50\x49\x5F\x41\x54\x54\x41\x43\x4B\x5F\x48\x54\x54\x50\x2C\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x65\x74\x68\x6F\x64\x3A\x20\x22\x44\x45\x4C\x45\x54\x45\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6A\x73\x6F\x6E\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x72\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6E\x75\x6C\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x69\x6E\x66\x6F\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x73\x65\x74\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x28\x6E\x75\x6C\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6A\x73\x6F\x6E\x52\x65\x73\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x4F\x6E\x48\x61\x73\x68\x43\x68\x61\x6E\x67\x65\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x2F\x2F\x20\x50\x61\x72\x73\x65\x20\x74\x68\x65\x20\x6C\x6F\x63\x61\x74\x69\x6F\x6E\x20\x68\x61\x73\x68\x2E\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x70\x61\x74\x68\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x74\x69\x6F\x6E\x2E\x68\x61\x73\x68\x2E\x73\x75\x62\x73\x74\x72\x69\x6E\x67\x28\x31\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x70\x61\x74\x68\x73\x20\x3D\x20\x70\x61\x74\x68\x2E\x73\x70\x6C\x69\x74\x28\x22\x2F\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x74\x68\x73\x2E\x6C\x65\x6E\x67\x74\x68\x20\x3C\x20\x32\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x74\x68\x73\x5B\x31\x5D\x20\x3D\x3D\x3D\x20\x48\x41\x53\x48\x5F\x45\x4E\x56\x49\x52\x4F\x4E\x4D\x45\x4E\x54\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x63\x6F\x6D\x45\x6E\x76\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x6F\x6C\x65\x2E\x6C\x6F\x67\x28\x22\x70\x61\x74\x68\x73\x3A\x20\x22\x2C\x20\x70\x61\x74\x68\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x65\x74\x20\x65\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x70\x61\x74\x68\x73\x5B\x31\x5D\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x61\x72\x67\x65\x74\x20\x3D\x20\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x73\x5B\x70\x61\x74\x68\x73\x5B\x31\x5D\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x70\x61\x74\x68\x73\x2E\x6C\x65\x6E\x67\x74\x68\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x32\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x33\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x61\x72\x67\x65\x74\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64\x28\x70\x61\x74\x68\x73\x5B\x31\x5D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x2E\x73\x63\x72\x6F\x6C\x6C\x49\x6E\x74\x6F\x56\x69\x65\x77\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6B\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x34\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x74\x68\x73\x5B\x32\x5D\x20\x3D\x3D\x3D\x20\x22\x68\x74\x74\x70\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x61\x72\x67\x65\x74\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x69\x66\x20\x28\x70\x61\x74\x68\x73\x5B\x32\x5D\x20\x3D\x3D\x3D\x20\x22\x77\x73\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x61\x72\x67\x65\x74\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x69\x66\x20\x28\x70\x61\x74\x68\x73\x5B\x32\x5D\x20\x3D\x3D\x3D\x20\x22\x6C\x69\x6E\x6B\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x74\x68\x73\x5B\x33\x5D\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6E\x61\x76\x20\x3D\x20\x74\x68\x69\x73\x2E\x6E\x61\x76\x4C\x69\x6E\x6B\x73\x5B\x70\x61\x74\x68\x73\x5B\x33\x5D\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6E\x61\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x2E\x6F\x70\x65\x6E\x28\x6E\x61\x76\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64\x28\x70\x61\x74\x68\x73\x5B\x33\x5D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x2E\x73\x63\x72\x6F\x6C\x6C\x49\x6E\x74\x6F\x56\x69\x65\x77\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6B\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x73\x65\x74\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x28\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x2D\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x2E\x54\x61\x72\x67\x65\x74\x20\x7C\x7C\x20\x21\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x2E\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x2D\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x60\x0A\x09\x09\x09\x24\x7B\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x2E\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x7D\x20\x3C\x62\x72\x2F\x3E\x0A\x09\x09\x09\x2F\x20\x24\x7B\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x2E\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x7D\x20\x3C\x62\x72\x2F\x3E\x0A\x09\x09\x09\x3C\x62\x72\x2F\x3E\x0A\x09\x09\x60\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x43\x61\x6E\x63\x65\x6C\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x43\x61\x6E\x63\x65\x6C\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x43\x61\x6E\x63\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x69\x6E\x66\x6F\x28\x60\x41\x74\x74\x61\x63\x6B\x69\x6E\x67\x20\x22\x24\x7B\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x2E\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x7D\x2F\x24\x7B\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x2E\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x7D\x22\x20\x2E\x2E\x2E\x60\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x61\x74\x74\x61\x63\x6B\x48\x54\x54\x50\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6E\x75\x6C\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x61\x74\x74\x61\x63\x6B\x52\x65\x71\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x54\x61\x72\x67\x65\x74\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x49\x44\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4F\x70\x74\x73\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x56\x61\x72\x73\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x56\x61\x72\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4E\x61\x6D\x65\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x42\x61\x73\x65\x55\x52\x4C\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x42\x61\x73\x65\x55\x52\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x49\x44\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4E\x61\x6D\x65\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4D\x65\x74\x68\x6F\x64\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x4D\x65\x74\x68\x6F\x64\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x50\x61\x74\x68\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x50\x61\x74\x68\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x71\x75\x65\x73\x74\x54\x79\x70\x65\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x52\x65\x71\x75\x65\x73\x74\x54\x79\x70\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x65\x61\x64\x65\x72\x73\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x48\x65\x61\x64\x65\x72\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x50\x61\x72\x61\x6D\x73\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x50\x61\x72\x61\x6D\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x73\x75\x6C\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x41\x6C\x6C\x6F\x77\x41\x74\x74\x61\x63\x6B\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x41\x6C\x6C\x6F\x77\x41\x74\x74\x61\x63\x6B\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x49\x73\x43\x75\x73\x74\x6F\x6D\x69\x7A\x61\x62\x6C\x65\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x73\x43\x75\x73\x74\x6F\x6D\x69\x7A\x61\x62\x6C\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x3A\x20\x6E\x75\x6C\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x74\x74\x70\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x41\x50\x49\x5F\x41\x54\x54\x41\x43\x4B\x5F\x48\x54\x54\x50\x2C\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x65\x74\x68\x6F\x64\x3A\x20\x22\x50\x4F\x53\x54\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x65\x61\x64\x65\x72\x73\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65\x22\x3A\x20\x22\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x6F\x64\x79\x3A\x20\x4A\x53\x4F\x4E\x2E\x73\x74\x72\x69\x6E\x67\x69\x66\x79\x28\x61\x74\x74\x61\x63\x6B\x52\x65\x71\x29\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6A\x73\x6F\x6E\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x68\x74\x74\x70\x52\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6E\x75\x6C\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x73\x65\x74\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x28\x61\x74\x74\x61\x63\x6B\x52\x65\x71\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6A\x73\x6F\x6E\x52\x65\x73\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x61\x74\x74\x61\x63\x6B\x48\x54\x54\x50\x44\x65\x6C\x65\x74\x65\x28\x6E\x61\x6D\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6D\x73\x67\x20\x3D\x20\x60\x41\x72\x65\x20\x79\x6F\x75\x20\x73\x75\x72\x65\x20\x79\x6F\x75\x20\x77\x61\x6E\x74\x20\x74\x6F\x20\x64\x65\x6C\x65\x74\x65\x20\x74\x68\x65\x20\x72\x65\x73\x75\x6C\x74\x3A\x20\x24\x7B\x6E\x61\x6D\x65\x7D\x3F\x60\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x79\x65\x73\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x63\x6F\x6E\x66\x69\x72\x6D\x28\x6D\x73\x67\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x79\x65\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6E\x75\x6C\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x75\x72\x6C\x20\x3D\x20\x41\x50\x49\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x45\x53\x55\x4C\x54\x20\x2B\x20\x22\x3F\x6E\x61\x6D\x65\x3D\x22\x20\x2B\x20\x6E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x66\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x75\x72\x6C\x2C\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x65\x74\x68\x6F\x64\x3A\x20\x22\x44\x45\x4C\x45\x54\x45\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6A\x73\x6F\x6E\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x72\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6E\x75\x6C\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6A\x73\x6F\x6E\x52\x65\x73\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x61\x74\x74\x61\x63\x6B\x48\x54\x54\x50\x47\x65\x74\x28\x6E\x61\x6D\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x75\x72\x6C\x20\x3D\x20\x41\x50\x49\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x45\x53\x55\x4C\x54\x20\x2B\x20\x22\x3F\x6E\x61\x6D\x65\x3D\x22\x20\x2B\x20\x6E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x66\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x75\x72\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x72\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x72\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x72\x65\x73\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x63\x6F\x6E\x74\x65\x6E\x74\x52\x65\x6E\x64\x65\x72\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x20\x6E\x61\x76\x4C\x69\x6E\x6B\x2C\x20\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x65\x74\x20\x68\x61\x73\x68\x20\x3D\x20\x22\x23\x2F\x22\x20\x2B\x20\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x68\x20\x2B\x3D\x20\x22\x2F\x68\x74\x74\x70\x2F\x22\x20\x2B\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x69\x66\x20\x28\x77\x73\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x68\x20\x2B\x3D\x20\x22\x2F\x77\x73\x2F\x22\x20\x2B\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x69\x66\x20\x28\x6E\x61\x76\x4C\x69\x6E\x6B\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x68\x20\x2B\x3D\x20\x22\x2F\x6C\x69\x6E\x6B\x2F\x22\x20\x2B\x20\x6E\x61\x76\x4C\x69\x6E\x6B\x2E\x49\x44\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x74\x69\x6F\x6E\x2E\x68\x61\x73\x68\x20\x3D\x20\x68\x61\x73\x68\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x72\x75\x6E\x48\x54\x54\x50\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6E\x75\x6C\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x71\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x54\x61\x72\x67\x65\x74\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x49\x44\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4F\x70\x74\x73\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x56\x61\x72\x73\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x56\x61\x72\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4E\x61\x6D\x65\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x42\x61\x73\x65\x55\x52\x4C\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x3A\x20\x6E\x75\x6C\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x74\x74\x70\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x41\x50\x49\x5F\x54\x41\x52\x47\x45\x54\x5F\x52\x55\x4E\x5F\x48\x54\x54\x50\x2C\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x65\x74\x68\x6F\x64\x3A\x20\x22\x50\x4F\x53\x54\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x65\x61\x64\x65\x72\x73\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65\x22\x3A\x20\x22\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x6F\x64\x79\x3A\x20\x4A\x53\x4F\x4E\x2E\x73\x74\x72\x69\x6E\x67\x69\x66\x79\x28\x72\x65\x71\x29\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6A\x73\x6F\x6E\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x68\x74\x74\x70\x52\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6E\x75\x6C\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x64\x61\x74\x61\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x2E\x52\x65\x73\x70\x6F\x6E\x73\x65\x53\x74\x61\x74\x75\x73\x43\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x60\x24\x7B\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x7D\x3A\x20\x24\x7B\x72\x65\x73\x2E\x52\x65\x73\x70\x6F\x6E\x73\x65\x53\x74\x61\x74\x75\x73\x7D\x60\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x69\x6E\x66\x6F\x28\x60\x24\x7B\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x7D\x3A\x20\x24\x7B\x72\x65\x73\x2E\x52\x65\x73\x70\x6F\x6E\x73\x65\x53\x74\x61\x74\x75\x73\x7D\x60\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x72\x65\x73\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x72\x75\x6E\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x71\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x54\x61\x72\x67\x65\x74\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x49\x44\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4F\x70\x74\x73\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x56\x61\x72\x73\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x56\x61\x72\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4E\x61\x6D\x65\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x42\x61\x73\x65\x55\x52\x4C\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x3A\x20\x6E\x75\x6C\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x3A\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x66\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x41\x50\x49\x5F\x54\x41\x52\x47\x45\x54\x5F\x52\x55\x4E\x5F\x57\x45\x42\x53\x4F\x43\x4B\x45\x54\x2C\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x65\x74\x68\x6F\x64\x3A\x20\x22\x50\x4F\x53\x54\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x65\x61\x64\x65\x72\x73\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65\x22\x3A\x20\x22\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x6F\x64\x79\x3A\x20\x4A\x53\x4F\x4E\x2E\x73\x74\x72\x69\x6E\x67\x69\x66\x79\x28\x72\x65\x71\x29\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6A\x73\x6F\x6E\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x72\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6E\x75\x6C\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x69\x6E\x66\x6F\x28\x60\x24\x7B\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x7D\x3A\x20\x73\x75\x63\x63\x65\x73\x73\x2E\x60\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6A\x73\x6F\x6E\x52\x65\x73\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x73\x65\x74\x43\x6F\x6E\x74\x65\x6E\x74\x28\x70\x61\x74\x68\x2C\x20\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x74\x69\x6F\x6E\x2E\x68\x61\x73\x68\x20\x3D\x20\x22\x23\x2F\x22\x20\x2B\x20\x70\x61\x74\x68\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"),
}
node.SetMode(420)
- node.SetModTimeUnix(1699681934, 237704643)
+ node.SetModTimeUnix(1706186497, 789740996)
node.SetName("trunks.js")
node.SetSize(12672)
return node
@@ -289,7 +289,7 @@ func generate__www_vars_js() *memfs.Node {
Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x75\x69\x4E\x6F\x74\x69\x66\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x75\x69\x2F\x6E\x6F\x74\x69\x66\x2F\x6E\x6F\x74\x69\x66\x2E\x6A\x73\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6F\x6E\x73\x74\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x4E\x6F\x74\x69\x66\x28\x29\x3B\x0A"),
}
node.SetMode(420)
- node.SetModTimeUnix(1699681934, 237704643)
+ node.SetModTimeUnix(1706186497, 779740938)
node.SetName("vars.js")
node.SetSize(195)
return node
@@ -304,7 +304,7 @@ func generate__www_ws_target_js() *memfs.Node {
Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x2C\x20\x6C\x6F\x61\x64\x57\x73\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x2C\x20\x6C\x6F\x61\x64\x57\x73\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x66\x75\x6E\x63\x74\x69\x6F\x6E\x73\x2E\x6A\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x57\x53\x5F\x54\x41\x52\x47\x45\x54\x20\x3D\x20\x22\x77\x73\x5F\x74\x61\x72\x67\x65\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x57\x53\x5F\x54\x41\x52\x47\x45\x54\x5F\x41\x43\x54\x49\x4F\x4E\x53\x20\x3D\x20\x22\x77\x73\x5F\x74\x61\x72\x67\x65\x74\x5F\x61\x63\x74\x69\x6F\x6E\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x57\x53\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x20\x3D\x20\x22\x77\x73\x5F\x74\x61\x72\x67\x65\x74\x5F\x69\x6E\x70\x75\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x57\x53\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x5F\x48\x45\x41\x44\x45\x52\x20\x3D\x20\x22\x77\x73\x5F\x74\x61\x72\x67\x65\x74\x5F\x69\x6E\x70\x75\x74\x5F\x68\x65\x61\x64\x65\x72\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x57\x53\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x5F\x50\x41\x52\x41\x4D\x20\x3D\x20\x22\x77\x73\x5F\x74\x61\x72\x67\x65\x74\x5F\x69\x6E\x70\x75\x74\x5F\x70\x61\x72\x61\x6D\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x57\x53\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x4D\x4F\x4E\x4F\x20\x3D\x20\x22\x77\x73\x5F\x74\x61\x72\x67\x65\x74\x5F\x6F\x75\x74\x5F\x6D\x6F\x6E\x6F\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x57\x53\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x52\x55\x4E\x20\x3D\x20\x22\x77\x73\x5F\x74\x61\x72\x67\x65\x74\x5F\x6F\x75\x74\x5F\x72\x75\x6E\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6C\x61\x73\x73\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72\x28\x74\x72\x75\x6E\x6B\x73\x2C\x20\x74\x61\x72\x67\x65\x74\x2C\x20\x6F\x70\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x20\x3D\x20\x74\x72\x75\x6E\x6B\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x20\x3D\x20\x74\x61\x72\x67\x65\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x20\x3D\x20\x6F\x70\x74\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x62\x75\x74\x74\x6F\x6E\x5F\x72\x75\x6E\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x62\x75\x74\x74\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x72\x65\x71\x75\x65\x73\x74\x5F\x69\x6E\x70\x75\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6F\x75\x74\x5F\x72\x65\x73\x70\x6F\x6E\x73\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x70\x72\x65\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x69\x64\x20\x3D\x20\x6F\x70\x74\x73\x2E\x49\x44\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x57\x53\x5F\x54\x41\x52\x47\x45\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x54\x69\x74\x6C\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x68\x33\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x69\x74\x6C\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x6F\x70\x74\x73\x2E\x4E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x54\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x41\x63\x74\x69\x6F\x6E\x73\x28\x65\x6C\x54\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x28\x74\x68\x69\x73\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x49\x6E\x70\x75\x74\x28\x74\x68\x69\x73\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x4F\x75\x74\x70\x75\x74\x28\x74\x68\x69\x73\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x41\x63\x74\x69\x6F\x6E\x73\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x41\x63\x74\x69\x6F\x6E\x73\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x73\x70\x61\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x41\x63\x74\x69\x6F\x6E\x73\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x57\x53\x5F\x54\x41\x52\x47\x45\x54\x5F\x41\x43\x54\x49\x4F\x4E\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x62\x75\x74\x74\x6F\x6E\x5F\x72\x75\x6E\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x52\x75\x6E\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x62\x75\x74\x74\x6F\x6E\x5F\x72\x75\x6E\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x52\x75\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x41\x63\x74\x69\x6F\x6E\x73\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x62\x75\x74\x74\x6F\x6E\x5F\x72\x75\x6E\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x41\x63\x74\x69\x6F\x6E\x73\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x69\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x48\x69\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x70\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x48\x69\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x69\x6E\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x48\x69\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x49\x6E\x70\x75\x74\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x72\x65\x71\x75\x65\x73\x74\x5F\x69\x6E\x70\x75\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x57\x53\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72\x73\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x72\x65\x71\x75\x65\x73\x74\x5F\x69\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x50\x61\x72\x61\x6D\x65\x74\x65\x72\x73\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x72\x65\x71\x75\x65\x73\x74\x5F\x69\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x72\x65\x71\x75\x65\x73\x74\x5F\x69\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72\x73\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x65\x61\x64\x65\x72\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x4F\x62\x6A\x65\x63\x74\x2E\x6B\x65\x79\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x65\x61\x64\x65\x72\x73\x29\x2E\x6C\x65\x6E\x67\x74\x68\x20\x3D\x3D\x3D\x20\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x57\x53\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x5F\x48\x45\x41\x44\x45\x52\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x69\x74\x6C\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x68\x34\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x69\x74\x6C\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x48\x65\x61\x64\x65\x72\x73\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x65\x79\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x65\x61\x64\x65\x72\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x6C\x6F\x61\x64\x57\x73\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x28\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x6B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x2C\x20\x66\x69\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x50\x61\x72\x61\x6D\x65\x74\x65\x72\x73\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x50\x61\x72\x61\x6D\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x4F\x62\x6A\x65\x63\x74\x2E\x6B\x65\x79\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x50\x61\x72\x61\x6D\x73\x29\x2E\x6C\x65\x6E\x67\x74\x68\x20\x3D\x3D\x3D\x20\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x57\x53\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x5F\x50\x41\x52\x41\x4D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x69\x74\x6C\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x69\x74\x6C\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x50\x61\x72\x61\x6D\x65\x74\x65\x72\x73\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x65\x79\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x50\x61\x72\x61\x6D\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x6C\x6F\x61\x64\x57\x73\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x28\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x6B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x2C\x20\x66\x69\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x4F\x75\x74\x70\x75\x74\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x57\x53\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x52\x55\x4E\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x69\x74\x6C\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x69\x74\x6C\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x52\x75\x6E\x20\x6F\x75\x74\x70\x75\x74\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x62\x74\x6E\x43\x6C\x65\x61\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x62\x75\x74\x74\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x43\x6C\x65\x61\x72\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x43\x6C\x65\x61\x72\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x43\x6C\x65\x61\x72\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x43\x6C\x65\x61\x72\x4F\x75\x74\x70\x75\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x69\x74\x6C\x65\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x62\x74\x6E\x43\x6C\x65\x61\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6F\x75\x74\x5F\x72\x65\x73\x70\x6F\x6E\x73\x65\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x57\x53\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x4D\x4F\x4E\x4F\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6F\x75\x74\x5F\x72\x65\x73\x70\x6F\x6E\x73\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x43\x6C\x65\x61\x72\x4F\x75\x74\x70\x75\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6F\x75\x74\x5F\x72\x65\x73\x70\x6F\x6E\x73\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x52\x75\x6E\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x2E\x72\x75\x6E\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x28\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x72\x65\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6F\x75\x74\x5F\x72\x65\x73\x70\x6F\x6E\x73\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x4A\x53\x4F\x4E\x2E\x73\x74\x72\x69\x6E\x67\x69\x66\x79\x28\x72\x65\x73\x2E\x64\x61\x74\x61\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x32\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"),
}
node.SetMode(420)
- node.SetModTimeUnix(1699681934, 237704643)
+ node.SetModTimeUnix(1706186497, 773074233)
node.SetName("ws_target.js")
node.SetSize(4531)
return node
@@ -433,7 +433,7 @@ func generate__www_wui_input_number_js() *memfs.Node {
Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x4E\x55\x4D\x42\x45\x52\x5F\x43\x4C\x41\x53\x53\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x6E\x75\x6D\x62\x65\x72\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x4E\x55\x4D\x42\x45\x52\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x6E\x75\x6D\x62\x65\x72\x5F\x68\x69\x6E\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x4E\x55\x4D\x42\x45\x52\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x5F\x54\x4F\x47\x47\x4C\x45\x52\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x6E\x75\x6D\x62\x65\x72\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x4E\x55\x4D\x42\x45\x52\x5F\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x6E\x75\x6D\x62\x65\x72\x5F\x69\x6E\x70\x75\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x4E\x55\x4D\x42\x45\x52\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x41\x42\x45\x4C\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x6E\x75\x6D\x62\x65\x72\x5F\x6C\x61\x62\x65\x6C\x22\x3B\x0A\x2F\x2F\x0A\x2F\x2F\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x20\x63\x72\x65\x61\x74\x65\x20\x61\x6E\x20\x48\x54\x4D\x4C\x20\x69\x6E\x70\x75\x74\x20\x74\x68\x61\x74\x20\x61\x6C\x6C\x6F\x77\x20\x6E\x75\x6D\x62\x65\x72\x20\x6F\x6E\x6C\x79\x2C\x20\x77\x69\x74\x68\x20\x6F\x70\x74\x69\x6F\x6E\x61\x6C\x0A\x2F\x2F\x20\x6D\x61\x78\x20\x61\x6E\x64\x20\x6D\x69\x6E\x20\x6F\x70\x74\x69\x6F\x6E\x73\x2E\x0A\x2F\x2F\x20\x54\x68\x65\x20\x72\x65\x71\x75\x69\x72\x65\x64\x20\x6F\x70\x74\x69\x6F\x6E\x73\x20\x61\x72\x65\x20\x22\x6C\x61\x62\x65\x6C\x22\x20\x61\x6E\x64\x20\x22\x76\x61\x6C\x75\x65\x22\x2E\x0A\x2F\x2F\x0A\x2F\x2F\x20\x46\x6F\x72\x6D\x61\x74\x20\x6F\x66\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64\x20\x48\x54\x4D\x4C\x20\x6F\x75\x74\x70\x75\x74\x2C\x0A\x2F\x2F\x0A\x2F\x2F\x09\x3C\x64\x69\x76\x20\x5B\x69\x64\x3D\x24\x7B\x69\x64\x7D\x5D\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x4E\x55\x4D\x42\x45\x52\x5F\x43\x4C\x41\x53\x53\x7D\x22\x3E\x0A\x2F\x2F\x09\x09\x3C\x64\x69\x76\x3E\x0A\x2F\x2F\x09\x09\x09\x3C\x6C\x61\x62\x65\x6C\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x4E\x55\x4D\x42\x45\x52\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x41\x42\x45\x4C\x7D\x20\x5B\x24\x7B\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x7D\x5D\x22\x3E\x0A\x2F\x2F\x09\x09\x09\x09\x24\x7B\x6C\x61\x62\x65\x6C\x7D\x20\x7C\x20\x48\x54\x4D\x4C\x45\x6C\x65\x6D\x65\x6E\x74\x0A\x2F\x2F\x09\x09\x09\x3C\x2F\x6C\x61\x62\x65\x6C\x3E\x0A\x2F\x2F\x09\x09\x09\x3C\x69\x6E\x70\x75\x74\x0A\x2F\x2F\x09\x09\x09\x09\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x4E\x55\x4D\x42\x45\x52\x5F\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x7D\x20\x5B\x24\x7B\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x7D\x5D\x22\x0A\x2F\x2F\x09\x09\x09\x09\x5B\x6D\x61\x78\x3D\x24\x7B\x6D\x61\x78\x7D\x5D\x0A\x2F\x2F\x09\x09\x09\x09\x5B\x6D\x69\x6E\x3D\x24\x7B\x6D\x69\x6E\x7D\x5D\x0A\x2F\x2F\x09\x09\x09\x09\x5B\x64\x69\x73\x61\x62\x6C\x65\x64\x3D\x24\x7B\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x7D\x5D\x0A\x2F\x2F\x09\x09\x09\x09\x76\x61\x6C\x75\x65\x3D\x24\x7B\x76\x61\x6C\x75\x65\x7D\x0A\x2F\x2F\x09\x09\x09\x3E\x0A\x2F\x2F\x09\x09\x09\x5B\x3C\x73\x70\x61\x6E\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x4E\x55\x4D\x42\x45\x52\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x5F\x54\x4F\x47\x47\x4C\x45\x52\x7D\x22\x3E\x20\x69\x3C\x2F\x73\x70\x61\x6E\x3E\x5D\x0A\x2F\x2F\x09\x09\x3C\x2F\x64\x69\x76\x3E\x0A\x2F\x2F\x09\x09\x5B\x3C\x64\x69\x76\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x4E\x55\x4D\x42\x45\x52\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x7D\x22\x3E\x24\x7B\x68\x69\x6E\x74\x7D\x3C\x2F\x64\x69\x76\x3E\x5D\x0A\x2F\x2F\x09\x3C\x2F\x64\x69\x76\x3E\x0A\x2F\x2F\x0A\x2F\x2F\x20\x55\x73\x65\x72\x20\x63\x61\x6E\x20\x73\x65\x74\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x20\x74\x6F\x20\x72\x65\x63\x65\x69\x76\x65\x20\x6E\x65\x77\x20\x76\x61\x6C\x75\x65\x20\x77\x68\x65\x6E\x20\x74\x68\x65\x20\x69\x6E\x70\x75\x74\x20\x76\x61\x6C\x75\x65\x0A\x2F\x2F\x20\x63\x68\x61\x6E\x67\x65\x73\x20\x61\x6E\x64\x20\x76\x61\x6C\x69\x64\x3B\x20\x6F\x74\x68\x65\x72\x77\x69\x73\x65\x2C\x20\x69\x66\x20\x74\x68\x65\x20\x76\x61\x6C\x75\x65\x20\x69\x73\x20\x69\x6E\x76\x61\x6C\x69\x64\x2C\x20\x74\x68\x65\x20\x69\x6E\x70\x75\x74\x0A\x2F\x2F\x20\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x20\x77\x69\x6C\x6C\x20\x63\x68\x61\x6E\x67\x65\x73\x20\x61\x63\x63\x6F\x72\x64\x69\x6E\x67\x6C\x79\x2E\x0A\x2F\x2F\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6C\x61\x73\x73\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72\x28\x6F\x70\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x20\x3D\x20\x6F\x70\x74\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x30\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x6F\x70\x74\x73\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x70\x74\x73\x2E\x69\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x69\x64\x20\x3D\x20\x6F\x70\x74\x73\x2E\x69\x64\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x4E\x55\x4D\x42\x45\x52\x5F\x43\x4C\x41\x53\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x73\x74\x79\x6C\x65\x2E\x70\x61\x64\x64\x69\x6E\x67\x20\x3D\x20\x22\x32\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x4C\x61\x62\x65\x6C\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x70\x74\x73\x2E\x68\x69\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x70\x74\x73\x2E\x68\x69\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x4C\x61\x62\x65\x6C\x28\x77\x72\x61\x70\x70\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x61\x62\x65\x6C\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x4E\x55\x4D\x42\x45\x52\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x41\x42\x45\x4C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6F\x66\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6C\x61\x62\x65\x6C\x20\x3D\x3D\x3D\x20\x22\x73\x74\x72\x69\x6E\x67\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x60\x24\x7B\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6C\x61\x62\x65\x6C\x7D\x20\x60\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6C\x61\x62\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x69\x6E\x70\x75\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x4E\x55\x4D\x42\x45\x52\x5F\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x74\x79\x70\x65\x20\x3D\x20\x22\x6E\x75\x6D\x62\x65\x72\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x73\x74\x65\x70\x20\x3D\x20\x22\x61\x6E\x79\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x22\x22\x20\x2B\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x65\x74\x20\x68\x69\x6E\x74\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6D\x61\x78\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x6D\x61\x78\x20\x3D\x20\x22\x22\x20\x2B\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6D\x61\x78\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x20\x3D\x20\x22\x54\x68\x65\x20\x6D\x61\x78\x69\x6D\x75\x6D\x20\x76\x61\x6C\x75\x65\x20\x69\x73\x20\x22\x20\x2B\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6D\x61\x78\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6D\x69\x6E\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x6D\x69\x6E\x20\x3D\x20\x22\x22\x20\x2B\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6D\x69\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x68\x69\x6E\x74\x20\x3D\x3D\x20\x22\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x20\x3D\x20\x22\x54\x68\x65\x20\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x20\x2B\x3D\x20\x22\x20\x61\x6E\x64\x20\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x20\x2B\x3D\x20\x22\x6D\x69\x6E\x69\x6D\x75\x6D\x20\x76\x61\x6C\x75\x65\x20\x69\x73\x20\x22\x20\x2B\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6D\x69\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x68\x69\x6E\x74\x20\x21\x3D\x3D\x20\x22\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x74\x69\x74\x6C\x65\x20\x3D\x20\x68\x69\x6E\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x64\x69\x73\x61\x62\x6C\x65\x64\x20\x3D\x20\x74\x72\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x6F\x6E\x6B\x65\x79\x75\x70\x20\x3D\x20\x28\x65\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x68\x69\x73\x2E\x6F\x6E\x4B\x65\x79\x55\x70\x28\x65\x76\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x77\x72\x61\x70\x70\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x73\x70\x61\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x4E\x55\x4D\x42\x45\x52\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x5F\x54\x4F\x47\x47\x4C\x45\x52\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x20\x26\x23\x78\x32\x31\x33\x39\x3B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x6F\x6E\x6D\x6F\x75\x73\x65\x6F\x76\x65\x72\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x73\x74\x79\x6C\x65\x2E\x63\x75\x72\x73\x6F\x72\x20\x3D\x20\x22\x70\x6F\x69\x6E\x74\x65\x72\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x69\x6E\x74\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x68\x69\x6E\x74\x20\x7C\x7C\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x4E\x55\x4D\x42\x45\x52\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x68\x69\x6E\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x62\x6C\x6F\x63\x6B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x62\x6F\x72\x64\x65\x72\x52\x61\x64\x69\x75\x73\x20\x3D\x20\x22\x32\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x70\x61\x64\x64\x69\x6E\x67\x20\x3D\x20\x22\x34\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x6D\x61\x72\x67\x69\x6E\x54\x6F\x70\x20\x3D\x20\x22\x32\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x3D\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x62\x6C\x6F\x63\x6B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x6F\x6E\x4B\x65\x79\x55\x70\x28\x65\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x61\x72\x67\x65\x74\x20\x3D\x20\x65\x76\x2E\x74\x61\x72\x67\x65\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x76\x2E\x70\x72\x65\x76\x65\x6E\x74\x44\x65\x66\x61\x75\x6C\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6E\x65\x77\x56\x61\x6C\x75\x65\x20\x3D\x20\x2B\x74\x61\x72\x67\x65\x74\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6E\x65\x77\x56\x61\x6C\x75\x65\x20\x3D\x3D\x3D\x20\x6E\x75\x6C\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x73\x74\x79\x6C\x65\x2E\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72\x20\x3D\x20\x22\x6C\x69\x67\x68\x74\x73\x61\x6C\x6D\x6F\x6E\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x66\x61\x6C\x73\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6D\x61\x78\x20\x26\x26\x20\x6E\x65\x77\x56\x61\x6C\x75\x65\x20\x3E\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6D\x61\x78\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x73\x74\x79\x6C\x65\x2E\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72\x20\x3D\x20\x22\x6C\x69\x67\x68\x74\x73\x61\x6C\x6D\x6F\x6E\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x66\x61\x6C\x73\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6D\x69\x6E\x20\x26\x26\x20\x6E\x65\x77\x56\x61\x6C\x75\x65\x20\x3C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6D\x69\x6E\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x73\x74\x79\x6C\x65\x2E\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72\x20\x3D\x20\x22\x6C\x69\x67\x68\x74\x73\x61\x6C\x6D\x6F\x6E\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x66\x61\x6C\x73\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x73\x74\x79\x6C\x65\x2E\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72\x20\x3D\x20\x22\x77\x68\x69\x74\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x6E\x65\x77\x56\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x28\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x72\x75\x65\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x2F\x2F\x20\x73\x65\x74\x20\x74\x68\x65\x20\x69\x6E\x70\x75\x74\x20\x76\x61\x6C\x75\x65\x2E\x0A\x20\x20\x20\x20\x73\x65\x74\x28\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x22\x22\x20\x2B\x20\x76\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"),
}
node.SetMode(420)
- node.SetModTimeUnix(1699681984, 17960667)
+ node.SetModTimeUnix(1706186497, 736407354)
node.SetName("number.js")
node.SetSize(5843)
return node
@@ -448,7 +448,7 @@ func generate__www_wui_input_option_js() *memfs.Node {
Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x65\x78\x70\x6F\x72\x74\x20\x7B\x7D\x3B\x0A"),
}
node.SetMode(420)
- node.SetModTimeUnix(1699681984, 17960667)
+ node.SetModTimeUnix(1706186497, 753074117)
node.SetName("option.js")
node.SetSize(117)
return node
@@ -460,10 +460,10 @@ func generate__www_wui_input_select_js() *memfs.Node {
Path: "/wui/input/select.js",
ContentType: "text/javascript; charset=utf-8",
GenFuncName: "generate__www_wui_input_select_js",
- Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x73\x65\x6C\x65\x63\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x73\x65\x6C\x65\x63\x74\x5F\x68\x69\x6E\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x5F\x54\x4F\x47\x47\x4C\x45\x52\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x73\x65\x6C\x65\x63\x74\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x73\x65\x6C\x65\x63\x74\x5F\x69\x6E\x70\x75\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x41\x42\x45\x4C\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x73\x65\x6C\x65\x63\x74\x5F\x6C\x61\x62\x65\x6C\x22\x3B\x0A\x2F\x2F\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x65\x6C\x65\x63\x74\x20\x63\x72\x65\x61\x74\x65\x20\x61\x6E\x20\x48\x54\x4D\x4C\x20\x69\x6E\x70\x75\x74\x20\x66\x6F\x72\x20\x73\x65\x6C\x65\x63\x74\x69\x6E\x67\x20\x6F\x6E\x65\x20\x6D\x6F\x72\x65\x20\x69\x74\x65\x6D\x2E\x0A\x2F\x2F\x0A\x2F\x2F\x20\x46\x6F\x72\x6D\x61\x74\x20\x6F\x66\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64\x20\x48\x54\x4D\x4C\x20\x6F\x75\x74\x70\x75\x74\x2C\x0A\x2F\x2F\x0A\x2F\x2F\x09\x3C\x64\x69\x76\x20\x5B\x69\x64\x3D\x24\x7B\x69\x64\x7D\x5D\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x7D\x22\x3E\x0A\x2F\x2F\x09\x09\x3C\x64\x69\x76\x3E\x0A\x2F\x2F\x09\x09\x09\x3C\x6C\x61\x62\x65\x6C\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x41\x42\x45\x4C\x7D\x20\x5B\x24\x7B\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x7D\x5D\x22\x3E\x0A\x2F\x2F\x09\x09\x09\x09\x24\x7B\x6C\x61\x62\x65\x6C\x7D\x20\x7C\x20\x48\x54\x4D\x4C\x45\x6C\x65\x6D\x65\x6E\x74\x0A\x2F\x2F\x09\x09\x09\x3C\x2F\x6C\x61\x62\x65\x6C\x3E\x0A\x2F\x2F\x09\x09\x09\x3C\x73\x65\x6C\x65\x63\x74\x0A\x2F\x2F\x09\x09\x09\x09\x6E\x61\x6D\x65\x3D\x24\x7B\x6E\x61\x6D\x65\x7D\x0A\x2F\x2F\x09\x09\x09\x09\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x7D\x20\x5B\x24\x7B\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x7D\x5D\x22\x0A\x2F\x2F\x09\x09\x09\x09\x5B\x64\x69\x73\x61\x62\x6C\x65\x64\x3D\x24\x7B\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x7D\x5D\x0A\x2F\x2F\x09\x09\x09\x3E\x0A\x2F\x2F\x09\x09\x09\x09\x3C\x6F\x70\x74\x69\x6F\x6E\x20\x76\x61\x6C\x75\x65\x3D\x22\x24\x7B\x6F\x70\x74\x69\x6F\x6E\x73\x5B\x6B\x65\x79\x5D\x2E\x76\x61\x6C\x75\x65\x7D\x22\x3E\x24\x7B\x6B\x65\x79\x20\x69\x6E\x20\x6F\x70\x74\x69\x6F\x6E\x73\x7D\x3C\x2F\x6F\x70\x74\x69\x6F\x6E\x3E\x0A\x2F\x2F\x09\x09\x09\x3C\x2F\x73\x65\x6C\x65\x63\x74\x3E\x0A\x2F\x2F\x09\x09\x09\x5B\x3C\x73\x70\x61\x6E\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x5F\x54\x4F\x47\x47\x4C\x45\x52\x7D\x22\x3E\x69\x20\x3C\x2F\x73\x70\x61\x6E\x3E\x5D\x0A\x2F\x2F\x09\x09\x3C\x2F\x64\x69\x76\x3E\x0A\x2F\x2F\x09\x09\x5B\x3C\x64\x69\x76\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x7D\x22\x3E\x24\x7B\x68\x69\x6E\x74\x7D\x3C\x2F\x64\x69\x76\x3E\x5D\x0A\x2F\x2F\x09\x3C\x2F\x64\x69\x76\x3E\x0A\x2F\x2F\x0A\x2F\x2F\x20\x54\x68\x65\x20\x22\x68\x69\x6E\x74\x22\x20\x6F\x70\x74\x69\x6F\x6E\x20\x69\x73\x20\x6F\x70\x74\x69\x6F\x6E\x61\x6C\x2C\x20\x69\x66\x20\x69\x74\x20\x73\x65\x74\x20\x74\x68\x65\x20\x69\x6E\x70\x75\x74\x20\x77\x69\x6C\x6C\x20\x68\x61\x76\x65\x20\x61\x20\x68\x69\x6E\x74\x20\x74\x6F\x67\x67\x6C\x65\x72\x0A\x2F\x2F\x20\x74\x6F\x20\x64\x69\x73\x70\x6C\x61\x79\x20\x6F\x72\x20\x68\x69\x64\x65\x20\x74\x68\x65\x20\x69\x6E\x70\x75\x74\x20\x69\x6E\x66\x6F\x72\x6D\x61\x74\x69\x6F\x6E\x2E\x0A\x2F\x2F\x0A\x2F\x2F\x20\x55\x73\x65\x72\x20\x63\x61\x6E\x20\x73\x65\x74\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x20\x74\x6F\x20\x72\x65\x63\x65\x69\x76\x65\x20\x6E\x65\x77\x20\x76\x61\x6C\x75\x65\x20\x77\x68\x65\x6E\x20\x74\x68\x65\x20\x69\x6E\x70\x75\x74\x20\x76\x61\x6C\x75\x65\x0A\x2F\x2F\x20\x63\x68\x61\x6E\x67\x65\x73\x2E\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6C\x61\x73\x73\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x65\x6C\x65\x63\x74\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72\x28\x6F\x70\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x20\x3D\x20\x6F\x70\x74\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x5F\x6B\x65\x79\x20\x3D\x20\x7B\x7D\x3B\x20\x2F\x2F\x20\x54\x68\x65\x20\x72\x65\x76\x65\x72\x73\x65\x20\x6F\x66\x20\x6F\x70\x74\x69\x6F\x6E\x73\x2E\x6F\x70\x74\x69\x6F\x6E\x73\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x70\x74\x73\x2E\x69\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x69\x64\x20\x3D\x20\x6F\x70\x74\x73\x2E\x69\x64\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x73\x74\x79\x6C\x65\x2E\x70\x61\x64\x64\x69\x6E\x67\x20\x3D\x20\x22\x32\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x4C\x61\x62\x65\x6C\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x70\x74\x73\x2E\x68\x69\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x70\x74\x73\x2E\x68\x69\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x4C\x61\x62\x65\x6C\x28\x77\x72\x61\x70\x70\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x61\x62\x65\x6C\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x41\x42\x45\x4C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6F\x66\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6C\x61\x62\x65\x6C\x20\x3D\x3D\x3D\x20\x22\x73\x74\x72\x69\x6E\x67\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x60\x24\x7B\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6C\x61\x62\x65\x6C\x7D\x20\x60\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6C\x61\x62\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x73\x65\x6C\x65\x63\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x6E\x61\x6D\x65\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6F\x70\x74\x69\x6F\x6E\x73\x29\x2E\x66\x6F\x72\x45\x61\x63\x68\x28\x28\x5B\x6B\x65\x79\x2C\x20\x6F\x70\x74\x69\x6F\x6E\x5D\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x4F\x70\x74\x69\x6F\x6E\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6F\x70\x74\x69\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4F\x70\x74\x69\x6F\x6E\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x6F\x70\x74\x69\x6F\x6E\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4F\x70\x74\x69\x6F\x6E\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x6B\x65\x79\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x70\x74\x69\x6F\x6E\x2E\x73\x65\x6C\x65\x63\x74\x65\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4F\x70\x74\x69\x6F\x6E\x2E\x73\x65\x6C\x65\x63\x74\x65\x64\x20\x3D\x20\x74\x72\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x4F\x70\x74\x69\x6F\x6E\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x5F\x6B\x65\x79\x5B\x6F\x70\x74\x69\x6F\x6E\x2E\x76\x61\x6C\x75\x65\x5D\x20\x3D\x20\x6B\x65\x79\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x64\x69\x73\x61\x62\x6C\x65\x64\x20\x3D\x20\x74\x72\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x65\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x76\x2E\x70\x72\x65\x76\x65\x6E\x74\x44\x65\x66\x61\x75\x6C\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x76\x2E\x73\x74\x6F\x70\x50\x72\x6F\x70\x61\x67\x61\x74\x69\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x49\x6E\x70\x75\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x77\x72\x61\x70\x70\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x73\x70\x61\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x5F\x54\x4F\x47\x47\x4C\x45\x52\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x20\x26\x23\x78\x32\x31\x33\x39\x3B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x6F\x6E\x6D\x6F\x75\x73\x65\x6F\x76\x65\x72\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x73\x74\x79\x6C\x65\x2E\x63\x75\x72\x73\x6F\x72\x20\x3D\x20\x22\x70\x6F\x69\x6E\x74\x65\x72\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x68\x69\x6E\x74\x20\x7C\x7C\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x62\x6C\x6F\x63\x6B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x62\x6F\x72\x64\x65\x72\x52\x61\x64\x69\x75\x73\x20\x3D\x20\x22\x32\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x70\x61\x64\x64\x69\x6E\x67\x20\x3D\x20\x22\x34\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x6D\x61\x72\x67\x69\x6E\x54\x6F\x70\x20\x3D\x20\x22\x32\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x3D\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x62\x6C\x6F\x63\x6B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x49\x6E\x70\x75\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x66\x61\x6C\x73\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x75\x65\x20\x3D\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x20\x21\x3D\x3D\x20\x76\x61\x6C\x75\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6B\x65\x79\x20\x3D\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x5F\x6B\x65\x79\x5B\x76\x61\x6C\x75\x65\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6B\x65\x79\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x28\x6B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x72\x75\x65\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x2F\x2F\x20\x53\x65\x74\x20\x74\x68\x65\x20\x69\x6E\x70\x75\x74\x20\x76\x61\x6C\x75\x65\x2E\x0A\x20\x20\x20\x20\x53\x65\x74\x28\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x76\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"),
+ Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x73\x65\x6C\x65\x63\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x73\x65\x6C\x65\x63\x74\x5F\x68\x69\x6E\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x5F\x54\x4F\x47\x47\x4C\x45\x52\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x73\x65\x6C\x65\x63\x74\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x73\x65\x6C\x65\x63\x74\x5F\x69\x6E\x70\x75\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x41\x42\x45\x4C\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x73\x65\x6C\x65\x63\x74\x5F\x6C\x61\x62\x65\x6C\x22\x3B\x0A\x2F\x2F\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x65\x6C\x65\x63\x74\x20\x63\x72\x65\x61\x74\x65\x20\x61\x6E\x20\x48\x54\x4D\x4C\x20\x69\x6E\x70\x75\x74\x20\x66\x6F\x72\x20\x73\x65\x6C\x65\x63\x74\x69\x6E\x67\x20\x6F\x6E\x65\x20\x6D\x6F\x72\x65\x20\x69\x74\x65\x6D\x2E\x0A\x2F\x2F\x0A\x2F\x2F\x20\x46\x6F\x72\x6D\x61\x74\x20\x6F\x66\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64\x20\x48\x54\x4D\x4C\x20\x6F\x75\x74\x70\x75\x74\x2C\x0A\x2F\x2F\x0A\x2F\x2F\x09\x3C\x64\x69\x76\x20\x5B\x69\x64\x3D\x24\x7B\x69\x64\x7D\x5D\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x7D\x22\x3E\x0A\x2F\x2F\x09\x09\x3C\x64\x69\x76\x3E\x0A\x2F\x2F\x09\x09\x09\x3C\x6C\x61\x62\x65\x6C\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x41\x42\x45\x4C\x7D\x20\x5B\x24\x7B\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x7D\x5D\x22\x3E\x0A\x2F\x2F\x09\x09\x09\x09\x24\x7B\x6C\x61\x62\x65\x6C\x7D\x20\x7C\x20\x48\x54\x4D\x4C\x45\x6C\x65\x6D\x65\x6E\x74\x0A\x2F\x2F\x09\x09\x09\x3C\x2F\x6C\x61\x62\x65\x6C\x3E\x0A\x2F\x2F\x09\x09\x09\x3C\x73\x65\x6C\x65\x63\x74\x0A\x2F\x2F\x09\x09\x09\x09\x6E\x61\x6D\x65\x3D\x24\x7B\x6E\x61\x6D\x65\x7D\x0A\x2F\x2F\x09\x09\x09\x09\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x7D\x20\x5B\x24\x7B\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x7D\x5D\x22\x0A\x2F\x2F\x09\x09\x09\x09\x5B\x64\x69\x73\x61\x62\x6C\x65\x64\x3D\x24\x7B\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x7D\x5D\x0A\x2F\x2F\x09\x09\x09\x3E\x0A\x2F\x2F\x09\x09\x09\x09\x3C\x6F\x70\x74\x69\x6F\x6E\x20\x76\x61\x6C\x75\x65\x3D\x22\x24\x7B\x6F\x70\x74\x69\x6F\x6E\x73\x5B\x6B\x65\x79\x5D\x2E\x76\x61\x6C\x75\x65\x7D\x22\x3E\x24\x7B\x6B\x65\x79\x20\x69\x6E\x20\x6F\x70\x74\x69\x6F\x6E\x73\x7D\x3C\x2F\x6F\x70\x74\x69\x6F\x6E\x3E\x0A\x2F\x2F\x09\x09\x09\x3C\x2F\x73\x65\x6C\x65\x63\x74\x3E\x0A\x2F\x2F\x09\x09\x09\x5B\x3C\x73\x70\x61\x6E\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x5F\x54\x4F\x47\x47\x4C\x45\x52\x7D\x22\x3E\x69\x20\x3C\x2F\x73\x70\x61\x6E\x3E\x5D\x0A\x2F\x2F\x09\x09\x3C\x2F\x64\x69\x76\x3E\x0A\x2F\x2F\x09\x09\x5B\x3C\x64\x69\x76\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x7D\x22\x3E\x24\x7B\x68\x69\x6E\x74\x7D\x3C\x2F\x64\x69\x76\x3E\x5D\x0A\x2F\x2F\x09\x3C\x2F\x64\x69\x76\x3E\x0A\x2F\x2F\x0A\x2F\x2F\x20\x54\x68\x65\x20\x22\x68\x69\x6E\x74\x22\x20\x6F\x70\x74\x69\x6F\x6E\x20\x69\x73\x20\x6F\x70\x74\x69\x6F\x6E\x61\x6C\x2C\x20\x69\x66\x20\x69\x74\x20\x73\x65\x74\x20\x74\x68\x65\x20\x69\x6E\x70\x75\x74\x20\x77\x69\x6C\x6C\x20\x68\x61\x76\x65\x20\x61\x20\x68\x69\x6E\x74\x20\x74\x6F\x67\x67\x6C\x65\x72\x0A\x2F\x2F\x20\x74\x6F\x20\x64\x69\x73\x70\x6C\x61\x79\x20\x6F\x72\x20\x68\x69\x64\x65\x20\x74\x68\x65\x20\x69\x6E\x70\x75\x74\x20\x69\x6E\x66\x6F\x72\x6D\x61\x74\x69\x6F\x6E\x2E\x0A\x2F\x2F\x0A\x2F\x2F\x20\x55\x73\x65\x72\x20\x63\x61\x6E\x20\x73\x65\x74\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x20\x74\x6F\x20\x72\x65\x63\x65\x69\x76\x65\x20\x6E\x65\x77\x20\x76\x61\x6C\x75\x65\x20\x77\x68\x65\x6E\x20\x74\x68\x65\x20\x69\x6E\x70\x75\x74\x20\x76\x61\x6C\x75\x65\x0A\x2F\x2F\x20\x63\x68\x61\x6E\x67\x65\x73\x2E\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6C\x61\x73\x73\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x65\x6C\x65\x63\x74\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72\x28\x6F\x70\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x20\x3D\x20\x6F\x70\x74\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x5F\x6B\x65\x79\x20\x3D\x20\x7B\x7D\x3B\x20\x2F\x2F\x20\x54\x68\x65\x20\x72\x65\x76\x65\x72\x73\x65\x20\x6F\x66\x20\x6F\x70\x74\x69\x6F\x6E\x73\x2E\x6F\x70\x74\x69\x6F\x6E\x73\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x70\x74\x73\x2E\x69\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x69\x64\x20\x3D\x20\x6F\x70\x74\x73\x2E\x69\x64\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x73\x74\x79\x6C\x65\x2E\x70\x61\x64\x64\x69\x6E\x67\x20\x3D\x20\x22\x32\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x4C\x61\x62\x65\x6C\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x70\x74\x73\x2E\x68\x69\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x70\x74\x73\x2E\x68\x69\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x4C\x61\x62\x65\x6C\x28\x77\x72\x61\x70\x70\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x61\x62\x65\x6C\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x41\x42\x45\x4C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6F\x66\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6C\x61\x62\x65\x6C\x20\x3D\x3D\x3D\x20\x22\x73\x74\x72\x69\x6E\x67\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x60\x24\x7B\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6C\x61\x62\x65\x6C\x7D\x20\x60\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6C\x61\x62\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x73\x65\x6C\x65\x63\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x6E\x61\x6D\x65\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6F\x70\x74\x69\x6F\x6E\x73\x29\x2E\x66\x6F\x72\x45\x61\x63\x68\x28\x28\x5B\x6B\x65\x79\x2C\x20\x6F\x70\x74\x69\x6F\x6E\x5D\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x4F\x70\x74\x69\x6F\x6E\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6F\x70\x74\x69\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4F\x70\x74\x69\x6F\x6E\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x6F\x70\x74\x69\x6F\x6E\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4F\x70\x74\x69\x6F\x6E\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x6B\x65\x79\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x70\x74\x69\x6F\x6E\x2E\x73\x65\x6C\x65\x63\x74\x65\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4F\x70\x74\x69\x6F\x6E\x2E\x73\x65\x6C\x65\x63\x74\x65\x64\x20\x3D\x20\x74\x72\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x4F\x70\x74\x69\x6F\x6E\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x5F\x6B\x65\x79\x5B\x6F\x70\x74\x69\x6F\x6E\x2E\x76\x61\x6C\x75\x65\x5D\x20\x3D\x20\x6B\x65\x79\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x64\x69\x73\x61\x62\x6C\x65\x64\x20\x3D\x20\x74\x72\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x65\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x76\x2E\x70\x72\x65\x76\x65\x6E\x74\x44\x65\x66\x61\x75\x6C\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x76\x2E\x73\x74\x6F\x70\x50\x72\x6F\x70\x61\x67\x61\x74\x69\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x49\x6E\x70\x75\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x77\x72\x61\x70\x70\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x73\x70\x61\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x5F\x54\x4F\x47\x47\x4C\x45\x52\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x20\x26\x23\x78\x32\x31\x33\x39\x3B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x6F\x6E\x6D\x6F\x75\x73\x65\x6F\x76\x65\x72\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x73\x74\x79\x6C\x65\x2E\x63\x75\x72\x73\x6F\x72\x20\x3D\x20\x22\x70\x6F\x69\x6E\x74\x65\x72\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x68\x69\x6E\x74\x20\x7C\x7C\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x62\x6C\x6F\x63\x6B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x62\x6F\x72\x64\x65\x72\x52\x61\x64\x69\x75\x73\x20\x3D\x20\x22\x32\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x70\x61\x64\x64\x69\x6E\x67\x20\x3D\x20\x22\x34\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x6D\x61\x72\x67\x69\x6E\x54\x6F\x70\x20\x3D\x20\x22\x32\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x3D\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x62\x6C\x6F\x63\x6B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x49\x6E\x70\x75\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x66\x61\x6C\x73\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x75\x65\x20\x3D\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x20\x21\x3D\x3D\x20\x76\x61\x6C\x75\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6B\x65\x79\x20\x3D\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x5F\x6B\x65\x79\x5B\x76\x61\x6C\x75\x65\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6B\x65\x79\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x28\x6B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x72\x75\x65\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x2F\x2F\x20\x73\x65\x74\x20\x74\x68\x65\x20\x69\x6E\x70\x75\x74\x20\x76\x61\x6C\x75\x65\x2E\x0A\x20\x20\x20\x20\x73\x65\x74\x28\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x76\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"),
}
node.SetMode(420)
- node.SetModTimeUnix(1699681984, 24627367)
+ node.SetModTimeUnix(1706186497, 759740822)
node.SetName("select.js")
node.SetSize(5364)
return node
@@ -478,7 +478,7 @@ func generate__www_wui_input_string_js() *memfs.Node {
Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x54\x52\x49\x4E\x47\x5F\x43\x4C\x41\x53\x53\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x73\x74\x72\x69\x6E\x67\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x54\x52\x49\x4E\x47\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x73\x74\x72\x69\x6E\x67\x5F\x68\x69\x6E\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x54\x52\x49\x4E\x47\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x5F\x54\x4F\x47\x47\x4C\x45\x52\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x73\x74\x72\x69\x6E\x67\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x54\x52\x49\x4E\x47\x5F\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x73\x74\x72\x69\x6E\x67\x5F\x69\x6E\x70\x75\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x54\x52\x49\x4E\x47\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x41\x42\x45\x4C\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x73\x74\x72\x69\x6E\x67\x5F\x6C\x61\x62\x65\x6C\x22\x3B\x0A\x2F\x2F\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x20\x63\x72\x65\x61\x74\x65\x20\x61\x6E\x20\x48\x54\x4D\x4C\x20\x69\x6E\x70\x75\x74\x20\x66\x6F\x72\x20\x73\x74\x72\x69\x6E\x67\x20\x77\x69\x74\x68\x20\x70\x72\x65\x64\x65\x66\x69\x6E\x65\x64\x20\x6F\x70\x74\x69\x6F\x6E\x73\x2E\x0A\x2F\x2F\x20\x54\x68\x65\x20\x72\x65\x71\x75\x69\x72\x65\x64\x20\x6F\x70\x74\x69\x6F\x6E\x73\x20\x61\x72\x65\x20\x22\x6C\x61\x62\x65\x6C\x22\x20\x61\x6E\x64\x20\x22\x76\x61\x6C\x75\x65\x22\x2E\x0A\x2F\x2F\x0A\x2F\x2F\x20\x46\x6F\x72\x6D\x61\x74\x20\x6F\x66\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64\x20\x48\x54\x4D\x4C\x20\x6F\x75\x74\x70\x75\x74\x2C\x0A\x2F\x2F\x0A\x2F\x2F\x09\x3C\x64\x69\x76\x20\x5B\x69\x64\x3D\x24\x7B\x69\x64\x7D\x5D\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x54\x52\x49\x4E\x47\x5F\x43\x4C\x41\x53\x53\x7D\x22\x3E\x0A\x2F\x2F\x09\x09\x3C\x64\x69\x76\x3E\x0A\x2F\x2F\x09\x09\x09\x3C\x6C\x61\x62\x65\x6C\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x54\x52\x49\x4E\x47\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x41\x42\x45\x4C\x7D\x20\x5B\x24\x7B\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x7D\x5D\x22\x3E\x0A\x2F\x2F\x09\x09\x09\x09\x24\x7B\x6C\x61\x62\x65\x6C\x7D\x20\x7C\x20\x48\x54\x4D\x4C\x45\x6C\x65\x6D\x65\x6E\x74\x0A\x2F\x2F\x09\x09\x09\x3C\x2F\x6C\x61\x62\x65\x6C\x3E\x0A\x2F\x2F\x09\x09\x09\x3C\x69\x6E\x70\x75\x74\x0A\x2F\x2F\x09\x09\x09\x09\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x54\x52\x49\x4E\x47\x5F\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x7D\x20\x5B\x24\x7B\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x7D\x5D\x22\x0A\x2F\x2F\x09\x09\x09\x09\x5B\x64\x69\x73\x61\x62\x6C\x65\x64\x3D\x24\x7B\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x7D\x5D\x0A\x2F\x2F\x09\x09\x09\x09\x76\x61\x6C\x75\x65\x3D\x24\x7B\x76\x61\x6C\x75\x65\x7D\x0A\x2F\x2F\x09\x09\x09\x3E\x0A\x2F\x2F\x09\x09\x09\x5B\x3C\x73\x70\x61\x6E\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x54\x52\x49\x4E\x47\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x5F\x54\x4F\x47\x47\x4C\x45\x52\x7D\x22\x3E\x69\x20\x3C\x2F\x73\x70\x61\x6E\x3E\x5D\x0A\x2F\x2F\x09\x09\x3C\x2F\x64\x69\x76\x3E\x0A\x2F\x2F\x09\x09\x5B\x3C\x64\x69\x76\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x54\x52\x49\x4E\x47\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x7D\x22\x3E\x24\x7B\x68\x69\x6E\x74\x7D\x3C\x2F\x64\x69\x76\x3E\x5D\x0A\x2F\x2F\x09\x3C\x2F\x64\x69\x76\x3E\x0A\x2F\x2F\x0A\x2F\x2F\x20\x54\x68\x65\x20\x22\x68\x69\x6E\x74\x22\x20\x6F\x70\x74\x69\x6F\x6E\x20\x69\x73\x20\x6F\x70\x74\x69\x6F\x6E\x61\x6C\x2C\x20\x69\x66\x20\x69\x74\x20\x73\x65\x74\x20\x74\x68\x65\x20\x69\x6E\x70\x75\x74\x20\x77\x69\x6C\x6C\x20\x68\x61\x76\x65\x20\x61\x20\x68\x69\x6E\x74\x20\x74\x6F\x67\x67\x6C\x65\x72\x0A\x2F\x2F\x20\x74\x6F\x20\x64\x69\x73\x70\x6C\x61\x79\x20\x6F\x72\x20\x68\x69\x64\x65\x20\x74\x68\x65\x20\x69\x6E\x70\x75\x74\x20\x69\x6E\x66\x6F\x72\x6D\x61\x74\x69\x6F\x6E\x2E\x0A\x2F\x2F\x0A\x2F\x2F\x20\x55\x73\x65\x72\x20\x63\x61\x6E\x20\x73\x65\x74\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x20\x74\x6F\x20\x72\x65\x63\x65\x69\x76\x65\x20\x6E\x65\x77\x20\x76\x61\x6C\x75\x65\x20\x77\x68\x65\x6E\x20\x74\x68\x65\x20\x69\x6E\x70\x75\x74\x20\x76\x61\x6C\x75\x65\x0A\x2F\x2F\x20\x63\x68\x61\x6E\x67\x65\x73\x2E\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6C\x61\x73\x73\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72\x28\x6F\x70\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x20\x3D\x20\x6F\x70\x74\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x6F\x70\x74\x73\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x70\x74\x73\x2E\x69\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x69\x64\x20\x3D\x20\x6F\x70\x74\x73\x2E\x69\x64\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x54\x52\x49\x4E\x47\x5F\x43\x4C\x41\x53\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x73\x74\x79\x6C\x65\x2E\x70\x61\x64\x64\x69\x6E\x67\x20\x3D\x20\x22\x32\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x4C\x61\x62\x65\x6C\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x70\x74\x73\x2E\x68\x69\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x70\x74\x73\x2E\x68\x69\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x4C\x61\x62\x65\x6C\x28\x77\x72\x61\x70\x70\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x61\x62\x65\x6C\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x54\x52\x49\x4E\x47\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x41\x42\x45\x4C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6F\x66\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6C\x61\x62\x65\x6C\x20\x3D\x3D\x3D\x20\x22\x73\x74\x72\x69\x6E\x67\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x60\x24\x7B\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6C\x61\x62\x65\x6C\x7D\x20\x60\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6C\x61\x62\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x69\x6E\x70\x75\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x54\x52\x49\x4E\x47\x5F\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x22\x22\x20\x2B\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x64\x69\x73\x61\x62\x6C\x65\x64\x20\x3D\x20\x74\x72\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x6F\x6E\x6B\x65\x79\x75\x70\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x20\x21\x3D\x3D\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x76\x61\x6C\x75\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x77\x72\x61\x70\x70\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x73\x70\x61\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x54\x52\x49\x4E\x47\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x5F\x54\x4F\x47\x47\x4C\x45\x52\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x20\x26\x23\x78\x32\x31\x33\x39\x3B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x6F\x6E\x6D\x6F\x75\x73\x65\x6F\x76\x65\x72\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x73\x74\x79\x6C\x65\x2E\x63\x75\x72\x73\x6F\x72\x20\x3D\x20\x22\x70\x6F\x69\x6E\x74\x65\x72\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x54\x52\x49\x4E\x47\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x68\x69\x6E\x74\x20\x7C\x7C\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x62\x6C\x6F\x63\x6B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x62\x6F\x72\x64\x65\x72\x52\x61\x64\x69\x75\x73\x20\x3D\x20\x22\x32\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x70\x61\x64\x64\x69\x6E\x67\x20\x3D\x20\x22\x34\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x6D\x61\x72\x67\x69\x6E\x54\x6F\x70\x20\x3D\x20\x22\x32\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x3D\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x62\x6C\x6F\x63\x6B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x2F\x2F\x20\x73\x65\x74\x20\x74\x68\x65\x20\x69\x6E\x70\x75\x74\x20\x76\x61\x6C\x75\x65\x2E\x0A\x20\x20\x20\x20\x73\x65\x74\x28\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x76\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"),
}
node.SetMode(420)
- node.SetModTimeUnix(1699681984, 11293966)
+ node.SetModTimeUnix(1706186497, 726407296)
node.SetName("string.js")
node.SetSize(4673)
return node
@@ -508,7 +508,7 @@ func generate__www_wui_notif_notif_js() *memfs.Node {
Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x4E\x4F\x54\x49\x46\x5F\x49\x44\x20\x3D\x20\x22\x77\x75\x69\x5F\x6E\x6F\x74\x69\x66\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x4E\x4F\x54\x49\x46\x5F\x43\x4C\x41\x53\x53\x5F\x49\x4E\x46\x4F\x20\x3D\x20\x22\x77\x75\x69\x5F\x6E\x6F\x74\x69\x66\x5F\x69\x6E\x66\x6F\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x4E\x4F\x54\x49\x46\x5F\x43\x4C\x41\x53\x53\x5F\x45\x52\x52\x4F\x52\x20\x3D\x20\x22\x77\x75\x69\x5F\x6E\x6F\x74\x69\x66\x5F\x65\x72\x72\x6F\x72\x22\x3B\x0A\x2F\x2F\x20\x57\x75\x69\x4E\x6F\x74\x69\x66\x20\x69\x6D\x70\x6C\x65\x6D\x65\x6E\x74\x20\x74\x68\x65\x20\x48\x54\x4D\x4C\x20\x69\x6E\x74\x65\x72\x66\x61\x63\x65\x20\x74\x6F\x20\x64\x69\x73\x70\x6C\x61\x79\x20\x70\x6F\x70\x2D\x75\x70\x20\x6E\x6F\x74\x69\x66\x69\x63\x61\x74\x69\x6F\x6E\x2E\x0A\x2F\x2F\x20\x54\x68\x65\x20\x6E\x6F\x74\x69\x66\x69\x63\x61\x74\x69\x6F\x6E\x20\x63\x61\x6E\x20\x62\x65\x20\x74\x72\x69\x67\x67\x65\x72\x65\x64\x20\x62\x79\x20\x63\x61\x6C\x6C\x69\x6E\x67\x20\x6D\x65\x74\x68\x6F\x64\x20\x69\x6E\x66\x6F\x28\x29\x20\x6F\x72\x20\x65\x72\x72\x6F\x72\x28\x29\x2E\x0A\x2F\x2F\x20\x45\x61\x63\x68\x20\x70\x6F\x70\x2D\x75\x70\x20\x68\x61\x73\x20\x35\x20\x73\x65\x63\x6F\x6E\x64\x73\x20\x64\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x61\x66\x74\x65\x72\x20\x74\x68\x61\x74\x20\x74\x68\x65\x79\x20\x77\x69\x6C\x6C\x20\x62\x65\x20\x72\x65\x6D\x6F\x76\x65\x64\x0A\x2F\x2F\x20\x61\x75\x74\x6F\x6D\x61\x74\x69\x63\x61\x6C\x6C\x79\x2E\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6C\x61\x73\x73\x20\x57\x75\x69\x4E\x6F\x74\x69\x66\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x69\x6D\x65\x6F\x75\x74\x20\x3D\x20\x35\x30\x30\x30\x3B\x20\x2F\x2F\x20\x35\x20\x73\x65\x63\x6F\x6E\x64\x73\x20\x74\x69\x6D\x65\x6F\x75\x74\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x69\x64\x20\x3D\x20\x57\x55\x49\x5F\x4E\x4F\x54\x49\x46\x5F\x49\x44\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x62\x6F\x64\x79\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x69\x6E\x69\x74\x53\x74\x79\x6C\x65\x28\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x2F\x2F\x20\x69\x6E\x66\x6F\x20\x73\x68\x6F\x77\x20\x74\x68\x65\x20\x6D\x73\x67\x20\x61\x73\x20\x69\x6E\x66\x6F\x72\x6D\x61\x74\x69\x6F\x6E\x2E\x0A\x20\x20\x20\x20\x69\x6E\x66\x6F\x28\x6D\x73\x67\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x69\x74\x65\x6D\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x65\x6D\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x6D\x73\x67\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x65\x6D\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x4E\x4F\x54\x49\x46\x5F\x43\x4C\x41\x53\x53\x5F\x49\x4E\x46\x4F\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x69\x74\x65\x6D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x54\x69\x6D\x65\x6F\x75\x74\x28\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x72\x65\x6D\x6F\x76\x65\x43\x68\x69\x6C\x64\x28\x69\x74\x65\x6D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x20\x74\x68\x69\x73\x2E\x74\x69\x6D\x65\x6F\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x2F\x2F\x20\x65\x72\x72\x6F\x72\x20\x73\x68\x6F\x77\x20\x74\x68\x65\x20\x6D\x73\x67\x20\x61\x73\x20\x61\x6E\x20\x65\x72\x72\x6F\x72\x2E\x0A\x20\x20\x20\x20\x65\x72\x72\x6F\x72\x28\x6D\x73\x67\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x69\x74\x65\x6D\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x65\x6D\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x6D\x73\x67\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x65\x6D\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x4E\x4F\x54\x49\x46\x5F\x43\x4C\x41\x53\x53\x5F\x45\x52\x52\x4F\x52\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x69\x74\x65\x6D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x54\x69\x6D\x65\x6F\x75\x74\x28\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x72\x65\x6D\x6F\x76\x65\x43\x68\x69\x6C\x64\x28\x69\x74\x65\x6D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x20\x74\x68\x69\x73\x2E\x74\x69\x6D\x65\x6F\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x69\x6E\x69\x74\x53\x74\x79\x6C\x65\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x79\x6C\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x73\x74\x79\x6C\x65\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6C\x65\x2E\x74\x79\x70\x65\x20\x3D\x20\x22\x74\x65\x78\x74\x2F\x63\x73\x73\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6C\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x60\x0A\x09\x09\x09\x23\x24\x7B\x57\x55\x49\x5F\x4E\x4F\x54\x49\x46\x5F\x49\x44\x7D\x20\x7B\x0A\x09\x09\x09\x09\x6C\x65\x66\x74\x3A\x20\x31\x30\x25\x3B\x0A\x09\x09\x09\x09\x70\x6F\x73\x69\x74\x69\x6F\x6E\x3A\x20\x66\x69\x78\x65\x64\x3B\x0A\x09\x09\x09\x09\x74\x6F\x70\x3A\x20\x31\x65\x6D\x3B\x0A\x09\x09\x09\x09\x77\x69\x64\x74\x68\x3A\x20\x38\x30\x25\x3B\x0A\x09\x09\x09\x09\x7A\x2D\x69\x6E\x64\x65\x78\x3A\x20\x31\x30\x30\x30\x30\x3B\x0A\x09\x09\x09\x7D\x0A\x09\x09\x09\x2E\x24\x7B\x57\x55\x49\x5F\x4E\x4F\x54\x49\x46\x5F\x43\x4C\x41\x53\x53\x5F\x49\x4E\x46\x4F\x7D\x20\x7B\x0A\x09\x09\x09\x09\x62\x6F\x72\x64\x65\x72\x3A\x20\x31\x70\x78\x20\x73\x6F\x6C\x69\x64\x20\x73\x69\x6C\x76\x65\x72\x3B\x0A\x09\x09\x09\x09\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x2D\x63\x6F\x6C\x6F\x72\x3A\x20\x68\x6F\x6E\x65\x79\x64\x65\x77\x3B\x0A\x09\x09\x09\x09\x6D\x61\x72\x67\x69\x6E\x2D\x62\x6F\x74\x74\x6F\x6D\x3A\x20\x31\x65\x6D\x3B\x0A\x09\x09\x09\x09\x70\x61\x64\x64\x69\x6E\x67\x3A\x20\x31\x65\x6D\x3B\x0A\x09\x09\x09\x7D\x0A\x09\x09\x09\x2E\x24\x7B\x57\x55\x49\x5F\x4E\x4F\x54\x49\x46\x5F\x43\x4C\x41\x53\x53\x5F\x45\x52\x52\x4F\x52\x7D\x20\x7B\x0A\x09\x09\x09\x09\x62\x6F\x72\x64\x65\x72\x3A\x20\x31\x70\x78\x20\x73\x6F\x6C\x69\x64\x20\x73\x61\x6C\x6D\x6F\x6E\x3B\x0A\x09\x09\x09\x09\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x2D\x63\x6F\x6C\x6F\x72\x3A\x20\x6C\x69\x67\x68\x74\x73\x61\x6C\x6D\x6F\x6E\x3B\x0A\x09\x09\x09\x09\x6D\x61\x72\x67\x69\x6E\x2D\x62\x6F\x74\x74\x6F\x6D\x3A\x20\x31\x65\x6D\x3B\x0A\x09\x09\x09\x09\x70\x61\x64\x64\x69\x6E\x67\x3A\x20\x31\x65\x6D\x3B\x0A\x09\x09\x09\x7D\x0A\x09\x09\x60\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x68\x65\x61\x64\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x73\x74\x79\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"),
}
node.SetMode(420)
- node.SetModTimeUnix(1699681984, 34627419)
+ node.SetModTimeUnix(1706186497, 779740938)
node.SetName("notif.js")
node.SetSize(1975)
return node
diff --git a/run_request.go b/run_request.go
index 2694288..7c426cc 100644
--- a/run_request.go
+++ b/run_request.go
@@ -16,7 +16,7 @@ type RunRequest struct {
Target Target
WebSocketTarget WebSocketTarget
- HttpTarget HttpTarget
+ HTTPTarget HTTPTarget
}
// generateRunRequest merge the run request with original target and HTTP
@@ -25,7 +25,7 @@ func generateRunRequest(
env *Environment,
req *RunRequest,
origTarget *Target,
- origHttpTarget *HttpTarget,
+ origHTTPTarget *HTTPTarget,
) (outrr *RunRequest) {
if req.Target.Opts.Duration > 0 && req.Target.Opts.Duration <= env.MaxAttackDuration {
origTarget.Opts.Duration = req.Target.Opts.Duration
@@ -40,22 +40,22 @@ func generateRunRequest(
if req.Target.Opts.Timeout > 0 && req.Target.Opts.Timeout <= DefaultAttackTimeout {
origTarget.Opts.Timeout = req.Target.Opts.Timeout
}
- if origHttpTarget.IsCustomizable {
- origHttpTarget.Method = req.HttpTarget.Method
- origHttpTarget.Path = req.HttpTarget.Path
- origHttpTarget.RequestType = req.HttpTarget.RequestType
+ if origHTTPTarget.IsCustomizable {
+ origHTTPTarget.Method = req.HTTPTarget.Method
+ origHTTPTarget.Path = req.HTTPTarget.Path
+ origHTTPTarget.RequestType = req.HTTPTarget.RequestType
}
outrr = &RunRequest{
Target: *origTarget,
}
- outrr.HttpTarget.clone(origHttpTarget)
+ outrr.HTTPTarget.clone(origHTTPTarget)
outrr.Target.Vars = req.Target.Vars
- outrr.HttpTarget.Headers = req.HttpTarget.Headers
- outrr.HttpTarget.Params = req.HttpTarget.Params
- outrr.HttpTarget.paramsToPath()
+ outrr.HTTPTarget.Headers = req.HTTPTarget.Headers
+ outrr.HTTPTarget.Params = req.HTTPTarget.Params
+ outrr.HTTPTarget.paramsToPath()
return outrr
}
@@ -94,5 +94,5 @@ func generateWebSocketTarget(
}
func (rr *RunRequest) String() string {
- return fmt.Sprintf("Target:%v HttpTarget:%s\n", rr.Target, rr.HttpTarget.String())
+ return fmt.Sprintf(`Target:%v HTTPTarget:%s`, rr.Target, rr.HTTPTarget.String())
}
diff --git a/run_response.go b/run_response.go
index 9df7671..0586c6e 100644
--- a/run_response.go
+++ b/run_response.go
@@ -25,20 +25,20 @@ type RunResponse struct {
ResponseStatusCode int
}
-// SetHttpRequest dump the HTTP request including body into the DumpRequest
+// SetHTTPRequest dump the HTTP request including body into the DumpRequest
// field.
-func (rres *RunResponse) SetHttpRequest(req *http.Request) (err error) {
+func (rres *RunResponse) SetHTTPRequest(req *http.Request) (err error) {
rres.DumpRequest, err = httputil.DumpRequest(req, true)
if err != nil {
- return fmt.Errorf("SetHttpRequest: %w", err)
+ return fmt.Errorf(`SetHTTPRequest: %w`, err)
}
return nil
}
-// SetHttpResponse dump the HTTP response including body into the DumpResponse
+// SetHTTPResponse dump the HTTP response including body into the DumpResponse
// field.
-func (rres *RunResponse) SetHttpResponse(res *http.Response) (err error) {
- logp := "SetHttpResponse"
+func (rres *RunResponse) SetHTTPResponse(res *http.Response) (err error) {
+ var logp = `SetHTTPResponse`
rres.ResponseStatus = res.Status
rres.ResponseStatusCode = res.StatusCode
diff --git a/target.go b/target.go
index a69ee37..31f76d8 100644
--- a/target.go
+++ b/target.go
@@ -9,10 +9,10 @@ import (
libhttp "github.com/shuLhan/share/lib/http"
)
-// Target contains group of HttpTarget that can be tested by Trunks.
+// Target contains group of HTTPTarget that can be tested by Trunks.
type Target struct {
- // HttpClient that can be used for running HttpTarget.
- HttpClient *libhttp.Client `json:"-"`
+ // HTTPClient that can be used for running HTTPTarget.
+ HTTPClient *libhttp.Client `json:"-"`
Opts *AttackOptions
Vars KeyFormInput
@@ -20,14 +20,14 @@ type Target struct {
ID string
Name string
- // BaseUrl contains the target address that serve the service to
+ // BaseURL contains the target address that serve the service to
// be tested.
// This field is required.
- BaseUrl string
+ BaseURL string
Hint string
- HttpTargets []*HttpTarget
+ HTTPTargets []*HTTPTarget
WebSocketTargets []*WebSocketTarget
}
@@ -35,8 +35,8 @@ func (target *Target) init() (err error) {
if len(target.Name) == 0 {
return fmt.Errorf("Target.Name is empty")
}
- if len(target.BaseUrl) == 0 {
- return fmt.Errorf("Target.BaseUrl is not defined")
+ if len(target.BaseURL) == 0 {
+ return fmt.Errorf("Target.BaseURL is not defined")
}
target.ID = generateID(target.Name)
@@ -51,13 +51,16 @@ func (target *Target) init() (err error) {
target.Vars = KeyFormInput{}
}
- for _, ht := range target.HttpTargets {
+ var ht *HTTPTarget
+ for _, ht = range target.HTTPTargets {
err = ht.init()
if err != nil {
return fmt.Errorf("Target.init %s: %w", target.Name, err)
}
}
- for _, wst := range target.WebSocketTargets {
+
+ var wst *WebSocketTarget
+ for _, wst = range target.WebSocketTargets {
err = wst.init()
if err != nil {
return fmt.Errorf("Target.init %s: %w", target.Name, err)
@@ -67,8 +70,8 @@ func (target *Target) init() (err error) {
return nil
}
-func (target *Target) getHttpTargetByID(id string) *HttpTarget {
- for _, ht := range target.HttpTargets {
+func (target *Target) getHTTPTarget(id string) *HTTPTarget {
+ for _, ht := range target.HTTPTargets {
if ht.ID == id {
return ht
}
diff --git a/trunks.go b/trunks.go
index 9d47808..b90df42 100644
--- a/trunks.go
+++ b/trunks.go
@@ -40,12 +40,6 @@ const (
paramNameName = "name"
)
-// List of HTTP APIs.
-const (
- pathApiAttackHttp = `/_trunks/api/attack/http`
- pathApiAttackResult = `/_trunks/api/attack/result`
-)
-
// Trunks is the HTTP server with web user interface and APIs for running and
// load testing the registered HTTP endpoints.
type Trunks struct {
@@ -79,7 +73,7 @@ func New(env *Environment) (trunks *Trunks, err error) {
errq: make(chan error, 1),
}
- err = trunks.initHttpServer(isDevelopment)
+ err = trunks.initHTTPServer(isDevelopment)
if err != nil {
return nil, fmt.Errorf("%s: %w", logp, err)
}
@@ -87,31 +81,31 @@ func New(env *Environment) (trunks *Trunks, err error) {
return trunks, nil
}
-// AttackHttp start attacking the HTTP target defined in req.
-func (trunks *Trunks) AttackHttp(req *RunRequest) (err error) {
- logp := "AttackHttp"
+// AttackHTTP start attacking the HTTP target defined in req.
+func (trunks *Trunks) AttackHTTP(req *RunRequest) (err error) {
+ var logp = `AttackHTTP`
if trunks.Env.isAttackRunning() {
return errAttackConflict(trunks.Env.getRunningAttack())
}
- origTarget := trunks.getTargetByID(req.Target.ID)
+ var origTarget = trunks.getTargetByID(req.Target.ID)
if origTarget == nil {
return errInvalidTarget(req.Target.ID)
}
- origHttpTarget := origTarget.getHttpTargetByID(req.HttpTarget.ID)
+ var origHTTPTarget = origTarget.getHTTPTarget(req.HTTPTarget.ID)
if origTarget == nil {
- return errInvalidHttpTarget(req.HttpTarget.ID)
+ return errInvalidHTTPTarget(req.HTTPTarget.ID)
}
- if !origHttpTarget.AllowAttack {
+ if !origHTTPTarget.AllowAttack {
return errAttackNotAllowed()
}
- if origHttpTarget.Attack == nil {
+ if origHTTPTarget.Attack == nil {
return fmt.Errorf(`%s: %w`, logp, &errAttackHandlerNotSet)
}
- req = generateRunRequest(trunks.Env, req, origTarget, origHttpTarget)
+ req = generateRunRequest(trunks.Env, req, origTarget, origHTTPTarget)
req.result, err = newAttackResult(trunks.Env, req)
if err != nil {
@@ -121,7 +115,7 @@ func (trunks *Trunks) AttackHttp(req *RunRequest) (err error) {
trunks.attackq <- req
msg := fmt.Sprintf("Attacking %s%s with %d RPS for %s seconds",
- req.Target.BaseUrl, req.HttpTarget.Path,
+ req.Target.BaseURL, req.HTTPTarget.Path,
req.Target.Opts.RatePerSecond, req.Target.Opts.Duration)
mlog.Outf(`%s: %s`, logp, msg)
@@ -129,9 +123,9 @@ func (trunks *Trunks) AttackHttp(req *RunRequest) (err error) {
return nil
}
-// AttackHttpCancel cancel any running attack.
+// AttackHTTPCancel cancel any running attack.
// It will return an error if no attack is running.
-func (trunks *Trunks) AttackHttpCancel() (rr *RunRequest, err error) {
+func (trunks *Trunks) AttackHTTPCancel() (rr *RunRequest, err error) {
rr = trunks.Env.getRunningAttack()
if rr == nil {
e := &liberrors.E{
@@ -179,27 +173,27 @@ func (trunks *Trunks) RegisterTarget(target *Target) (err error) {
return nil
}
-// RunHttp send the HTTP request to the HTTP target defined in RunRequest with
+// RunHTTP send the HTTP request to the HTTP target defined in RunRequest with
// optional Headers and Parameters.
-func (trunks *Trunks) RunHttp(req *RunRequest) (res *RunResponse, err error) {
- origTarget := trunks.getTargetByID(req.Target.ID)
+func (trunks *Trunks) RunHTTP(req *RunRequest) (res *RunResponse, err error) {
+ var origTarget = trunks.getTargetByID(req.Target.ID)
if origTarget == nil {
return nil, errInvalidTarget(req.Target.ID)
}
- origHttpTarget := origTarget.getHttpTargetByID(req.HttpTarget.ID)
- if origHttpTarget == nil {
- return nil, errInvalidHttpTarget(req.HttpTarget.ID)
+ var origHTTPTarget = origTarget.getHTTPTarget(req.HTTPTarget.ID)
+ if origHTTPTarget == nil {
+ return nil, errInvalidHTTPTarget(req.HTTPTarget.ID)
}
- if origHttpTarget.Run == nil {
- req.Target.BaseUrl = origTarget.BaseUrl
+ if origHTTPTarget.Run == nil {
+ req.Target.BaseURL = origTarget.BaseURL
req.Target.Name = origTarget.Name
- req.HttpTarget.ConvertParams = origHttpTarget.ConvertParams
+ req.HTTPTarget.ConvertParams = origHTTPTarget.ConvertParams
res, err = trunks.runHTTPTarget(req)
} else {
- req = generateRunRequest(trunks.Env, req, origTarget, origHttpTarget)
- res, err = req.HttpTarget.Run(req)
+ req = generateRunRequest(trunks.Env, req, origTarget, origHTTPTarget)
+ res, err = req.HTTPTarget.Run(req)
}
if err != nil {
return nil, err
@@ -248,13 +242,17 @@ func (trunks *Trunks) Stop() {
trunks.errq <- nil
}
-func (trunks *Trunks) addHttpAttackResult(rr *RunRequest) (ok bool) {
- for _, target := range trunks.targets {
+func (trunks *Trunks) addHTTPAttackResult(rr *RunRequest) (ok bool) {
+ var (
+ target *Target
+ httpTarget *HTTPTarget
+ )
+ for _, target = range trunks.targets {
if target.ID != rr.Target.ID {
continue
}
- for _, httpTarget := range target.HttpTargets {
- if httpTarget.ID != rr.HttpTarget.ID {
+ for _, httpTarget = range target.HTTPTargets {
+ if httpTarget.ID != rr.HTTPTarget.ID {
continue
}
@@ -284,7 +282,7 @@ func (trunks *Trunks) getTargetByID(id string) *Target {
return nil
}
-func (trunks *Trunks) getAttackResultByName(name string) (t *Target, ht *HttpTarget, result *AttackResult, err error) {
+func (trunks *Trunks) getAttackResultByName(name string) (t *Target, ht *HTTPTarget, result *AttackResult, err error) {
res := &libhttp.EndpointResponse{
E: liberrors.E{
Code: http.StatusNotFound,
@@ -298,7 +296,7 @@ func (trunks *Trunks) getAttackResultByName(name string) (t *Target, ht *HttpTar
return nil, nil, nil, res
}
if ht == nil {
- res.Message = "HttpTarget ID not found"
+ res.Message = `HTTPTarget ID not found`
return nil, nil, nil, res
}
@@ -311,7 +309,7 @@ func (trunks *Trunks) getAttackResultByName(name string) (t *Target, ht *HttpTar
return t, ht, result, nil
}
-func (trunks *Trunks) getTargetByResultFilename(name string) (t *Target, ht *HttpTarget) {
+func (trunks *Trunks) getTargetByResultFilename(name string) (t *Target, ht *HTTPTarget) {
names := strings.Split(name, ".")
t = trunks.getTargetByID(names[0])
@@ -320,41 +318,41 @@ func (trunks *Trunks) getTargetByResultFilename(name string) (t *Target, ht *Htt
}
if len(names) > 0 {
- ht = t.getHttpTargetByID(names[1])
+ ht = t.getHTTPTarget(names[1])
}
return t, ht
}
-// runHTTPTarget default [HttpTarget.Run] handler that generate HTTP request
+// runHTTPTarget default [HTTPTarget.Run] handler that generate HTTP request
// and send it to the target.
func (trunks *Trunks) runHTTPTarget(rr *RunRequest) (res *RunResponse, err error) {
var (
logp = `runHTTPTarget`
- headers = rr.HttpTarget.Headers.ToHttpHeader()
+ headers = rr.HTTPTarget.Headers.ToHTTPHeader()
params interface{}
)
httpcOpts := &libhttp.ClientOptions{
- ServerUrl: rr.Target.BaseUrl,
+ ServerUrl: rr.Target.BaseURL,
AllowInsecure: true,
}
httpc := libhttp.NewClient(httpcOpts)
- rr.HttpTarget.paramsToPath()
+ rr.HTTPTarget.paramsToPath()
- if rr.HttpTarget.ConvertParams == nil {
- switch rr.HttpTarget.RequestType {
+ if rr.HTTPTarget.ConvertParams == nil {
+ switch rr.HTTPTarget.RequestType {
case libhttp.RequestTypeJSON:
- params = rr.HttpTarget.Params.ToJsonObject()
+ params = rr.HTTPTarget.Params.ToJSONObject()
case libhttp.RequestTypeMultipartForm:
- params = rr.HttpTarget.Params.ToMultipartFormData()
+ params = rr.HTTPTarget.Params.ToMultipartFormData()
default:
- params = rr.HttpTarget.Params.ToUrlValues()
+ params = rr.HTTPTarget.Params.ToURLValues()
}
} else {
- params, err = rr.HttpTarget.ConvertParams(&rr.HttpTarget)
+ params, err = rr.HTTPTarget.ConvertParams(&rr.HTTPTarget)
if err != nil {
return nil, fmt.Errorf(`%s: %w`, logp, err)
}
@@ -363,9 +361,9 @@ func (trunks *Trunks) runHTTPTarget(rr *RunRequest) (res *RunResponse, err error
res = &RunResponse{}
httpRequest, err := httpc.GenerateHttpRequest(
- rr.HttpTarget.Method,
- rr.HttpTarget.Path,
- rr.HttpTarget.RequestType,
+ rr.HTTPTarget.Method,
+ rr.HTTPTarget.Path,
+ rr.HTTPTarget.RequestType,
headers,
params,
)
@@ -373,7 +371,7 @@ func (trunks *Trunks) runHTTPTarget(rr *RunRequest) (res *RunResponse, err error
return nil, fmt.Errorf("%s: %w", logp, err)
}
- err = res.SetHttpRequest(httpRequest)
+ err = res.SetHTTPRequest(httpRequest)
if err != nil {
return nil, fmt.Errorf("%s: %w", logp, err)
}
@@ -383,7 +381,7 @@ func (trunks *Trunks) runHTTPTarget(rr *RunRequest) (res *RunResponse, err error
return nil, fmt.Errorf("%s: %w", logp, err)
}
- err = res.SetHttpResponse(httpResponse)
+ err = res.SetHTTPResponse(httpResponse)
if err != nil {
return nil, fmt.Errorf("%s: %w", logp, err)
}
@@ -428,7 +426,7 @@ func (trunks *Trunks) scanResultsDir() {
continue
}
if ht == nil {
- mlog.Outf(`--- %s %d/%d: HttpTarget ID not found for %q`, logp, x+1, len(fis), name)
+ mlog.Outf(`--- %s %d/%d: HTTPTarget ID not found for %q`, logp, x+1, len(fis), name)
continue
}
@@ -439,8 +437,12 @@ func (trunks *Trunks) scanResultsDir() {
mlog.Outf(`--- %s: all pass results has been loaded ...`, logp)
- for _, target := range trunks.targets {
- for _, httpTarget := range target.HttpTargets {
+ var (
+ target *Target
+ httpTarget *HTTPTarget
+ )
+ for _, target = range trunks.targets {
+ for _, httpTarget = range target.HTTPTargets {
httpTarget.sortResults()
}
}
@@ -453,8 +455,8 @@ func (trunks *Trunks) workerAttackQueue() {
var err error
trunks.Env.AttackRunning = rr
- if rr.HttpTarget.PreAttack != nil {
- rr.HttpTarget.PreAttack(rr)
+ if rr.HTTPTarget.PreAttack != nil {
+ rr.HTTPTarget.PreAttack(rr)
}
isCancelled := false
@@ -463,10 +465,10 @@ func (trunks *Trunks) workerAttackQueue() {
)
for res := range attacker.Attack(
- rr.HttpTarget.Attack(rr),
+ rr.HTTPTarget.Attack(rr),
rr.Target.Opts.ratePerSecond,
rr.Target.Opts.Duration,
- rr.HttpTarget.ID,
+ rr.HTTPTarget.ID,
) {
err = rr.result.add(res)
if err != nil {
@@ -500,7 +502,7 @@ func (trunks *Trunks) workerAttackQueue() {
mlog.Errf(`%s %s: %s`, logp, rr.result.Name, err)
}
- trunks.addHttpAttackResult(rr)
+ trunks.addHTTPAttackResult(rr)
mlog.Outf(`%s: %s finished.`, logp, rr.result.Name)
}