~shulhan/awwan

58382401679685e0b8cf31904ec96955223aaf84 — Shulhan 3 months ago 1c7f4c5 main
all: rewrite the web-user interface using TypeScript

In order to minimize error when developing with JavaScript we include
the "wui" project as git submodule under "_www/wui".  The _www/awwan.ts
and _www/main.ts then import all required libraries directly which will
be compiled into single JavaScript under _www/main.js.
16 files changed, 1695 insertions(+), 1103 deletions(-)

A .gitmodules
M Makefile
M README.adoc
A _www/awwan.ts
D _www/editor.js
M _www/index.html
A _www/main.d.ts
A _www/main.js
A _www/main.ts
D _www/notif.js
A _www/require.js
A _www/tsconfig.json
D _www/vfs.js
A _www/wui
M internal/cmd/memfs_www/main.go
M memfs_www.go
A .gitmodules => .gitmodules +3 -0
@@ 0,0 1,3 @@
[submodule "wui"]
	path = _www/wui
	url = git@git.sr.ht:~shulhan/wui

M Makefile => Makefile +4 -2
@@ 6,7 6,7 @@ RELEASE_BINARIES=\
	_bin/awwan-linux-amd64 \
	_bin/awwan-darwin-amd64

.PHONY: all install embed test serve-doc dev-serve release
.PHONY: all install embed test serve-doc serve-dev release

all: embed test lint
	go build ./cmd/awwan


@@ 15,6 15,7 @@ install: embed
	go install ./cmd/awwan

embed:
	tsc --project _www
	go run ./internal/cmd/memfs_www

test:


@@ 27,7 28,8 @@ lint:
serve-doc:
	ciigo serve .

dev-serve:
serve-dev:
	tsc --project _www --watch &
	AWWAN_DEVELOPMENT=1 go run ./cmd/awwan serve _example

##

M README.adoc => README.adoc +14 -0
@@ 501,6 501,20 @@ For request of features and/or bugs report please submitted through web at
https://todo.sr.ht/~shulhan/awwan .


==  DEVELOPMENT

This project require git, GNU make, Go compiler, and TypeScript compiler.

Steps to build from source,

    $ git clone --recurse-submodules git@git.sr.ht:~shulhan/awwan
    $ make

To run development server that watch changes on _www, run

    $ make serve-dev


==  LICENSE

----

A _www/awwan.ts => _www/awwan.ts +339 -0
@@ 0,0 1,339 @@
import { WuiEditor, WuiEditorOptions } from "./wui/editor/editor"
import { WuiNotif } from "./wui/notif/notif"
import { WuiResponseInterface } from "./wui/response"
import {
	WuiVfs,
	WuiVfsOptions,
	WuiVfsNode,
	WuiVfsNodeInterface,
} from "./wui/vfs/vfs"

const ID_BTN_LOCAL = "com_btn_local"
const ID_BTN_REMOTE = "com_btn_remote"
const ID_BTN_SAVE = "com_btn_save"
const ID_VFS_PATH = "vfs_path"
const ID_STDOUT = "stdout"
const ID_STDERR = "stderr"
const MAX_FILE_SIZE = 3000000

interface RequestInterface {
	mode: string
	script: string
	content: string
	begin_at: number
	end_at: number
}

export function renderHtml() {
	let el = document.createElement("div")
	el.classList.add("awwan")
	el.innerHTML = `
			<div class="awwan_nav_left">
				<div id="vfs"></div>
			</div>
			<div class="awwan_content">
				<div class="editor_action">
					File: <span id="${ID_VFS_PATH}">-</span>
					<button id="${ID_BTN_SAVE}">Save</button>
				</div>
				<div id="editor"></div>
				<div class="execute_action">
					Execute script on
					<button id="${ID_BTN_LOCAL}">Local</button>
					or
					<button id="${ID_BTN_REMOTE}">Remote</button>
				</div>
				<p>Hints:</p>
				<ul>
					<li>
						Click and drag on the line numbers to select the specific line to be
						executed.
					</li>
					<li>Press ESC to clear selection.</li>
				</ul>
				<div class="boxheader">Standard output:</div>
				<div id="${ID_STDOUT}"></div>
				<div class="boxheader">Standard error:</div>
				<div id="${ID_STDERR}"></div>
			</div>
		`
	document.body.appendChild(el)
}

export class Awwan {
	private com_btn_local!: HTMLElement
	private com_btn_remote!: HTMLElement
	private com_btn_save!: HTMLElement
	private com_file_path!: HTMLElement
	private com_stdout!: HTMLElement
	private com_stderr!: HTMLElement
	private request: RequestInterface = {
		mode: "local",
		script: "",
		content: "",
		begin_at: 0,
		end_at: 0,
	}
	private wui_editor: WuiEditor
	private wui_notif: WuiNotif
	private wui_vfs: WuiVfs

	constructor() {
		let el = document.getElementById(ID_BTN_LOCAL)
		if (el) {
			this.com_btn_local = el
			this.com_btn_local.onclick = () => { this.execLocal() }
		}
		el = document.getElementById(ID_BTN_REMOTE)
		if (el) {
			this.com_btn_remote = el
			this.com_btn_remote.onclick = () => { this.execRemote() }
		}
		el = document.getElementById(ID_BTN_SAVE)
		if (el) {
			this.com_btn_save = el
			this.com_btn_save.onclick = () => { this.onClickSave() }
		}
		el = document.getElementById(ID_VFS_PATH)
		if (el) {
			this.com_file_path = el
		}
		el = document.getElementById(ID_STDOUT)
		if (el) {
			this.com_stdout = el
		}
		el = document.getElementById(ID_STDERR)
		if (el) {
			this.com_stderr = el
		}

		let editor_opts: WuiEditorOptions = {
			id: "editor",
			is_editable: true,
			OnSelection: (begin_at: number, end_at: number) => {
				this.editorOnSelection(begin_at, end_at)
			},
			OnSave: this.editorOnSave,
		}
		this.wui_editor = new WuiEditor(editor_opts)

		this.wui_notif = new WuiNotif()

		let wui_vfs_opts: WuiVfsOptions = {
			id: "vfs",
			Open: (path: string, is_dir: boolean): Promise<WuiResponseInterface> => {
				return this.Open(path, is_dir)
			},
			OpenNode: (node: WuiVfsNode): Promise<WuiResponseInterface> => {
				return this.OpenNode(node)
			},
		}
		this.wui_vfs = new WuiVfs(wui_vfs_opts)

		window.onhashchange = (ev: Event): any => {
			ev.preventDefault()
			let hashchange = ev as HashChangeEvent
			let url = new URL(hashchange.newURL)
			this.onHashChange(url.hash)
		}

		// Open path based on hash.
		this.onHashChange(window.location.hash)
	}

	onHashChange(hash: string) {
		if (hash === "") {
			hash = "#/"
		}

		hash = hash.substring(1)
		this.wui_vfs.OpenDir(hash)
	}

	// Open fetch the node content from remote server.
	async Open(
		path: string,
		is_dir: boolean,
	): Promise<WuiResponseInterface> {
		let http_res = await fetch("/awwan/api/fs?path=" + path)
		let res = await http_res.json()
		if (res.code != 200) {
			this.wui_notif.Error(
				`Failed to open ${path}: ${res.message}`,
			)
			return res
		}
		if (is_dir) {
			window.location.hash = "#" + path
			return res
		}

		let resAllow = this.isEditAllowed(res.data)
		if (resAllow.code != 200) {
			this.wui_notif.Error(resAllow.message)
			return resAllow
		}

		this.com_file_path.innerText = path
		this.request.script = path
		this.wui_editor.Open(res.data)
		return res
	}

	// OpenNode is an handler that will called when user click on of the
	// item in the list.
	async OpenNode(node: WuiVfsNode): Promise<WuiResponseInterface> {
		let resAllow = this.isEditAllowed(node)
		if (resAllow.code != 200) {
			this.wui_notif.Error(resAllow.message)
			return resAllow
		}

		let res = await this.Open(node.path, node.is_dir)
		return res
	}

	isEditAllowed(node: WuiVfsNode): WuiResponseInterface {
		let res: WuiResponseInterface = {
			code: 412,
			message: "",
		}

		let is_type_allowed = false
		if (
			node.content_type.indexOf("json") >= 0 ||
			node.content_type.indexOf("message") >= 0 ||
			node.content_type.indexOf("script") >= 0 ||
			node.content_type.indexOf("text") >= 0 ||
			node.content_type.indexOf("xml") >= 0
		) {
			is_type_allowed = true
		}
		if (!is_type_allowed) {
			res.message = `The file "${node.name}" with content type "${node.content_type}" is not allowed to be opened`
			return res
		}
		if (node.size > MAX_FILE_SIZE) {
			res.message = `The file "${node.name}" with size ${
				node.size / 1000000
			}MB is greater than maximum ${
				MAX_FILE_SIZE / 1000000
			}MB.`
			return res
		}
		res.code = 200
		return res
	}

	onClickSave() {
		if (this.request.script == "") {
			return
		}
		let content = this.wui_editor.GetContent()
		let l = content.length
		if (l > 0 && content[l - 1] != "\n") {
			content += "\n"
		}
		this.request.content = content
		this.doSaveFile(this.request.script, this.request.content)
	}

	editorOnSave(content: string) {
		this.doSaveFile(this.request.script, content)
	}

	async doSaveFile(path: string, content: string) {
		let req = {
			path: path,
			content: btoa(content),
		}
		let http_res = await fetch("/awwan/api/fs", {
			method: "PUT",
			headers: {
				Accept: "application/json",
				"Content-Type": "application/json",
			},
			body: JSON.stringify(req),
		})
		let res = await http_res.json()
		if (res.code != 200) {
			this.wui_notif.Error(
				`Failed to save file ${path}: ${res.message}`,
			)
			return null
		}

		this.wui_notif.Info(`File ${path} has been saved.`)
		return res
	}

	editorOnSelection(begin: number, end: number) {
		let stmts = this.wui_editor.lines.slice(begin, end + 1)
		for (const stmt of stmts) {
			console.log("stmt:", stmt.x, stmt.text)
		}
	}

	// execLocal request to execute the selected script on local system.
	execLocal() {
		if (this.request.script == "") {
			this.wui_notif.Error(
				`Execute on local: no file selected`,
			)
			return
		}
		this.httpApiExecute("local")
	}

	// execRemote request to execute the selected script on remote system.
	execRemote() {
		if (this.request.script == "") {
			this.wui_notif.Error(
				`Execute on remote: no file selected`,
			)
			return
		}
		this.httpApiExecute("remote")
	}

	async httpApiExecute(mode: string) {
		let selection_range = this.wui_editor.GetSelectionRange()
		if (selection_range.begin_at < 0) {
			this.request.begin_at = 0
		} else {
			this.request.begin_at = selection_range.begin_at + 1
		}
		if (selection_range.end_at < 0) {
			this.request.end_at = 0
		} else {
			this.request.end_at = selection_range.end_at + 1
		}

		this.request.mode = mode
		this.request.content = btoa(this.wui_editor.GetContent())

		let http_res = await fetch("/awwan/api/execute", {
			method: "POST",
			headers: {
				Accept: "application/json",
				"Content-Type": "application/json",
			},
			body: JSON.stringify(this.request),
		})

		let res = await http_res.json()
		if (res.code != 200) {
			this.wui_notif.Error(`Execute failed: ${res.message}`)
			return
		}

		this.com_stdout.innerText = atob(res.data.stdout)
		if (res.data.stderr) {
			this.com_stderr.innerText = atob(res.data.stderr)
		}

		this.wui_notif.Info(
			`Successfully execute ${this.request.script} on ${mode}.`,
		)
	}
}

D _www/editor.js => _www/editor.js +0 -544
@@ 1,544 0,0 @@
"use strict";
// Copyright 2021, Shulhan <ms@kilabit.info>. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
exports.__esModule = true;
exports.WuiEditor = void 0;
var WUI_EDITOR_CLASS = "wui_editor";
var WUI_EDITOR_CLASS_LINE = "wui_editor_line";
var WUI_EDITOR_CLASS_LINE_NUMBER = "wui_editor_line_number";
var WUI_EDITOR_CLASS_LINE_TEXT = "wui_editor_line_text";
var WuiEditor = /** @class */ (function () {
    function WuiEditor(opts) {
        var _this = this;
        this.opts = opts;
        this.active_file = null;
        this.active_text = null;
        this.range_begin = -1;
        this.range_end = -1;
        this.raw_lines = [];
        this.lines = [];
        this.is_key_control = false;
        this.unre = new WuiEditorUndoRedo();
        this.id = opts.id;
        this.is_editable = opts.is_editable;
        var el = document.getElementById(opts.id);
        if (!el) {
            console.error("WuiEditor: element ID not found:", opts.id);
            return;
        }
        this.el = el;
        this.initStyle();
        this.el.classList.add(WUI_EDITOR_CLASS);
        var sel = window.getSelection();
        if (!sel) {
            console.error("WuiEditor: cannot get window selection", opts.id);
            return;
        }
        this.sel = sel;
        this.range = document.createRange();
        document.onkeyup = function (ev) {
            _this.onKeyupDocument(_this, ev);
        };
    }
    // GetContent return content of file.
    WuiEditor.prototype.GetContent = function () {
        var content = "";
        for (var x = 0; x < this.lines.length; x++) {
            if (x > 0) {
                content += "\n";
            }
            content += this.lines[x].el_text.innerText;
        }
        return content;
    };
    WuiEditor.prototype.GetSelectionRange = function () {
        return {
            begin_at: this.range_begin,
            end_at: this.range_end
        };
    };
    WuiEditor.prototype.OnClickText = function (text) {
        var sel = window.getSelection();
        if (sel) {
            this.sel = sel;
        }
    };
    WuiEditor.prototype.OnKeyup = function (x, text, ev) {
        var text_before;
        var text_after;
        var off;
        switch (ev.key) {
            case "Alt":
            case "ArrowDown":
            case "ArrowLeft":
            case "ArrowRight":
            case "ArrowUp":
            case "CapsLock":
            case "ContextMenu":
            case "Delete":
            case "End":
            case "Home":
            case "Insert":
            case "OS":
            case "PageDown":
            case "PageUp":
            case "Pause":
            case "PrintScreen":
            case "ScrollLock":
            case "Shift":
                break;
            case "Backspace":
                ev.preventDefault();
                text_before = this.raw_lines[x];
                var el_text_curr = this.lines[x].el_text;
                text_after = el_text_curr.innerText;
                off = this.sel.focusOffset;
                if (off > 0) {
                    this.unre.DoUpdate(x, text_before, text_after);
                    this.raw_lines[x] = text_after;
                    this.setCaret(el_text_curr, off);
                    return false;
                }
                // Join current line with previous.
                var el_text_prev = this.lines[x - 1].el_text;
                this.unre.DoJoin(x - 1, el_text_prev.innerText, el_text_curr.innerText);
                off = el_text_prev.innerText.length;
                el_text_prev.innerText = el_text_prev.innerText + el_text_curr.innerText;
                this.raw_lines[x - 1] = el_text_prev.innerText;
                // Remove the current line
                this.deleteLine(x);
                this.setCaret(el_text_prev, off);
                return false;
            case "Control":
                this.is_key_control = false;
                break;
            case "Enter":
                ev.preventDefault();
                break;
            case "r":
                if (this.is_key_control) {
                    ev.preventDefault();
                    return;
                }
                break;
            case "z":
                if (this.is_key_control) {
                    ev.preventDefault();
                    return;
                }
                break;
            default:
                if (this.is_key_control) {
                    break;
                }
                this.unre.DoUpdate(x, this.raw_lines[x], this.lines[x].el_text.innerText);
                this.raw_lines[x] = this.lines[x].el_text.innerText;
        }
        return true;
    };
    WuiEditor.prototype.OnKeydownOnLine = function (x, el_text, ev) {
        var text_before;
        var text_after;
        var off;
        switch (ev.key) {
            case "ArrowUp":
                if (x == 0) {
                    return false;
                }
                ev.preventDefault();
                var el_text_1 = this.lines[x - 1].el_text;
                var off_1 = this.sel.focusOffset;
                if (off_1 > el_text_1.innerText.length) {
                    off_1 = el_text_1.innerText.length;
                }
                this.setCaret(el_text_1, off_1);
                if (x == 1) {
                    this.el.scrollTop = 0;
                }
                else if (x * 23 < this.el.scrollTop) {
                    this.el.scrollTop -= 25;
                }
                return false;
            case "ArrowDown":
                if (x == this.lines.length - 1) {
                    return false;
                }
                ev.preventDefault();
                el_text_1 = this.lines[x + 1].el_text;
                off_1 = this.sel.focusOffset;
                if (off_1 > el_text_1.innerText.length) {
                    off_1 = el_text_1.innerText.length;
                }
                this.setCaret(el_text_1, off_1);
                x += 2;
                if (x * 25 >= this.el.clientHeight + this.el.scrollTop) {
                    this.el.scrollTop += 25;
                }
                return false;
            case "Control":
                this.is_key_control = true;
                break;
            case "Enter":
                ev.preventDefault();
                off_1 = this.sel.focusOffset;
                var text = this.lines[x].el_text.innerText;
                text_before = text.slice(0, off_1);
                text_after = text.slice(off_1, text.length);
                this.unre.DoSplit(x, text_before, text_after);
                this.lines[x].el_text.innerText = text_before;
                this.raw_lines[x] = text_before;
                this.insertNewline(x + 1, text_after);
                if (x + 3 >= this.raw_lines.length) {
                    this.el.scrollTop = this.el.scrollHeight;
                }
                break;
            case "Tab":
                ev.preventDefault();
                el_text_1 = this.lines[x].el_text;
                off_1 = this.sel.focusOffset;
                text_before = el_text_1.innerText;
                text_after =
                    text_before.slice(0, off_1) + "\t" + text_before.slice(off_1, text_before.length);
                this.unre.DoUpdate(x, text_before, text_after);
                el_text_1.innerText = text_after;
                this.raw_lines[x] = text_after;
                this.setCaret(el_text_1, off_1 + 1);
                break;
            case "r":
                if (this.is_key_control) {
                    ev.preventDefault();
                    this.doRedo();
                    return;
                }
                break;
            case "s":
                if (this.is_key_control) {
                    ev.preventDefault();
                    ev.stopPropagation();
                    if (this.opts.OnSave) {
                        this.opts.OnSave(this.GetContent());
                    }
                    return false;
                }
                break;
            case "z":
                if (this.is_key_control) {
                    ev.preventDefault();
                    this.doUndo();
                    return;
                }
                break;
        }
    };
    WuiEditor.prototype.OnMouseDownAtLine = function (x) {
        this.range_begin = x;
    };
    WuiEditor.prototype.OnMouseUpAtLine = function (x) {
        this.range_end = x;
        if (this.range_end < this.range_begin) {
            return;
        }
        var y = 0;
        for (; y < this.range_begin; y++) {
            this.el.children[y].setAttribute("style", "");
        }
        for (; y <= this.range_end; y++) {
            this.el.children[y].setAttribute("style", "background-color:lightsalmon");
        }
        for (; y < this.el.children.length; y++) {
            this.el.children[y].setAttribute("style", "");
        }
        if (this.opts.OnSelection) {
            this.opts.OnSelection(this.range_begin, this.range_end);
        }
    };
    //
    // SetEditOff make the content not editable.
    //
    WuiEditor.prototype.SetEditOff = function () {
        for (var x = 0; x < this.lines.length; x++) {
            this.lines[x].SetEditOff();
        }
    };
    //
    // SetEditOn make the content to be editable.
    //
    WuiEditor.prototype.SetEditOn = function () {
        for (var x = 0; x < this.lines.length; x++) {
            this.lines[x].SetEditOn();
        }
    };
    // Open the node for editing.
    // The content MUST be encoded in base64.
    WuiEditor.prototype.Open = function (node) {
        this.active_file = node;
        var content = atob(node.content || "");
        content = content.replace("\r\n", "\n");
        this.raw_lines = content.split("\n");
        this.lines = [];
        for (var x = 0; x < this.raw_lines.length; x++) {
            var line = new WuiEditorLine(x, this.raw_lines[x], this);
            this.lines.push(line);
        }
        this.render();
    };
    WuiEditor.prototype.clearSelection = function () {
        if (this.range_begin < 0 || this.range_end == 0) {
            return;
        }
        for (var x = this.range_begin; x <= this.range_end; x++) {
            this.el.children[x].setAttribute("style", "");
        }
        this.range_begin = -1;
        this.range_end = -1;
    };
    WuiEditor.prototype.initStyle = function () {
        var style = document.createElement("style");
        style.type = "text/css";
        style.innerText = "\n\t\t\t[contenteditable] {\n\t\t\t\toutline: 0px solid transparent;\n\t\t\t}\n\t\t\t." + WUI_EDITOR_CLASS + " {\n\t\t\t\tbackground-color: cornsilk;\n\t\t\t\tfont-family: monospace;\n\t\t\t\toverflow-y: auto;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t\t." + WUI_EDITOR_CLASS_LINE + " {\n\t\t\t\tdisplay: block;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t\t." + WUI_EDITOR_CLASS_LINE_NUMBER + " {\n\t\t\t\tcolor: dimgrey;\n\t\t\t\tcursor: pointer;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tpadding: 4px 10px 4px 4px;\n\t\t\t\ttext-align: right;\n\t\t\t\tuser-select: none;\n\t\t\t\tvertical-align: top;\n\t\t\t\twidth: 30px;\n\t\t\t}\n\t\t\t." + WUI_EDITOR_CLASS_LINE_NUMBER + ":hover {\n\t\t\t\tbackground-color: lightsalmon;\n\t\t\t}\n\t\t\t." + WUI_EDITOR_CLASS_LINE_TEXT + " {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tpadding: 4px;\n\t\t\t\tborder-color: lightblue;\n\t\t\t\tborder-width: 0px;\n\t\t\t\tborder-style: solid;\n\t\t\t\twhite-space: pre-wrap;\n\t\t\t\twidth: calc(100% - 60px);\n\t\t\t}\n\t\t";
        document.head.appendChild(style);
    };
    WuiEditor.prototype.doJoin = function (changes) {
        this.lines[changes.curr_line].el_text.innerText = changes.curr_text;
        this.deleteLine(changes.next_line);
        this.setCaret(this.lines[changes.curr_line].el_text, 0);
    };
    WuiEditor.prototype.doSplit = function (changes) {
        this.lines[changes.curr_line].el_text.innerText = changes.curr_text;
        this.insertNewline(changes.next_line, changes.next_text);
    };
    WuiEditor.prototype.doUpdate = function (changes) {
        this.lines[changes.curr_line].el_text.innerText = changes.curr_text;
        this.setCaret(this.lines[changes.curr_line].el_text, 0);
    };
    WuiEditor.prototype.doRedo = function () {
        var act = this.unre.Redo();
        if (!act) {
            return;
        }
        switch (act.kind) {
            case "join":
                this.doJoin(act.after);
                break;
            case "split":
                this.doSplit(act.after);
                break;
            case "update":
                this.doUpdate(act.after);
                break;
        }
    };
    WuiEditor.prototype.doUndo = function () {
        var act = this.unre.Undo();
        if (!act) {
            return;
        }
        switch (act.kind) {
            case "join":
                this.doSplit(act.before);
                break;
            case "split":
                this.doJoin(act.before);
                break;
            case "update":
                this.doUpdate(act.before);
                break;
        }
    };
    WuiEditor.prototype.deleteLine = function (x) {
        this.lines.splice(x, 1);
        this.raw_lines.splice(x, 1);
        // Reset the line numbers.
        for (; x < this.lines.length; x++) {
            this.lines[x].SetNumber(x);
        }
        this.render();
    };
    WuiEditor.prototype.insertNewline = function (x, text) {
        var newline = new WuiEditorLine(x, text, this);
        for (var y = x; y < this.lines.length; y++) {
            this.lines[y].SetNumber(y + 1);
        }
        this.lines.splice(x, 0, newline);
        this.raw_lines.splice(x, 0, text);
        this.render();
        this.setCaret(newline.el_text, 0);
    };
    WuiEditor.prototype.onKeyupDocument = function (ed, ev) {
        switch (ev.key) {
            case "Escape":
                ev.preventDefault();
                ed.clearSelection();
                break;
        }
        return true;
    };
    WuiEditor.prototype.render = function () {
        this.el.innerHTML = "";
        for (var _i = 0, _a = this.lines; _i < _a.length; _i++) {
            var line = _a[_i];
            this.el.appendChild(line.el);
        }
    };
    WuiEditor.prototype.setCaret = function (el_text, off) {
        if (el_text.firstChild) {
            this.range.setStart(el_text.firstChild, off);
        }
        else {
            this.range.setStart(el_text, off);
        }
        this.range.collapse(true);
        this.sel.removeAllRanges();
        this.sel.addRange(this.range);
    };
    return WuiEditor;
}());
exports.WuiEditor = WuiEditor;
var WuiEditorLine = /** @class */ (function () {
    function WuiEditorLine(x, text, ed) {
        var _this = this;
        this.x = x;
        this.text = text;
        this.line_num = 0;
        this.line_num = x;
        this.el = document.createElement("div");
        this.el.classList.add(WUI_EDITOR_CLASS_LINE);
        this.el_number = document.createElement("span");
        this.el_number.classList.add(WUI_EDITOR_CLASS_LINE_NUMBER);
        this.el_number.innerText = this.line_num + 1 + "";
        this.el_number.onmousedown = function (ev) {
            ed.OnMouseDownAtLine(_this.line_num);
        };
        this.el_number.onmouseup = function (ev) {
            ed.OnMouseUpAtLine(_this.line_num);
        };
        this.el_text = document.createElement("span");
        this.el_text.classList.add(WUI_EDITOR_CLASS_LINE_TEXT);
        this.el_text.innerText = text;
        this.el_text.contentEditable = "true";
        this.el_text.onclick = function (ev) {
            ed.OnClickText(_this.el_text);
        };
        this.el_text.onkeydown = function (ev) {
            return ed.OnKeydownOnLine(_this.line_num, _this.el_text, ev);
        };
        this.el_text.onkeyup = function (ev) {
            return ed.OnKeyup(_this.line_num, _this.el_text, ev);
        };
        this.el_text.addEventListener("paste", function (ev) {
            if (!ev.clipboardData) {
                return;
            }
            ev.preventDefault();
            var text = ev.clipboardData.getData("text/plain");
            document.execCommand("insertHTML", false, text);
        });
        this.el.appendChild(this.el_number);
        this.el.appendChild(this.el_text);
    }
    WuiEditorLine.prototype.SetNumber = function (x) {
        this.line_num = x;
        this.el_number.innerText = x + 1 + "";
    };
    WuiEditorLine.prototype.SetEditOn = function () {
        this.el_text.contentEditable = "true";
    };
    WuiEditorLine.prototype.SetEditOff = function () {
        this.el_text.contentEditable = "false";
    };
    return WuiEditorLine;
}());
//
// WuiEditorUndoRedo store the state of actions.
//
var WuiEditorUndoRedo = /** @class */ (function () {
    function WuiEditorUndoRedo() {
        this.idx = 0;
        this.actions = [];
    }
    WuiEditorUndoRedo.prototype.DoJoin = function (prevLine, prevText, curr_text) {
        var curr_line = prevLine + 1;
        var action = {
            kind: "join",
            before: {
                curr_line: prevLine,
                curr_text: prevText,
                next_line: prevLine + 1,
                next_text: curr_text
            },
            after: {
                curr_line: prevLine,
                curr_text: prevText + curr_text,
                next_line: prevLine + 1,
                next_text: ""
            }
        };
        if (this.actions.length > 0) {
            this.actions = this.actions.slice(0, this.idx);
        }
        this.actions.push(action);
        this.idx++;
    };
    WuiEditorUndoRedo.prototype.DoSplit = function (curr_line, curr_text, next_text) {
        var action = {
            kind: "split",
            before: {
                curr_line: curr_line,
                curr_text: curr_text + next_text,
                next_line: curr_line + 1,
                next_text: ""
            },
            after: {
                curr_line: curr_line,
                curr_text: curr_text,
                next_line: curr_line + 1,
                next_text: next_text
            }
        };
        if (this.actions.length > 0) {
            this.actions = this.actions.slice(0, this.idx);
        }
        this.actions.push(action);
        this.idx++;
    };
    WuiEditorUndoRedo.prototype.DoUpdate = function (line_num, text_before, text_after) {
        var action = {
            kind: "update",
            before: {
                curr_line: line_num,
                curr_text: text_before,
                next_line: 0,
                next_text: ""
            },
            after: {
                curr_line: line_num,
                curr_text: text_after,
                next_line: 0,
                next_text: ""
            }
        };
        if (this.actions.length > 0) {
            this.actions = this.actions.slice(0, this.idx);
        }
        this.actions.push(action);
        this.idx++;
    };
    WuiEditorUndoRedo.prototype.Undo = function () {
        if (this.idx == 0) {
            return null;
        }
        this.idx--;
        return this.actions[this.idx];
    };
    WuiEditorUndoRedo.prototype.Redo = function () {
        if (this.idx == this.actions.length) {
            return null;
        }
        var action = this.actions[this.idx];
        this.idx++;
        return action;
    };
    return WuiEditorUndoRedo;
}());
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxrRUFBa0U7QUFDbEUseUVBQXlFO0FBQ3pFLDZCQUE2Qjs7O0FBRTdCLElBQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFBO0FBQ3JDLElBQU0scUJBQXFCLEdBQUcsaUJBQWlCLENBQUE7QUFDL0MsSUFBTSw0QkFBNEIsR0FBRyx3QkFBd0IsQ0FBQTtBQUM3RCxJQUFNLDBCQUEwQixHQUFHLHNCQUFzQixDQUFBO0FBZ0J6RDtJQWVDLG1CQUFtQixJQUFzQjtRQUF6QyxpQkEwQkM7UUExQmtCLFNBQUksR0FBSixJQUFJLENBQWtCO1FBVmpDLGdCQUFXLEdBQStCLElBQUksQ0FBQTtRQUM5QyxnQkFBVyxHQUF1QixJQUFJLENBQUE7UUFDdEMsZ0JBQVcsR0FBVyxDQUFDLENBQUMsQ0FBQTtRQUN4QixjQUFTLEdBQVcsQ0FBQyxDQUFDLENBQUE7UUFDdEIsY0FBUyxHQUFhLEVBQUUsQ0FBQTtRQUN4QixVQUFLLEdBQW9CLEVBQUUsQ0FBQTtRQUUzQixtQkFBYyxHQUFZLEtBQUssQ0FBQTtRQUMvQixTQUFJLEdBQXNCLElBQUksaUJBQWlCLEVBQUUsQ0FBQTtRQUd4RCxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUE7UUFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFBO1FBRW5DLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ3pDLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDUixPQUFPLENBQUMsS0FBSyxDQUFDLGtDQUFrQyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUMxRCxPQUFNO1NBQ047UUFDRCxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQTtRQUVaLElBQUksQ0FBQyxTQUFTLEVBQUUs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
\ No newline at end of file

M _www/index.html => _www/index.html +2 -261
@@ 72,267 72,8 @@
				}
			}
		</style>
		<script data-main="main" src="/require.js"></script>
	</head>
	<body onload="main()">
		<div class="awwan">
			<div class="awwan_nav_left">
				<div id="vfs"></div>
			</div>
			<div class="awwan_content">
				<div class="editor_action">
					File: <span id="vfs_path">-</span>
					<button onclick="onClickSave()">Save</button>
				</div>
				<div id="editor"></div>
				<div class="execute_action">
					Execute script on
					<button onclick="execLocal()">Local</button>
					or
					<button onclick="execRemote()">Remote</button>
				</div>
				<p>Hints:</p>
				<ul>
					<li>
						Click and drag on the line numbers to select the specific line to be
						executed.
					</li>
					<li>Press ESC to clear selection.</li>
				</ul>
				<div class="boxheader">Standard output:</div>
				<div id="stdout"></div>
				<div class="boxheader">Standard error:</div>
				<div id="stderr"></div>
			</div>
		</div>
		<script>
			var MAX_FILE_SIZE = 3000000
			var exports = {}
			var com_file_path = document.getElementById("vfs_path")
			var com_stdout
			var com_stderr
			var request = {
				script: "",
				content: "",
				begin_at: 0,
				end_at: 0,
			}
			var wui_editor
			var wui_notif
			var wui_vfs
		</script>
		<script src="/editor.js"></script>
		<script src="/notif.js"></script>
		<script src="/vfs.js"></script>
		<script>
			function main() {
				let editor_opts = {
					id: "editor",
					is_editable: true,
					OnSelection: editorOnSelection,
					OnSave: editorOnSave,
				}
				wui_editor = new WuiEditor(editor_opts)

				wui_notif = new WuiNotif()

				let wui_vfs_opts = {
					id: "vfs",
					Open: Open,
					OpenNode: OpenNode,
				}
				wui_vfs = new WuiVfs(wui_vfs_opts)

				com_stdout = document.getElementById("stdout")
				com_stderr = document.getElementById("stderr")

				window.onhashchange = function (ev) {
					ev.preventDefault()
					let url = new URL(ev.newURL)
					onHashChange(url.hash)
				}

				// Open path based on hash.
				onHashChange(window.location.hash)
			}

			function onHashChange(hash) {
				if (hash === "") {
					hash = "#/"
				}

				hash = hash.substring(1)
				wui_vfs.OpenDir(hash)
			}

			// Open fetch the node content from remote server.
			async function Open(path, is_dir) {
				let http_res = await fetch("/awwan/api/fs?path=" + path)
				let res = await http_res.json()
				if (res.code != 200) {
					wui_notif.Error(`Failed to open ${path}: ${res.message}`)
					return res
				}
				if (is_dir) {
					window.location.hash = "#" + path
					return res
				}

				let resAllow = isEditAllowed(res.data)
				if (resAllow.code != 200) {
					wui_notif.Error(resAllow.message)
					return resAllow
				}

				com_file_path.innerText = path
				request.script = path
				wui_editor.Open(res.data)
				return res
			}

			// OpenNode is an handler that will called when user click on of the
			// item in the list.
			async function OpenNode(node) {
				let resAllow = isEditAllowed(node)
				if (resAllow.code != 200) {
					wui_notif.Error(resAllow.message)
					return resAllow
				}

				return await Open(node.path, node.is_dir)
			}

			function isEditAllowed(node) {
				let res = {
					code: 412,
				}

				let is_type_allowed = false
				if (
					node.content_type.includes("json") ||
					node.content_type.includes("message") ||
					node.content_type.includes("script") ||
					node.content_type.includes("text") ||
					node.content_type.includes("xml")
				) {
					is_type_allowed = true
				}
				if (!is_type_allowed) {
					res.message = `The file "${node.name}" with content type "${node.content_type}" is not allowed to be opened`
					return res
				}
				if (node.size > MAX_FILE_SIZE) {
					res.message = `The file "${node.name}" with size ${
						node.size / 1000000
					}MB is greater than maximum ${MAX_FILE_SIZE / 1000000}MB.`
					return res
				}
				res.code = 200
				return res
			}

			function onClickSave() {
				if (request.script == "") {
					return
				}
				let content = wui_editor.GetContent()
				let l = content.length
				if (l > 0 && content[l - 1] != "\n") {
					content += "\n"
				}
				request.content = content
				doSaveFile(request.script, request.content)
			}

			function editorOnSave(content) {
				doSaveFile(request.script, content)
			}

			async function doSaveFile(path, content) {
				let req = {
					path: path,
					content: btoa(content),
				}
				let http_res = await fetch("/awwan/api/fs", {
					method: "PUT",
					headers: {
						Accept: "application/json",
						"Content-Type": "application/json",
					},
					body: JSON.stringify(req),
				})
				let res = await http_res.json()
				if (res.code != 200) {
					wui_notif.Error(`Failed to save file ${path}: ${res.message}`)
					return null
				}

				wui_notif.Info(`File ${path} has been saved.`)
				return res
			}

			function editorOnSelection(begin, end) {
				let stmts = wui_editor.lines.slice(begin, end + 1)
				for (const stmt of stmts) {
					console.log("stmt:", stmt.x, stmt.text)
				}
			}

			// execLocal request to execute the selected script on local system.
			function execLocal() {
				if (request.script == "") {
					wui_notif.Error(`Execute on local: no file selected`)
					return
				}
				httpApiExecute("local")
			}

			// execRemote request to execute the selected script on remote system.
			function execRemote() {
				if (request.script == "") {
					wui_notif.Error(`Execute on remote: no file selected`)
					return
				}
				httpApiExecute("remote")
			}

			async function httpApiExecute(mode) {
				let selection_range = wui_editor.GetSelectionRange()
				if (selection_range.begin_at < 0) {
					request.begin_at = 0
				} else {
					request.begin_at = selection_range.begin_at + 1
				}
				if (selection_range.end_at < 0) {
					request.end_at = 0
				} else {
					request.end_at = selection_range.end_at + 1
				}

				request.mode = mode
				request.content = btoa(wui_editor.GetContent())

				let http_res = await fetch("/awwan/api/execute", {
					method: "POST",
					headers: {
						Accept: "application/json",
						"Content-Type": "application/json",
					},
					body: JSON.stringify(request),
				})

				let res = await http_res.json()
				if (res.code != 200) {
					wui_notif.Error(`Execute failed: ${res.message}`)
					return
				}

				com_stdout.innerText = atob(res.data.stdout)
				if (res.data.stderr) {
					com_stderr.innerText = atob(res.data.stderr)
				}

				wui_notif.Info(`Successfully execute ${request.script} on ${mode}.`)
			}
		</script>
	<body>
	</body>
</html>

A _www/main.d.ts => _www/main.d.ts +150 -0
@@ 0,0 1,150 @@
declare module "wui/response" {
    export interface WuiResponseInterface {
        code: number;
        message: string;
        data?: any;
    }
}
declare module "wui/vfs/vfs" {
    import { WuiResponseInterface } from "wui/response";
    export interface WuiVfsNodeInterface {
        name: string;
        path: string;
        is_dir?: boolean;
        content_type?: string;
        mod_time?: number;
        size?: number;
        mode?: string;
        childs?: WuiVfsNodeInterface[];
        content?: string;
    }
    export interface WuiVfsOptions {
        id: string;
        Open(path: string, is_dir: boolean): Promise<WuiResponseInterface>;
        OpenNode(node: WuiVfsNode): Promise<WuiResponseInterface>;
    }
    export class WuiVfs {
        opts: WuiVfsOptions;
        private el;
        private com_path;
        private com_list;
        constructor(opts: WuiVfsOptions);
        OpenNode(node: WuiVfsNode): void;
        OpenDir(path: string): Promise<void>;
    }
    export class WuiVfsNode implements WuiVfsNodeInterface {
        path: string;
        name: string;
        content_type: string;
        mod_time: number;
        size: number;
        mode: string;
        is_dir: boolean;
        childs: WuiVfsNode[];
        constructor(opts: WuiVfsNodeInterface);
    }
}
declare module "wui/editor/editor" {
    import { WuiVfsNodeInterface } from "wui/vfs/vfs";
    export interface WuiEditorOptions {
        id: string;
        is_editable: boolean;
        OnSelection(begin: number, end: number): void;
        OnSave(content: string): void;
    }
    export class WuiEditor {
        opts: WuiEditorOptions;
        id: string;
        is_editable: boolean;
        lines: WuiEditorLine[];
        private el;
        private sel;
        private active_file;
        private active_text;
        private range_begin;
        private range_end;
        private raw_lines;
        private range;
        private is_key_control;
        private unre;
        constructor(opts: WuiEditorOptions);
        GetContent(): string;
        GetSelectionRange(): WuiEditorSelectionRangeInterface;
        OnClickText(text: HTMLElement): void;
        OnKeyup(x: number, text: HTMLElement, ev: KeyboardEvent): boolean | undefined;
        OnKeydownOnLine(x: number, el_text: HTMLElement, ev: KeyboardEvent): false | undefined;
        OnMouseDownAtLine(x: number): void;
        OnMouseUpAtLine(x: number): void;
        SetEditOff(): void;
        SetEditOn(): void;
        Open(node: WuiVfsNodeInterface): void;
        private clearSelection;
        private initStyle;
        private doJoin;
        private doSplit;
        private doUpdate;
        private doRedo;
        private doUndo;
        private deleteLine;
        private insertNewline;
        private onKeyupDocument;
        private render;
        private setCaret;
    }
    class WuiEditorLine {
        x: number;
        text: string;
        private line_num;
        el: HTMLElement;
        el_number: HTMLElement;
        el_text: HTMLElement;
        constructor(x: number, text: string, ed: WuiEditor);
        SetNumber(x: number): void;
        SetEditOn(): void;
        SetEditOff(): void;
    }
    interface WuiEditorSelectionRangeInterface {
        begin_at: number;
        end_at: number;
    }
}
declare module "wui/notif/notif" {
    export class WuiNotif {
        private el;
        private timeout;
        constructor();
        Info(msg: string): void;
        Error(msg: string): void;
        private initStyle;
    }
}
declare module "awwan" {
    import { WuiResponseInterface } from "wui/response";
    import { WuiVfsNode } from "wui/vfs/vfs";
    export function renderHtml(): void;
    export class Awwan {
        private com_btn_local;
        private com_btn_remote;
        private com_btn_save;
        private com_file_path;
        private com_stdout;
        private com_stderr;
        private request;
        private wui_editor;
        private wui_notif;
        private wui_vfs;
        constructor();
        onHashChange(hash: string): void;
        Open(path: string, is_dir: boolean): Promise<WuiResponseInterface>;
        OpenNode(node: WuiVfsNode): Promise<WuiResponseInterface>;
        isEditAllowed(node: WuiVfsNode): WuiResponseInterface;
        onClickSave(): void;
        editorOnSave(content: string): void;
        doSaveFile(path: string, content: string): Promise<any>;
        editorOnSelection(begin: number, end: number): void;
        execLocal(): void;
        execRemote(): void;
        httpApiExecute(mode: string): Promise<void>;
    }
}
declare module "main" { }

A _www/main.js => _www/main.js +1119 -0
@@ 0,0 1,1119 @@
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
var __generator = (this && this.__generator) || function (thisArg, body) {
    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
    function verb(n) { return function (v) { return step([n, v]); }; }
    function step(op) {
        if (f) throw new TypeError("Generator is already executing.");
        while (_) try {
            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
            if (y = 0, t) op = [op[0] & 2, t.value];
            switch (op[0]) {
                case 0: case 1: t = op; break;
                case 4: _.label++; return { value: op[1], done: false };
                case 5: _.label++; y = op[1]; op = [0]; continue;
                case 7: op = _.ops.pop(); _.trys.pop(); continue;
                default:
                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
                    if (t[2]) _.ops.pop();
                    _.trys.pop(); continue;
            }
            op = body.call(thisArg, _);
        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
    }
};
define("wui/response", ["require", "exports"], function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
});
// Copyright 2021, Shulhan <ms@kilabit.info>. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
define("wui/vfs/vfs", ["require", "exports"], function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.WuiVfsNode = exports.WuiVfs = void 0;
    var WuiVfs = /** @class */ (function () {
        function WuiVfs(opts) {
            var _this = this;
            this.opts = opts;
            this.opts = opts;
            var el = document.getElementById(opts.id);
            if (!el) {
                console.error("WuiVfs: element id", opts.id, "not found");
                return;
            }
            this.el = el;
            this.com_path = new WuiVfsPath(function (path) {
                _this.OpenDir(path);
            });
            this.el.appendChild(this.com_path.el);
            this.com_list = new WuiVfsList(function (node) {
                _this.OpenNode(node);
            });
            this.el.appendChild(this.com_list.el);
        }
        // OpenNode is a handler that will be called when a node is clicked
        // inside the WuiVfsList.
        WuiVfs.prototype.OpenNode = function (node) {
            if (node.is_dir) {
                this.OpenDir(node.path);
            }
            else {
                this.opts.OpenNode(node);
            }
        };
        // OpenDir is a handler that will be called when a path is clicked
        // inside the WuiVfsPath.
        WuiVfs.prototype.OpenDir = function (path) {
            return __awaiter(this, void 0, void 0, function () {
                var res, node;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0: return [4 /*yield*/, this.opts.Open(path, true)];
                        case 1:
                            res = _a.sent();
                            if (res.code != 200) {
                                return [2 /*return*/];
                            }
                            node = new WuiVfsNode(res.data);
                            this.com_path.Open(node);
                            this.com_list.Open(node);
                            return [2 /*return*/];
                    }
                });
            });
        };
        return WuiVfs;
    }());
    exports.WuiVfs = WuiVfs;
    var WuiVfsNode = /** @class */ (function () {
        function WuiVfsNode(opts) {
            this.path = opts.path || "";
            this.name = opts.name || "";
            this.content_type = opts.content_type || "";
            this.mod_time = opts.mod_time || 0;
            this.size = opts.size || 0;
            this.mode = opts.mode || "";
            this.is_dir = opts.is_dir || false;
            this.childs = [];
            if (opts.childs) {
                for (var _i = 0, _a = opts.childs; _i < _a.length; _i++) {
                    var c = _a[_i];
                    this.childs.push(new WuiVfsNode(c));
                }
            }
        }
        return WuiVfsNode;
    }());
    exports.WuiVfsNode = WuiVfsNode;
    var WuiVfsList = /** @class */ (function () {
        function WuiVfsList(onClick) {
            this.onClick = onClick;
            this.el = document.createElement("div");
            this.el.style.borderWidth = "1px";
            this.el.style.borderStyle = "solid";
            this.el.style.borderColor = "silver";
        }
        WuiVfsList.prototype.Open = function (node) {
            var _this = this;
            this.el.innerHTML = "";
            var _loop_1 = function (c) {
                var el = document.createElement("div");
                el.style.padding = "1em";
                el.style.cursor = "pointer";
                el.innerHTML = c.name;
                if (c.is_dir) {
                    el.style.backgroundColor = "cornsilk";
                }
                el.onclick = function (ev) {
                    _this.onClick(c);
                };
                el.onmouseout = function (event) {
                    if (c.is_dir) {
                        el.style.backgroundColor = "cornsilk";
                    }
                    else {
                        el.style.backgroundColor = "white";
                    }
                };
                el.onmouseover = function (event) {
                    el.style.backgroundColor = "aliceblue";
                };
                this_1.el.appendChild(el);
            };
            var this_1 = this;
            for (var _i = 0, _a = node.childs; _i < _a.length; _i++) {
                var c = _a[_i];
                _loop_1(c);
            }
        };
        return WuiVfsList;
    }());
    var WuiVfsPath = /** @class */ (function () {
        function WuiVfsPath(onClick) {
            this.el = document.createElement("div");
            this.el.style.borderWidth = "1px";
            this.el.style.borderStyle = "solid";
            this.el.style.borderColor = "silver";
            this.crumbs = [];
            this.onClick = onClick;
        }
        WuiVfsPath.prototype.Open = function (node) {
            var _this = this;
            this.el.innerHTML = "";
            this.crumbs = [];
            var paths = [];
            if (node.path == "/") {
                paths.push(node.path);
            }
            else {
                paths = node.path.split("/");
            }
            var _loop_2 = function (x) {
                var full_path = "";
                var p = "";
                if (x == 0) {
                    p = "/";
                    full_path = "/";
                }
                else {
                    p = paths[x];
                    full_path = paths.slice(0, x + 1).join("/");
                }
                var crumb = document.createElement("span");
                crumb.style.display = "inline-block";
                crumb.style.padding = "1em";
                crumb.style.cursor = "pointer";
                crumb.innerHTML = p;
                crumb.onclick = function (event) {
                    _this.onClick(full_path);
                };
                crumb.onmouseout = function (event) {
                    crumb.style.backgroundColor = "white";
                };
                crumb.onmouseover = function (event) {
                    crumb.style.backgroundColor = "aliceblue";
                };
                this_2.el.appendChild(crumb);
            };
            var this_2 = this;
            for (var x = 0; x < paths.length; x++) {
                _loop_2(x);
            }
        };
        return WuiVfsPath;
    }());
});
// Copyright 2021, Shulhan <ms@kilabit.info>. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
define("wui/editor/editor", ["require", "exports"], function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.WuiEditor = void 0;
    var WUI_EDITOR_CLASS = "wui_editor";
    var WUI_EDITOR_CLASS_LINE = "wui_editor_line";
    var WUI_EDITOR_CLASS_LINE_NUMBER = "wui_editor_line_number";
    var WUI_EDITOR_CLASS_LINE_TEXT = "wui_editor_line_text";
    var WuiEditor = /** @class */ (function () {
        function WuiEditor(opts) {
            var _this = this;
            this.opts = opts;
            this.lines = [];
            this.active_file = null;
            this.active_text = null;
            this.range_begin = -1;
            this.range_end = -1;
            this.raw_lines = [];
            this.is_key_control = false;
            this.unre = new WuiEditorUndoRedo();
            this.id = opts.id;
            this.is_editable = opts.is_editable;
            var el = document.getElementById(opts.id);
            if (!el) {
                console.error("WuiEditor: element ID not found:", opts.id);
                return;
            }
            this.el = el;
            this.initStyle();
            this.el.classList.add(WUI_EDITOR_CLASS);
            var sel = window.getSelection();
            if (!sel) {
                console.error("WuiEditor: cannot get window selection", opts.id);
                return;
            }
            this.sel = sel;
            this.range = document.createRange();
            document.onkeyup = function (ev) {
                _this.onKeyupDocument(_this, ev);
            };
        }
        // GetContent return content of file.
        WuiEditor.prototype.GetContent = function () {
            var content = "";
            for (var x = 0; x < this.lines.length; x++) {
                if (x > 0) {
                    content += "\n";
                }
                content += this.lines[x].el_text.innerText;
            }
            return content;
        };
        WuiEditor.prototype.GetSelectionRange = function () {
            return {
                begin_at: this.range_begin,
                end_at: this.range_end,
            };
        };
        WuiEditor.prototype.OnClickText = function (text) {
            var sel = window.getSelection();
            if (sel) {
                this.sel = sel;
            }
        };
        WuiEditor.prototype.OnKeyup = function (x, text, ev) {
            var text_before;
            var text_after;
            var off;
            switch (ev.key) {
                case "Alt":
                case "ArrowDown":
                case "ArrowLeft":
                case "ArrowRight":
                case "ArrowUp":
                case "CapsLock":
                case "ContextMenu":
                case "Delete":
                case "End":
                case "Home":
                case "Insert":
                case "OS":
                case "PageDown":
                case "PageUp":
                case "Pause":
                case "PrintScreen":
                case "ScrollLock":
                case "Shift":
                    break;
                case "Backspace":
                    ev.preventDefault();
                    text_before = this.raw_lines[x];
                    var el_text_curr = this.lines[x].el_text;
                    text_after = el_text_curr.innerText;
                    off = this.sel.focusOffset;
                    if (off > 0) {
                        this.unre.DoUpdate(x, text_before, text_after);
                        this.raw_lines[x] = text_after;
                        this.setCaret(el_text_curr, off);
                        return false;
                    }
                    // Join current line with previous.
                    var el_text_prev = this.lines[x - 1].el_text;
                    this.unre.DoJoin(x - 1, el_text_prev.innerText, el_text_curr.innerText);
                    off = el_text_prev.innerText.length;
                    el_text_prev.innerText = el_text_prev.innerText + el_text_curr.innerText;
                    this.raw_lines[x - 1] = el_text_prev.innerText;
                    // Remove the current line
                    this.deleteLine(x);
                    this.setCaret(el_text_prev, off);
                    return false;
                case "Control":
                    this.is_key_control = false;
                    break;
                case "Enter":
                    ev.preventDefault();
                    break;
                case "r":
                    if (this.is_key_control) {
                        ev.preventDefault();
                        return;
                    }
                    break;
                case "z":
                    if (this.is_key_control) {
                        ev.preventDefault();
                        return;
                    }
                    break;
                default:
                    if (this.is_key_control) {
                        break;
                    }
                    this.unre.DoUpdate(x, this.raw_lines[x], this.lines[x].el_text.innerText);
                    this.raw_lines[x] = this.lines[x].el_text.innerText;
            }
            return true;
        };
        WuiEditor.prototype.OnKeydownOnLine = function (x, el_text, ev) {
            var text_before;
            var text_after;
            var off;
            switch (ev.key) {
                case "ArrowUp":
                    if (x == 0) {
                        return false;
                    }
                    ev.preventDefault();
                    var el_text_1 = this.lines[x - 1].el_text;
                    var off_1 = this.sel.focusOffset;
                    if (off_1 > el_text_1.innerText.length) {
                        off_1 = el_text_1.innerText.length;
                    }
                    this.setCaret(el_text_1, off_1);
                    if (x == 1) {
                        this.el.scrollTop = 0;
                    }
                    else if (x * 23 < this.el.scrollTop) {
                        this.el.scrollTop -= 25;
                    }
                    return false;
                case "ArrowDown":
                    if (x == this.lines.length - 1) {
                        return false;
                    }
                    ev.preventDefault();
                    el_text_1 = this.lines[x + 1].el_text;
                    off_1 = this.sel.focusOffset;
                    if (off_1 > el_text_1.innerText.length) {
                        off_1 = el_text_1.innerText.length;
                    }
                    this.setCaret(el_text_1, off_1);
                    x += 2;
                    if (x * 25 >= this.el.clientHeight + this.el.scrollTop) {
                        this.el.scrollTop += 25;
                    }
                    return false;
                case "Control":
                    this.is_key_control = true;
                    break;
                case "Enter":
                    ev.preventDefault();
                    off_1 = this.sel.focusOffset;
                    var text = this.lines[x].el_text.innerText;
                    text_before = text.slice(0, off_1);
                    text_after = text.slice(off_1, text.length);
                    this.unre.DoSplit(x, text_before, text_after);
                    this.lines[x].el_text.innerText = text_before;
                    this.raw_lines[x] = text_before;
                    this.insertNewline(x + 1, text_after);
                    if (x + 3 >= this.raw_lines.length) {
                        this.el.scrollTop = this.el.scrollHeight;
                    }
                    break;
                case "Tab":
                    ev.preventDefault();
                    el_text_1 = this.lines[x].el_text;
                    off_1 = this.sel.focusOffset;
                    text_before = el_text_1.innerText;
                    text_after =
                        text_before.slice(0, off_1) + "\t" + text_before.slice(off_1, text_before.length);
                    this.unre.DoUpdate(x, text_before, text_after);
                    el_text_1.innerText = text_after;
                    this.raw_lines[x] = text_after;
                    this.setCaret(el_text_1, off_1 + 1);
                    break;
                case "r":
                    if (this.is_key_control) {
                        ev.preventDefault();
                        this.doRedo();
                        return;
                    }
                    break;
                case "s":
                    if (this.is_key_control) {
                        ev.preventDefault();
                        ev.stopPropagation();
                        if (this.opts.OnSave) {
                            this.opts.OnSave(this.GetContent());
                        }
                        return false;
                    }
                    break;
                case "z":
                    if (this.is_key_control) {
                        ev.preventDefault();
                        this.doUndo();
                        return;
                    }
                    break;
            }
        };
        WuiEditor.prototype.OnMouseDownAtLine = function (x) {
            this.range_begin = x;
        };
        WuiEditor.prototype.OnMouseUpAtLine = function (x) {
            this.range_end = x;
            if (this.range_end < this.range_begin) {
                return;
            }
            var y = 0;
            for (; y < this.range_begin; y++) {
                this.el.children[y].setAttribute("style", "");
            }
            for (; y <= this.range_end; y++) {
                this.el.children[y].setAttribute("style", "background-color:lightsalmon");
            }
            for (; y < this.el.children.length; y++) {
                this.el.children[y].setAttribute("style", "");
            }
            if (this.opts.OnSelection) {
                this.opts.OnSelection(this.range_begin, this.range_end);
            }
        };
        //
        // SetEditOff make the content not editable.
        //
        WuiEditor.prototype.SetEditOff = function () {
            for (var x = 0; x < this.lines.length; x++) {
                this.lines[x].SetEditOff();
            }
        };
        //
        // SetEditOn make the content to be editable.
        //
        WuiEditor.prototype.SetEditOn = function () {
            for (var x = 0; x < this.lines.length; x++) {
                this.lines[x].SetEditOn();
            }
        };
        // Open the node for editing.
        // The content MUST be encoded in base64.
        WuiEditor.prototype.Open = function (node) {
            this.active_file = node;
            var content = atob(node.content || "");
            content = content.replace("\r\n", "\n");
            this.raw_lines = content.split("\n");
            this.lines = [];
            for (var x = 0; x < this.raw_lines.length; x++) {
                var line = new WuiEditorLine(x, this.raw_lines[x], this);
                this.lines.push(line);
            }
            this.render();
        };
        WuiEditor.prototype.clearSelection = function () {
            if (this.range_begin < 0 || this.range_end == 0) {
                return;
            }
            for (var x = this.range_begin; x <= this.range_end; x++) {
                this.el.children[x].setAttribute("style", "");
            }
            this.range_begin = -1;
            this.range_end = -1;
        };
        WuiEditor.prototype.initStyle = function () {
            var style = document.createElement("style");
            style.type = "text/css";
            style.innerText = "\n\t\t\t[contenteditable] {\n\t\t\t\toutline: 0px solid transparent;\n\t\t\t}\n\t\t\t." + WUI_EDITOR_CLASS + " {\n\t\t\t\tbackground-color: cornsilk;\n\t\t\t\tfont-family: monospace;\n\t\t\t\toverflow-y: auto;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t\t." + WUI_EDITOR_CLASS_LINE + " {\n\t\t\t\tdisplay: block;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t\t." + WUI_EDITOR_CLASS_LINE_NUMBER + " {\n\t\t\t\tcolor: dimgrey;\n\t\t\t\tcursor: pointer;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tpadding: 4px 10px 4px 4px;\n\t\t\t\ttext-align: right;\n\t\t\t\tuser-select: none;\n\t\t\t\tvertical-align: top;\n\t\t\t\twidth: 30px;\n\t\t\t}\n\t\t\t." + WUI_EDITOR_CLASS_LINE_NUMBER + ":hover {\n\t\t\t\tbackground-color: lightsalmon;\n\t\t\t}\n\t\t\t." + WUI_EDITOR_CLASS_LINE_TEXT + " {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tpadding: 4px;\n\t\t\t\tborder-color: lightblue;\n\t\t\t\tborder-width: 0px;\n\t\t\t\tborder-style: solid;\n\t\t\t\twhite-space: pre-wrap;\n\t\t\t\twidth: calc(100% - 60px);\n\t\t\t}\n\t\t";
            document.head.appendChild(style);
        };
        WuiEditor.prototype.doJoin = function (changes) {
            this.lines[changes.curr_line].el_text.innerText = changes.curr_text;
            this.deleteLine(changes.next_line);
            this.setCaret(this.lines[changes.curr_line].el_text, 0);
        };
        WuiEditor.prototype.doSplit = function (changes) {
            this.lines[changes.curr_line].el_text.innerText = changes.curr_text;
            this.insertNewline(changes.next_line, changes.next_text);
        };
        WuiEditor.prototype.doUpdate = function (changes) {
            this.lines[changes.curr_line].el_text.innerText = changes.curr_text;
            this.setCaret(this.lines[changes.curr_line].el_text, 0);
        };
        WuiEditor.prototype.doRedo = function () {
            var act = this.unre.Redo();
            if (!act) {
                return;
            }
            switch (act.kind) {
                case "join":
                    this.doJoin(act.after);
                    break;
                case "split":
                    this.doSplit(act.after);
                    break;
                case "update":
                    this.doUpdate(act.after);
                    break;
            }
        };
        WuiEditor.prototype.doUndo = function () {
            var act = this.unre.Undo();
            if (!act) {
                return;
            }
            switch (act.kind) {
                case "join":
                    this.doSplit(act.before);
                    break;
                case "split":
                    this.doJoin(act.before);
                    break;
                case "update":
                    this.doUpdate(act.before);
                    break;
            }
        };
        WuiEditor.prototype.deleteLine = function (x) {
            this.lines.splice(x, 1);
            this.raw_lines.splice(x, 1);
            // Reset the line numbers.
            for (; x < this.lines.length; x++) {
                this.lines[x].SetNumber(x);
            }
            this.render();
        };
        WuiEditor.prototype.insertNewline = function (x, text) {
            var newline = new WuiEditorLine(x, text, this);
            for (var y = x; y < this.lines.length; y++) {
                this.lines[y].SetNumber(y + 1);
            }
            this.lines.splice(x, 0, newline);
            this.raw_lines.splice(x, 0, text);
            this.render();
            this.setCaret(newline.el_text, 0);
        };
        WuiEditor.prototype.onKeyupDocument = function (ed, ev) {
            switch (ev.key) {
                case "Escape":
                    ev.preventDefault();
                    ed.clearSelection();
                    break;
            }
            return true;
        };
        WuiEditor.prototype.render = function () {
            this.el.innerHTML = "";
            for (var _i = 0, _a = this.lines; _i < _a.length; _i++) {
                var line = _a[_i];
                this.el.appendChild(line.el);
            }
        };
        WuiEditor.prototype.setCaret = function (el_text, off) {
            if (el_text.firstChild) {
                this.range.setStart(el_text.firstChild, off);
            }
            else {
                this.range.setStart(el_text, off);
            }
            this.range.collapse(true);
            this.sel.removeAllRanges();
            this.sel.addRange(this.range);
        };
        return WuiEditor;
    }());
    exports.WuiEditor = WuiEditor;
    var WuiEditorLine = /** @class */ (function () {
        function WuiEditorLine(x, text, ed) {
            var _this = this;
            this.x = x;
            this.text = text;
            this.line_num = 0;
            this.line_num = x;
            this.el = document.createElement("div");
            this.el.classList.add(WUI_EDITOR_CLASS_LINE);
            this.el_number = document.createElement("span");
            this.el_number.classList.add(WUI_EDITOR_CLASS_LINE_NUMBER);
            this.el_number.innerText = this.line_num + 1 + "";
            this.el_number.onmousedown = function (ev) {
                ed.OnMouseDownAtLine(_this.line_num);
            };
            this.el_number.onmouseup = function (ev) {
                ed.OnMouseUpAtLine(_this.line_num);
            };
            this.el_text = document.createElement("span");
            this.el_text.classList.add(WUI_EDITOR_CLASS_LINE_TEXT);
            this.el_text.innerText = text;
            this.el_text.contentEditable = "true";
            this.el_text.onclick = function (ev) {
                ed.OnClickText(_this.el_text);
            };
            this.el_text.onkeydown = function (ev) {
                return ed.OnKeydownOnLine(_this.line_num, _this.el_text, ev);
            };
            this.el_text.onkeyup = function (ev) {
                return ed.OnKeyup(_this.line_num, _this.el_text, ev);
            };
            this.el_text.addEventListener("paste", function (ev) {
                if (!ev.clipboardData) {
                    return;
                }
                ev.preventDefault();
                var text = ev.clipboardData.getData("text/plain");
                document.execCommand("insertHTML", false, text);
            });
            this.el.appendChild(this.el_number);
            this.el.appendChild(this.el_text);
        }
        WuiEditorLine.prototype.SetNumber = function (x) {
            this.line_num = x;
            this.el_number.innerText = x + 1 + "";
        };
        WuiEditorLine.prototype.SetEditOn = function () {
            this.el_text.contentEditable = "true";
        };
        WuiEditorLine.prototype.SetEditOff = function () {
            this.el_text.contentEditable = "false";
        };
        return WuiEditorLine;
    }());
    //
    // WuiEditorUndoRedo store the state of actions.
    //
    var WuiEditorUndoRedo = /** @class */ (function () {
        function WuiEditorUndoRedo() {
            this.idx = 0;
            this.actions = [];
        }
        WuiEditorUndoRedo.prototype.DoJoin = function (prevLine, prevText, curr_text) {
            var curr_line = prevLine + 1;
            var action = {
                kind: "join",
                before: {
                    curr_line: prevLine,
                    curr_text: prevText,
                    next_line: prevLine + 1,
                    next_text: curr_text,
                },
                after: {
                    curr_line: prevLine,
                    curr_text: prevText + curr_text,
                    next_line: prevLine + 1,
                    next_text: "",
                },
            };
            if (this.actions.length > 0) {
                this.actions = this.actions.slice(0, this.idx);
            }
            this.actions.push(action);
            this.idx++;
        };
        WuiEditorUndoRedo.prototype.DoSplit = function (curr_line, curr_text, next_text) {
            var action = {
                kind: "split",
                before: {
                    curr_line: curr_line,
                    curr_text: curr_text + next_text,
                    next_line: curr_line + 1,
                    next_text: "",
                },
                after: {
                    curr_line: curr_line,
                    curr_text: curr_text,
                    next_line: curr_line + 1,
                    next_text: next_text,
                },
            };
            if (this.actions.length > 0) {
                this.actions = this.actions.slice(0, this.idx);
            }
            this.actions.push(action);
            this.idx++;
        };
        WuiEditorUndoRedo.prototype.DoUpdate = function (line_num, text_before, text_after) {
            var action = {
                kind: "update",
                before: {
                    curr_line: line_num,
                    curr_text: text_before,
                    next_line: 0,
                    next_text: "",
                },
                after: {
                    curr_line: line_num,
                    curr_text: text_after,
                    next_line: 0,
                    next_text: "",
                },
            };
            if (this.actions.length > 0) {
                this.actions = this.actions.slice(0, this.idx);
            }
            this.actions.push(action);
            this.idx++;
        };
        WuiEditorUndoRedo.prototype.Undo = function () {
            if (this.idx == 0) {
                return null;
            }
            this.idx--;
            return this.actions[this.idx];
        };
        WuiEditorUndoRedo.prototype.Redo = function () {
            if (this.idx == this.actions.length) {
                return null;
            }
            var action = this.actions[this.idx];
            this.idx++;
            return action;
        };
        return WuiEditorUndoRedo;
    }());
});
// Copyright 2021, Shulhan <ms@kilabit.info>. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
define("wui/notif/notif", ["require", "exports"], function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.WuiNotif = void 0;
    var WUI_NOTIF_ID = "wui_notif";
    var WUI_NOTIF_CLASS_INFO = "wui_notif_info";
    var WUI_NOTIF_CLASS_ERROR = "wui_notif_error";
    //
    // WuiNotif implement the HTML interface to display pop-up notification.
    // The notification can be triggered by calling method Info() or Error().
    // Each pop-up has 5 seconds duration, after that they will be removed
    // automatically.
    //
    var WuiNotif = /** @class */ (function () {
        function WuiNotif() {
            this.timeout = 5000; // 5 seconds timeout
            this.el = document.createElement("div");
            this.el.id = WUI_NOTIF_ID;
            document.body.appendChild(this.el);
            this.initStyle();
        }
        // Info show the msg as information.
        WuiNotif.prototype.Info = function (msg) {
            var _this = this;
            var item = document.createElement("div");
            item.innerHTML = msg;
            item.classList.add(WUI_NOTIF_CLASS_INFO);
            this.el.appendChild(item);
            setTimeout(function () {
                _this.el.removeChild(item);
            }, this.timeout);
        };
        // Info show the msg as an error.
        WuiNotif.prototype.Error = function (msg) {
            var _this = this;
            var item = document.createElement("div");
            item.innerHTML = msg;
            item.classList.add(WUI_NOTIF_CLASS_ERROR);
            this.el.appendChild(item);
            setTimeout(function () {
                _this.el.removeChild(item);
            }, this.timeout);
        };
        WuiNotif.prototype.initStyle = function () {
            var style = document.createElement("style");
            style.type = "text/css";
            style.innerText = "\n\t\t\t#" + WUI_NOTIF_ID + " {\n\t\t\t\tleft: 10%;\n\t\t\t\tposition: fixed;\n\t\t\t\ttop: 1em;\n\t\t\t\twidth: 80%;\n\t\t\t}\n\t\t\t." + WUI_NOTIF_CLASS_INFO + " {\n\t\t\t\tborder: 1px solid silver;\n\t\t\t\tbackground-color: honeydew;\n\t\t\t\tmargin-bottom: 1em;\n\t\t\t\tpadding: 1em;\n\t\t\t}\n\t\t\t." + WUI_NOTIF_CLASS_ERROR + " {\n\t\t\t\tborder: 1px solid salmon;\n\t\t\t\tbackground-color: lightsalmon;\n\t\t\t\tmargin-bottom: 1em;\n\t\t\t\tpadding: 1em;\n\t\t\t}\n\t\t";
            document.head.appendChild(style);
        };
        return WuiNotif;
    }());
    exports.WuiNotif = WuiNotif;
});
define("awwan", ["require", "exports", "wui/editor/editor", "wui/notif/notif", "wui/vfs/vfs"], function (require, exports, editor_1, notif_1, vfs_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.Awwan = exports.renderHtml = void 0;
    var ID_BTN_LOCAL = "com_btn_local";
    var ID_BTN_REMOTE = "com_btn_remote";
    var ID_BTN_SAVE = "com_btn_save";
    var ID_VFS_PATH = "vfs_path";
    var ID_STDOUT = "stdout";
    var ID_STDERR = "stderr";
    var MAX_FILE_SIZE = 3000000;
    function renderHtml() {
        var el = document.createElement("div");
        el.classList.add("awwan");
        el.innerHTML = "\n\t\t\t<div class=\"awwan_nav_left\">\n\t\t\t\t<div id=\"vfs\"></div>\n\t\t\t</div>\n\t\t\t<div class=\"awwan_content\">\n\t\t\t\t<div class=\"editor_action\">\n\t\t\t\t\tFile: <span id=\"" + ID_VFS_PATH + "\">-</span>\n\t\t\t\t\t<button id=\"" + ID_BTN_SAVE + "\">Save</button>\n\t\t\t\t</div>\n\t\t\t\t<div id=\"editor\"></div>\n\t\t\t\t<div class=\"execute_action\">\n\t\t\t\t\tExecute script on\n\t\t\t\t\t<button id=\"" + ID_BTN_LOCAL + "\">Local</button>\n\t\t\t\t\tor\n\t\t\t\t\t<button id=\"" + ID_BTN_REMOTE + "\">Remote</button>\n\t\t\t\t</div>\n\t\t\t\t<p>Hints:</p>\n\t\t\t\t<ul>\n\t\t\t\t\t<li>\n\t\t\t\t\t\tClick and drag on the line numbers to select the specific line to be\n\t\t\t\t\t\texecuted.\n\t\t\t\t\t</li>\n\t\t\t\t\t<li>Press ESC to clear selection.</li>\n\t\t\t\t</ul>\n\t\t\t\t<div class=\"boxheader\">Standard output:</div>\n\t\t\t\t<div id=\"" + ID_STDOUT + "\"></div>\n\t\t\t\t<div class=\"boxheader\">Standard error:</div>\n\t\t\t\t<div id=\"" + ID_STDERR + "\"></div>\n\t\t\t</div>\n\t\t";
        document.body.appendChild(el);
    }
    exports.renderHtml = renderHtml;
    var Awwan = /** @class */ (function () {
        function Awwan() {
            var _this = this;
            this.request = {
                mode: "local",
                script: "",
                content: "",
                begin_at: 0,
                end_at: 0,
            };
            var el = document.getElementById(ID_BTN_LOCAL);
            if (el) {
                this.com_btn_local = el;
                this.com_btn_local.onclick = function () { _this.execLocal(); };
            }
            el = document.getElementById(ID_BTN_REMOTE);
            if (el) {
                this.com_btn_remote = el;
                this.com_btn_remote.onclick = function () { _this.execRemote(); };
            }
            el = document.getElementById(ID_BTN_SAVE);
            if (el) {
                this.com_btn_save = el;
                this.com_btn_save.onclick = function () { _this.onClickSave(); };
            }
            el = document.getElementById(ID_VFS_PATH);
            if (el) {
                this.com_file_path = el;
            }
            el = document.getElementById(ID_STDOUT);
            if (el) {
                this.com_stdout = el;
            }
            el = document.getElementById(ID_STDERR);
            if (el) {
                this.com_stderr = el;
            }
            var editor_opts = {
                id: "editor",
                is_editable: true,
                OnSelection: function (begin_at, end_at) {
                    _this.editorOnSelection(begin_at, end_at);
                },
                OnSave: this.editorOnSave,
            };
            this.wui_editor = new editor_1.WuiEditor(editor_opts);
            this.wui_notif = new notif_1.WuiNotif();
            var wui_vfs_opts = {
                id: "vfs",
                Open: function (path, is_dir) {
                    return _this.Open(path, is_dir);
                },
                OpenNode: function (node) {
                    return _this.OpenNode(node);
                },
            };
            this.wui_vfs = new vfs_1.WuiVfs(wui_vfs_opts);
            window.onhashchange = function (ev) {
                ev.preventDefault();
                var hashchange = ev;
                var url = new URL(hashchange.newURL);
                _this.onHashChange(url.hash);
            };
            // Open path based on hash.
            this.onHashChange(window.location.hash);
        }
        Awwan.prototype.onHashChange = function (hash) {
            if (hash === "") {
                hash = "#/";
            }
            hash = hash.substring(1);
            this.wui_vfs.OpenDir(hash);
        };
        // Open fetch the node content from remote server.
        Awwan.prototype.Open = function (path, is_dir) {
            return __awaiter(this, void 0, void 0, function () {
                var http_res, res, resAllow;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0: return [4 /*yield*/, fetch("/awwan/api/fs?path=" + path)];
                        case 1:
                            http_res = _a.sent();
                            return [4 /*yield*/, http_res.json()];
                        case 2:
                            res = _a.sent();
                            if (res.code != 200) {
                                this.wui_notif.Error("Failed to open " + path + ": " + res.message);
                                return [2 /*return*/, res];
                            }
                            if (is_dir) {
                                window.location.hash = "#" + path;
                                return [2 /*return*/, res];
                            }
                            resAllow = this.isEditAllowed(res.data);
                            if (resAllow.code != 200) {
                                this.wui_notif.Error(resAllow.message);
                                return [2 /*return*/, resAllow];
                            }
                            this.com_file_path.innerText = path;
                            this.request.script = path;
                            this.wui_editor.Open(res.data);
                            return [2 /*return*/, res];
                    }
                });
            });
        };
        // OpenNode is an handler that will called when user click on of the
        // item in the list.
        Awwan.prototype.OpenNode = function (node) {
            return __awaiter(this, void 0, void 0, function () {
                var resAllow, res;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0:
                            resAllow = this.isEditAllowed(node);
                            if (resAllow.code != 200) {
                                this.wui_notif.Error(resAllow.message);
                                return [2 /*return*/, resAllow];
                            }
                            return [4 /*yield*/, this.Open(node.path, node.is_dir)];
                        case 1:
                            res = _a.sent();
                            return [2 /*return*/, res];
                    }
                });
            });
        };
        Awwan.prototype.isEditAllowed = function (node) {
            var res = {
                code: 412,
                message: "",
            };
            var is_type_allowed = false;
            if (node.content_type.indexOf("json") >= 0 ||
                node.content_type.indexOf("message") >= 0 ||
                node.content_type.indexOf("script") >= 0 ||
                node.content_type.indexOf("text") >= 0 ||
                node.content_type.indexOf("xml") >= 0) {
                is_type_allowed = true;
            }
            if (!is_type_allowed) {
                res.message = "The file \"" + node.name + "\" with content type \"" + node.content_type + "\" is not allowed to be opened";
                return res;
            }
            if (node.size > MAX_FILE_SIZE) {
                res.message = "The file \"" + node.name + "\" with size " + node.size / 1000000 + "MB is greater than maximum " + MAX_FILE_SIZE / 1000000 + "MB.";
                return res;
            }
            res.code = 200;
            return res;
        };
        Awwan.prototype.onClickSave = function () {
            if (this.request.script == "") {
                return;
            }
            var content = this.wui_editor.GetContent();
            var l = content.length;
            if (l > 0 && content[l - 1] != "\n") {
                content += "\n";
            }
            this.request.content = content;
            this.doSaveFile(this.request.script, this.request.content);
        };
        Awwan.prototype.editorOnSave = function (content) {
            this.doSaveFile(this.request.script, content);
        };
        Awwan.prototype.doSaveFile = function (path, content) {
            return __awaiter(this, void 0, void 0, function () {
                var req, http_res, res;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0:
                            req = {
                                path: path,
                                content: btoa(content),
                            };
                            return [4 /*yield*/, fetch("/awwan/api/fs", {
                                    method: "PUT",
                                    headers: {
                                        Accept: "application/json",
                                        "Content-Type": "application/json",
                                    },
                                    body: JSON.stringify(req),
                                })];
                        case 1:
                            http_res = _a.sent();
                            return [4 /*yield*/, http_res.json()];
                        case 2:
                            res = _a.sent();
                            if (res.code != 200) {
                                this.wui_notif.Error("Failed to save file " + path + ": " + res.message);
                                return [2 /*return*/, null];
                            }
                            this.wui_notif.Info("File " + path + " has been saved.");
                            return [2 /*return*/, res];
                    }
                });
            });
        };
        Awwan.prototype.editorOnSelection = function (begin, end) {
            var stmts = this.wui_editor.lines.slice(begin, end + 1);
            for (var _i = 0, stmts_1 = stmts; _i < stmts_1.length; _i++) {
                var stmt = stmts_1[_i];
                console.log("stmt:", stmt.x, stmt.text);
            }
        };
        // execLocal request to execute the selected script on local system.
        Awwan.prototype.execLocal = function () {
            if (this.request.script == "") {
                this.wui_notif.Error("Execute on local: no file selected");
                return;
            }
            this.httpApiExecute("local");
        };
        // execRemote request to execute the selected script on remote system.
        Awwan.prototype.execRemote = function () {
            if (this.request.script == "") {
                this.wui_notif.Error("Execute on remote: no file selected");
                return;
            }
            this.httpApiExecute("remote");
        };
        Awwan.prototype.httpApiExecute = function (mode) {
            return __awaiter(this, void 0, void 0, function () {
                var selection_range, http_res, res;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0:
                            selection_range = this.wui_editor.GetSelectionRange();
                            if (selection_range.begin_at < 0) {
                                this.request.begin_at = 0;
                            }
                            else {
                                this.request.begin_at = selection_range.begin_at + 1;
                            }
                            if (selection_range.end_at < 0) {
                                this.request.end_at = 0;
                            }
                            else {
                                this.request.end_at = selection_range.end_at + 1;
                            }
                            this.request.mode = mode;
                            this.request.content = btoa(this.wui_editor.GetContent());
                            return [4 /*yield*/, fetch("/awwan/api/execute", {
                                    method: "POST",
                                    headers: {
                                        Accept: "application/json",
                                        "Content-Type": "application/json",
                                    },
                                    body: JSON.stringify(this.request),
                                })];
                        case 1:
                            http_res = _a.sent();
                            return [4 /*yield*/, http_res.json()];
                        case 2:
                            res = _a.sent();
                            if (res.code != 200) {
                                this.wui_notif.Error("Execute failed: " + res.message);
                                return [2 /*return*/];
                            }
                            this.com_stdout.innerText = atob(res.data.stdout);
                            if (res.data.stderr) {
                                this.com_stderr.innerText = atob(res.data.stderr);
                            }
                            this.wui_notif.Info("Successfully execute " + this.request.script + " on " + mode + ".");
                            return [2 /*return*/];
                    }
                });
            });
        };
        return Awwan;
    }());
    exports.Awwan = Awwan;
});
define("main", ["require", "exports", "awwan"], function (require, exports, awwan_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    (0, awwan_1.renderHtml)();
    var awwan = new awwan_1.Awwan();
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInd1aS9yZXNwb25zZS50cyIsInd1aS92ZnMvdmZzLnRzIiwid3VpL2VkaXRvci9lZGl0b3IudHMiLCJ3dWkvbm90aWYvbm90aWYudHMiLCJhd3dhbi50cyIsIm1haW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0FBLGtFQUFrRTtBQUNsRSx5RUFBeUU7QUFDekUsNkJBQTZCOzs7OztJQTRCN0I7UUFLQyxnQkFBbUIsSUFBbUI7WUFBdEMsaUJBbUJDO1lBbkJrQixTQUFJLEdBQUosSUFBSSxDQUFlO1lBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO1lBRWhCLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBQ3pDLElBQUksQ0FBQyxFQUFFLEVBQUU7Z0JBQ1IsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFBO2dCQUN6RCxPQUFNO2FBQ047WUFDRCxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQTtZQUVaLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxVQUFVLENBQUMsVUFBQyxJQUFZO2dCQUMzQyxLQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ25CLENBQUMsQ0FBQyxDQUFBO1lBQ0YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUVyQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksVUFBVSxDQUFDLFVBQUMsSUFBZ0I7Z0JBQy9DLEtBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDcEIsQ0FBQyxDQUFDLENBQUE7WUFDRixJQUFJLENBQUMsRUFBRSxD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
\ No newline at end of file

A _www/main.ts => _www/main.ts +4 -0
@@ 0,0 1,4 @@
import { renderHtml, Awwan } from "./awwan"

renderHtml()
let awwan = new Awwan()

D _www/notif.js => _www/notif.js +0 -55
@@ 1,55 0,0 @@
"use strict";
// Copyright 2021, Shulhan <ms@kilabit.info>. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
exports.__esModule = true;
exports.WuiNotif = void 0;
var WUI_NOTIF_ID = "wui_notif";
var WUI_NOTIF_CLASS_INFO = "wui_notif_info";
var WUI_NOTIF_CLASS_ERROR = "wui_notif_error";
//
// WuiNotif implement the HTML interface to display pop-up notification.
// The notification can be triggered by calling method Info() or Error().
// Each pop-up has 5 seconds duration, after that they will be removed
// automatically.
//
var WuiNotif = /** @class */ (function () {
    function WuiNotif() {
        this.timeout = 5000; // 5 seconds timeout
        this.el = document.createElement("div");
        this.el.id = WUI_NOTIF_ID;
        document.body.appendChild(this.el);
        this.initStyle();
    }
    // Info show the msg as information.
    WuiNotif.prototype.Info = function (msg) {
        var _this = this;
        var item = document.createElement("div");
        item.innerHTML = msg;
        item.classList.add(WUI_NOTIF_CLASS_INFO);
        this.el.appendChild(item);
        setTimeout(function () {
            _this.el.removeChild(item);
        }, this.timeout);
    };
    // Info show the msg as an error.
    WuiNotif.prototype.Error = function (msg) {
        var _this = this;
        var item = document.createElement("div");
        item.innerHTML = msg;
        item.classList.add(WUI_NOTIF_CLASS_ERROR);
        this.el.appendChild(item);
        setTimeout(function () {
            _this.el.removeChild(item);
        }, this.timeout);
    };
    WuiNotif.prototype.initStyle = function () {
        var style = document.createElement("style");
        style.type = "text/css";
        style.innerText = "\n\t\t\t#" + WUI_NOTIF_ID + " {\n\t\t\t\tleft: 10%;\n\t\t\t\tposition: fixed;\n\t\t\t\ttop: 1em;\n\t\t\t\twidth: 80%;\n\t\t\t}\n\t\t\t." + WUI_NOTIF_CLASS_INFO + " {\n\t\t\t\tborder: 1px solid silver;\n\t\t\t\tbackground-color: honeydew;\n\t\t\t\tmargin-bottom: 1em;\n\t\t\t\tpadding: 1em;\n\t\t\t}\n\t\t\t." + WUI_NOTIF_CLASS_ERROR + " {\n\t\t\t\tborder: 1px solid salmon;\n\t\t\t\tbackground-color: lightsalmon;\n\t\t\t\tmargin-bottom: 1em;\n\t\t\t\tpadding: 1em;\n\t\t\t}\n\t\t";
        document.head.appendChild(style);
    };
    return WuiNotif;
}());
exports.WuiNotif = WuiNotif;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJub3RpZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsa0VBQWtFO0FBQ2xFLHlFQUF5RTtBQUN6RSw2QkFBNkI7OztBQUU3QixJQUFNLFlBQVksR0FBRyxXQUFXLENBQUE7QUFDaEMsSUFBTSxvQkFBb0IsR0FBRyxnQkFBZ0IsQ0FBQTtBQUM3QyxJQUFNLHFCQUFxQixHQUFHLGlCQUFpQixDQUFBO0FBRS9DLEVBQUU7QUFDRix3RUFBd0U7QUFDeEUseUVBQXlFO0FBQ3pFLHNFQUFzRTtBQUN0RSxpQkFBaUI7QUFDakIsRUFBRTtBQUNGO0lBSUM7UUFGUSxZQUFPLEdBQVcsSUFBSSxDQUFBLENBQUMsb0JBQW9CO1FBR2xELElBQUksQ0FBQyxFQUFFLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN2QyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxZQUFZLENBQUE7UUFFekIsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBRWxDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQTtJQUNqQixDQUFDO0lBRUQsb0NBQW9DO0lBQ3BDLHVCQUFJLEdBQUosVUFBSyxHQUFXO1FBQWhCLGlCQVNDO1FBUkEsSUFBSSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN4QyxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQTtRQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO1FBQ3hDLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBRXpCLFVBQVUsQ0FBQztZQUNWLEtBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzFCLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDakIsQ0FBQztJQUVELGlDQUFpQztJQUNqQyx3QkFBSyxHQUFMLFVBQU0sR0FBVztRQUFqQixpQkFTQztRQVJBLElBQUksSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDeEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUE7UUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQTtRQUN6QyxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUV6QixVQUFVLENBQUM7WUFDVixLQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUMxQixDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ2pCLENBQUM7SUFFTyw0QkFBUyxHQUFqQjtRQUNDLElBQUksS0FBSyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDM0MsS0FBSyxDQUFDLElBQUksR0FBRyxVQUFVLENBQUE7UUFDdkIsS0FBSyxDQUFDLFNBQVMsR0FBRyxjQUNkLFlBQVksa0hBTVosb0JBQW9CLHdKQU1wQixxQkFBcUIscUpBTXhCLENBQUE7UUFDRCxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNqQyxDQUFDO0lBQ0YsZUFBQztBQUFELENBQUMsQUE5REQsSUE4REM7QUE5RFksNEJBQVEifQ==
\ No newline at end of file

A _www/require.js => _www/require.js +5 -0
@@ 0,0 1,5 @@
/** vim: et:ts=4:sw=4:sts=4
 * @license RequireJS 2.3.6 Copyright jQuery Foundation and other contributors.
 * Released under MIT license, https://github.com/requirejs/requirejs/blob/master/LICENSE
 */
var requirejs,require,define;!function(global,setTimeout){var req,s,head,baseElement,dataMain,src,interactiveScript,currentlyAddingScript,mainScript,subPath,version="2.3.6",commentRegExp=/\/\*[\s\S]*?\*\/|([^:"'=]|^)\/\/.*$/gm,cjsRequireRegExp=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,jsSuffixRegExp=/\.js$/,currDirRegExp=/^\.\//,op=Object.prototype,ostring=op.toString,hasOwn=op.hasOwnProperty,isBrowser=!("undefined"==typeof window||"undefined"==typeof navigator||!window.document),isWebWorker=!isBrowser&&"undefined"!=typeof importScripts,readyRegExp=isBrowser&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,defContextName="_",isOpera="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),contexts={},cfg={},globalDefQueue=[],useInteractive=!1;function commentReplace(e,t){return t||""}function isFunction(e){return"[object Function]"===ostring.call(e)}function isArray(e){return"[object Array]"===ostring.call(e)}function each(e,t){var i;if(e)for(i=0;i<e.length&&(!e[i]||!t(e[i],i,e));i+=1);}function eachReverse(e,t){var i;if(e)for(i=e.length-1;-1<i&&(!e[i]||!t(e[i],i,e));i-=1);}function hasProp(e,t){return hasOwn.call(e,t)}function getOwn(e,t){return hasProp(e,t)&&e[t]}function eachProp(e,t){var i;for(i in e)if(hasProp(e,i)&&t(e[i],i))break}function mixin(i,e,r,n){return e&&eachProp(e,function(e,t){!r&&hasProp(i,t)||(!n||"object"!=typeof e||!e||isArray(e)||isFunction(e)||e instanceof RegExp?i[t]=e:(i[t]||(i[t]={}),mixin(i[t],e,r,n)))}),i}function bind(e,t){return function(){return t.apply(e,arguments)}}function scripts(){return document.getElementsByTagName("script")}function defaultOnError(e){throw e}function getGlobal(e){if(!e)return e;var t=global;return each(e.split("."),function(e){t=t[e]}),t}function makeError(e,t,i,r){var n=new Error(t+"\nhttps://requirejs.org/docs/errors.html#"+e);return n.requireType=e,n.requireModules=r,i&&(n.originalError=i),n}if(void 0===define){if(void 0!==requirejs){if(isFunction(requirejs))return;cfg=requirejs,requirejs=void 0}void 0===require||isFunction(require)||(cfg=require,require=void 0),req=requirejs=function(e,t,i,r){var n,o,a=defContextName;return isArray(e)||"string"==typeof e||(o=e,isArray(t)?(e=t,t=i,i=r):e=[]),o&&o.context&&(a=o.context),(n=getOwn(contexts,a))||(n=contexts[a]=req.s.newContext(a)),o&&n.configure(o),n.require(e,t,i)},req.config=function(e){return req(e)},req.nextTick=void 0!==setTimeout?function(e){setTimeout(e,4)}:function(e){e()},require||(require=req),req.version=version,req.jsExtRegExp=/^\/|:|\?|\.js$/,req.isBrowser=isBrowser,s=req.s={contexts:contexts,newContext:newContext},req({}),each(["toUrl","undef","defined","specified"],function(t){req[t]=function(){var e=contexts[defContextName];return e.require[t].apply(e,arguments)}}),isBrowser&&(head=s.head=document.getElementsByTagName("head")[0],baseElement=document.getElementsByTagName("base")[0],baseElement&&(head=s.head=baseElement.parentNode)),req.onError=defaultOnError,req.createNode=function(e,t,i){var r=e.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");return r.type=e.scriptType||"text/javascript",r.charset="utf-8",r.async=!0,r},req.load=function(t,i,r){var e,n=t&&t.config||{};if(isBrowser)return(e=req.createNode(n,i,r)).setAttribute("data-requirecontext",t.contextName),e.setAttribute("data-requiremodule",i),!e.attachEvent||e.attachEvent.toString&&e.attachEvent.toString().indexOf("[native code")<0||isOpera?(e.addEventListener("load",t.onScriptLoad,!1),e.addEventListener("error",t.onScriptError,!1)):(useInteractive=!0,e.attachEvent("onreadystatechange",t.onScriptLoad)),e.src=r,n.onNodeCreated&&n.onNodeCreated(e,n,i,r),currentlyAddingScript=e,baseElement?head.insertBefore(e,baseElement):head.appendChild(e),currentlyAddingScript=null,e;if(isWebWorker)try{setTimeout(function(){},0),importScripts(r),t.completeLoad(i)}catch(e){t.onError(makeError("importscripts","importScripts failed for "+i+" at "+r,e,[i]))}},isBrowser&&!cfg.skipDataMain&&eachReverse(scripts(),function(e){if(head||(head=e.parentNode),dataMain=e.getAttribute("data-main"))return mainScript=dataMain,cfg.baseUrl||-1!==mainScript.indexOf("!")||(mainScript=(src=mainScript.split("/")).pop(),subPath=src.length?src.join("/")+"/":"./",cfg.baseUrl=subPath),mainScript=mainScript.replace(jsSuffixRegExp,""),req.jsExtRegExp.test(mainScript)&&(mainScript=dataMain),cfg.deps=cfg.deps?cfg.deps.concat(mainScript):[mainScript],!0}),define=function(e,i,t){var r,n;"string"!=typeof e&&(t=i,i=e,e=null),isArray(i)||(t=i,i=null),!i&&isFunction(t)&&(i=[],t.length&&(t.toString().replace(commentRegExp,commentReplace).replace(cjsRequireRegExp,function(e,t){i.push(t)}),i=(1===t.length?["require"]:["require","exports","module"]).concat(i))),useInteractive&&(r=currentlyAddingScript||getInteractiveScript())&&(e||(e=r.getAttribute("data-requiremodule")),n=contexts[r.getAttribute("data-requirecontext")]),n?(n.defQueue.push([e,i,t]),n.defQueueMap[e]=!0):globalDefQueue.push([e,i,t])},define.amd={jQuery:!0},req.exec=function(text){return eval(text)},req(cfg)}function newContext(u){var i,e,l,c,d,g={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},p={},f={},r={},h=[],m={},n={},v={},x=1,b=1;function q(e,t,i){var r,n,o,a,s,u,c,d,p,f,l=t&&t.split("/"),h=g.map,m=h&&h["*"];if(e&&(u=(e=e.split("/")).length-1,g.nodeIdCompat&&jsSuffixRegExp.test(e[u])&&(e[u]=e[u].replace(jsSuffixRegExp,"")),"."===e[0].charAt(0)&&l&&(e=l.slice(0,l.length-1).concat(e)),function(e){var t,i;for(t=0;t<e.length;t++)if("."===(i=e[t]))e.splice(t,1),t-=1;else if(".."===i){if(0===t||1===t&&".."===e[2]||".."===e[t-1])continue;0<t&&(e.splice(t-1,2),t-=2)}}(e),e=e.join("/")),i&&h&&(l||m)){e:for(o=(n=e.split("/")).length;0<o;o-=1){if(s=n.slice(0,o).join("/"),l)for(a=l.length;0<a;a-=1)if((r=getOwn(h,l.slice(0,a).join("/")))&&(r=getOwn(r,s))){c=r,d=o;break e}!p&&m&&getOwn(m,s)&&(p=getOwn(m,s),f=o)}!c&&p&&(c=p,d=f),c&&(n.splice(0,d,c),e=n.join("/"))}return getOwn(g.pkgs,e)||e}function E(t){isBrowser&&each(scripts(),function(e){if(e.getAttribute("data-requiremodule")===t&&e.getAttribute("data-requirecontext")===l.contextName)return e.parentNode.removeChild(e),!0})}function w(e){var t=getOwn(g.paths,e);if(t&&isArray(t)&&1<t.length)return t.shift(),l.require.undef(e),l.makeRequire(null,{skipMap:!0})([e]),!0}function y(e){var t,i=e?e.indexOf("!"):-1;return-1<i&&(t=e.substring(0,i),e=e.substring(i+1,e.length)),[t,e]}function S(e,t,i,r){var n,o,a,s,u=null,c=t?t.name:null,d=e,p=!0,f="";return e||(p=!1,e="_@r"+(x+=1)),u=(s=y(e))[0],e=s[1],u&&(u=q(u,c,r),o=getOwn(m,u)),e&&(u?f=i?e:o&&o.normalize?o.normalize(e,function(e){return q(e,c,r)}):-1===e.indexOf("!")?q(e,c,r):e:(u=(s=y(f=q(e,c,r)))[0],f=s[1],i=!0,n=l.nameToUrl(f))),{prefix:u,name:f,parentMap:t,unnormalized:!!(a=!u||o||i?"":"_unnormalized"+(b+=1)),url:n,originalName:d,isDefine:p,id:(u?u+"!"+f:f)+a}}function k(e){var t=e.id,i=getOwn(p,t);return i||(i=p[t]=new l.Module(e)),i}function M(e,t,i){var r=e.id,n=getOwn(p,r);!hasProp(m,r)||n&&!n.defineEmitComplete?(n=k(e)).error&&"error"===t?i(n.error):n.on(t,i):"defined"===t&&i(m[r])}function O(i,e){var t=i.requireModules,r=!1;e?e(i):(each(t,function(e){var t=getOwn(p,e);t&&(t.error=i,t.events.error&&(r=!0,t.emit("error",i)))}),r||req.onError(i))}function j(){globalDefQueue.length&&(each(globalDefQueue,function(e){var t=e[0];"string"==typeof t&&(l.defQueueMap[t]=!0),h.push(e)}),globalDefQueue=[])}function P(e){delete p[e],delete f[e]}function R(){var e,r,t=1e3*g.waitSeconds,n=t&&l.startTime+t<(new Date).getTime(),o=[],a=[],s=!1,u=!0;if(!i){if(i=!0,eachProp(f,function(e){var t=e.map,i=t.id;if(e.enabled&&(t.isDefine||a.push(e),!e.error))if(!e.inited&&n)w(i)?s=r=!0:(o.push(i),E(i));else if(!e.inited&&e.fetched&&t.isDefine&&(s=!0,!t.prefix))return u=!1}),n&&o.length)return(e=makeError("timeout","Load timeout for modules: "+o,null,o)).contextName=l.contextName,O(e);u&&each(a,function(e){!function n(o,a,s){var e=o.map.id;o.error?o.emit("error",o.error):(a[e]=!0,each(o.depMaps,function(e,t){var i=e.id,r=getOwn(p,i);!r||o.depMatched[t]||s[i]||(getOwn(a,i)?(o.defineDep(t,m[i]),o.check()):n(r,a,s))}),s[e]=!0)}(e,{},{})}),n&&!r||!s||!isBrowser&&!isWebWorker||d||(d=setTimeout(function(){d=0,R()},50)),i=!1}}function a(e){hasProp(m,e[0])||k(S(e[0],null,!0)).init(e[1],e[2])}function o(e,t,i,r){e.detachEvent&&!isOpera?r&&e.detachEvent(r,t):e.removeEventListener(i,t,!1)}function s(e){var t=e.currentTarget||e.srcElement;return o(t,l.onScriptLoad,"load","onreadystatechange"),o(t,l.onScriptError,"error"),{node:t,id:t&&t.getAttribute("data-requiremodule")}}function T(){var e;for(j();h.length;){if(null===(e=h.shift())[0])return O(makeError("mismatch","Mismatched anonymous define() module: "+e[e.length-1]));a(e)}l.defQueueMap={}}return c={require:function(e){return e.require?e.require:e.require=l.makeRequire(e.map)},exports:function(e){if(e.usingExports=!0,e.map.isDefine)return e.exports?m[e.map.id]=e.exports:e.exports=m[e.map.id]={}},module:function(e){return e.module?e.module:e.module={id:e.map.id,uri:e.map.url,config:function(){return getOwn(g.config,e.map.id)||{}},exports:e.exports||(e.exports={})}}},(e=function(e){this.events=getOwn(r,e.id)||{},this.map=e,this.shim=getOwn(g.shim,e.id),this.depExports=[],this.depMaps=[],this.depMatched=[],this.pluginMaps={},this.depCount=0}).prototype={init:function(e,t,i,r){r=r||{},this.inited||(this.factory=t,i?this.on("error",i):this.events.error&&(i=bind(this,function(e){this.emit("error",e)})),this.depMaps=e&&e.slice(0),this.errback=i,this.inited=!0,this.ignore=r.ignore,r.enabled||this.enabled?this.enable():this.check())},defineDep:function(e,t){this.depMatched[e]||(this.depMatched[e]=!0,this.depCount-=1,this.depExports[e]=t)},fetch:function(){if(!this.fetched){this.fetched=!0,l.startTime=(new Date).getTime();var e=this.map;if(!this.shim)return e.prefix?this.callPlugin():this.load();l.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],bind(this,function(){return e.prefix?this.callPlugin():this.load()}))}},load:function(){var e=this.map.url;n[e]||(n[e]=!0,l.load(this.map.id,e))},check:function(){if(this.enabled&&!this.enabling){var t,e,i=this.map.id,r=this.depExports,n=this.exports,o=this.factory;if(this.inited){if(this.error)this.emit("error",this.error);else if(!this.defining){if(this.defining=!0,this.depCount<1&&!this.defined){if(isFunction(o)){if(this.events.error&&this.map.isDefine||req.onError!==defaultOnError)try{n=l.execCb(i,o,r,n)}catch(e){t=e}else n=l.execCb(i,o,r,n);if(this.map.isDefine&&void 0===n&&((e=this.module)?n=e.exports:this.usingExports&&(n=this.exports)),t)return t.requireMap=this.map,t.requireModules=this.map.isDefine?[this.map.id]:null,t.requireType=this.map.isDefine?"define":"require",O(this.error=t)}else n=o;if(this.exports=n,this.map.isDefine&&!this.ignore&&(m[i]=n,req.onResourceLoad)){var a=[];each(this.depMaps,function(e){a.push(e.normalizedMap||e)}),req.onResourceLoad(l,this.map,a)}P(i),this.defined=!0}this.defining=!1,this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}else hasProp(l.defQueueMap,i)||this.fetch()}},callPlugin:function(){var u=this.map,c=u.id,e=S(u.prefix);this.depMaps.push(e),M(e,"defined",bind(this,function(e){var o,t,i,r=getOwn(v,this.map.id),n=this.map.name,a=this.map.parentMap?this.map.parentMap.name:null,s=l.makeRequire(u.parentMap,{enableBuildCallback:!0});return this.map.unnormalized?(e.normalize&&(n=e.normalize(n,function(e){return q(e,a,!0)})||""),M(t=S(u.prefix+"!"+n,this.map.parentMap,!0),"defined",bind(this,function(e){this.map.normalizedMap=t,this.init([],function(){return e},null,{enabled:!0,ignore:!0})})),void((i=getOwn(p,t.id))&&(this.depMaps.push(t),this.events.error&&i.on("error",bind(this,function(e){this.emit("error",e)})),i.enable()))):r?(this.map.url=l.nameToUrl(r),void this.load()):((o=bind(this,function(e){this.init([],function(){return e},null,{enabled:!0})})).error=bind(this,function(e){this.inited=!0,(this.error=e).requireModules=[c],eachProp(p,function(e){0===e.map.id.indexOf(c+"_unnormalized")&&P(e.map.id)}),O(e)}),o.fromText=bind(this,function(e,t){var i=u.name,r=S(i),n=useInteractive;t&&(e=t),n&&(useInteractive=!1),k(r),hasProp(g.config,c)&&(g.config[i]=g.config[c]);try{req.exec(e)}catch(e){return O(makeError("fromtexteval","fromText eval for "+c+" failed: "+e,e,[c]))}n&&(useInteractive=!0),this.depMaps.push(r),l.completeLoad(i),s([i],o)}),void e.load(u.name,s,o,g))})),l.enable(e,this),this.pluginMaps[e.id]=e},enable:function(){(f[this.map.id]=this).enabled=!0,this.enabling=!0,each(this.depMaps,bind(this,function(e,t){var i,r,n;if("string"==typeof e){if(e=S(e,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap),this.depMaps[t]=e,n=getOwn(c,e.id))return void(this.depExports[t]=n(this));this.depCount+=1,M(e,"defined",bind(this,function(e){this.undefed||(this.defineDep(t,e),this.check())})),this.errback?M(e,"error",bind(this,this.errback)):this.events.error&&M(e,"error",bind(this,function(e){this.emit("error",e)}))}i=e.id,r=p[i],hasProp(c,i)||!r||r.enabled||l.enable(e,this)})),eachProp(this.pluginMaps,bind(this,function(e){var t=getOwn(p,e.id);t&&!t.enabled&&l.enable(e,this)})),this.enabling=!1,this.check()},on:function(e,t){var i=this.events[e];i||(i=this.events[e]=[]),i.push(t)},emit:function(e,t){each(this.events[e],function(e){e(t)}),"error"===e&&delete this.events[e]}},(l={config:g,contextName:u,registry:p,defined:m,urlFetched:n,defQueue:h,defQueueMap:{},Module:e,makeModuleMap:S,nextTick:req.nextTick,onError:O,configure:function(e){if(e.baseUrl&&"/"!==e.baseUrl.charAt(e.baseUrl.length-1)&&(e.baseUrl+="/"),"string"==typeof e.urlArgs){var i=e.urlArgs;e.urlArgs=function(e,t){return(-1===t.indexOf("?")?"?":"&")+i}}var r=g.shim,n={paths:!0,bundles:!0,config:!0,map:!0};eachProp(e,function(e,t){n[t]?(g[t]||(g[t]={}),mixin(g[t],e,!0,!0)):g[t]=e}),e.bundles&&eachProp(e.bundles,function(e,t){each(e,function(e){e!==t&&(v[e]=t)})}),e.shim&&(eachProp(e.shim,function(e,t){isArray(e)&&(e={deps:e}),!e.exports&&!e.init||e.exportsFn||(e.exportsFn=l.makeShimExports(e)),r[t]=e}),g.shim=r),e.packages&&each(e.packages,function(e){var t;t=(e="string"==typeof e?{name:e}:e).name,e.location&&(g.paths[t]=e.location),g.pkgs[t]=e.name+"/"+(e.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}),eachProp(p,function(e,t){e.inited||e.map.unnormalized||(e.map=S(t,null,!0))}),(e.deps||e.callback)&&l.require(e.deps||[],e.callback)},makeShimExports:function(t){return function(){var e;return t.init&&(e=t.init.apply(global,arguments)),e||t.exports&&getGlobal(t.exports)}},makeRequire:function(o,a){function s(e,t,i){var r,n;return a.enableBuildCallback&&t&&isFunction(t)&&(t.__requireJsBuild=!0),"string"==typeof e?isFunction(t)?O(makeError("requireargs","Invalid require call"),i):o&&hasProp(c,e)?c[e](p[o.id]):req.get?req.get(l,e,o,s):(r=S(e,o,!1,!0).id,hasProp(m,r)?m[r]:O(makeError("notloaded",'Module name "'+r+'" has not been loaded yet for context: '+u+(o?"":". Use require([])")))):(T(),l.nextTick(function(){T(),(n=k(S(null,o))).skipMap=a.skipMap,n.init(e,t,i,{enabled:!0}),R()}),s)}return a=a||{},mixin(s,{isBrowser:isBrowser,toUrl:function(e){var t,i=e.lastIndexOf("."),r=e.split("/")[0];return-1!==i&&(!("."===r||".."===r)||1<i)&&(t=e.substring(i,e.length),e=e.substring(0,i)),l.nameToUrl(q(e,o&&o.id,!0),t,!0)},defined:function(e){return hasProp(m,S(e,o,!1,!0).id)},specified:function(e){return e=S(e,o,!1,!0).id,hasProp(m,e)||hasProp(p,e)}}),o||(s.undef=function(i){j();var e=S(i,o,!0),t=getOwn(p,i);t.undefed=!0,E(i),delete m[i],delete n[e.url],delete r[i],eachReverse(h,function(e,t){e[0]===i&&h.splice(t,1)}),delete l.defQueueMap[i],t&&(t.events.defined&&(r[i]=t.events),P(i))}),s},enable:function(e){getOwn(p,e.id)&&k(e).enable()},completeLoad:function(e){var t,i,r,n=getOwn(g.shim,e)||{},o=n.exports;for(j();h.length;){if(null===(i=h.shift())[0]){if(i[0]=e,t)break;t=!0}else i[0]===e&&(t=!0);a(i)}if(l.defQueueMap={},r=getOwn(p,e),!t&&!hasProp(m,e)&&r&&!r.inited){if(!(!g.enforceDefine||o&&getGlobal(o)))return w(e)?void 0:O(makeError("nodefine","No define call for "+e,null,[e]));a([e,n.deps||[],n.exportsFn])}R()},nameToUrl:function(e,t,i){var r,n,o,a,s,u,c=getOwn(g.pkgs,e);if(c&&(e=c),u=getOwn(v,e))return l.nameToUrl(u,t,i);if(req.jsExtRegExp.test(e))a=e+(t||"");else{for(r=g.paths,o=(n=e.split("/")).length;0<o;o-=1)if(s=getOwn(r,n.slice(0,o).join("/"))){isArray(s)&&(s=s[0]),n.splice(0,o,s);break}a=n.join("/"),a=("/"===(a+=t||(/^data\:|^blob\:|\?/.test(a)||i?"":".js")).charAt(0)||a.match(/^[\w\+\.\-]+:/)?"":g.baseUrl)+a}return g.urlArgs&&!/^blob\:/.test(a)?a+g.urlArgs(e,a):a},load:function(e,t){req.load(l,e,t)},execCb:function(e,t,i,r){return t.apply(r,i)},onScriptLoad:function(e){if("load"===e.type||readyRegExp.test((e.currentTarget||e.srcElement).readyState)){interactiveScript=null;var t=s(e);l.completeLoad(t.id)}},onScriptError:function(e){var i=s(e);if(!w(i.id)){var r=[];return eachProp(p,function(e,t){0!==t.indexOf("_@r")&&each(e.depMaps,function(e){if(e.id===i.id)return r.push(t),!0})}),O(makeError("scripterror",'Script error for "'+i.id+(r.length?'", needed by: '+r.join(", "):'"'),e,[i.id]))}}}).require=l.makeRequire(),l}function getInteractiveScript(){return interactiveScript&&"interactive"===interactiveScript.readyState||eachReverse(scripts(),function(e){if("interactive"===e.readyState)return interactiveScript=e}),interactiveScript}}(this,"undefined"==typeof setTimeout?void 0:setTimeout);
\ No newline at end of file

A _www/tsconfig.json => _www/tsconfig.json +18 -0
@@ 0,0 1,18 @@
{
	"$schema": "https://json.schemastore.org/tsconfig",
	"compilerOptions": {
		"declaration": true,
		"forceConsistentCasingInFileNames": true,
		"inlineSourceMap": true,
		"lib": ["es2015", "dom", "es2015"],
		"module": "amd",
		"noImplicitAny": true,
		"outFile": "./main.js",
		"strict": true,
		"target": "es5"
	},
	"display": "Recommended",
	"files": [
		"main.ts"
	]
}

D _www/vfs.js => _www/vfs.js +0 -213
@@ 1,213 0,0 @@
"use strict";
// Copyright 2021, Shulhan <ms@kilabit.info>. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
var __generator = (this && this.__generator) || function (thisArg, body) {
    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
    function verb(n) { return function (v) { return step([n, v]); }; }
    function step(op) {
        if (f) throw new TypeError("Generator is already executing.");
        while (_) try {
            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
            if (y = 0, t) op = [op[0] & 2, t.value];
            switch (op[0]) {
                case 0: case 1: t = op; break;
                case 4: _.label++; return { value: op[1], done: false };
                case 5: _.label++; y = op[1]; op = [0]; continue;
                case 7: op = _.ops.pop(); _.trys.pop(); continue;
                default:
                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
                    if (t[2]) _.ops.pop();
                    _.trys.pop(); continue;
            }
            op = body.call(thisArg, _);
        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
    }
};
exports.__esModule = true;
exports.WuiVfs = void 0;
var WuiVfs = /** @class */ (function () {
    function WuiVfs(opts) {
        var _this = this;
        this.opts = opts;
        this.opts = opts;
        var el = document.getElementById(opts.id);
        if (!el) {
            console.error("WuiVfs: element id", opts.id, "not found");
            return;
        }
        this.el = el;
        this.com_path = new WuiVfsPath(function (path) {
            _this.OpenDir(path);
        });
        this.el.appendChild(this.com_path.el);
        this.com_list = new WuiVfsList(function (node) {
            _this.OpenNode(node);
        });
        this.el.appendChild(this.com_list.el);
    }
    // OpenNode is a handler that will be called when a node is clicked
    // inside the WuiVfsList.
    WuiVfs.prototype.OpenNode = function (node) {
        if (node.is_dir) {
            this.OpenDir(node.path);
        }
        else {
            this.opts.OpenNode(node);
        }
    };
    // OpenDir is a handler that will be called when a path is clicked
    // inside the WuiVfsPath.
    WuiVfs.prototype.OpenDir = function (path) {
        return __awaiter(this, void 0, void 0, function () {
            var res, node;
            return __generator(this, function (_a) {
                switch (_a.label) {
                    case 0: return [4 /*yield*/, this.opts.Open(path, true)];
                    case 1:
                        res = _a.sent();
                        if (res.code != 200) {
                            return [2 /*return*/];
                        }
                        node = new WuiVfsNode(res.data);
                        this.com_path.Open(node);
                        this.com_list.Open(node);
                        return [2 /*return*/];
                }
            });
        });
    };
    return WuiVfs;
}());
exports.WuiVfs = WuiVfs;
var WuiVfsNode = /** @class */ (function () {
    function WuiVfsNode(opts) {
        this.path = opts.path || "";
        this.name = opts.name || "";
        this.content_type = opts.content_type || "";
        this.mod_time = opts.mod_time || 0;
        this.size = opts.size || 0;
        this.mode = opts.mode || "";
        this.is_dir = opts.is_dir || false;
        this.childs = [];
        if (opts.childs) {
            for (var _i = 0, _a = opts.childs; _i < _a.length; _i++) {
                var c = _a[_i];
                this.childs.push(new WuiVfsNode(c));
            }
        }
    }
    return WuiVfsNode;
}());
var WuiVfsList = /** @class */ (function () {
    function WuiVfsList(onClick) {
        this.onClick = onClick;
        this.el = document.createElement("div");
        this.el.style.borderWidth = "1px";
        this.el.style.borderStyle = "solid";
        this.el.style.borderColor = "silver";
    }
    WuiVfsList.prototype.Open = function (node) {
        var _this = this;
        this.el.innerHTML = "";
        var _loop_1 = function (c) {
            var el = document.createElement("div");
            el.style.padding = "1em";
            el.style.cursor = "pointer";
            el.innerHTML = c.name;
            if (c.is_dir) {
                el.style.backgroundColor = "cornsilk";
            }
            el.onclick = function (ev) {
                _this.onClick(c);
            };
            el.onmouseout = function (event) {
                if (c.is_dir) {
                    el.style.backgroundColor = "cornsilk";
                }
                else {
                    el.style.backgroundColor = "white";
                }
            };
            el.onmouseover = function (event) {
                el.style.backgroundColor = "aliceblue";
            };
            this_1.el.appendChild(el);
        };
        var this_1 = this;
        for (var _i = 0, _a = node.childs; _i < _a.length; _i++) {
            var c = _a[_i];
            _loop_1(c);
        }
    };
    return WuiVfsList;
}());
var WuiVfsPath = /** @class */ (function () {
    function WuiVfsPath(onClick) {
        this.el = document.createElement("div");
        this.el.style.borderWidth = "1px";
        this.el.style.borderStyle = "solid";
        this.el.style.borderColor = "silver";
        this.crumbs = [];
        this.onClick = onClick;
    }
    WuiVfsPath.prototype.Open = function (node) {
        var _this = this;
        this.el.innerHTML = "";
        this.crumbs = [];
        var paths = [];
        if (node.path == "/") {
            paths.push(node.path);
        }
        else {
            paths = node.path.split("/");
        }
        var _loop_2 = function (x) {
            var full_path = "";
            var p = "";
            if (x == 0) {
                p = "/";
                full_path = "/";
            }
            else {
                p = paths[x];
                full_path = paths.slice(0, x + 1).join("/");
            }
            var crumb = document.createElement("span");
            crumb.style.display = "inline-block";
            crumb.style.padding = "1em";
            crumb.style.cursor = "pointer";
            crumb.innerHTML = p;
            crumb.onclick = function (event) {
                _this.onClick(full_path);
            };
            crumb.onmouseout = function (event) {
                crumb.style.backgroundColor = "white";
            };
            crumb.onmouseover = function (event) {
                crumb.style.backgroundColor = "aliceblue";
            };
            this_2.el.appendChild(crumb);
        };
        var this_2 = this;
        for (var x = 0; x < paths.length; x++) {
            _loop_2(x);
        }
    };
    return WuiVfsPath;
}());
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmZzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidmZzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxrRUFBa0U7QUFDbEUseUVBQXlFO0FBQ3pFLDZCQUE2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNEI3QjtJQUtDLGdCQUFtQixJQUFtQjtRQUF0QyxpQkFtQkM7UUFuQmtCLFNBQUksR0FBSixJQUFJLENBQWU7UUFDckMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFFaEIsSUFBSSxFQUFFLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDekMsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNSLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQTtZQUN6RCxPQUFNO1NBQ047UUFDRCxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQTtRQUVaLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxVQUFVLENBQUMsVUFBQyxJQUFZO1lBQzNDLEtBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDbkIsQ0FBQyxDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBRXJDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxVQUFVLENBQUMsVUFBQyxJQUFnQjtZQUMvQyxLQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3BCLENBQUMsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUN0QyxDQUFDO0lBRUQsbUVBQW1FO0lBQ25FLHlCQUF5QjtJQUN6Qix5QkFBUSxHQUFSLFVBQVMsSUFBZ0I7UUFDeEIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1NBQ3ZCO2FBQU07WUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtTQUN4QjtJQUNGLENBQUM7SUFFRCxrRUFBa0U7SUFDbEUseUJBQXlCO0lBQ25CLHdCQUFPLEdBQWIsVUFBYyxJQUFZOzs7Ozs0QkFDZixxQkFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUE7O3dCQUF0QyxHQUFHLEdBQUcsU0FBZ0M7d0JBQzFDLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUU7NEJBQ3BCLHNCQUFNO3lCQUNOO3dCQUNHLElBQUksR0FBRyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBMkIsQ0FBQyxDQUFBO3dCQUMxRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTt3QkFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7Ozs7O0tBQ3hCO0lBQ0YsYUFBQztBQUFELENBQUMsQUEvQ0QsSUErQ0M7QUEvQ1ksd0JBQU07QUFpRG5CO0lBVUMsb0JBQVksSUFBeUI7UUFDcEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQTtRQUMzQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFBO1FBQzNCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUE7UUFDM0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQTtRQUNsQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFBO1FBQzFCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUE7UUFDM0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQTtRQUVsQyxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQTtRQUNoQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsS0FBYyxVQUFXLEVBQVgsS0FBQSxJQUFJLENBQUMsTUFBTSxFQUFYLGNBQVcsRUFBWCxJQUFXLEVBQUU7Z0JBQXRCLElBQUksQ0FBQyxTQUFBO2dCQUNULElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFDbkM7U0FDRDtJQUNGLENBQUM7SUFDRixpQkFBQztBQUFELENBQUMsQUExQkQsSUEwQkM7QUFFRDtJQUdDLG9CQUFtQixPQUF5QjtRQUF6QixZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQUMzQyxJQUFJLENBQUMsRUFBRSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDdkMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQTtRQUNqQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFBO1FBQ25DLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUE7SUFDckMsQ0FBQztJQUVELHlCQUFJLEdBQUosVUFBSyxJQUFnQjtRQUFyQixpQkE2QkM7UUE1QkEsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFBO2dDQUViLENBQUM7WUFDVCxJQUFJLEVBQUUsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ3RDLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQTtZQUN4QixFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUE7WUFDM0IsRUFBRSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFBO1lBRXJCLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRTtnQkFDYixFQUFFLENBQUMsS0FBSyxDQUFDLGVBQWUsR0FBRyxVQUFVLENBQUE7YUFDckM7WUFFRCxFQUFFLENBQUMsT0FBTyxHQUFHLFVBQUMsRUFBYztnQkFDM0IsS0FBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUNoQixDQUFDLENBQUE7WUFDRCxFQUFFLENBQUMsVUFBVSxHQUFHLFVBQUMsS0FBSztnQkFDckIsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFO29CQUNiLEVBQUUsQ0FBQyxLQUFLLENBQUMsZUFBZSxHQUFHLFVBQVUsQ0FBQTtpQkFDckM7cUJBQU07b0JBQ04sRUFBRSxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFBO2lCQUNsQztZQUNGLENBQUMsQ0FBQTtZQUNELEVBQUUsQ0FBQyxXQUFXLEdBQUcsVUFBQyxLQUFLO2dCQUN0QixFQUFFLENBQUMsS0FBSyxDQUFDLGVBQWUsR0FBRyxXQUFXLENBQUE7WUFDdkMsQ0FBQyxDQUFBO1lBRUQsT0FBSyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFBOzs7UUF4QnhCLEtBQWMsVUFBVyxFQUFYLEtBQUEsSUFBSSxDQUFDLE1BQU0sRUFBWCxjQUFXLEVBQVgsSUFBVztZQUFwQixJQUFJLENBQUMsU0FBQTtvQkFBRCxDQUFDO1NBeUJUO0lBQ0YsQ0FBQztJQUNGLGlCQUFDO0FBQUQsQ0FBQyxBQXhDRCxJQXdDQztBQUVEO0lBS0Msb0JBQVksT0FBeUI7UUFDcEMsSUFBSSxDQUFDLEVBQUUsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3ZDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUE7UUFDakMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQTtRQUNuQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFBO1FBQ3BDLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFBO1FBQ2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO0lBQ3ZCLENBQUM7SUFFRCx5QkFBSSxHQUFKLFVBQUssSUFBZ0I7UUFBckIsaUJBeUNDO1FBeENBLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQTtRQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQTtRQUNoQixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUE7UUFFZCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFFO1lBQ3JCLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1NBQ3JCO2FBQU07WUFDTixLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7U0FDNUI7Z0NBRVEsQ0FBQztZQUNULElBQUksU0FBUyxHQUFHLEVBQUUsQ0FBQTtZQUNsQixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUE7WUFFVixJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ1gsQ0FBQyxHQUFHLEdBQUcsQ0FBQTtnQkFDUCxTQUFTLEdBQUcsR0FBRyxDQUFBO2FBQ2Y7aUJBQU07Z0JBQ04sQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtnQkFDWixTQUFTLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUMzQztZQUVELElBQUksS0FBSyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDMUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsY0FBYyxDQUFBO1lBQ3BDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQTtZQUMzQixLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUE7WUFDOUIsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUE7WUFFbkIsS0FBSyxDQUFDLE9BQU8sR0FBRyxVQUFDLEtBQUs7Z0JBQ3JCLEtBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUE7WUFDeEIsQ0FBQyxDQUFBO1lBQ0QsS0FBSyxDQUFDLFVBQVUsR0FBRyxVQUFDLEtBQUs7Z0JBQ3hCLEtBQUssQ0FBQyxLQUFLLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQTtZQUN0QyxDQUFDLENBQUE7WUFDRCxLQUFLLENBQUMsV0FBVyxHQUFHLFVBQUMsS0FBSztnQkFDekIsS0FBSyxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsV0FBVyxDQUFBO1lBQzFDLENBQUMsQ0FBQTtZQUVELE9BQUssRUFBRSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQTs7O1FBNUIzQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUU7b0JBQTVCLENBQUM7U0E2QlQ7SUFDRixDQUFDO0lBQ0YsaUJBQUM7QUFBRCxDQUFDLEFBeERELElBd0RDIn0=
\ No newline at end of file

A _www/wui => _www/wui +1 -0
@@ 0,0 1,1 @@
Subproject commit 77127ca9cba44f1d281a6ab553bec7bd96df661d

M internal/cmd/memfs_www/main.go => internal/cmd/memfs_www/main.go +5 -0
@@ 12,6 12,11 @@ func main() {

	memfsWwwOpts := &memfs.Options{
		Root: "_www",
		Excludes: []string{
			`.*\.json`,
			`.*\.ts`,
			`/wui`,
		},
	}

	memfsWww, err := memfs.New(memfsWwwOpts)

M memfs_www.go => memfs_www.go +31 -28
@@ 16,24 16,10 @@ func generate__www() *memfs.Node {
	node.SetMode(2147484141)
	node.SetName("/")
	node.SetSize(0)
	node.AddChild(_memfsWww_getNode(memfsWww, "/editor.js", generate__www_editor_js))
	node.AddChild(_memfsWww_getNode(memfsWww, "/favicon.ico", generate__www_favicon_ico))
	node.AddChild(_memfsWww_getNode(memfsWww, "/index.html", generate__www_index_html))
	node.AddChild(_memfsWww_getNode(memfsWww, "/vfs.js", generate__www_vfs_js))
	return node
}

func generate__www_editor_js() *memfs.Node {
	node := &memfs.Node{
		SysPath:         "_www/editor.js",
		Path:            "/editor.js",
		ContentType:     "text/javascript; charset=utf-8",
		ContentEncoding: "",
		V:               []byte("\x22\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74\x22\x3B\x0A\x2F\x2F\x20\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x20\x32\x30\x32\x31\x2C\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\x2E\x20\x41\x6C\x6C\x20\x72\x69\x67\x68\x74\x73\x20\x72\x65\x73\x65\x72\x76\x65\x64\x2E\x0A\x2F\x2F\x20\x55\x73\x65\x20\x6F\x66\x20\x74\x68\x69\x73\x20\x73\x6F\x75\x72\x63\x65\x20\x63\x6F\x64\x65\x20\x69\x73\x20\x67\x6F\x76\x65\x72\x6E\x65\x64\x20\x62\x79\x20\x61\x20\x42\x53\x44\x2D\x73\x74\x79\x6C\x65\x20\x6C\x69\x63\x65\x6E\x73\x65\x20\x74\x68\x61\x74\x20\x63\x61\x6E\x20\x62\x65\x0A\x2F\x2F\x20\x66\x6F\x75\x6E\x64\x20\x69\x6E\x20\x74\x68\x65\x20\x4C\x49\x43\x45\x4E\x53\x45\x20\x66\x69\x6C\x65\x2E\x0A\x76\x61\x72\x20\x5F\x5F\x61\x77\x61\x69\x74\x65\x72\x20\x3D\x20\x28\x74\x68\x69\x73\x20\x26\x26\x20\x74\x68\x69\x73\x2E\x5F\x5F\x61\x77\x61\x69\x74\x65\x72\x29\x20\x7C\x7C\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x74\x68\x69\x73\x41\x72\x67\x2C\x20\x5F\x61\x72\x67\x75\x6D\x65\x6E\x74\x73\x2C\x20\x50\x2C\x20\x67\x65\x6E\x65\x72\x61\x74\x6F\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x61\x64\x6F\x70\x74\x28\x76\x61\x6C\x75\x65\x29\x20\x7B\x20\x72\x65\x74\x75\x72\x6E\x20\x76\x61\x6C\x75\x65\x20\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66\x20\x50\x20\x3F\x20\x76\x61\x6C\x75\x65\x20\x3A\x20\x6E\x65\x77\x20\x50\x28\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x72\x65\x73\x6F\x6C\x76\x65\x29\x20\x7B\x20\x72\x65\x73\x6F\x6C\x76\x65\x28\x76\x61\x6C\x75\x65\x29\x3B\x20\x7D\x29\x3B\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6E\x65\x77\x20\x28\x50\x20\x7C\x7C\x20\x28\x50\x20\x3D\x20\x50\x72\x6F\x6D\x69\x73\x65\x29\x29\x28\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x72\x65\x73\x6F\x6C\x76\x65\x2C\x20\x72\x65\x6A\x65\x63\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x66\x75\x6C\x66\x69\x6C\x6C\x65\x64\x28\x76\x61\x6C\x75\x65\x29\x20\x7B\x20\x74\x72\x79\x20\x7B\x20\x73\x74\x65\x70\x28\x67\x65\x6E\x65\x72\x61\x74\x6F\x72\x2E\x6E\x65\x78\x74\x28\x76\x61\x6C\x75\x65\x29\x29\x3B\x20\x7D\x20\x63\x61\x74\x63\x68\x20\x28\x65\x29\x20\x7B\x20\x72\x65\x6A\x65\x63\x74\x28\x65\x29\x3B\x20\x7D\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x72\x65\x6A\x65\x63\x74\x65\x64\x28\x76\x61\x6C\x75\x65\x29\x20\x7B\x20\x74\x72\x79\x20\x7B\x20\x73\x74\x65\x70\x28\x67\x65\x6E\x65\x72\x61\x74\x6F\x72\x5B\x22\x74\x68\x72\x6F\x77\x22\x5D\x28\x76\x61\x6C\x75\x65\x29\x29\x3B\x20\x7D\x20\x63\x61\x74\x63\x68\x20\x28\x65\x29\x20\x7B\x20\x72\x65\x6A\x65\x63\x74\x28\x65\x29\x3B\x20\x7D\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x74\x65\x70\x28\x72\x65\x73\x75\x6C\x74\x29\x20\x7B\x20\x72\x65\x73\x75\x6C\x74\x2E\x64\x6F\x6E\x65\x20\x3F\x20\x72\x65\x73\x6F\x6C\x76\x65\x28\x72\x65\x73\x75\x6C\x74\x2E\x76\x61\x6C\x75\x65\x29\x20\x3A\x20\x61\x64\x6F\x70\x74\x28\x72\x65\x73\x75\x6C\x74\x2E\x76\x61\x6C\x75\x65\x29\x2E\x74\x68\x65\x6E\x28\x66\x75\x6C\x66\x69\x6C\x6C\x65\x64\x2C\x20\x72\x65\x6A\x65\x63\x74\x65\x64\x29\x3B\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x65\x70\x28\x28\x67\x65\x6E\x65\x72\x61\x74\x6F\x72\x20\x3D\x20\x67\x65\x6E\x65\x72\x61\x74\x6F\x72\x2E\x61\x70\x70\x6C\x79\x28\x74\x68\x69\x73\x41\x72\x67\x2C\x20\x5F\x61\x72\x67\x75\x6D\x65\x6E\x74\x73\x20\x7C\x7C\x20\x5B\x5D\x29\x29\x2E\x6E\x65\x78\x74\x28\x29\x29\x3B\x0A\x20\x20\x20\x20\x7D\x29\x3B\x0A\x7D\x3B\x0A\x76\x61\x72\x20\x5F\x5F\x67\x65\x6E\x65\x72\x61\x74\x6F\x72\x20\x3D\x20\x28\x74\x68\x69\x73\x20\x26\x26\x20\x74\x68\x69\x73\x2E\x5F\x5F\x67\x65\x6E\x65\x72\x61\x74\x6F\x72\x29\x20\x7C\x7C\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x74\x68\x69\x73\x41\x72\x67\x2C\x20\x62\x6F\x64\x79\x29\x20\x7B\x0A\x20\x20\x20\x20\x76\x61\x72\x20\x5F\x20\x3D\x20\x7B\x20\x6C\x61\x62\x65\x6C\x3A\x20\x30\x2C\x20\x73\x65\x6E\x74\x3A\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x28\x29\x20\x7B\x20\x69\x66\x20\x28\x74\x5B\x30\x5D\x20\x26\x20\x31\x29\x20\x74\x68\x72\x6F\x77\x20\x74\x5B\x31\x5D\x3B\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x5B\x31\x5D\x3B\x20\x7D\x2C\x20\x74\x72\x79\x73\x3A\x20\x5B\x5D\x2C\x20\x6F\x70\x73\x3A\x20\x5B\x5D\x20\x7D\x2C\x20\x66\x2C\x20\x79\x2C\x20\x74\x2C\x20\x67\x3B\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x67\x20\x3D\x20\x7B\x20\x6E\x65\x78\x74\x3A\x20\x76\x65\x72\x62\x28\x30\x29\x2C\x20\x22\x74\x68\x72\x6F\x77\x22\x3A\x20\x76\x65\x72\x62\x28\x31\x29\x2C\x20\x22\x72\x65\x74\x75\x72\x6E\x22\x3A\x20\x76\x65\x72\x62\x28\x32\x29\x20\x7D\x2C\x20\x74\x79\x70\x65\x6F\x66\x20\x53\x79\x6D\x62\x6F\x6C\x20\x3D\x3D\x3D\x20\x22\x66\x75\x6E\x63\x74\x69\x6F\x6E\x22\x20\x26\x26\x20\x28\x67\x5B\x53\x79\x6D\x62\x6F\x6C\x2E\x69\x74\x65\x72\x61\x74\x6F\x72\x5D\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x28\x29\x20\x7B\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x68\x69\x73\x3B\x20\x7D\x29\x2C\x20\x67\x3B\x0A\x20\x20\x20\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x76\x65\x72\x62\x28\x6E\x29\x20\x7B\x20\x72\x65\x74\x75\x72\x6E\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x76\x29\x20\x7B\x20\x72\x65\x74\x75\x72\x6E\x20\x73\x74\x65\x70\x28\x5B\x6E\x2C\x20\x76\x5D\x29\x3B\x20\x7D\x3B\x20\x7D\x0A\x20\x20\x20\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x74\x65\x70\x28\x6F\x70\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x66\x29\x20\x74\x68\x72\x6F\x77\x20\x6E\x65\x77\x20\x54\x79\x70\x65\x45\x72\x72\x6F\x72\x28\x22\x47\x65\x6E\x65\x72\x61\x74\x6F\x72\x20\x69\x73\x20\x61\x6C\x72\x65\x61\x64\x79\x20\x65\x78\x65\x63\x75\x74\x69\x6E\x67\x2E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6C\x65\x20\x28\x5F\x29\x20\x74\x72\x79\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x66\x20\x3D\x20\x31\x2C\x20\x79\x20\x26\x26\x20\x28\x74\x20\x3D\x20\x6F\x70\x5B\x30\x5D\x20\x26\x20\x32\x20\x3F\x20\x79\x5B\x22\x72\x65\x74\x75\x72\x6E\x22\x5D\x20\x3A\x20\x6F\x70\x5B\x30\x5D\x20\x3F\x20\x79\x5B\x22\x74\x68\x72\x6F\x77\x22\x5D\x20\x7C\x7C\x20\x28\x28\x74\x20\x3D\x20\x79\x5B\x22\x72\x65\x74\x75\x72\x6E\x22\x5D\x29\x20\x26\x26\x20\x74\x2E\x63\x61\x6C\x6C\x28\x79\x29\x2C\x20\x30\x29\x20\x3A\x20\x79\x2E\x6E\x65\x78\x74\x29\x20\x26\x26\x20\x21\x28\x74\x20\x3D\x20\x74\x2E\x63\x61\x6C\x6C\x28\x79\x2C\x20\x6F\x70\x5B\x31\x5D\x29\x29\x2E\x64\x6F\x6E\x65\x29\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x79\x20\x3D\x20\x30\x2C\x20\x74\x29\x20\x6F\x70\x20\x3D\x20\x5B\x6F\x70\x5B\x30\x5D\x20\x26\x20\x32\x2C\x20\x74\x2E\x76\x61\x6C\x75\x65\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x6F\x70\x5B\x30\x5D\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x30\x3A\x20\x63\x61\x73\x65\x20\x31\x3A\x20\x74\x20\x3D\x20\x6F\x70\x3B\x20\x62\x72\x65\x61\x6B\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x34\x3A\x20\x5F\x2E\x6C\x61\x62\x65\x6C\x2B\x2B\x3B\x20\x72\x65\x74\x75\x72\x6E\x20\x7B\x20\x76\x61\x6C\x75\x65\x3A\x20\x6F\x70\x5B\x31\x5D\x2C\x20\x64\x6F\x6E\x65\x3A\x20\x66\x61\x6C\x73\x65\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x35\x3A\x20\x5F\x2E\x6C\x61\x62\x65\x6C\x2B\x2B\x3B\x20\x79\x20\x3D\x20\x6F\x70\x5B\x31\x5D\x3B\x20\x6F\x70\x20\x3D\x20\x5B\x30\x5D\x3B\x20\x63\x6F\x6E\x74\x69\x6E\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x37\x3A\x20\x6F\x70\x20\x3D\x20\x5F\x2E\x6F\x70\x73\x2E\x70\x6F\x70\x28\x29\x3B\x20\x5F\x2E\x74\x72\x79\x73\x2E\x70\x6F\x70\x28\x29\x3B\x20\x63\x6F\x6E\x74\x69\x6E\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\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\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x28\x74\x20\x3D\x20\x5F\x2E\x74\x72\x79\x73\x2C\x20\x74\x20\x3D\x20\x74\x2E\x6C\x65\x6E\x67\x74\x68\x20\x3E\x20\x30\x20\x26\x26\x20\x74\x5B\x74\x2E\x6C\x65\x6E\x67\x74\x68\x20\x2D\x20\x31\x5D\x29\x20\x26\x26\x20\x28\x6F\x70\x5B\x30\x5D\x20\x3D\x3D\x3D\x20\x36\x20\x7C\x7C\x20\x6F\x70\x5B\x30\x5D\x20\x3D\x3D\x3D\x20\x32\x29\x29\x20\x7B\x20\x5F\x20\x3D\x20\x30\x3B\x20\x63\x6F\x6E\x74\x69\x6E\x75\x65\x3B\x20\x7D\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\x6F\x70\x5B\x30\x5D\x20\x3D\x3D\x3D\x20\x33\x20\x26\x26\x20\x28\x21\x74\x20\x7C\x7C\x20\x28\x6F\x70\x5B\x31\x5D\x20\x3E\x20\x74\x5B\x30\x5D\x20\x26\x26\x20\x6F\x70\x5B\x31\x5D\x20\x3C\x20\x74\x5B\x33\x5D\x29\x29\x29\x20\x7B\x20\x5F\x2E\x6C\x61\x62\x65\x6C\x20\x3D\x20\x6F\x70\x5B\x31\x5D\x3B\x20\x62\x72\x65\x61\x6B\x3B\x20\x7D\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\x6F\x70\x5B\x30\x5D\x20\x3D\x3D\x3D\x20\x36\x20\x26\x26\x20\x5F\x2E\x6C\x61\x62\x65\x6C\x20\x3C\x20\x74\x5B\x31\x5D\x29\x20\x7B\x20\x5F\x2E\x6C\x61\x62\x65\x6C\x20\x3D\x20\x74\x5B\x31\x5D\x3B\x20\x74\x20\x3D\x20\x6F\x70\x3B\x20\x62\x72\x65\x61\x6B\x3B\x20\x7D\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\x20\x26\x26\x20\x5F\x2E\x6C\x61\x62\x65\x6C\x20\x3C\x20\x74\x5B\x32\x5D\x29\x20\x7B\x20\x5F\x2E\x6C\x61\x62\x65\x6C\x20\x3D\x20\x74\x5B\x32\x5D\x3B\x20\x5F\x2E\x6F\x70\x73\x2E\x70\x75\x73\x68\x28\x6F\x70\x29\x3B\x20\x62\x72\x65\x61\x6B\x3B\x20\x7D\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\x5B\x32\x5D\x29\x20\x5F\x2E\x6F\x70\x73\x2E\x70\x6F\x70\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x5F\x2E\x74\x72\x79\x73\x2E\x70\x6F\x70\x28\x29\x3B\x20\x63\x6F\x6E\x74\x69\x6E\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\x6F\x70\x20\x3D\x20\x62\x6F\x64\x79\x2E\x63\x61\x6C\x6C\x28\x74\x68\x69\x73\x41\x72\x67\x2C\x20\x5F\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x20\x63\x61\x74\x63\x68\x20\x28\x65\x29\x20\x7B\x20\x6F\x70\x20\x3D\x20\x5B\x36\x2C\x20\x65\x5D\x3B\x20\x79\x20\x3D\x20\x30\x3B\x20\x7D\x20\x66\x69\x6E\x61\x6C\x6C\x79\x20\x7B\x20\x66\x20\x3D\x20\x74\x20\x3D\x20\x30\x3B\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x70\x5B\x30\x5D\x20\x26\x20\x35\x29\x20\x74\x68\x72\x6F\x77\x20\x6F\x70\x5B\x31\x5D\x3B\x20\x72\x65\x74\x75\x72\x6E\x20\x7B\x20\x76\x61\x6C\x75\x65\x3A\x20\x6F\x70\x5B\x30\x5D\x20\x3F\x20\x6F\x70\x5B\x31\x5D\x20\x3A\x20\x76\x6F\x69\x64\x20\x30\x2C\x20\x64\x6F\x6E\x65\x3A\x20\x74\x72\x75\x65\x20\x7D\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x3B\x0A\x65\x78\x70\x6F\x72\x74\x73\x2E\x5F\x5F\x65\x73\x4D\x6F\x64\x75\x6C\x65\x20\x3D\x20\x74\x72\x75\x65\x3B\x0A\x65\x78\x70\x6F\x72\x74\x73\x2E\x45\x64\x69\x74\x6F\x72\x20\x3D\x20\x76\x6F\x69\x64\x20\x30\x3B\x0A\x76\x61\x72\x20\x45\x64\x69\x74\x6F\x72\x20\x3D\x20\x2F\x2A\x2A\x20\x40\x63\x6C\x61\x73\x73\x20\x2A\x2F\x20\x28\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x45\x64\x69\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\x61\x63\x74\x69\x76\x65\x46\x69\x6C\x65\x20\x3D\x20\x6E\x75\x6C\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x76\x65\x54\x65\x78\x74\x20\x3D\x20\x6E\x75\x6C\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x42\x65\x67\x69\x6E\x20\x3D\x20\x2D\x31\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x45\x6E\x64\x20\x3D\x20\x2D\x31\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x61\x77\x4C\x69\x6E\x65\x73\x20\x3D\x20\x5B\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x20\x3D\x20\x5B\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x73\x65\x6C\x20\x3D\x20\x6E\x75\x6C\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x69\x73\x4B\x65\x79\x43\x6F\x6E\x74\x72\x6F\x6C\x20\x3D\x20\x66\x61\x6C\x73\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x75\x6E\x72\x65\x20\x3D\x20\x6E\x65\x77\x20\x55\x6E\x64\x6F\x52\x65\x64\x6F\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x69\x64\x20\x3D\x20\x6F\x70\x74\x73\x2E\x69\x64\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x69\x73\x5F\x65\x64\x69\x74\x61\x62\x6C\x65\x20\x3D\x20\x6F\x70\x74\x73\x2E\x69\x73\x5F\x65\x64\x69\x74\x61\x62\x6C\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\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64\x28\x6F\x70\x74\x73\x2E\x69\x64\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x6F\x6C\x65\x2E\x65\x72\x72\x6F\x72\x28\x22\x45\x64\x69\x74\x6F\x72\x3A\x20\x65\x6C\x65\x6D\x65\x6E\x74\x20\x49\x44\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64\x3A\x22\x2C\x20\x6F\x70\x74\x73\x2E\x69\x64\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\x69\x6E\x69\x74\x53\x74\x79\x6C\x65\x28\x29\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\x22\x77\x75\x69\x2D\x65\x64\x69\x74\x6F\x72\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x73\x65\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x52\x61\x6E\x67\x65\x28\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x2F\x2F\x20\x47\x65\x74\x43\x6F\x6E\x74\x65\x6E\x74\x20\x72\x65\x74\x75\x72\x6E\x20\x63\x6F\x6E\x74\x65\x6E\x74\x20\x6F\x66\x20\x66\x69\x6C\x65\x2E\x0A\x20\x20\x20\x20\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x47\x65\x74\x43\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x76\x61\x72\x20\x78\x20\x3D\x20\x30\x3B\x20\x78\x20\x3C\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x2E\x6C\x65\x6E\x67\x74\x68\x3B\x20\x78\x2B\x2B\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x78\x20\x3E\x20\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x74\x65\x6E\x74\x20\x2B\x3D\x20\x22\x5C\x6E\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\x63\x6F\x6E\x74\x65\x6E\x74\x20\x2B\x3D\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x5B\x78\x5D\x2E\x65\x6C\x54\x65\x78\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\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\x63\x6F\x6E\x74\x65\x6E\x74\x3B\x0A\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x47\x65\x74\x46\x69\x6C\x65\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6E\x6F\x64\x65\x20\x3D\x20\x7B\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\x70\x61\x74\x68\x3A\x20\x22\x22\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x76\x65\x46\x69\x6C\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6E\x6F\x64\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x6F\x64\x65\x2E\x6E\x61\x6D\x65\x20\x3D\x20\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x76\x65\x46\x69\x6C\x65\x2E\x6E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x6F\x64\x65\x2E\x70\x61\x74\x68\x20\x3D\x20\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x76\x65\x46\x69\x6C\x65\x2E\x70\x61\x74\x68\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x6F\x64\x65\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x74\x68\x69\x73\x2E\x47\x65\x74\x43\x6F\x6E\x74\x65\x6E\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6E\x6F\x64\x65\x3B\x0A\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x47\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x52\x61\x6E\x67\x65\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x42\x65\x67\x69\x6E\x41\x74\x3A\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x42\x65\x67\x69\x6E\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x45\x6E\x64\x41\x74\x3A\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x45\x6E\x64\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x4F\x70\x65\x6E\x46\x69\x6C\x65\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x70\x61\x74\x68\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x5F\x5F\x61\x77\x61\x69\x74\x65\x72\x28\x74\x68\x69\x73\x2C\x20\x76\x6F\x69\x64\x20\x30\x2C\x20\x76\x6F\x69\x64\x20\x30\x2C\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x65\x73\x2C\x20\x63\x6F\x6E\x74\x65\x6E\x74\x2C\x20\x78\x2C\x20\x6C\x69\x6E\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x5F\x5F\x67\x65\x6E\x65\x72\x61\x74\x6F\x72\x28\x74\x68\x69\x73\x2C\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x5F\x61\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x5F\x61\x2E\x6C\x61\x62\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\x63\x61\x73\x65\x20\x30\x3A\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\x21\x74\x68\x69\x73\x2E\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\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x5B\x32\x20\x2F\x2A\x72\x65\x74\x75\x72\x6E\x2A\x2F\x2C\x20\x7B\x20\x63\x6F\x64\x65\x3A\x20\x35\x30\x30\x20\x7D\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\x7D\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\x72\x65\x74\x75\x72\x6E\x20\x5B\x34\x20\x2F\x2A\x79\x69\x65\x6C\x64\x2A\x2F\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4F\x70\x65\x6E\x46\x69\x6C\x65\x28\x70\x61\x74\x68\x29\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\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\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x20\x3D\x20\x5F\x61\x2E\x73\x65\x6E\x74\x28\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\x69\x66\x20\x28\x21\x72\x65\x73\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\x72\x65\x74\x75\x72\x6E\x20\x5B\x32\x20\x2F\x2A\x72\x65\x74\x75\x72\x6E\x2A\x2F\x2C\x20\x7B\x20\x63\x6F\x64\x65\x3A\x20\x35\x30\x30\x20\x7D\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\x7D\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\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\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x5B\x32\x20\x2F\x2A\x72\x65\x74\x75\x72\x6E\x2A\x2F\x2C\x20\x72\x65\x73\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\x7D\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\x21\x72\x65\x73\x2E\x64\x61\x74\x61\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\x72\x65\x74\x75\x72\x6E\x20\x5B\x32\x20\x2F\x2A\x72\x65\x74\x75\x72\x6E\x2A\x2F\x2C\x20\x72\x65\x73\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\x7D\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\x61\x63\x74\x69\x76\x65\x46\x69\x6C\x65\x20\x3D\x20\x72\x65\x73\x2E\x64\x61\x74\x61\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\x63\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x76\x65\x46\x69\x6C\x65\x2E\x63\x6F\x6E\x74\x65\x6E\x74\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\x63\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x63\x6F\x6E\x74\x65\x6E\x74\x2E\x72\x65\x70\x6C\x61\x63\x65\x28\x22\x5C\x72\x5C\x6E\x22\x2C\x20\x22\x5C\x6E\x22\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\x72\x61\x77\x4C\x69\x6E\x65\x73\x20\x3D\x20\x63\x6F\x6E\x74\x65\x6E\x74\x2E\x73\x70\x6C\x69\x74\x28\x22\x5C\x6E\x22\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\x6C\x69\x6E\x65\x73\x20\x3D\x20\x5B\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\x66\x6F\x72\x20\x28\x78\x20\x3D\x20\x30\x3B\x20\x78\x20\x3C\x20\x74\x68\x69\x73\x2E\x72\x61\x77\x4C\x69\x6E\x65\x73\x2E\x6C\x65\x6E\x67\x74\x68\x3B\x20\x78\x2B\x2B\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\x6C\x69\x6E\x65\x20\x3D\x20\x6E\x65\x77\x20\x45\x64\x69\x74\x6F\x72\x4C\x69\x6E\x65\x28\x78\x2C\x20\x74\x68\x69\x73\x2E\x72\x61\x77\x4C\x69\x6E\x65\x73\x5B\x78\x5D\x2C\x20\x74\x68\x69\x73\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\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x2E\x70\x75\x73\x68\x28\x6C\x69\x6E\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\x7D\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\x72\x65\x6E\x64\x65\x72\x28\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\x72\x65\x74\x75\x72\x6E\x20\x5B\x32\x20\x2F\x2A\x72\x65\x74\x75\x72\x6E\x2A\x2F\x2C\x20\x72\x65\x73\x5D\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\x7D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x63\x6C\x65\x61\x72\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x65\x6C\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\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x45\x6E\x64\x20\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\x66\x6F\x72\x20\x28\x76\x61\x72\x20\x78\x20\x3D\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x42\x65\x67\x69\x6E\x3B\x20\x78\x20\x3C\x3D\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x45\x6E\x64\x3B\x20\x78\x2B\x2B\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x63\x68\x69\x6C\x64\x72\x65\x6E\x5B\x78\x5D\x2E\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x73\x74\x79\x6C\x65\x22\x2C\x20\x22\x22\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\x72\x61\x6E\x67\x65\x42\x65\x67\x69\x6E\x20\x3D\x20\x2D\x31\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x45\x6E\x64\x20\x3D\x20\x2D\x31\x3B\x0A\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x69\x6E\x69\x74\x53\x74\x79\x6C\x65\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\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\x22\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5B\x63\x6F\x6E\x74\x65\x6E\x74\x65\x64\x69\x74\x61\x62\x6C\x65\x5D\x20\x7B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x6F\x75\x74\x6C\x69\x6E\x65\x3A\x20\x30\x70\x78\x20\x73\x6F\x6C\x69\x64\x20\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x7D\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x2E\x77\x75\x69\x2D\x65\x64\x69\x74\x6F\x72\x20\x7B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x2D\x63\x6F\x6C\x6F\x72\x3A\x20\x63\x6F\x72\x6E\x73\x69\x6C\x6B\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x66\x6F\x6E\x74\x2D\x66\x61\x6D\x69\x6C\x79\x3A\x20\x6D\x6F\x6E\x6F\x73\x70\x61\x63\x65\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x6F\x76\x65\x72\x66\x6C\x6F\x77\x2D\x79\x3A\x20\x61\x75\x74\x6F\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x77\x69\x64\x74\x68\x3A\x20\x31\x30\x30\x25\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x7D\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x2E\x77\x75\x69\x2D\x65\x64\x69\x74\x6F\x72\x2D\x6C\x69\x6E\x65\x20\x7B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x64\x69\x73\x70\x6C\x61\x79\x3A\x20\x62\x6C\x6F\x63\x6B\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x77\x69\x64\x74\x68\x3A\x20\x31\x30\x30\x25\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x7D\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x2E\x77\x75\x69\x2D\x6C\x69\x6E\x65\x2D\x6E\x75\x6D\x62\x65\x72\x20\x7B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x63\x6F\x6C\x6F\x72\x3A\x20\x64\x69\x6D\x67\x72\x65\x79\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x63\x75\x72\x73\x6F\x72\x3A\x20\x70\x6F\x69\x6E\x74\x65\x72\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x64\x69\x73\x70\x6C\x61\x79\x3A\x20\x69\x6E\x6C\x69\x6E\x65\x2D\x62\x6C\x6F\x63\x6B\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x70\x61\x64\x64\x69\x6E\x67\x3A\x20\x34\x70\x78\x20\x31\x30\x70\x78\x20\x34\x70\x78\x20\x34\x70\x78\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x74\x65\x78\x74\x2D\x61\x6C\x69\x67\x6E\x3A\x20\x72\x69\x67\x68\x74\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x75\x73\x65\x72\x2D\x73\x65\x6C\x65\x63\x74\x3A\x20\x6E\x6F\x6E\x65\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x76\x65\x72\x74\x69\x63\x61\x6C\x2D\x61\x6C\x69\x67\x6E\x3A\x20\x74\x6F\x70\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x77\x69\x64\x74\x68\x3A\x20\x33\x30\x70\x78\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x7D\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x2E\x77\x75\x69\x2D\x6C\x69\x6E\x65\x2D\x6E\x75\x6D\x62\x65\x72\x3A\x68\x6F\x76\x65\x72\x20\x7B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\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\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x7D\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x2E\x77\x75\x69\x2D\x6C\x69\x6E\x65\x2D\x74\x65\x78\x74\x20\x7B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x64\x69\x73\x70\x6C\x61\x79\x3A\x20\x69\x6E\x6C\x69\x6E\x65\x2D\x62\x6C\x6F\x63\x6B\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x70\x61\x64\x64\x69\x6E\x67\x3A\x20\x34\x70\x78\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x62\x6F\x72\x64\x65\x72\x2D\x63\x6F\x6C\x6F\x72\x3A\x20\x6C\x69\x67\x68\x74\x62\x6C\x75\x65\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x62\x6F\x72\x64\x65\x72\x2D\x77\x69\x64\x74\x68\x3A\x20\x30\x70\x78\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x62\x6F\x72\x64\x65\x72\x2D\x73\x74\x79\x6C\x65\x3A\x20\x73\x6F\x6C\x69\x64\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x77\x68\x69\x74\x65\x2D\x73\x70\x61\x63\x65\x3A\x20\x70\x72\x65\x2D\x77\x72\x61\x70\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x77\x69\x64\x74\x68\x3A\x20\x63\x61\x6C\x63\x28\x31\x30\x30\x25\x20\x2D\x20\x36\x30\x70\x78\x29\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x7D\x5C\x6E\x5C\x74\x5C\x74\x22\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\x3B\x0A\x20\x20\x20\x20\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x64\x6F\x4A\x6F\x69\x6E\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x63\x68\x61\x6E\x67\x65\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x5B\x63\x68\x61\x6E\x67\x65\x73\x2E\x63\x75\x72\x72\x4C\x69\x6E\x65\x5D\x2E\x65\x6C\x54\x65\x78\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x63\x68\x61\x6E\x67\x65\x73\x2E\x63\x75\x72\x72\x54\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x64\x65\x6C\x65\x74\x65\x4C\x69\x6E\x65\x28\x63\x68\x61\x6E\x67\x65\x73\x2E\x6E\x65\x78\x74\x4C\x69\x6E\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x73\x65\x74\x43\x61\x72\x65\x74\x28\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x5B\x63\x68\x61\x6E\x67\x65\x73\x2E\x63\x75\x72\x72\x4C\x69\x6E\x65\x5D\x2E\x65\x6C\x54\x65\x78\x74\x2C\x20\x30\x29\x3B\x0A\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x64\x6F\x53\x70\x6C\x69\x74\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x63\x68\x61\x6E\x67\x65\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x5B\x63\x68\x61\x6E\x67\x65\x73\x2E\x63\x75\x72\x72\x4C\x69\x6E\x65\x5D\x2E\x65\x6C\x54\x65\x78\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x63\x68\x61\x6E\x67\x65\x73\x2E\x63\x75\x72\x72\x54\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x69\x6E\x73\x65\x72\x74\x4E\x65\x77\x6C\x69\x6E\x65\x28\x63\x68\x61\x6E\x67\x65\x73\x2E\x6E\x65\x78\x74\x4C\x69\x6E\x65\x2C\x20\x63\x68\x61\x6E\x67\x65\x73\x2E\x6E\x65\x78\x74\x54\x65\x78\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x64\x6F\x55\x70\x64\x61\x74\x65\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x63\x68\x61\x6E\x67\x65\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x5B\x63\x68\x61\x6E\x67\x65\x73\x2E\x63\x75\x72\x72\x4C\x69\x6E\x65\x5D\x2E\x65\x6C\x54\x65\x78\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x63\x68\x61\x6E\x67\x65\x73\x2E\x63\x75\x72\x72\x54\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x73\x65\x74\x43\x61\x72\x65\x74\x28\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x5B\x63\x68\x61\x6E\x67\x65\x73\x2E\x63\x75\x72\x72\x4C\x69\x6E\x65\x5D\x2E\x65\x6C\x54\x65\x78\x74\x2C\x20\x30\x29\x3B\x0A\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x64\x6F\x52\x65\x64\x6F\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x63\x74\x20\x3D\x20\x74\x68\x69\x73\x2E\x75\x6E\x72\x65\x2E\x52\x65\x64\x6F\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x61\x63\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\x61\x63\x74\x2E\x6B\x69\x6E\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6A\x6F\x69\x6E\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x64\x6F\x4A\x6F\x69\x6E\x28\x61\x63\x74\x2E\x61\x66\x74\x65\x72\x29\x3B\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\x22\x73\x70\x6C\x69\x74\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x64\x6F\x53\x70\x6C\x69\x74\x28\x61\x63\x74\x2E\x61\x66\x74\x65\x72\x29\x3B\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\x22\x75\x70\x64\x61\x74\x65\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x64\x6F\x55\x70\x64\x61\x74\x65\x28\x61\x63\x74\x2E\x61\x66\x74\x65\x72\x29\x3B\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\x3B\x0A\x20\x20\x20\x20\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x64\x6F\x55\x6E\x64\x6F\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x63\x74\x20\x3D\x20\x74\x68\x69\x73\x2E\x75\x6E\x72\x65\x2E\x55\x6E\x64\x6F\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x61\x63\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\x61\x63\x74\x2E\x6B\x69\x6E\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6A\x6F\x69\x6E\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x64\x6F\x53\x70\x6C\x69\x74\x28\x61\x63\x74\x2E\x62\x65\x66\x6F\x72\x65\x29\x3B\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\x22\x73\x70\x6C\x69\x74\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x64\x6F\x4A\x6F\x69\x6E\x28\x61\x63\x74\x2E\x62\x65\x66\x6F\x72\x65\x29\x3B\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\x22\x75\x70\x64\x61\x74\x65\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x64\x6F\x55\x70\x64\x61\x74\x65\x28\x61\x63\x74\x2E\x62\x65\x66\x6F\x72\x65\x29\x3B\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\x3B\x0A\x20\x20\x20\x20\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x64\x65\x6C\x65\x74\x65\x4C\x69\x6E\x65\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x78\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x2E\x73\x70\x6C\x69\x63\x65\x28\x78\x2C\x20\x31\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x61\x77\x4C\x69\x6E\x65\x73\x2E\x73\x70\x6C\x69\x63\x65\x28\x78\x2C\x20\x31\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x2F\x2F\x20\x52\x65\x73\x65\x74\x20\x74\x68\x65\x20\x6C\x69\x6E\x65\x20\x6E\x75\x6D\x62\x65\x72\x73\x2E\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x3B\x20\x78\x20\x3C\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x2E\x6C\x65\x6E\x67\x74\x68\x3B\x20\x78\x2B\x2B\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x5B\x78\x5D\x2E\x73\x65\x74\x4E\x75\x6D\x62\x65\x72\x28\x78\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\x72\x65\x6E\x64\x65\x72\x28\x29\x3B\x0A\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x69\x6E\x73\x65\x72\x74\x4E\x65\x77\x6C\x69\x6E\x65\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x78\x2C\x20\x74\x65\x78\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6E\x65\x77\x6C\x69\x6E\x65\x20\x3D\x20\x6E\x65\x77\x20\x45\x64\x69\x74\x6F\x72\x4C\x69\x6E\x65\x28\x78\x2C\x20\x74\x65\x78\x74\x2C\x20\x74\x68\x69\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x76\x61\x72\x20\x79\x20\x3D\x20\x78\x3B\x20\x79\x20\x3C\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x2E\x6C\x65\x6E\x67\x74\x68\x3B\x20\x79\x2B\x2B\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x5B\x79\x5D\x2E\x73\x65\x74\x4E\x75\x6D\x62\x65\x72\x28\x79\x20\x2B\x20\x31\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\x6C\x69\x6E\x65\x73\x2E\x73\x70\x6C\x69\x63\x65\x28\x78\x2C\x20\x30\x2C\x20\x6E\x65\x77\x6C\x69\x6E\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x61\x77\x4C\x69\x6E\x65\x73\x2E\x73\x70\x6C\x69\x63\x65\x28\x78\x2C\x20\x30\x2C\x20\x74\x65\x78\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x65\x6E\x64\x65\x72\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x73\x65\x74\x43\x61\x72\x65\x74\x28\x6E\x65\x77\x6C\x69\x6E\x65\x2E\x65\x6C\x54\x65\x78\x74\x2C\x20\x30\x29\x3B\x0A\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x54\x65\x78\x74\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x74\x65\x78\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x73\x65\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x6F\x6E\x4B\x65\x79\x75\x70\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x78\x2C\x20\x74\x65\x78\x74\x2C\x20\x65\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x65\x78\x74\x42\x65\x66\x6F\x72\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x65\x78\x74\x41\x66\x74\x65\x72\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6F\x66\x66\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x65\x76\x2E\x6B\x65\x79\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x41\x6C\x74\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x41\x72\x72\x6F\x77\x44\x6F\x77\x6E\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x41\x72\x72\x6F\x77\x4C\x65\x66\x74\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x41\x72\x72\x6F\x77\x52\x69\x67\x68\x74\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x41\x72\x72\x6F\x77\x55\x70\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x43\x61\x70\x73\x4C\x6F\x63\x6B\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x43\x6F\x6E\x74\x65\x78\x74\x4D\x65\x6E\x75\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x44\x65\x6C\x65\x74\x65\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x45\x6E\x64\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x48\x6F\x6D\x65\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x49\x6E\x73\x65\x72\x74\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x4F\x53\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x50\x61\x67\x65\x44\x6F\x77\x6E\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x50\x61\x67\x65\x55\x70\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x50\x61\x75\x73\x65\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x50\x72\x69\x6E\x74\x53\x63\x72\x65\x65\x6E\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x53\x63\x72\x6F\x6C\x6C\x4C\x6F\x63\x6B\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x53\x68\x69\x66\x74\x22\x3A\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\x22\x42\x61\x63\x6B\x73\x70\x61\x63\x65\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x73\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\x72\x65\x74\x75\x72\x6E\x20\x66\x61\x6C\x73\x65\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\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\x74\x65\x78\x74\x42\x65\x66\x6F\x72\x65\x20\x3D\x20\x74\x68\x69\x73\x2E\x72\x61\x77\x4C\x69\x6E\x65\x73\x5B\x78\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x6C\x54\x65\x78\x74\x43\x75\x72\x72\x20\x3D\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x5B\x78\x5D\x2E\x65\x6C\x54\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x65\x78\x74\x41\x66\x74\x65\x72\x20\x3D\x20\x65\x6C\x54\x65\x78\x74\x43\x75\x72\x72\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x66\x66\x20\x3D\x20\x74\x68\x69\x73\x2E\x73\x65\x6C\x2E\x66\x6F\x63\x75\x73\x4F\x66\x66\x73\x65\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x66\x66\x20\x3E\x20\x30\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\x75\x6E\x72\x65\x2E\x44\x6F\x55\x70\x64\x61\x74\x65\x28\x78\x2C\x20\x74\x65\x78\x74\x42\x65\x66\x6F\x72\x65\x2C\x20\x74\x65\x78\x74\x41\x66\x74\x65\x72\x29\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\x72\x61\x77\x4C\x69\x6E\x65\x73\x5B\x78\x5D\x20\x3D\x20\x74\x65\x78\x74\x41\x66\x74\x65\x72\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\x73\x65\x74\x43\x61\x72\x65\x74\x28\x65\x6C\x54\x65\x78\x74\x43\x75\x72\x72\x2C\x20\x6F\x66\x66\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\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\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\x2F\x2F\x20\x4A\x6F\x69\x6E\x20\x63\x75\x72\x72\x65\x6E\x74\x20\x6C\x69\x6E\x65\x20\x77\x69\x74\x68\x20\x70\x72\x65\x76\x69\x6F\x75\x73\x2E\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x6C\x54\x65\x78\x74\x50\x72\x65\x76\x20\x3D\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x5B\x78\x20\x2D\x20\x31\x5D\x2E\x65\x6C\x54\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x75\x6E\x72\x65\x2E\x44\x6F\x4A\x6F\x69\x6E\x28\x78\x20\x2D\x20\x31\x2C\x20\x65\x6C\x54\x65\x78\x74\x50\x72\x65\x76\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x2C\x20\x65\x6C\x54\x65\x78\x74\x43\x75\x72\x72\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x66\x66\x20\x3D\x20\x65\x6C\x54\x65\x78\x74\x50\x72\x65\x76\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x2E\x6C\x65\x6E\x67\x74\x68\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x65\x78\x74\x50\x72\x65\x76\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x65\x6C\x54\x65\x78\x74\x50\x72\x65\x76\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x2B\x20\x65\x6C\x54\x65\x78\x74\x43\x75\x72\x72\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x61\x77\x4C\x69\x6E\x65\x73\x5B\x78\x20\x2D\x20\x31\x5D\x20\x3D\x20\x65\x6C\x54\x65\x78\x74\x50\x72\x65\x76\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x2F\x2F\x20\x52\x65\x6D\x6F\x76\x65\x20\x74\x68\x65\x20\x63\x75\x72\x72\x65\x6E\x74\x20\x6C\x69\x6E\x65\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x64\x65\x6C\x65\x74\x65\x4C\x69\x6E\x65\x28\x78\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x73\x65\x74\x43\x61\x72\x65\x74\x28\x65\x6C\x54\x65\x78\x74\x50\x72\x65\x76\x2C\x20\x6F\x66\x66\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\x20\x66\x61\x6C\x73\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x43\x6F\x6E\x74\x72\x6F\x6C\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x69\x73\x4B\x65\x79\x43\x6F\x6E\x74\x72\x6F\x6C\x20\x3D\x20\x66\x61\x6C\x73\x65\x3B\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\x22\x45\x6E\x74\x65\x72\x22\x3A\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\x62\x72\x65\x61\x6B\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x72\x22\x3A\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\x69\x73\x4B\x65\x79\x43\x6F\x6E\x74\x72\x6F\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\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\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\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\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x7A\x22\x3A\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\x69\x73\x4B\x65\x79\x43\x6F\x6E\x74\x72\x6F\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\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\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\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\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\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x69\x73\x4B\x65\x79\x43\x6F\x6E\x74\x72\x6F\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\x62\x72\x65\x61\x6B\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\x74\x68\x69\x73\x2E\x75\x6E\x72\x65\x2E\x44\x6F\x55\x70\x64\x61\x74\x65\x28\x78\x2C\x20\x74\x68\x69\x73\x2E\x72\x61\x77\x4C\x69\x6E\x65\x73\x5B\x78\x5D\x2C\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x5B\x78\x5D\x2E\x65\x6C\x54\x65\x78\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x61\x77\x4C\x69\x6E\x65\x73\x5B\x78\x5D\x20\x3D\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x5B\x78\x5D\x2E\x65\x6C\x54\x65\x78\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\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\x3B\x0A\x20\x20\x20\x20\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x6F\x6E\x4B\x65\x79\x64\x6F\x77\x6E\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x78\x2C\x20\x65\x6C\x54\x65\x78\x74\x2C\x20\x65\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x65\x78\x74\x42\x65\x66\x6F\x72\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x65\x78\x74\x41\x66\x74\x65\x72\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6F\x66\x66\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x65\x76\x2E\x6B\x65\x79\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x41\x72\x72\x6F\x77\x55\x70\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x78\x20\x3D\x3D\x20\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\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\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\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x73\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\x72\x65\x74\x75\x72\x6E\x20\x66\x61\x6C\x73\x65\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\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\x76\x61\x72\x20\x65\x6C\x54\x65\x78\x74\x5F\x31\x20\x3D\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x5B\x78\x20\x2D\x20\x31\x5D\x2E\x65\x6C\x54\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6F\x66\x66\x5F\x31\x20\x3D\x20\x74\x68\x69\x73\x2E\x73\x65\x6C\x2E\x66\x6F\x63\x75\x73\x4F\x66\x66\x73\x65\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x66\x66\x5F\x31\x20\x3E\x20\x65\x6C\x54\x65\x78\x74\x5F\x31\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x2E\x6C\x65\x6E\x67\x74\x68\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x66\x66\x5F\x31\x20\x3D\x20\x65\x6C\x54\x65\x78\x74\x5F\x31\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x2E\x6C\x65\x6E\x67\x74\x68\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\x74\x68\x69\x73\x2E\x73\x65\x74\x43\x61\x72\x65\x74\x28\x65\x6C\x54\x65\x78\x74\x5F\x31\x2C\x20\x6F\x66\x66\x5F\x31\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x78\x20\x3D\x3D\x20\x31\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\x2E\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70\x20\x3D\x20\x30\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\x78\x20\x2A\x20\x32\x33\x20\x3C\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70\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\x2E\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70\x20\x2D\x3D\x20\x32\x35\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\x72\x65\x74\x75\x72\x6E\x20\x66\x61\x6C\x73\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x41\x72\x72\x6F\x77\x44\x6F\x77\x6E\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x78\x20\x3D\x3D\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x2E\x6C\x65\x6E\x67\x74\x68\x20\x2D\x20\x31\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\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\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\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x73\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\x72\x65\x74\x75\x72\x6E\x20\x66\x61\x6C\x73\x65\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\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\x6C\x54\x65\x78\x74\x5F\x31\x20\x3D\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x5B\x78\x20\x2B\x20\x31\x5D\x2E\x65\x6C\x54\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x66\x66\x5F\x31\x20\x3D\x20\x74\x68\x69\x73\x2E\x73\x65\x6C\x2E\x66\x6F\x63\x75\x73\x4F\x66\x66\x73\x65\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x66\x66\x5F\x31\x20\x3E\x20\x65\x6C\x54\x65\x78\x74\x5F\x31\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x2E\x6C\x65\x6E\x67\x74\x68\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x66\x66\x5F\x31\x20\x3D\x20\x65\x6C\x54\x65\x78\x74\x5F\x31\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x2E\x6C\x65\x6E\x67\x74\x68\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\x74\x68\x69\x73\x2E\x73\x65\x74\x43\x61\x72\x65\x74\x28\x65\x6C\x54\x65\x78\x74\x5F\x31\x2C\x20\x6F\x66\x66\x5F\x31\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x78\x20\x2B\x3D\x20\x32\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x28\x78\x20\x2A\x20\x32\x35\x29\x20\x3E\x3D\x20\x28\x74\x68\x69\x73\x2E\x65\x6C\x2E\x63\x6C\x69\x65\x6E\x74\x48\x65\x69\x67\x68\x74\x20\x2B\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70\x29\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\x2E\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70\x20\x2B\x3D\x20\x32\x35\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\x72\x65\x74\x75\x72\x6E\x20\x66\x61\x6C\x73\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x43\x6F\x6E\x74\x72\x6F\x6C\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x69\x73\x4B\x65\x79\x43\x6F\x6E\x74\x72\x6F\x6C\x20\x3D\x20\x74\x72\x75\x65\x3B\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\x22\x45\x6E\x74\x65\x72\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\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\x72\x65\x74\x75\x72\x6E\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\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x73\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\x72\x65\x74\x75\x72\x6E\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\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\x6F\x66\x66\x5F\x31\x20\x3D\x20\x74\x68\x69\x73\x2E\x73\x65\x6C\x2E\x66\x6F\x63\x75\x73\x4F\x66\x66\x73\x65\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x65\x78\x74\x20\x3D\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x5B\x78\x5D\x2E\x65\x6C\x54\x65\x78\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x65\x78\x74\x42\x65\x66\x6F\x72\x65\x20\x3D\x20\x74\x65\x78\x74\x2E\x73\x6C\x69\x63\x65\x28\x30\x2C\x20\x6F\x66\x66\x5F\x31\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x65\x78\x74\x41\x66\x74\x65\x72\x20\x3D\x20\x74\x65\x78\x74\x2E\x73\x6C\x69\x63\x65\x28\x6F\x66\x66\x5F\x31\x2C\x20\x74\x65\x78\x74\x2E\x6C\x65\x6E\x67\x74\x68\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x75\x6E\x72\x65\x2E\x44\x6F\x53\x70\x6C\x69\x74\x28\x78\x2C\x20\x74\x65\x78\x74\x42\x65\x66\x6F\x72\x65\x2C\x20\x74\x65\x78\x74\x41\x66\x74\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x5B\x78\x5D\x2E\x65\x6C\x54\x65\x78\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x74\x65\x78\x74\x42\x65\x66\x6F\x72\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x61\x77\x4C\x69\x6E\x65\x73\x5B\x78\x5D\x20\x3D\x20\x74\x65\x78\x74\x42\x65\x66\x6F\x72\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x69\x6E\x73\x65\x72\x74\x4E\x65\x77\x6C\x69\x6E\x65\x28\x78\x20\x2B\x20\x31\x2C\x20\x74\x65\x78\x74\x41\x66\x74\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x6F\x6C\x65\x2E\x6C\x6F\x67\x28\x22\x73\x63\x72\x6F\x6C\x6C\x22\x2C\x20\x78\x2C\x20\x74\x68\x69\x73\x2E\x72\x61\x77\x4C\x69\x6E\x65\x73\x2E\x6C\x65\x6E\x67\x74\x68\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x78\x20\x2B\x20\x33\x20\x3E\x3D\x20\x74\x68\x69\x73\x2E\x72\x61\x77\x4C\x69\x6E\x65\x73\x2E\x6C\x65\x6E\x67\x74\x68\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\x2E\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70\x20\x3D\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x73\x63\x72\x6F\x6C\x6C\x48\x65\x69\x67\x68\x74\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\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x45\x73\x63\x61\x70\x65\x22\x3A\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\x74\x68\x69\x73\x2E\x63\x6C\x65\x61\x72\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x28\x29\x3B\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\x22\x54\x61\x62\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x73\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\x72\x65\x74\x75\x72\x6E\x20\x66\x61\x6C\x73\x65\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\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\x6C\x54\x65\x78\x74\x5F\x31\x20\x3D\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x5B\x78\x5D\x2E\x65\x6C\x54\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x66\x66\x5F\x31\x20\x3D\x20\x74\x68\x69\x73\x2E\x73\x65\x6C\x2E\x66\x6F\x63\x75\x73\x4F\x66\x66\x73\x65\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x65\x78\x74\x42\x65\x66\x6F\x72\x65\x20\x3D\x20\x65\x6C\x54\x65\x78\x74\x5F\x31\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x65\x78\x74\x41\x66\x74\x65\x72\x20\x3D\x20\x74\x65\x78\x74\x42\x65\x66\x6F\x72\x65\x2E\x73\x6C\x69\x63\x65\x28\x30\x2C\x20\x6F\x66\x66\x5F\x31\x29\x20\x2B\x20\x22\x5C\x74\x22\x20\x2B\x20\x74\x65\x78\x74\x42\x65\x66\x6F\x72\x65\x2E\x73\x6C\x69\x63\x65\x28\x6F\x66\x66\x5F\x31\x2C\x20\x74\x65\x78\x74\x42\x65\x66\x6F\x72\x65\x2E\x6C\x65\x6E\x67\x74\x68\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x75\x6E\x72\x65\x2E\x44\x6F\x55\x70\x64\x61\x74\x65\x28\x78\x2C\x20\x74\x65\x78\x74\x42\x65\x66\x6F\x72\x65\x2C\x20\x74\x65\x78\x74\x41\x66\x74\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x65\x78\x74\x5F\x31\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x74\x65\x78\x74\x41\x66\x74\x65\x72\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x61\x77\x4C\x69\x6E\x65\x73\x5B\x78\x5D\x20\x3D\x20\x74\x65\x78\x74\x41\x66\x74\x65\x72\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x73\x65\x74\x43\x61\x72\x65\x74\x28\x65\x6C\x54\x65\x78\x74\x5F\x31\x2C\x20\x6F\x66\x66\x5F\x31\x20\x2B\x20\x31\x29\x3B\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\x22\x72\x22\x3A\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\x69\x73\x4B\x65\x79\x43\x6F\x6E\x74\x72\x6F\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\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\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x64\x6F\x52\x65\x64\x6F\x28\x29\x3B\x0A\x20\x20\x20\x20\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\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\x22\x73\x22\x3A\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\x69\x73\x4B\x65\x79\x43\x6F\x6E\x74\x72\x6F\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\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\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\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4F\x6E\x53\x61\x76\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\x4F\x6E\x53\x61\x76\x65\x28\x74\x68\x69\x73\x2E\x47\x65\x74\x43\x6F\x6E\x74\x65\x6E\x74\x28\x29\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\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\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\x22\x7A\x22\x3A\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\x69\x73\x4B\x65\x79\x43\x6F\x6E\x74\x72\x6F\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\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\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x64\x6F\x55\x6E\x64\x6F\x28\x29\x3B\x0A\x20\x20\x20\x20\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\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\x3B\x0A\x20\x20\x20\x20\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x6F\x6E\x4D\x6F\x75\x73\x65\x44\x6F\x77\x6E\x41\x74\x4C\x69\x6E\x65\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x78\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x42\x65\x67\x69\x6E\x20\x3D\x20\x78\x3B\x0A\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x6F\x6E\x4D\x6F\x75\x73\x65\x55\x70\x41\x74\x4C\x69\x6E\x65\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x78\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x45\x6E\x64\x20\x3D\x20\x78\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x45\x6E\x64\x20\x3C\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x42\x65\x67\x69\x6E\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\x21\x74\x68\x69\x73\x2E\x65\x6C\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\x76\x61\x72\x20\x79\x20\x3D\x20\x30\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x3B\x20\x79\x20\x3C\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x42\x65\x67\x69\x6E\x3B\x20\x79\x2B\x2B\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x63\x68\x69\x6C\x64\x72\x65\x6E\x5B\x79\x5D\x2E\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x73\x74\x79\x6C\x65\x22\x2C\x20\x22\x22\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\x3B\x20\x79\x20\x3C\x3D\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x45\x6E\x64\x3B\x20\x79\x2B\x2B\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x63\x68\x69\x6C\x64\x72\x65\x6E\x5B\x79\x5D\x2E\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x73\x74\x79\x6C\x65\x22\x2C\x20\x22\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x2D\x63\x6F\x6C\x6F\x72\x3A\x6C\x69\x67\x68\x74\x73\x61\x6C\x6D\x6F\x6E\x22\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\x3B\x20\x79\x20\x3C\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x63\x68\x69\x6C\x64\x72\x65\x6E\x2E\x6C\x65\x6E\x67\x74\x68\x3B\x20\x79\x2B\x2B\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x63\x68\x69\x6C\x64\x72\x65\x6E\x5B\x79\x5D\x2E\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x73\x74\x79\x6C\x65\x22\x2C\x20\x22\x22\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\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4F\x6E\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\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\x4F\x6E\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x28\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x42\x65\x67\x69\x6E\x2C\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x45\x6E\x64\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x72\x65\x6E\x64\x65\x72\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x65\x6C\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\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\x76\x61\x72\x20\x5F\x69\x20\x3D\x20\x30\x2C\x20\x5F\x61\x20\x3D\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x3B\x20\x5F\x69\x20\x3C\x20\x5F\x61\x2E\x6C\x65\x6E\x67\x74\x68\x3B\x20\x5F\x69\x2B\x2B\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6C\x69\x6E\x65\x20\x3D\x20\x5F\x61\x5B\x5F\x69\x5D\x3B\x0A\x20\x20\x20\x20\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\x6C\x69\x6E\x65\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x73\x65\x74\x43\x61\x72\x65\x74\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x65\x6C\x54\x65\x78\x74\x2C\x20\x6F\x66\x66\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x73\x65\x6C\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\x65\x6C\x54\x65\x78\x74\x2E\x66\x69\x72\x73\x74\x43\x68\x69\x6C\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x2E\x73\x65\x74\x53\x74\x61\x72\x74\x28\x65\x6C\x54\x65\x78\x74\x2E\x66\x69\x72\x73\x74\x43\x68\x69\x6C\x64\x2C\x20\x6F\x66\x66\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\x72\x61\x6E\x67\x65\x2E\x73\x65\x74\x53\x74\x61\x72\x74\x28\x65\x6C\x54\x65\x78\x74\x2C\x20\x6F\x66\x66\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\x72\x61\x6E\x67\x65\x2E\x63\x6F\x6C\x6C\x61\x70\x73\x65\x28\x74\x72\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x73\x65\x6C\x2E\x72\x65\x6D\x6F\x76\x65\x41\x6C\x6C\x52\x61\x6E\x67\x65\x73\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x73\x65\x6C\x2E\x61\x64\x64\x52\x61\x6E\x67\x65\x28\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x45\x64\x69\x74\x6F\x72\x3B\x0A\x7D\x28\x29\x29\x3B\x0A\x65\x78\x70\x6F\x72\x74\x73\x2E\x45\x64\x69\x74\x6F\x72\x20\x3D\x20\x45\x64\x69\x74\x6F\x72\x3B\x0A\x76\x61\x72\x20\x45\x64\x69\x74\x6F\x72\x4C\x69\x6E\x65\x20\x3D\x20\x2F\x2A\x2A\x20\x40\x63\x6C\x61\x73\x73\x20\x2A\x2F\x20\x28\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x45\x64\x69\x74\x6F\x72\x4C\x69\x6E\x65\x28\x78\x2C\x20\x74\x65\x78\x74\x2C\x20\x65\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x5F\x74\x68\x69\x73\x20\x3D\x20\x74\x68\x69\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x78\x20\x3D\x20\x78\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x65\x78\x74\x20\x3D\x20\x74\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x4E\x75\x6D\x20\x3D\x20\x30\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x4E\x75\x6D\x20\x3D\x20\x78\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\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x22\x77\x75\x69\x2D\x65\x64\x69\x74\x6F\x72\x2D\x6C\x69\x6E\x65\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x75\x6D\x62\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\x4E\x75\x6D\x62\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x22\x77\x75\x69\x2D\x6C\x69\x6E\x65\x2D\x6E\x75\x6D\x62\x65\x72\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x75\x6D\x62\x65\x72\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x4E\x75\x6D\x20\x2B\x20\x31\x20\x2B\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x75\x6D\x62\x65\x72\x2E\x6F\x6E\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x65\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x64\x2E\x6F\x6E\x4D\x6F\x75\x73\x65\x44\x6F\x77\x6E\x41\x74\x4C\x69\x6E\x65\x28\x5F\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x4E\x75\x6D\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\x75\x6D\x62\x65\x72\x2E\x6F\x6E\x6D\x6F\x75\x73\x65\x75\x70\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x65\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x64\x2E\x6F\x6E\x4D\x6F\x75\x73\x65\x55\x70\x41\x74\x4C\x69\x6E\x65\x28\x5F\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x4E\x75\x6D\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\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\x73\x70\x61\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x54\x65\x78\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x22\x77\x75\x69\x2D\x6C\x69\x6E\x65\x2D\x74\x65\x78\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x54\x65\x78\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x74\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x54\x65\x78\x74\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x45\x64\x69\x74\x61\x62\x6C\x65\x20\x3D\x20\x22\x74\x72\x75\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x54\x65\x78\x74\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x65\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x64\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x54\x65\x78\x74\x28\x5F\x74\x68\x69\x73\x2E\x65\x6C\x54\x65\x78\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\x54\x65\x78\x74\x2E\x6F\x6E\x6B\x65\x79\x64\x6F\x77\x6E\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x65\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x65\x64\x2E\x6F\x6E\x4B\x65\x79\x64\x6F\x77\x6E\x28\x5F\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x4E\x75\x6D\x2C\x20\x5F\x74\x68\x69\x73\x2E\x65\x6C\x54\x65\x78\x74\x2C\x20\x65\x76\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\x54\x65\x78\x74\x2E\x6F\x6E\x6B\x65\x79\x75\x70\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x65\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x65\x64\x2E\x6F\x6E\x4B\x65\x79\x75\x70\x28\x5F\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x4E\x75\x6D\x2C\x20\x5F\x74\x68\x69\x73\x2E\x65\x6C\x54\x65\x78\x74\x2C\x20\x65\x76\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\x54\x65\x78\x74\x2E\x61\x64\x64\x45\x76\x65\x6E\x74\x4C\x69\x73\x74\x65\x6E\x65\x72\x28\x22\x70\x61\x73\x74\x65\x22\x2C\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x65\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x65\x76\x2E\x63\x6C\x69\x70\x62\x6F\x61\x72\x64\x44\x61\x74\x61\x29\x20\x7B\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\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\x76\x61\x72\x20\x74\x65\x78\x74\x20\x3D\x20\x65\x76\x2E\x63\x6C\x69\x70\x62\x6F\x61\x72\x64\x44\x61\x74\x61\x2E\x67\x65\x74\x44\x61\x74\x61\x28\x22\x74\x65\x78\x74\x2F\x70\x6C\x61\x69\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x65\x78\x65\x63\x43\x6F\x6D\x6D\x61\x6E\x64\x28\x22\x69\x6E\x73\x65\x72\x74\x48\x54\x4D\x4C\x22\x2C\x20\x66\x61\x6C\x73\x65\x2C\x20\x74\x65\x78\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\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\x74\x68\x69\x73\x2E\x65\x6C\x4E\x75\x6D\x62\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\x74\x68\x69\x73\x2E\x65\x6C\x54\x65\x78\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x45\x64\x69\x74\x6F\x72\x4C\x69\x6E\x65\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x73\x65\x74\x4E\x75\x6D\x62\x65\x72\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x78\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x4E\x75\x6D\x20\x3D\x20\x78\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x75\x6D\x62\x65\x72\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x78\x20\x2B\x20\x31\x20\x2B\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x45\x64\x69\x74\x6F\x72\x4C\x69\x6E\x65\x3B\x0A\x7D\x28\x29\x29\x3B\x0A\x2F\x2F\x0A\x2F\x2F\x20\x55\x6E\x64\x6F\x52\x65\x64\x6F\x20\x73\x74\x6F\x72\x65\x20\x74\x68\x65\x20\x73\x74\x61\x74\x65\x20\x6F\x66\x20\x61\x63\x74\x69\x6F\x6E\x73\x2E\x0A\x2F\x2F\x0A\x76\x61\x72\x20\x55\x6E\x64\x6F\x52\x65\x64\x6F\x20\x3D\x20\x2F\x2A\x2A\x20\x40\x63\x6C\x61\x73\x73\x20\x2A\x2F\x20\x28\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x55\x6E\x64\x6F\x52\x65\x64\x6F\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x69\x64\x78\x20\x3D\x20\x30\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x6F\x6E\x73\x20\x3D\x20\x5B\x5D\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x55\x6E\x64\x6F\x52\x65\x64\x6F\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x44\x6F\x4A\x6F\x69\x6E\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x70\x72\x65\x76\x4C\x69\x6E\x65\x2C\x20\x70\x72\x65\x76\x54\x65\x78\x74\x2C\x20\x63\x75\x72\x72\x54\x65\x78\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x75\x72\x72\x4C\x69\x6E\x65\x20\x3D\x20\x70\x72\x65\x76\x4C\x69\x6E\x65\x20\x2B\x20\x31\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x63\x74\x69\x6F\x6E\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6B\x69\x6E\x64\x3A\x20\x22\x6A\x6F\x69\x6E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x65\x66\x6F\x72\x65\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x72\x4C\x69\x6E\x65\x3A\x20\x70\x72\x65\x76\x4C\x69\x6E\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x72\x54\x65\x78\x74\x3A\x20\x70\x72\x65\x76\x54\x65\x78\x74\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x65\x78\x74\x4C\x69\x6E\x65\x3A\x20\x70\x72\x65\x76\x4C\x69\x6E\x65\x20\x2B\x20\x31\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x65\x78\x74\x54\x65\x78\x74\x3A\x20\x63\x75\x72\x72\x54\x65\x78\x74\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\x61\x66\x74\x65\x72\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x72\x4C\x69\x6E\x65\x3A\x20\x70\x72\x65\x76\x4C\x69\x6E\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x72\x54\x65\x78\x74\x3A\x20\x70\x72\x65\x76\x54\x65\x78\x74\x20\x2B\x20\x63\x75\x72\x72\x54\x65\x78\x74\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x65\x78\x74\x4C\x69\x6E\x65\x3A\x20\x70\x72\x65\x76\x4C\x69\x6E\x65\x20\x2B\x20\x31\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x65\x78\x74\x54\x65\x78\x74\x3A\x20\x22\x22\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x6F\x6E\x73\x2E\x6C\x65\x6E\x67\x74\x68\x20\x3E\x20\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x6F\x6E\x73\x20\x3D\x20\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x6F\x6E\x73\x2E\x73\x6C\x69\x63\x65\x28\x30\x2C\x20\x74\x68\x69\x73\x2E\x69\x64\x78\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\x61\x63\x74\x69\x6F\x6E\x73\x2E\x70\x75\x73\x68\x28\x61\x63\x74\x69\x6F\x6E\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x69\x64\x78\x2B\x2B\x3B\x0A\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x55\x6E\x64\x6F\x52\x65\x64\x6F\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x44\x6F\x53\x70\x6C\x69\x74\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x63\x75\x72\x72\x4C\x69\x6E\x65\x2C\x20\x63\x75\x72\x72\x54\x65\x78\x74\x2C\x20\x6E\x65\x78\x74\x54\x65\x78\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x63\x74\x69\x6F\x6E\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6B\x69\x6E\x64\x3A\x20\x22\x73\x70\x6C\x69\x74\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x65\x66\x6F\x72\x65\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x72\x4C\x69\x6E\x65\x3A\x20\x63\x75\x72\x72\x4C\x69\x6E\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x72\x54\x65\x78\x74\x3A\x20\x63\x75\x72\x72\x54\x65\x78\x74\x20\x2B\x20\x6E\x65\x78\x74\x54\x65\x78\x74\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x65\x78\x74\x4C\x69\x6E\x65\x3A\x20\x63\x75\x72\x72\x4C\x69\x6E\x65\x20\x2B\x20\x31\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x65\x78\x74\x54\x65\x78\x74\x3A\x20\x22\x22\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\x61\x66\x74\x65\x72\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x72\x4C\x69\x6E\x65\x3A\x20\x63\x75\x72\x72\x4C\x69\x6E\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x72\x54\x65\x78\x74\x3A\x20\x63\x75\x72\x72\x54\x65\x78\x74\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x65\x78\x74\x4C\x69\x6E\x65\x3A\x20\x63\x75\x72\x72\x4C\x69\x6E\x65\x20\x2B\x20\x31\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x65\x78\x74\x54\x65\x78\x74\x3A\x20\x6E\x65\x78\x74\x54\x65\x78\x74\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x6F\x6E\x73\x2E\x6C\x65\x6E\x67\x74\x68\x20\x3E\x20\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x6F\x6E\x73\x20\x3D\x20\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x6F\x6E\x73\x2E\x73\x6C\x69\x63\x65\x28\x30\x2C\x20\x74\x68\x69\x73\x2E\x69\x64\x78\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\x61\x63\x74\x69\x6F\x6E\x73\x2E\x70\x75\x73\x68\x28\x61\x63\x74\x69\x6F\x6E\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x69\x64\x78\x2B\x2B\x3B\x0A\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x55\x6E\x64\x6F\x52\x65\x64\x6F\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x44\x6F\x55\x70\x64\x61\x74\x65\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x6C\x69\x6E\x65\x4E\x75\x6D\x2C\x20\x74\x65\x78\x74\x42\x65\x66\x6F\x72\x65\x2C\x20\x74\x65\x78\x74\x41\x66\x74\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x63\x74\x69\x6F\x6E\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6B\x69\x6E\x64\x3A\x20\x22\x75\x70\x64\x61\x74\x65\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x65\x66\x6F\x72\x65\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x72\x4C\x69\x6E\x65\x3A\x20\x6C\x69\x6E\x65\x4E\x75\x6D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x72\x54\x65\x78\x74\x3A\x20\x74\x65\x78\x74\x42\x65\x66\x6F\x72\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x65\x78\x74\x4C\x69\x6E\x65\x3A\x20\x30\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x65\x78\x74\x54\x65\x78\x74\x3A\x20\x22\x22\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\x61\x66\x74\x65\x72\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x72\x4C\x69\x6E\x65\x3A\x20\x6C\x69\x6E\x65\x4E\x75\x6D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x72\x54\x65\x78\x74\x3A\x20\x74\x65\x78\x74\x41\x66\x74\x65\x72\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x65\x78\x74\x4C\x69\x6E\x65\x3A\x20\x30\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x65\x78\x74\x54\x65\x78\x74\x3A\x20\x22\x22\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x6F\x6E\x73\x2E\x6C\x65\x6E\x67\x74\x68\x20\x3E\x20\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x6F\x6E\x73\x20\x3D\x20\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x6F\x6E\x73\x2E\x73\x6C\x69\x63\x65\x28\x30\x2C\x20\x74\x68\x69\x73\x2E\x69\x64\x78\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\x61\x63\x74\x69\x6F\x6E\x73\x2E\x70\x75\x73\x68\x28\x61\x63\x74\x69\x6F\x6E\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x69\x64\x78\x2B\x2B\x3B\x0A\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x55\x6E\x64\x6F\x52\x65\x64\x6F\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x55\x6E\x64\x6F\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x69\x64\x78\x20\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\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\x69\x64\x78\x2D\x2D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x6F\x6E\x73\x5B\x74\x68\x69\x73\x2E\x69\x64\x78\x5D\x3B\x0A\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x55\x6E\x64\x6F\x52\x65\x64\x6F\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x52\x65\x64\x6F\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x69\x64\x78\x20\x3D\x3D\x20\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x6F\x6E\x73\x2E\x6C\x65\x6E\x67\x74\x68\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\x76\x61\x72\x20\x61\x63\x74\x69\x6F\x6E\x20\x3D\x20\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x6F\x6E\x73\x5B\x74\x68\x69\x73\x2E\x69\x64\x78\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x69\x64\x78\x2B\x2B\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x61\x63\x74\x69\x6F\x6E\x3B\x0A\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x55\x6E\x64\x6F\x52\x65\x64\x6F\x3B\x0A\x7D\x28\x29\x29\x3B\x0A\x2F\x2F\x23\x20\x73\x6F\x75\x72\x63\x65\x4D\x61\x70\x70\x69\x6E\x67\x55\x52\x4C\x3D\x64\x61\x74\x61\x3A\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E\x3B\x62\x61\x73\x65\x36\x34\x2C\x65\x79\x4A\x32\x5A\x58\x4A\x7A\x61\x57\x39\x75\x49\x6A\x6F\x7A\x4C\x43\x4A\x6D\x61\x57\x78\x6C\x49\x6A\x6F\x69\x5A\x57\x52\x70\x64\x47\x39\x79\x4C\x6D\x70\x7A\x49\x69\x77\x69\x63\x32\x39\x31\x63\x6D\x4E\x6C\x55\x6D\x39\x76\x64\x43\x49\x36\x49\x69\x49\x73\x49\x6E\x4E\x76\x64\x58\x4A\x6A\x5A\x58\x4D\x69\x4F\x6C\x73\x69\x5A\x57\x52\x70\x64\x47\x39\x79\x4C\x6E\x52\x7A\x49\x6C\x30\x73\x49\x6D\x35\x68\x62\x57\x56\x7A\x49\x6A\x70\x62\x58\x53\x77\x69\x62\x57\x46\x77\x63\x47\x6C\x75\x5A\x33\x4D\x69\x4F\x69\x49\x37\x51\x55\x46\x42\x51\x53\x78\x72\x52\x55\x46\x42\x61\x30\x55\x37\x51\x55\x46\x44\x62\x45\x55\x73\x65\x55\x56\x42\x51\x58\x6C\x46\x4F\x30\x46\x42\x51\x33\x70\x46\x4C\x44\x5A\x43\x51\x55\x45\x32\x51\x6A\x73\x37\x4F\x7A\x73\x37\x4F\x7A\x73\x37\x4F\x7A\x73\x37\x4F\x7A\x73\x37\x4F\x7A\x73\x37\x4F\x7A\x73\x37\x4F\x7A\x73\x37\x4F\x7A\x73\x37\x4F\x7A\x73\x37\x4F\x7A\x73\x37\x4F\x7A\x73\x37\x4F\x7A\x73\x37\x4F\x30\x46\x42\x61\x55\x49\x33\x51\x6A\x74\x4A\x51\x57\x56\x44\x4C\x47\x64\x43\x51\x55\x46\x74\x51\x69\x78\x4A\x51\x55\x46\x68\x4F\x31\x46\x42\x51\x57\x49\x73\x55\x30\x46\x42\x53\x53\x78\x48\x51\x55\x46\x4B\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x55\x7A\x74\x52\x51\x56\x68\x34\x51\x69\x78\x6C\x51\x55\x46\x56\x4C\x45\x64\x42\x51\x57\x39\x43\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x54\x74\x52\x51\x55\x4E\x73\x51\x79\x78\x6C\x51\x55\x46\x56\x4C\x45\x64\x42\x51\x58\x56\x43\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x54\x74\x52\x51\x55\x4E\x79\x51\x79\x78\x6C\x51\x55\x46\x56\x4C\x45\x64\x42\x51\x56\x63\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x44\x64\x6B\x49\x73\x59\x55\x46\x42\x55\x53\x78\x48\x51\x55\x46\x58\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x42\x4F\x31\x46\x42\x51\x33\x4A\x43\x4C\x47\x46\x42\x51\x56\x45\x73\x52\x30\x46\x42\x59\x53\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x44\x64\x6B\x49\x73\x56\x55\x46\x42\x53\x79\x78\x48\x51\x55\x46\x70\x51\x69\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x44\x65\x45\x49\x73\x55\x55\x46\x42\x52\x79\x78\x48\x51\x55\x46\x78\x51\x69\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x46\x4E\x55\x49\x73\x61\x55\x4A\x42\x51\x56\x6B\x73\x52\x30\x46\x42\x57\x53\x78\x4C\x51\x55\x46\x4C\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x44\x4E\x30\x49\x73\x55\x30\x46\x42\x53\x53\x78\x48\x51\x55\x46\x68\x4C\x45\x6C\x42\x51\x55\x6B\x73\x55\x55\x46\x42\x55\x53\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x48\x64\x45\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x56\x42\x51\x55\x55\x73\x52\x30\x46\x42\x52\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x42\x4F\x31\x46\x42\x51\x32\x70\x43\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x58\x51\x55\x46\x58\x4C\x45\x64\x42\x51\x55\x63\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x64\x42\x51\x56\x63\x73\x51\x30\x46\x42\x51\x54\x74\x52\x51\x55\x56\x75\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x52\x53\x78\x48\x51\x55\x46\x48\x4C\x46\x46\x42\x51\x56\x45\x73\x51\x30\x46\x42\x51\x79\x78\x6A\x51\x55\x46\x6A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x42\x4F\x31\x46\x42\x51\x7A\x46\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x52\x53\x78\x46\x51\x55\x46\x46\x4F\x31\x6C\x42\x51\x32\x49\x73\x54\x30\x46\x42\x54\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x74\x42\x51\x55\x73\x73\x51\x30\x46\x42\x51\x79\x77\x72\x51\x6B\x46\x42\x4B\x30\x49\x73\x52\x55\x46\x42\x52\x53\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x57\x55\x46\x44\x64\x6B\x51\x73\x54\x30\x46\x42\x54\x54\x74\x54\x51\x55\x4E\x4F\x4F\x31\x46\x42\x52\x55\x51\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x4E\x42\x51\x56\x4D\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x42\x4F\x31\x46\x42\x52\x57\x68\x43\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x30\x46\x42\x55\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x64\x42\x51\x55\x63\x73\x51\x30\x46\x42\x51\x79\x78\x5A\x51\x55\x46\x5A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x52\x51\x55\x56\x75\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x30\x46\x42\x52\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x31\x42\x51\x55\x30\x73\x51\x30\x46\x42\x51\x79\x78\x5A\x51\x55\x46\x5A\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x54\x74\x52\x51\x55\x4E\x6F\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x30\x46\x42\x53\x79\x78\x48\x51\x55\x46\x48\x4C\x46\x46\x42\x51\x56\x45\x73\x51\x30\x46\x42\x51\x79\x78\x58\x51\x55\x46\x58\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x54\x74\x4A\x51\x55\x4E\x77\x51\x79\x78\x44\x51\x55\x46\x44\x4F\x30\x6C\x42\x52\x55\x51\x73\x63\x55\x4E\x42\x51\x58\x46\x44\x4F\x30\x6C\x42\x51\x33\x4A\x44\x4C\x44\x4A\x43\x51\x55\x46\x56\x4C\x45\x64\x42\x51\x56\x59\x37\x55\x55\x46\x44\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x39\x42\x51\x55\x38\x73\x52\x30\x46\x42\x52\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x44\x61\x45\x49\x73\x53\x30\x46\x42\x53\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x30\x46\x42\x52\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x4C\x51\x55\x46\x4C\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x55\x46\x42\x54\x53\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x52\x53\x78\x46\x51\x55\x46\x46\x4F\x31\x6C\x42\x51\x7A\x4E\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x52\x54\x74\x6E\x51\x6B\x46\x44\x56\x69\x78\x50\x51\x55\x46\x50\x4C\x45\x6C\x42\x51\x55\x6B\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x42\x4F\x32\x46\x42\x51\x32\x59\x37\x57\x55\x46\x44\x52\x43\x78\x50\x51\x55\x46\x50\x4C\x45\x6C\x42\x51\x55\x6B\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x74\x42\x51\x55\x73\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x4E\x51\x55\x46\x4E\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x30\x46\x42\x55\x79\x78\x44\x51\x55\x46\x42\x4F\x31\x4E\x42\x51\x33\x70\x44\x4F\x31\x46\x42\x51\x30\x51\x73\x54\x30\x46\x42\x54\x79\x78\x50\x51\x55\x46\x50\x4C\x45\x4E\x42\x51\x55\x45\x37\x53\x55\x46\x44\x5A\x69\x78\x44\x51\x55\x46\x44\x4F\x30\x6C\x42\x52\x55\x51\x73\x64\x30\x4A\x42\x51\x55\x38\x73\x52\x30\x46\x42\x55\x44\x74\x52\x51\x55\x4E\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x53\x55\x46\x42\x53\x53\x78\x48\x51\x55\x46\x68\x4F\x31\x6C\x42\x51\x33\x42\x43\x4C\x45\x6C\x42\x51\x55\x6B\x73\x52\x55\x46\x42\x52\x53\x78\x46\x51\x55\x46\x46\x4F\x31\x6C\x42\x51\x31\x49\x73\x53\x55\x46\x42\x53\x53\x78\x46\x51\x55\x46\x46\x4C\x45\x56\x42\x51\x55\x55\x37\x55\x30\x46\x44\x55\x69\x78\x44\x51\x55\x46\x42\x4F\x31\x46\x42\x51\x30\x51\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x56\x51\x55\x46\x56\x4C\x45\x56\x42\x51\x55\x55\x37\x57\x55\x46\x44\x63\x6B\x49\x73\x54\x30\x46\x42\x54\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x30\x46\x44\x57\x44\x74\x52\x51\x55\x4E\x45\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x64\x42\x51\x55\x63\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x56\x42\x51\x56\x55\x73\x51\x30\x46\x42\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x44\x61\x45\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x52\x30\x46\x42\x52\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x56\x55\x46\x42\x56\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x54\x74\x52\x51\x55\x4E\x6F\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x30\x46\x42\x54\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x56\x51\x55\x46\x56\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x54\x74\x52\x51\x55\x4E\x6F\x51\x79\x78\x50\x51\x55\x46\x50\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x54\x74\x4A\x51\x55\x4E\x61\x4C\x45\x4E\x42\x51\x55\x4D\x37\x53\x55\x46\x46\x52\x43\x78\x72\x51\x30\x46\x42\x61\x55\x49\x73\x52\x30\x46\x42\x61\x6B\x49\x37\x55\x55\x46\x44\x51\x79\x78\x50\x51\x55\x46\x50\x4F\x31\x6C\x42\x51\x30\x34\x73\x54\x30\x46\x42\x54\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x56\x51\x55\x46\x56\x4F\x31\x6C\x42\x51\x33\x68\x43\x4C\x45\x74\x42\x51\x55\x73\x73\x52\x55\x46\x42\x52\x53\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x55\x46\x42\x55\x54\x74\x54\x51\x55\x4E\x47\x4C\x45\x4E\x42\x51\x55\x45\x37\x53\x55\x46\x44\x63\x45\x49\x73\x51\x30\x46\x42\x51\x7A\x74\x4A\x51\x55\x56\x4C\x4C\x48\x6C\x43\x51\x55\x46\x52\x4C\x45\x64\x42\x51\x57\x51\x73\x56\x55\x46\x42\x5A\x53\x78\x4A\x51\x55\x46\x5A\x4F\x7A\x73\x37\x4F\x7A\x73\x37\x64\x30\x4A\x42\x51\x7A\x46\x43\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x52\x53\x78\x46\x51\x55\x46\x46\x4F\x7A\x52\x43\x51\x55\x4E\x69\x4C\x48\x4E\x43\x51\x55\x46\x50\x4C\x45\x56\x42\x51\x55\x55\x73\x53\x55\x46\x42\x53\x53\x78\x46\x51\x55\x46\x46\x4C\x45\x64\x42\x51\x55\x63\x73\x52\x55\x46\x42\x59\x79\x78\x46\x51\x55\x46\x42\x4F\x33\x6C\x43\x51\x55\x4E\x6F\x51\x7A\x74\x33\x51\x6B\x46\x46\x55\x79\x78\x78\x51\x6B\x46\x42\x54\x53\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x46\x42\x51\x56\x45\x73\x51\x30\x46\x42\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x51\x54\x73\x37\x64\x30\x4A\x42\x51\x58\x42\x44\x4C\x45\x64\x42\x51\x55\x63\x73\x52\x30\x46\x42\x52\x79\x78\x54\x51\x55\x45\x34\x51\x6A\x74\x33\x51\x6B\x46\x44\x65\x45\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x64\x42\x51\x55\x63\x73\x52\x55\x46\x42\x52\x54\x73\x30\x51\x6B\x46\x44\x56\x43\x78\x7A\x51\x6B\x46\x42\x54\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x6C\x42\x51\x55\x6B\x73\x52\x55\x46\x42\x52\x53\x78\x48\x51\x55\x46\x48\x4C\x45\x56\x42\x51\x57\x4D\x73\x52\x55\x46\x42\x51\x54\x74\x35\x51\x6B\x46\x44\x61\x45\x4D\x37\x64\x30\x4A\x42\x51\x30\x51\x73\x53\x55\x46\x42\x53\x53\x78\x48\x51\x55\x46\x48\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x4A\x51\x55\x46\x4A\x4C\x45\x64\x42\x51\x55\x63\x73\x52\x55\x46\x42\x52\x54\x73\x30\x51\x6B\x46\x44\x63\x45\x49\x73\x63\x30\x4A\x42\x51\x55\x38\x73\x52\x30\x46\x42\x52\x79\x78\x46\x51\x55\x46\x42\x4F\x33\x6C\x43\x51\x55\x4E\x57\x4F\x33\x64\x43\x51\x55\x4E\x45\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x46\x51\x55\x46\x46\x4F\x7A\x52\x43\x51\x55\x4E\x6B\x4C\x48\x4E\x43\x51\x55\x46\x50\x4C\x45\x64\x42\x51\x55\x63\x73\x52\x55\x46\x42\x51\x54\x74\x35\x51\x6B\x46\x44\x56\x6A\x74\x33\x51\x6B\x46\x46\x52\x43\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x56\x55\x46\x42\x56\x53\x78\x48\x51\x55\x46\x48\x4C\x45\x64\x42\x51\x55\x63\x73\x51\x30\x46\x42\x51\x79\x78\x4A\x51\x55\x46\x6E\x51\x69\x78\x44\x51\x55\x46\x42\x4F\x33\x64\x43\x51\x55\x56\x73\x51\x79\x78\x50\x51\x55\x46\x50\x4C\x45\x64\x42\x51\x55\x63\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x56\x42\x51\x56\x55\x73\x51\x30\x46\x42\x51\x79\x78\x50\x51\x55\x46\x70\x51\x69\x78\x44\x51\x55\x46\x42\x4F\x33\x64\x43\x51\x55\x4D\x76\x51\x79\x78\x50\x51\x55\x46\x50\x4C\x45\x64\x42\x51\x55\x63\x73\x54\x30\x46\x42\x54\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x39\x42\x51\x55\x38\x73\x51\x30\x46\x42\x51\x79\x78\x4E\x51\x55\x46\x4E\x4C\x45\x56\x42\x51\x55\x55\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x64\x30\x4A\x42\x51\x33\x5A\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x52\x51\x55\x46\x52\x4C\x45\x64\x42\x51\x55\x63\x73\x54\x30\x46\x42\x54\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x74\x42\x51\x55\x73\x73\x51\x30\x46\x42\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x33\x51\x6B\x46\x46\x62\x6B\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x74\x42\x51\x55\x73\x73\x52\x30\x46\x42\x52\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x45\x37\x64\x30\x4A\x42\x51\x32\x59\x73\x53\x30\x46\x42\x55\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x64\x42\x51\x55\x63\x73\x51\x30\x46\x42\x51\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x30\x46\x42\x52\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x55\x46\x42\x55\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x31\x42\x51\x55\x30\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x56\x42\x51\x55\x55\x73\x52\x55\x46\x42\x52\x54\x73\x30\x51\x6B\x46\x44\x4D\x55\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x48\x51\x55\x46\x48\x4C\x45\x6C\x42\x51\x55\x6B\x73\x56\x55\x46\x42\x56\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x52\x53\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x55\x46\x42\x55\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x42\x4F\x7A\x52\x43\x51\x55\x4E\x77\x52\x43\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x30\x46\x42\x53\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x35\x51\x6B\x46\x44\x63\x6B\x49\x37\x64\x30\x4A\x42\x52\x55\x51\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x31\x42\x51\x55\x30\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x42\x4F\x33\x64\x43\x51\x55\x56\x69\x4C\x48\x4E\x43\x51\x55\x46\x50\x4C\x45\x64\x42\x51\x55\x63\x73\x52\x55\x46\x42\x51\x54\x73\x37\x4F\x7A\x74\x4C\x51\x55\x4E\x57\x4F\x30\x6C\x42\x52\x55\x51\x73\x4B\x30\x4A\x42\x51\x57\x4D\x73\x52\x30\x46\x42\x5A\x44\x74\x52\x51\x55\x4E\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x52\x53\x78\x46\x51\x55\x46\x46\x4F\x31\x6C\x42\x51\x32\x49\x73\x54\x30\x46\x42\x54\x54\x74\x54\x51\x55\x4E\x4F\x4F\x31\x46\x42\x51\x30\x51\x73\x53\x55\x46\x42\x53\x53\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x55\x46\x42\x55\x53\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x52\x54\x74\x5A\x51\x55\x4E\x32\x51\x69\x78\x50\x51\x55\x46\x4E\x4F\x31\x4E\x42\x51\x30\x34\x37\x55\x55\x46\x44\x52\x43\x78\x4C\x51\x55\x46\x4C\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x56\x51\x55\x46\x56\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x52\x51\x55\x46\x52\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x56\x42\x51\x55\x55\x37\x57\x55\x46\x44\x64\x45\x51\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x79\x78\x52\x51\x55\x46\x52\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x57\x55\x46\x42\x57\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x39\x42\x51\x55\x38\x73\x52\x55\x46\x42\x52\x53\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x54\x51\x55\x4D\x33\x51\x7A\x74\x52\x51\x55\x4E\x45\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x56\x51\x55\x46\x56\x4C\x45\x64\x42\x51\x55\x63\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x44\x63\x45\x49\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x46\x42\x51\x56\x45\x73\x52\x30\x46\x42\x52\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x4A\x51\x55\x4E\x75\x51\x69\x78\x44\x51\x55\x46\x44\x4F\x30\x6C\x42\x52\x55\x51\x73\x4D\x45\x4A\x42\x51\x56\x4D\x73\x52\x30\x46\x42\x56\x44\x74\x52\x51\x55\x4E\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x53\x30\x46\x42\x53\x79\x78\x48\x51\x55\x46\x48\x4C\x46\x46\x42\x51\x56\x45\x73\x51\x30\x46\x42\x51\x79\x78\x68\x51\x55\x46\x68\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x30\x46\x42\x54\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x44\x4D\x30\x4D\x73\x53\x30\x46\x42\x53\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x52\x30\x46\x42\x52\x79\x78\x56\x51\x55\x46\x56\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x44\x64\x6B\x49\x73\x53\x30\x46\x42\x53\x79\x78\x44\x51\x55\x46\x44\x4C\x46\x4E\x42\x51\x56\x4D\x73\x52\x30\x46\x42\x52\x79\x77\x77\x4E\x45\x4A\x42\x62\x30\x4E\x71\x51\x69\x78\x44\x51\x55\x46\x42\x4F\x31\x46\x42\x51\x30\x51\x73\x55\x55\x46\x42\x55\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x58\x51\x55\x46\x58\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x30\x46\x42\x53\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x53\x55\x46\x44\x61\x6B\x4D\x73\x51\x30\x46\x42\x51\x7A\x74\x4A\x51\x55\x56\x45\x4C\x48\x56\x43\x51\x55\x46\x4E\x4C\x45\x64\x42\x51\x55\x34\x73\x56\x55\x46\x42\x54\x79\x78\x50\x51\x55\x46\x7A\x51\x6A\x74\x52\x51\x55\x4D\x31\x51\x69\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x30\x46\x42\x53\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x39\x42\x51\x55\x38\x73\x51\x30\x46\x42\x51\x79\x78\x52\x51\x55\x46\x52\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x4E\x51\x55\x46\x4E\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x30\x46\x42\x55\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x39\x42\x51\x55\x38\x73\x51\x30\x46\x42\x51\x79\x78\x52\x51\x55\x46\x52\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x44\x61\x45\x55\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x56\x42\x51\x56\x55\x73\x51\x30\x46\x42\x51\x79\x78\x50\x51\x55\x46\x50\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x55\x46\x42\x55\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x44\x61\x6B\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x46\x42\x51\x56\x45\x73\x51\x30\x46\x42\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x30\x46\x42\x53\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x39\x42\x51\x55\x38\x73\x51\x30\x46\x42\x51\x79\x78\x52\x51\x55\x46\x52\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x4E\x51\x55\x46\x4E\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x53\x55\x46\x44\x64\x45\x51\x73\x51\x30\x46\x42\x51\x7A\x74\x4A\x51\x55\x4E\x45\x4C\x48\x64\x43\x51\x55\x46\x50\x4C\x45\x64\x42\x51\x56\x41\x73\x56\x55\x46\x42\x55\x53\x78\x50\x51\x55\x46\x7A\x51\x6A\x74\x52\x51\x55\x4D\x33\x51\x69\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x30\x46\x42\x53\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x39\x42\x51\x55\x38\x73\x51\x30\x46\x42\x51\x79\x78\x52\x51\x55\x46\x52\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x4E\x51\x55\x46\x4E\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x30\x46\x42\x55\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x39\x42\x51\x55\x38\x73\x51\x30\x46\x42\x51\x79\x78\x52\x51\x55\x46\x52\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x44\x61\x45\x55\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x47\x46\x42\x51\x57\x45\x73\x51\x30\x46\x42\x51\x79\x78\x50\x51\x55\x46\x50\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x55\x46\x42\x55\x53\x78\x46\x51\x55\x46\x46\x4C\x45\x39\x42\x51\x55\x38\x73\x51\x30\x46\x42\x51\x79\x78\x52\x51\x55\x46\x52\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x4A\x51\x55\x4E\x32\x52\x43\x78\x44\x51\x55\x46\x44\x4F\x30\x6C\x42\x51\x30\x51\x73\x65\x55\x4A\x42\x51\x56\x45\x73\x52\x30\x46\x42\x55\x69\x78\x56\x51\x55\x46\x54\x4C\x45\x39\x42\x51\x58\x4E\x43\x4F\x31\x46\x42\x51\x7A\x6C\x43\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x4C\x51\x55\x46\x4C\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x30\x46\x42\x54\x79\x78\x44\x51\x55\x46\x44\x4C\x46\x46\x42\x51\x56\x45\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x31\x42\x51\x55\x30\x73\x51\x30\x46\x42\x51\x79\x78\x54\x51\x55\x46\x54\x4C\x45\x64\x42\x51\x55\x63\x73\x54\x30\x46\x42\x54\x79\x78\x44\x51\x55\x46\x44\x4C\x46\x46\x42\x51\x56\x45\x73\x51\x30\x46\x42\x51\x54\x74\x52\x51\x55\x4E\x6F\x52\x53\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x55\x46\x42\x55\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x4C\x51\x55\x46\x4C\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x30\x46\x42\x54\x79\x78\x44\x51\x55\x46\x44\x4C\x46\x46\x42\x51\x56\x45\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x31\x42\x51\x55\x30\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x4A\x51\x55\x4E\x30\x52\x43\x78\x44\x51\x55\x46\x44\x4F\x30\x6C\x42\x52\x55\x51\x73\x64\x55\x4A\x42\x51\x55\x30\x73\x52\x30\x46\x42\x54\x6A\x74\x52\x51\x55\x4E\x44\x4C\x45\x6C\x42\x51\x55\x30\x73\x52\x30\x46\x42\x52\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x44\x4E\x55\x49\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x64\x42\x51\x55\x63\x73\x52\x55\x46\x42\x52\x54\x74\x5A\x51\x55\x4E\x55\x4C\x45\x39\x42\x51\x55\x30\x37\x55\x30\x46\x44\x54\x6A\x74\x52\x51\x55\x4E\x45\x4C\x46\x46\x42\x51\x56\x45\x73\x52\x30\x46\x42\x52\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x52\x55\x46\x42\x52\x54\x74\x5A\x51\x55\x4E\x71\x51\x69\x78\x4C\x51\x55\x46\x4C\x4C\x45\x31\x42\x51\x55\x30\x37\x5A\x30\x4A\x42\x51\x31\x59\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x31\x42\x51\x55\x30\x73\x51\x30\x46\x42\x51\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x30\x46\x42\x53\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x5A\x30\x4A\x42\x51\x33\x52\x43\x4C\x45\x31\x42\x51\x55\x73\x37\x57\x55\x46\x44\x54\x69\x78\x4C\x51\x55\x46\x4C\x4C\x45\x39\x42\x51\x55\x38\x37\x5A\x30\x4A\x42\x51\x31\x67\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x39\x42\x51\x55\x38\x73\x51\x30\x46\x42\x51\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x30\x46\x42\x53\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x5A\x30\x4A\x42\x51\x33\x5A\x43\x4C\x45\x31\x42\x51\x55\x73\x37\x57\x55\x46\x44\x54\x69\x78\x4C\x51\x55\x46\x4C\x4C\x46\x46\x42\x51\x56\x45\x37\x5A\x30\x4A\x42\x51\x31\x6F\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x46\x42\x51\x56\x45\x73\x51\x30\x46\x42\x51\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x30\x46\x42\x53\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x5A\x30\x4A\x42\x51\x33\x68\x43\x4C\x45\x31\x42\x51\x55\x73\x37\x55\x30\x46\x44\x54\x6A\x74\x4A\x51\x55\x4E\x47\x4C\x45\x4E\x42\x51\x55\x4D\x37\x53\x55\x46\x46\x52\x43\x78\x31\x51\x6B\x46\x42\x54\x53\x78\x48\x51\x55\x46\x4F\x4F\x31\x46\x42\x51\x30\x4D\x73\x53\x55\x46\x42\x54\x53\x78\x48\x51\x55\x46\x48\x4C\x45\x64\x42\x51\x55\x63\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x54\x74\x52\x51\x55\x4D\x31\x51\x69\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x30\x46\x42\x52\x79\x78\x46\x51\x55\x46\x46\x4F\x31\x6C\x42\x51\x31\x51\x73\x54\x30\x46\x42\x54\x54\x74\x54\x51\x55\x4E\x4F\x4F\x31\x46\x42\x51\x30\x51\x73\x55\x55\x46\x42\x55\x53\x78\x48\x51\x55\x46\x48\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x46\x51\x55\x46\x46\x4F\x31\x6C\x42\x51\x32\x70\x43\x4C\x45\x74\x42\x51\x55\x73\x73\x54\x55\x46\x42\x54\x54\x74\x6E\x51\x6B\x46\x44\x56\x69\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x30\x46\x42\x54\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x64\x42\x51\x55\x63\x73\x51\x30\x46\x42\x51\x79\x78\x4E\x51\x55\x46\x4E\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x6E\x51\x6B\x46\x44\x65\x45\x49\x73\x54\x55\x46\x42\x53\x7A\x74\x5A\x51\x55\x4E\x4F\x4C\x45\x74\x42\x51\x55\x73\x73\x54\x30\x46\x42\x54\x7A\x74\x6E\x51\x6B\x46\x44\x57\x43\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x55\x46\x42\x54\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x64\x42\x51\x55\x63\x73\x51\x30\x46\x42\x51\x79\x78\x4E\x51\x55\x46\x4E\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x6E\x51\x6B\x46\x44\x64\x6B\x49\x73\x54\x55\x46\x42\x53\x7A\x74\x5A\x51\x55\x4E\x4F\x4C\x45\x74\x42\x51\x55\x73\x73\x55\x55\x46\x42\x55\x54\x74\x6E\x51\x6B\x46\x44\x57\x69\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x55\x46\x42\x55\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x64\x42\x51\x55\x63\x73\x51\x30\x46\x42\x51\x79\x78\x4E\x51\x55\x46\x4E\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x6E\x51\x6B\x46\x44\x65\x6B\x49\x73\x54\x55\x46\x42\x53\x7A\x74\x54\x51\x55\x4E\x4F\x4F\x30\x6C\x42\x51\x30\x59\x73\x51\x30\x46\x42\x51\x7A\x74\x4A\x51\x55\x56\x45\x4C\x44\x4A\x43\x51\x55\x46\x56\x4C\x45\x64\x42\x51\x56\x59\x73\x56\x55\x46\x42\x56\x79\x78\x44\x51\x55\x46\x54\x4F\x31\x46\x42\x51\x32\x35\x43\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x4C\x51\x55\x46\x4C\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x55\x46\x42\x54\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x52\x51\x55\x4E\x32\x51\x69\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x55\x46\x42\x55\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x31\x42\x51\x55\x30\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x46\x4D\x55\x49\x73\x4D\x45\x4A\x42\x51\x54\x42\x43\x4F\x31\x46\x42\x51\x7A\x46\x43\x4C\x45\x39\x42\x51\x55\x38\x73\x51\x30\x46\x42\x51\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x4C\x51\x55\x46\x4C\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x55\x46\x42\x54\x53\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x52\x53\x78\x46\x51\x55\x46\x46\x4F\x31\x6C\x42\x51\x32\x78\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x4C\x51\x55\x46\x4C\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x30\x46\x42\x55\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x42\x4F\x31\x4E\x42\x51\x7A\x46\x43\x4F\x31\x46\x42\x51\x30\x51\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x31\x42\x51\x55\x30\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x42\x4F\x30\x6C\x42\x51\x32\x51\x73\x51\x30\x46\x42\x51\x7A\x74\x4A\x51\x55\x56\x45\x4C\x44\x68\x43\x51\x55\x46\x68\x4C\x45\x64\x42\x51\x57\x49\x73\x56\x55\x46\x42\x59\x79\x78\x44\x51\x55\x46\x54\x4C\x45\x56\x42\x51\x55\x55\x73\x53\x55\x46\x42\x57\x54\x74\x52\x51\x55\x4E\x77\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x39\x42\x51\x55\x38\x73\x52\x30\x46\x42\x52\x79\x78\x4A\x51\x55\x46\x4A\x4C\x46\x56\x42\x51\x56\x55\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x56\x42\x51\x55\x55\x73\x53\x55\x46\x42\x53\x53\x78\x46\x51\x55\x46\x46\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x42\x4F\x31\x46\x42\x51\x7A\x4E\x44\x4C\x45\x74\x42\x51\x55\x73\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x64\x42\x51\x55\x63\x73\x51\x30\x46\x42\x51\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x30\x46\x42\x52\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x30\x46\x42\x53\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x31\x42\x51\x55\x30\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x56\x42\x51\x55\x55\x73\x52\x55\x46\x42\x52\x54\x74\x5A\x51\x55\x4D\x7A\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x30\x46\x42\x53\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x46\x4E\x42\x51\x56\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x64\x42\x51\x55\x63\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x30\x46\x44\x4F\x55\x49\x37\x55\x55\x46\x46\x52\x43\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x30\x46\x42\x53\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x31\x42\x51\x55\x30\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x39\x42\x51\x55\x38\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x42\x4F\x31\x46\x42\x51\x32\x68\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x52\x51\x55\x46\x52\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x55\x46\x42\x54\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x56\x42\x51\x55\x55\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x46\x61\x45\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x31\x42\x51\x55\x30\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x42\x4F\x31\x46\x42\x51\x32\x49\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x46\x42\x51\x56\x45\x73\x51\x30\x46\x42\x51\x79\x78\x50\x51\x55\x46\x50\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x55\x46\x42\x54\x53\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x42\x4F\x30\x6C\x42\x51\x32\x70\x44\x4C\x45\x4E\x42\x51\x55\x4D\x37\x53\x55\x46\x46\x52\x43\x77\x30\x51\x6B\x46\x42\x56\x79\x78\x48\x51\x55\x46\x59\x4C\x46\x56\x42\x51\x56\x6B\x73\x53\x55\x46\x42\x61\x55\x49\x37\x55\x55\x46\x44\x4E\x55\x49\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x64\x42\x51\x55\x63\x73\x52\x30\x46\x42\x52\x79\x78\x4E\x51\x55\x46\x4E\x4C\x45\x4E\x42\x51\x55\x4D\x73\x57\x55\x46\x42\x57\x53\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x45\x37\x53\x55\x46\x44\x61\x6B\x4D\x73\x51\x30\x46\x42\x51\x7A\x74\x4A\x51\x55\x56\x45\x4C\x48\x64\x43\x51\x55\x46\x50\x4C\x45\x64\x42\x51\x56\x41\x73\x56\x55\x46\x42\x55\x53\x78\x44\x51\x55\x46\x54\x4C\x45\x56\x42\x51\x55\x55\x73\x53\x55\x46\x42\x61\x55\x49\x73\x52\x55\x46\x42\x52\x53\x78\x46\x51\x55\x46\x70\x51\x6A\x74\x52\x51\x55\x4E\x30\x52\x43\x78\x4A\x51\x55\x46\x4A\x4C\x46\x56\x42\x51\x57\x74\x43\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x44\x64\x45\x49\x73\x53\x55\x46\x42\x53\x53\x78\x54\x51\x55\x46\x70\x51\x69\x78\x44\x51\x55\x46\x42\x4F\x31\x46\x42\x51\x33\x4A\x43\x4C\x45\x6C\x42\x51\x55\x6B\x73\x52\x30\x46\x42\x56\x79\x78\x44\x51\x55\x46\x42\x4F\x31\x46\x42\x52\x57\x59\x73\x55\x55\x46\x42\x55\x53\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x30\x46\x42\x52\x79\x78\x46\x51\x55\x46\x46\x4F\x31\x6C\x42\x51\x32\x59\x73\x53\x30\x46\x42\x53\x79\x78\x4C\x51\x55\x46\x4C\x4C\x45\x4E\x42\x51\x55\x4D\x37\x57\x55\x46\x44\x57\x43\x78\x4C\x51\x55\x46\x4C\x4C\x46\x64\x42\x51\x56\x63\x73\x51\x30\x46\x42\x51\x7A\x74\x5A\x51\x55\x4E\x71\x51\x69\x78\x4C\x51\x55\x46\x4C\x4C\x46\x64\x42\x51\x56\x63\x73\x51\x30\x46\x42\x51\x7A\x74\x5A\x51\x55\x4E\x71\x51\x69\x78\x4C\x51\x55\x46\x4C\x4C\x46\x6C\x42\x51\x56\x6B\x73\x51\x30\x46\x42\x51\x7A\x74\x5A\x51\x55\x4E\x73\x51\x69\x78\x4C\x51\x55\x46\x4C\x4C\x46\x4E\x42\x51\x56\x4D\x73\x51\x30\x46\x42\x51\x7A\x74\x5A\x51\x55\x4E\x6D\x4C\x45\x74\x42\x51\x55\x73\x73\x56\x55\x46\x42\x56\x53\x78\x44\x51\x55\x46\x44\x4F\x31\x6C\x42\x51\x32\x68\x43\x4C\x45\x74\x42\x51\x55\x73\x73\x59\x55\x46\x42\x59\x53\x78\x44\x51\x55\x46\x44\x4F\x31\x6C\x42\x51\x32\x35\x43\x4C\x45\x74\x42\x51\x55\x73\x73\x55\x55\x46\x42\x55\x53\x78\x44\x51\x55\x46\x44\x4F\x31\x6C\x42\x51\x32\x51\x73\x53\x30\x46\x42\x53\x79\x78\x4C\x51\x55\x46\x4C\x4C\x45\x4E\x42\x51\x55\x4D\x37\x57\x55\x46\x44\x57\x43\x78\x4C\x51\x55\x46\x4C\x4C\x45\x31\x42\x51\x55\x30\x73\x51\x30\x46\x42\x51\x7A\x74\x5A\x51\x55\x4E\x61\x4C\x45\x74\x42\x51\x55\x73\x73\x55\x55\x46\x42\x55\x53\x78\x44\x51\x55\x46\x44\x4F\x31\x6C\x42\x51\x32\x51\x73\x53\x30\x46\x42\x53\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x37\x57\x55\x46\x44\x56\x69\x78\x4C\x51\x55\x46\x4C\x4C\x46\x56\x42\x51\x56\x55\x73\x51\x30\x46\x42\x51\x7A\x74\x5A\x51\x55\x4E\x6F\x51\x69\x78\x4C\x51\x55\x46\x4C\x4C\x46\x46\x42\x51\x56\x45\x73\x51\x30\x46\x42\x51\x7A\x74\x5A\x51\x55\x4E\x6B\x4C\x45\x74\x42\x51\x55\x73\x73\x54\x30\x46\x42\x54\x79\x78\x44\x51\x55\x46\x44\x4F\x31\x6C\x42\x51\x32\x49\x73\x53\x30\x46\x42\x53\x79\x78\x68\x51\x55\x46\x68\x4C\x45\x4E\x42\x51\x55\x4D\x37\x57\x55\x46\x44\x62\x6B\x49\x73\x53\x30\x46\x42\x53\x79\x78\x5A\x51\x55\x46\x5A\x4C\x45\x4E\x42\x51\x55\x4D\x37\x57\x55\x46\x44\x62\x45\x49\x73\x53\x30\x46\x42\x53\x79\x78\x50\x51\x55\x46\x50\x4F\x32\x64\x43\x51\x55\x4E\x59\x4C\x45\x31\x42\x51\x55\x73\x37\x57\x55\x46\x46\x54\x69\x78\x4C\x51\x55\x46\x4C\x4C\x46\x64\x42\x51\x56\x63\x37\x5A\x30\x4A\x42\x51\x32\x59\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x56\x42\x51\x55\x55\x37\x62\x30\x4A\x42\x51\x32\x51\x73\x54\x30\x46\x42\x54\x79\x78\x4C\x51\x55\x46\x4C\x4C\x45\x4E\x42\x51\x55\x45\x37\x61\x55\x4A\x42\x51\x31\x6F\x37\x5A\x30\x4A\x42\x51\x30\x51\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x44\x4C\x47\x4E\x42\x51\x57\x4D\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x42\x4F\x32\x64\x43\x51\x55\x56\x75\x51\x69\x78\x56\x51\x55\x46\x56\x4C\x45\x64\x42\x51\x55\x63\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x46\x42\x51\x56\x45\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x6E\x51\x6B\x46\x44\x4E\x30\x49\x73\x53\x55\x46\x42\x53\x53\x78\x56\x51\x55\x46\x56\x4C\x45\x64\x42\x51\x55\x63\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x74\x42\x51\x55\x73\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x4E\x51\x55\x46\x4E\x4C\x45\x4E\x42\x51\x55\x45\x37\x5A\x30\x4A\x42\x51\x33\x4A\x44\x4C\x46\x4E\x42\x51\x56\x4D\x73\x52\x30\x46\x42\x52\x79\x78\x56\x51\x55\x46\x56\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x30\x46\x42\x55\x79\x78\x44\x51\x55\x46\x42\x4F\x32\x64\x43\x51\x55\x56\x6F\x51\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x64\x42\x51\x55\x63\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x64\x42\x51\x55\x63\x73\x51\x30\x46\x42\x51\x79\x78\x58\x51\x55\x46\x58\x4C\x45\x4E\x42\x51\x55\x45\x37\x5A\x30\x4A\x42\x51\x7A\x46\x43\x4C\x45\x6C\x42\x51\x55\x6B\x73\x52\x30\x46\x42\x52\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x52\x54\x74\x76\x51\x6B\x46\x44\x57\x69\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x46\x42\x51\x56\x45\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x56\x42\x51\x55\x55\x73\x56\x55\x46\x42\x56\x53\x78\x46\x51\x55\x46\x46\x4C\x46\x4E\x42\x51\x56\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x42\x4F\x32\x39\x43\x51\x55\x55\x31\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x55\x46\x42\x55\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x48\x51\x55\x46\x48\x4C\x46\x4E\x42\x51\x56\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x76\x51\x6B\x46\x44\x4E\x55\x49\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x46\x42\x51\x56\x45\x73\x51\x30\x46\x42\x51\x79\x78\x56\x51\x55\x46\x56\x4C\x45\x56\x42\x51\x55\x55\x73\x52\x30\x46\x42\x52\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x62\x30\x4A\x42\x51\x7A\x6C\x43\x4C\x45\x39\x42\x51\x55\x38\x73\x53\x30\x46\x42\x53\x79\x78\x44\x51\x55\x46\x42\x4F\x32\x6C\x43\x51\x55\x4E\x61\x4F\x32\x64\x43\x51\x55\x56\x45\x4C\x47\x31\x44\x51\x55\x46\x74\x51\x7A\x74\x6E\x51\x6B\x46\x44\x62\x6B\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x56\x51\x55\x46\x56\x4C\x45\x64\x42\x51\x55\x63\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x74\x42\x51\x55\x73\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x64\x42\x51\x55\x63\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x55\x46\x42\x54\x53\x78\x44\x51\x55\x46\x42\x4F\x32\x64\x43\x51\x55\x56\x36\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x31\x42\x51\x55\x30\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x64\x42\x51\x55\x63\x73\x51\x30\x46\x42\x51\x79\x78\x46\x51\x55\x46\x46\x4C\x46\x56\x42\x51\x56\x55\x73\x51\x30\x46\x42\x51\x79\x78\x54\x51\x55\x46\x54\x4C\x45\x56\x42\x51\x55\x55\x73\x56\x55\x46\x42\x56\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x4E\x42\x51\x56\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x42\x4F\x32\x64\x43\x51\x55\x56\x75\x52\x53\x78\x48\x51\x55\x46\x48\x4C\x45\x64\x42\x51\x55\x63\x73\x56\x55\x46\x42\x56\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x4E\x42\x51\x56\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x4E\x51\x55\x46\x4E\x4C\x45\x4E\x42\x51\x55\x45\x37\x5A\x30\x4A\x42\x51\x32\x70\x44\x4C\x46\x56\x42\x51\x56\x55\x73\x51\x30\x46\x42\x51\x79\x78\x54\x51\x55\x46\x54\x4C\x45\x64\x42\x51\x55\x63\x73\x56\x55\x46\x42\x56\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x4E\x42\x51\x56\x4D\x73\x52\x30\x46\x42\x52\x79\x78\x56\x51\x55\x46\x56\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x30\x46\x42\x55\x79\x78\x44\x51\x55\x46\x42\x4F\x32\x64\x43\x51\x55\x4E\x73\x52\x53\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x55\x46\x42\x55\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x30\x46\x42\x52\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x30\x46\x42\x52\x79\x78\x56\x51\x55\x46\x56\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x30\x46\x42\x55\x79\x78\x44\x51\x55\x46\x42\x4F\x32\x64\x43\x51\x55\x55\x7A\x51\x79\x77\x77\x51\x6B\x46\x42\x4D\x45\x49\x37\x5A\x30\x4A\x42\x51\x7A\x46\x43\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x56\x51\x55\x46\x56\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x5A\x30\x4A\x42\x51\x32\x78\x43\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x52\x51\x55\x46\x52\x4C\x45\x4E\x42\x51\x55\x4D\x73\x56\x55\x46\x42\x56\x53\x78\x46\x51\x55\x46\x46\x4C\x45\x64\x42\x51\x55\x63\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x42\x4F\x32\x64\x43\x51\x55\x4D\x35\x51\x69\x78\x50\x51\x55\x46\x50\x4C\x45\x74\x42\x51\x55\x73\x73\x51\x30\x46\x42\x51\x54\x74\x5A\x51\x55\x56\x69\x4C\x45\x74\x42\x51\x55\x73\x73\x55\x30\x46\x42\x55\x7A\x74\x6E\x51\x6B\x46\x44\x59\x69\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x57\x55\x46\x42\x57\x53\x78\x48\x51\x55\x46\x48\x4C\x45\x74\x42\x51\x55\x73\x73\x51\x30\x46\x42\x51\x54\x74\x6E\x51\x6B\x46\x44\x65\x6B\x49\x73\x54\x55\x46\x42\x53\x7A\x74\x5A\x51\x55\x56\x4F\x4C\x45\x74\x42\x51\x55\x73\x73\x54\x30\x46\x42\x54\x7A\x74\x6E\x51\x6B\x46\x44\x57\x43\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x4D\x73\x59\x30\x46\x42\x59\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x45\x37\x5A\x30\x4A\x42\x51\x32\x35\x43\x4C\x45\x31\x42\x51\x55\x73\x37\x57\x55\x46\x46\x54\x69\x78\x4C\x51\x55\x46\x4C\x4C\x45\x64\x42\x51\x55\x63\x37\x5A\x30\x4A\x42\x51\x31\x41\x73\x53\x55\x46\x42\x53\x53\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x57\x55\x46\x42\x57\x53\x78\x46\x51\x55\x46\x46\x4F\x32\x39\x43\x51\x55\x4E\x30\x51\x69\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x4D\x73\x59\x30\x46\x42\x59\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x45\x37\x62\x30\x4A\x42\x51\x32\x35\x43\x4C\x45\x39\x42\x51\x55\x30\x37\x61\x55\x4A\x42\x51\x30\x34\x37\x5A\x30\x4A\x42\x51\x30\x51\x73\x54\x55\x46\x42\x53\x7A\x74\x5A\x51\x55\x56\x4F\x4C\x45\x74\x42\x51\x55\x73\x73\x52\x30\x46\x42\x52\x7A\x74\x6E\x51\x6B\x46\x44\x55\x43\x78\x4A\x51\x55\x46\x4A\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x5A\x51\x55\x46\x5A\x4C\x45\x56\x42\x51\x55\x55\x37\x62\x30\x4A\x42\x51\x33\x52\x43\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x79\x78\x6A\x51\x55\x46\x6A\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x54\x74\x76\x51\x6B\x46\x44\x62\x6B\x49\x73\x54\x30\x46\x42\x54\x54\x74\x70\x51\x6B\x46\x44\x54\x6A\x74\x6E\x51\x6B\x46\x44\x52\x43\x78\x4E\x51\x55\x46\x4C\x4F\x31\x6C\x42\x52\x55\x34\x37\x5A\x30\x4A\x42\x51\x30\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x57\x55\x46\x42\x57\x53\x78\x46\x51\x55\x46\x46\x4F\x32\x39\x43\x51\x55\x4E\x30\x51\x69\x78\x4E\x51\x55\x46\x4C\x4F\x32\x6C\x43\x51\x55\x4E\x4D\x4F\x32\x64\x43\x51\x55\x4E\x45\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x55\x46\x42\x55\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x52\x53\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x55\x46\x42\x55\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x4C\x51\x55\x46\x4C\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x55\x46\x42\x54\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x4E\x42\x51\x56\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x42\x4F\x32\x64\x43\x51\x55\x4E\x32\x52\x53\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x55\x46\x42\x55\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x4C\x51\x55\x46\x4C\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x55\x46\x42\x54\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x4E\x42\x51\x56\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x54\x51\x55\x4E\x73\x52\x44\x74\x52\x51\x55\x4E\x45\x4C\x45\x39\x42\x51\x55\x38\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x42\x4F\x30\x6C\x42\x51\x31\x6F\x73\x51\x30\x46\x42\x51\x7A\x74\x4A\x51\x55\x56\x45\x4C\x44\x42\x43\x51\x55\x46\x54\x4C\x45\x64\x42\x51\x56\x51\x73\x56\x55\x46\x42\x56\x53\x78\x44\x51\x55\x46\x54\x4C\x45\x56\x42\x51\x55\x55\x73\x54\x55\x46\x42\x62\x55\x49\x73\x52\x55\x46\x42\x52\x53\x78\x46\x51\x55\x46\x70\x51\x6A\x74\x52\x51\x55\x4D\x78\x52\x43\x78\x4A\x51\x55\x46\x4A\x4C\x46\x56\x42\x51\x57\x74\x43\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x44\x64\x45\x49\x73\x53\x55\x46\x42\x53\x53\x78\x54\x51\x55\x46\x70\x51\x69\x78\x44\x51\x55\x46\x42\x4F\x31\x46\x42\x51\x33\x4A\x43\x4C\x45\x6C\x42\x51\x55\x6B\x73\x52\x30\x46\x42\x56\x79\x78\x44\x51\x55\x46\x42\x4F\x31\x46\x42\x52\x57\x59\x73\x55\x55\x46\x42\x55\x53\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x30\x46\x42\x52\x79\x78\x46\x51\x55\x46\x46\x4F\x31\x6C\x42\x51\x32\x59\x73\x53\x30\x46\x42\x53\x79\x78\x54\x51\x55\x46\x54\x4F\x32\x64\x43\x51\x55\x4E\x69\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x52\x54\x74\x76\x51\x6B\x46\x44\x57\x43\x78\x50\x51\x55\x46\x50\x4C\x45\x74\x42\x51\x55\x73\x73\x51\x30\x46\x42\x51\x54\x74\x70\x51\x6B\x46\x44\x57\x6A\x74\x6E\x51\x6B\x46\x44\x52\x43\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x64\x42\x51\x55\x63\x73\x52\x55\x46\x42\x52\x54\x74\x76\x51\x6B\x46\x44\x5A\x43\x78\x50\x51\x55\x46\x50\x4C\x45\x74\x42\x51\x55\x73\x73\x51\x30\x46\x42\x51\x54\x74\x70\x51\x6B\x46\x44\x57\x6A\x74\x6E\x51\x6B\x46\x44\x52\x43\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x4D\x73\x59\x30\x46\x42\x59\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x45\x37\x5A\x30\x4A\x42\x52\x57\x35\x43\x4C\x45\x6C\x42\x51\x55\x6B\x73\x55\x55\x46\x42\x54\x53\x78\x48\x51\x55\x46\x48\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x4C\x51\x55\x46\x4C\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x31\x42\x51\x55\x30\x73\x51\x30\x46\x42\x51\x54\x74\x6E\x51\x6B\x46\x44\x63\x6B\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x4C\x51\x55\x46\x48\x4C\x45\x64\x42\x51\x55\x63\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x64\x42\x51\x55\x63\x73\x51\x30\x46\x42\x51\x79\x78\x58\x51\x55\x46\x58\x4C\x45\x4E\x42\x51\x55\x45\x37\x5A\x30\x4A\x42\x51\x7A\x6C\x43\x4C\x45\x6C\x42\x51\x55\x6B\x73\x53\x30\x46\x42\x52\x79\x78\x48\x51\x55\x46\x48\x4C\x46\x46\x42\x51\x55\x30\x73\x51\x30\x46\x42\x51\x79\x78\x54\x51\x55\x46\x54\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x55\x46\x42\x54\x53\x78\x46\x51\x55\x46\x46\x4F\x32\x39\x43\x51\x55\x4E\x73\x51\x79\x78\x4C\x51\x55\x46\x48\x4C\x45\x64\x42\x51\x55\x63\x73\x55\x55\x46\x42\x54\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x4E\x42\x51\x56\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x4E\x51\x55\x46\x4E\x4C\x45\x4E\x42\x51\x55\x45\x37\x61\x55\x4A\x42\x51\x7A\x64\x43\x4F\x32\x64\x43\x51\x55\x4E\x45\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x52\x51\x55\x46\x52\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x55\x46\x42\x54\x53\x78\x46\x51\x55\x46\x46\x4C\x45\x74\x42\x51\x55\x63\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x42\x4F\x32\x64\x43\x51\x55\x55\x78\x51\x69\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x56\x42\x51\x55\x55\x37\x62\x30\x4A\x42\x51\x31\x51\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x79\x78\x54\x51\x55\x46\x54\x4C\x45\x64\x42\x51\x55\x63\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x42\x4F\x32\x6C\x43\x51\x55\x4E\x79\x51\x6A\x74\x78\x51\x6B\x46\x42\x54\x53\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x30\x46\x42\x51\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x64\x42\x51\x55\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x79\x78\x54\x51\x55\x46\x54\x4C\x45\x56\x42\x51\x55\x55\x37\x62\x30\x4A\x42\x51\x32\x78\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x30\x46\x42\x55\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x54\x74\x70\x51\x6B\x46\x44\x64\x6B\x49\x37\x5A\x30\x4A\x42\x51\x30\x51\x73\x54\x30\x46\x42\x54\x79\x78\x4C\x51\x55\x46\x4C\x4C\x45\x4E\x42\x51\x55\x45\x37\x57\x55\x46\x46\x59\x69\x78\x4C\x51\x55\x46\x4C\x4C\x46\x64\x42\x51\x56\x63\x37\x5A\x30\x4A\x42\x51\x32\x59\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x74\x42\x51\x55\x73\x73\x51\x30\x46\x42\x51\x79\x78\x4E\x51\x55\x46\x4E\x4C\x45\x64\x42\x51\x55\x63\x73\x51\x30\x46\x42\x51\x79\x78\x46\x51\x55\x46\x46\x4F\x32\x39\x43\x51\x55\x4D\x76\x51\x69\x78\x50\x51\x55\x46\x50\x4C\x45\x74\x42\x51\x55\x73\x73\x51\x30\x46\x42\x51\x54\x74\x70\x51\x6B\x46\x44\x57\x6A\x74\x6E\x51\x6B\x46\x44\x52\x43\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x64\x42\x51\x55\x63\x73\x52\x55\x46\x42\x52\x54\x74\x76\x51\x6B\x46\x44\x5A\x43\x78\x50\x51\x55\x46\x50\x4C\x45\x74\x42\x51\x55\x73\x73\x51\x30\x46\x42\x51\x54\x74\x70\x51\x6B\x46\x44\x57\x6A\x74\x6E\x51\x6B\x46\x44\x52\x43\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x4D\x73\x59\x30\x46\x42\x59\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x45\x37\x5A\x30\x4A\x42\x52\x57\x35\x43\x4C\x46\x46\x42\x51\x55\x30\x73\x52\x30\x46\x42\x52\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x30\x46\x42\x53\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x30\x46\x42\x52\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x4E\x51\x55\x46\x4E\x4C\x45\x4E\x42\x51\x55\x45\x37\x5A\x30\x4A\x42\x51\x32\x70\x44\x4C\x45\x74\x42\x51\x55\x63\x73\x52\x30\x46\x42\x52\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x30\x46\x42\x52\x79\x78\x44\x51\x55\x46\x44\x4C\x46\x64\x42\x51\x56\x63\x73\x51\x30\x46\x42\x51\x54\x74\x6E\x51\x6B\x46\x44\x4D\x55\x49\x73\x53\x55\x46\x42\x53\x53\x78\x4C\x51\x55\x46\x48\x4C\x45\x64\x42\x51\x55\x63\x73\x55\x55\x46\x42\x54\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x4E\x42\x51\x56\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x4E\x51\x55\x46\x4E\x4C\x45\x56\x42\x51\x55\x55\x37\x62\x30\x4A\x42\x51\x32\x78\x44\x4C\x45\x74\x42\x51\x55\x63\x73\x52\x30\x46\x42\x52\x79\x78\x52\x51\x55\x46\x4E\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x30\x46\x42\x55\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x31\x42\x51\x55\x30\x73\x51\x30\x46\x42\x51\x54\x74\x70\x51\x6B\x46\x44\x4E\x30\x49\x37\x5A\x30\x4A\x42\x51\x30\x51\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x46\x42\x51\x56\x45\x73\x51\x30\x46\x42\x51\x79\x78\x52\x51\x55\x46\x4E\x4C\x45\x56\x42\x51\x55\x55\x73\x53\x30\x46\x42\x52\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x5A\x30\x4A\x42\x52\x54\x46\x43\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x5A\x30\x4A\x42\x51\x30\x34\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x30\x46\x42\x51\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x4D\x73\x57\x55\x46\x42\x57\x53\x78\x48\x51\x55\x46\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x30\x46\x42\x55\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x56\x42\x51\x55\x55\x37\x62\x30\x4A\x42\x51\x33\x4A\x45\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x30\x46\x42\x55\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x54\x74\x70\x51\x6B\x46\x44\x64\x6B\x49\x37\x5A\x30\x4A\x42\x51\x30\x51\x73\x54\x30\x46\x42\x54\x79\x78\x4C\x51\x55\x46\x4C\x4C\x45\x4E\x42\x51\x55\x45\x37\x57\x55\x46\x46\x59\x69\x78\x4C\x51\x55\x46\x4C\x4C\x46\x4E\x42\x51\x56\x4D\x37\x5A\x30\x4A\x42\x51\x32\x49\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x6C\x42\x51\x56\x6B\x73\x52\x30\x46\x42\x52\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x45\x37\x5A\x30\x4A\x42\x51\x33\x68\x43\x4C\x45\x31\x42\x51\x55\x73\x37\x57\x55\x46\x46\x54\x69\x78\x4C\x51\x55\x46\x4C\x4C\x45\x39\x42\x51\x55\x38\x37\x5A\x30\x4A\x42\x51\x31\x67\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x56\x42\x51\x55\x55\x37\x62\x30\x4A\x42\x51\x32\x49\x73\x54\x30\x46\x42\x54\x54\x74\x70\x51\x6B\x46\x44\x54\x6A\x74\x6E\x51\x6B\x46\x44\x52\x43\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x64\x42\x51\x55\x63\x73\x52\x55\x46\x42\x52\x54\x74\x76\x51\x6B\x46\x44\x5A\x43\x78\x50\x51\x55\x46\x4E\x4F\x32\x6C\x43\x51\x55\x4E\x4F\x4F\x32\x64\x43\x51\x55\x4E\x45\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x79\x78\x6A\x51\x55\x46\x6A\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x54\x74\x6E\x51\x6B\x46\x46\x62\x6B\x49\x73\x53\x30\x46\x42\x52\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x4E\x42\x51\x55\x4D\x73\x56\x30\x46\x42\x56\x79\x78\x44\x51\x55\x46\x42\x4F\x32\x64\x43\x51\x55\x4D\x78\x51\x69\x78\x4A\x51\x55\x46\x4A\x4C\x45\x6C\x42\x51\x55\x6B\x73\x52\x30\x46\x42\x52\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x30\x46\x42\x53\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x31\x42\x51\x55\x30\x73\x51\x30\x46\x42\x51\x79\x78\x54\x51\x55\x46\x54\x4C\x45\x4E\x42\x51\x55\x45\x37\x5A\x30\x4A\x42\x51\x33\x70\x44\x4C\x46\x56\x42\x51\x56\x55\x73\x52\x30\x46\x42\x52\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x30\x46\x42\x53\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x52\x53\x78\x4C\x51\x55\x46\x48\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x6E\x51\x6B\x46\x44\x4C\x30\x49\x73\x55\x30\x46\x42\x55\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x4C\x51\x55\x46\x4C\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x30\x46\x42\x52\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x4E\x51\x55\x46\x4E\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x6E\x51\x6B\x46\x46\x65\x45\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x50\x51\x55\x46\x50\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x46\x51\x55\x46\x46\x4C\x46\x56\x42\x51\x56\x55\x73\x52\x55\x46\x42\x52\x53\x78\x54\x51\x55\x46\x54\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x6E\x51\x6B\x46\x46\x4D\x30\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x74\x42\x51\x55\x73\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x4E\x51\x55\x46\x4E\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x30\x46\x42\x55\x79\x78\x48\x51\x55\x46\x48\x4C\x46\x56\x42\x51\x56\x55\x73\x51\x30\x46\x42\x51\x54\x74\x6E\x51\x6B\x46\x44\x4D\x30\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x46\x42\x51\x56\x45\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x30\x46\x42\x52\x79\x78\x56\x51\x55\x46\x56\x4C\x45\x4E\x42\x51\x55\x45\x37\x5A\x30\x4A\x42\x52\x54\x64\x43\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x68\x51\x55\x46\x68\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x52\x53\x78\x54\x51\x55\x46\x54\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x6E\x51\x6B\x46\x44\x63\x45\x4D\x73\x54\x30\x46\x42\x54\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x64\x42\x51\x55\x63\x73\x51\x30\x46\x42\x51\x79\x78\x52\x51\x55\x46\x52\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x52\x51\x55\x46\x52\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x55\x46\x42\x54\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x5A\x30\x4A\x42\x51\x7A\x6C\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x48\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x55\x46\x42\x55\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x31\x42\x51\x55\x30\x73\x52\x55\x46\x42\x52\x54\x74\x76\x51\x6B\x46\x44\x61\x45\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x79\x78\x54\x51\x55\x46\x54\x4C\x45\x64\x42\x51\x55\x63\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x79\x78\x5A\x51\x55\x46\x5A\x4C\x45\x4E\x42\x51\x55\x45\x37\x61\x55\x4A\x42\x51\x33\x68\x44\x4F\x32\x64\x43\x51\x55\x4E\x45\x4C\x45\x31\x42\x51\x55\x73\x37\x57\x55\x46\x46\x54\x69\x78\x4C\x51\x55\x46\x4C\x4C\x46\x46\x42\x51\x56\x45\x37\x5A\x30\x4A\x42\x51\x31\x6F\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x44\x4C\x47\x4E\x42\x51\x57\x4D\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x42\x4F\x32\x64\x43\x51\x55\x4E\x75\x51\x69\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x59\x30\x46\x42\x59\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x45\x37\x5A\x30\x4A\x42\x51\x33\x4A\x43\x4C\x45\x31\x42\x51\x55\x73\x37\x57\x55\x46\x46\x54\x69\x78\x4C\x51\x55\x46\x4C\x4C\x45\x74\x42\x51\x55\x73\x37\x5A\x30\x4A\x42\x51\x31\x51\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x56\x42\x51\x55\x55\x37\x62\x30\x4A\x42\x51\x32\x51\x73\x54\x30\x46\x42\x54\x79\x78\x4C\x51\x55\x46\x4C\x4C\x45\x4E\x42\x51\x55\x45\x37\x61\x55\x4A\x42\x51\x31\x6F\x37\x5A\x30\x4A\x42\x51\x30\x51\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x44\x4C\x47\x4E\x42\x51\x57\x4D\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x42\x4F\x32\x64\x43\x51\x55\x56\x75\x51\x69\x78\x52\x51\x55\x46\x4E\x4C\x45\x64\x42\x51\x55\x63\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x74\x42\x51\x55\x73\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x4E\x51\x55\x46\x4E\x4C\x45\x4E\x42\x51\x55\x45\x37\x5A\x30\x4A\x42\x51\x7A\x64\x43\x4C\x45\x74\x42\x51\x55\x63\x73\x52\x30\x46\x42\x52\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x30\x46\x42\x52\x79\x78\x44\x51\x55\x46\x44\x4C\x46\x64\x42\x51\x56\x63\x73\x51\x30\x46\x42\x51\x54\x74\x6E\x51\x6B\x46\x44\x4D\x55\x49\x73\x56\x55\x46\x42\x56\x53\x78\x48\x51\x55\x46\x48\x4C\x46\x46\x42\x51\x55\x30\x73\x51\x30\x46\x42\x51\x79\x78\x54\x51\x55\x46\x54\x4C\x45\x4E\x42\x51\x55\x45\x37\x5A\x30\x4A\x42\x51\x7A\x64\x43\x4C\x46\x4E\x42\x51\x56\x4D\x73\x52\x30\x46\x42\x52\x79\x78\x56\x51\x55\x46\x56\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x30\x46\x42\x53\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x52\x53\x78\x4C\x51\x55\x46\x48\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x30\x46\x42\x52\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x64\x42\x51\x55\x63\x73\x56\x55\x46\x42\x56\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x74\x42\x51\x55\x73\x73\x51\x30\x46\x42\x51\x79\x78\x4C\x51\x55\x46\x48\x4C\x45\x56\x42\x51\x55\x55\x73\x56\x55\x46\x42\x56\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x31\x42\x51\x55\x30\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x42\x4F\x32\x64\x43\x51\x55\x56\x30\x52\x69\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x46\x42\x51\x56\x45\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x56\x42\x51\x55\x55\x73\x56\x55\x46\x42\x56\x53\x78\x46\x51\x55\x46\x46\x4C\x46\x4E\x42\x51\x56\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x42\x4F\x32\x64\x43\x51\x55\x4D\x31\x51\x79\x78\x52\x51\x55\x46\x4E\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x30\x46\x42\x55\x79\x78\x48\x51\x55\x46\x48\x4C\x46\x4E\x42\x51\x56\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x6E\x51\x6B\x46\x44\x4E\x55\x49\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x46\x42\x51\x56\x45\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x30\x46\x42\x52\x79\x78\x54\x51\x55\x46\x54\x4C\x45\x4E\x42\x51\x55\x45\x37\x5A\x30\x4A\x42\x52\x54\x56\x43\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x52\x51\x55\x46\x52\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x55\x46\x42\x54\x53\x78\x46\x51\x55\x46\x46\x4C\x45\x74\x42\x51\x55\x63\x73\x52\x30\x46\x42\x52\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x6E\x51\x6B\x46\x44\x4F\x55\x49\x73\x54\x55\x46\x42\x53\x7A\x74\x5A\x51\x55\x56\x4F\x4C\x45\x74\x42\x51\x55\x73\x73\x52\x30\x46\x42\x52\x7A\x74\x6E\x51\x6B\x46\x44\x55\x43\x78\x4A\x51\x55\x46\x4A\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x5A\x51\x55\x46\x5A\x4C\x45\x56\x42\x51\x55\x55\x37\x62\x30\x4A\x42\x51\x33\x52\x43\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x79\x78\x6A\x51\x55\x46\x6A\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x54\x74\x76\x51\x6B\x46\x44\x62\x6B\x49\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x31\x42\x51\x55\x30\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x42\x4F\x32\x39\x43\x51\x55\x4E\x69\x4C\x45\x39\x42\x51\x55\x30\x37\x61\x55\x4A\x42\x51\x30\x34\x37\x5A\x30\x4A\x42\x51\x30\x51\x73\x54\x55\x46\x42\x53\x7A\x74\x5A\x51\x55\x56\x4F\x4C\x45\x74\x42\x51\x55\x73\x73\x52\x30\x46\x42\x52\x7A\x74\x6E\x51\x6B\x46\x44\x55\x43\x78\x4A\x51\x55\x46\x4A\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x5A\x51\x55\x46\x5A\x4C\x45\x56\x42\x51\x55\x55\x37\x62\x30\x4A\x42\x51\x33\x52\x43\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x79\x78\x6A\x51\x55\x46\x6A\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x54\x74\x76\x51\x6B\x46\x44\x62\x6B\x49\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x44\x4C\x47\x56\x42\x51\x57\x55\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x42\x4F\x32\x39\x43\x51\x55\x4E\x77\x51\x69\x78\x4A\x51\x55\x46\x4A\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x55\x46\x42\x54\x53\x78\x46\x51\x55\x46\x46\x4F\x33\x64\x43\x51\x55\x4E\x79\x51\x69\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x31\x42\x51\x55\x30\x73\x51\x30\x46\x42\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x56\x55\x46\x42\x56\x53\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x78\x51\x6B\x46\x44\x62\x6B\x4D\x37\x62\x30\x4A\x42\x51\x30\x51\x73\x54\x30\x46\x42\x54\x79\x78\x4C\x51\x55\x46\x4C\x4C\x45\x4E\x42\x51\x55\x45\x37\x61\x55\x4A\x42\x51\x31\x6F\x37\x5A\x30\x4A\x42\x51\x30\x51\x73\x54\x55\x46\x42\x53\x7A\x74\x5A\x51\x55\x56\x4F\x4C\x45\x74\x42\x51\x55\x73\x73\x52\x30\x46\x42\x52\x7A\x74\x6E\x51\x6B\x46\x44\x55\x43\x78\x4A\x51\x55\x46\x4A\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x5A\x51\x55\x46\x5A\x4C\x45\x56\x42\x51\x55\x55\x37\x62\x30\x4A\x42\x51\x33\x52\x43\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x79\x78\x6A\x51\x55\x46\x6A\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x54\x74\x76\x51\x6B\x46\x44\x62\x6B\x49\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x31\x42\x51\x55\x30\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x42\x4F\x32\x39\x43\x51\x55\x4E\x69\x4C\x45\x39\x42\x51\x55\x30\x37\x61\x55\x4A\x42\x51\x30\x34\x37\x5A\x30\x4A\x42\x51\x30\x51\x73\x54\x55\x46\x42\x53\x7A\x74\x54\x51\x55\x4E\x4F\x4F\x30\x6C\x42\x51\x30\x59\x73\x51\x30\x46\x42\x51\x7A\x74\x4A\x51\x55\x56\x45\x4C\x47\x74\x44\x51\x55\x46\x70\x51\x69\x78\x48\x51\x55\x46\x71\x51\x69\x78\x56\x51\x55\x46\x72\x51\x69\x78\x44\x51\x55\x46\x54\x4F\x31\x46\x42\x51\x7A\x46\x43\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x56\x51\x55\x46\x56\x4C\x45\x64\x42\x51\x55\x63\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x42\x4F\x30\x6C\x42\x51\x33\x42\x43\x4C\x45\x4E\x42\x51\x55\x4D\x37\x53\x55\x46\x46\x52\x43\x78\x6E\x51\x30\x46\x42\x5A\x53\x78\x48\x51\x55\x46\x6D\x4C\x46\x56\x42\x51\x57\x64\x43\x4C\x45\x4E\x42\x51\x56\x4D\x37\x55\x55\x46\x44\x65\x45\x49\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x46\x42\x51\x56\x45\x73\x52\x30\x46\x42\x52\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x44\x61\x6B\x49\x73\x53\x55\x46\x42\x53\x53\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x55\x46\x42\x55\x53\x78\x48\x51\x55\x46\x48\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x56\x51\x55\x46\x56\x4C\x45\x56\x42\x51\x55\x55\x37\x57\x55\x46\x44\x63\x45\x4D\x73\x54\x30\x46\x42\x54\x54\x74\x54\x51\x55\x4E\x4F\x4F\x31\x46\x42\x51\x30\x51\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x56\x42\x51\x55\x55\x37\x57\x55\x46\x44\x59\x69\x78\x50\x51\x55\x46\x4E\x4F\x31\x4E\x42\x51\x30\x34\x37\x55\x55\x46\x44\x52\x43\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x30\x46\x42\x52\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x44\x56\x43\x78\x50\x51\x55\x46\x50\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x30\x46\x42\x52\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x56\x55\x46\x42\x56\x53\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x52\x53\x78\x46\x51\x55\x46\x46\x4F\x31\x6C\x42\x51\x32\x68\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x55\x46\x42\x55\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x46\x6C\x42\x51\x56\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x50\x51\x55\x46\x50\x4C\x45\x56\x42\x51\x55\x55\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x30\x46\x44\x4E\x30\x4D\x37\x55\x55\x46\x44\x52\x43\x78\x50\x51\x55\x46\x50\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x55\x46\x42\x55\x53\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x52\x53\x78\x46\x51\x55\x46\x46\x4F\x31\x6C\x42\x51\x79\x39\x43\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x55\x46\x42\x55\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x46\x6C\x42\x51\x56\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x50\x51\x55\x46\x50\x4C\x45\x56\x42\x51\x55\x55\x73\x4F\x45\x4A\x42\x51\x54\x68\x43\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x54\x51\x55\x4E\x36\x52\x54\x74\x52\x51\x55\x4E\x45\x4C\x45\x39\x42\x51\x55\x38\x73\x51\x30\x46\x42\x51\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x55\x46\x42\x55\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x31\x42\x51\x55\x30\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x56\x42\x51\x55\x55\x73\x52\x55\x46\x42\x52\x54\x74\x5A\x51\x55\x4E\x34\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x46\x42\x51\x56\x45\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x5A\x51\x55\x46\x5A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x30\x46\x42\x54\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x42\x4F\x31\x4E\x42\x51\x7A\x64\x44\x4F\x31\x46\x42\x51\x30\x51\x73\x53\x55\x46\x42\x53\x53\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x64\x42\x51\x56\x63\x73\x52\x55\x46\x42\x52\x54\x74\x5A\x51\x55\x4D\x78\x51\x69\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x64\x42\x51\x56\x63\x73\x51\x30\x46\x42\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x56\x55\x46\x42\x56\x53\x78\x46\x51\x55\x46\x46\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x52\x51\x55\x46\x52\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x54\x51\x55\x4E\x79\x52\x44\x74\x4A\x51\x55\x4E\x47\x4C\x45\x4E\x42\x51\x55\x4D\x37\x53\x55\x46\x46\x52\x43\x78\x31\x51\x6B\x46\x42\x54\x53\x78\x48\x51\x55\x46\x4F\x4F\x31\x46\x42\x51\x30\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x56\x42\x51\x55\x55\x37\x57\x55\x46\x44\x59\x69\x78\x50\x51\x55\x46\x4E\x4F\x31\x4E\x42\x51\x30\x34\x37\x55\x55\x46\x44\x52\x43\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x4E\x42\x51\x56\x4D\x73\x52\x30\x46\x42\x52\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x44\x64\x45\x49\x73\x53\x30\x46\x42\x62\x55\x49\x73\x56\x55\x46\x42\x56\x53\x78\x46\x51\x55\x46\x57\x4C\x45\x74\x42\x51\x55\x45\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x74\x42\x51\x55\x73\x73\x52\x55\x46\x42\x56\x69\x78\x6A\x51\x55\x46\x56\x4C\x45\x56\x42\x51\x56\x59\x73\x53\x55\x46\x42\x56\x53\x78\x46\x51\x55\x46\x46\x4F\x31\x6C\x42\x51\x54\x46\x43\x4C\x45\x6C\x42\x51\x55\x30\x73\x53\x55\x46\x42\x53\x53\x78\x54\x51\x55\x46\x42\x4F\x31\x6C\x42\x51\x32\x51\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x79\x78\x58\x51\x55\x46\x58\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x42\x4F\x31\x4E\x42\x51\x7A\x56\x43\x4F\x30\x6C\x42\x51\x30\x59\x73\x51\x30\x46\x42\x51\x7A\x74\x4A\x51\x55\x56\x45\x4C\x48\x6C\x43\x51\x55\x46\x52\x4C\x45\x64\x42\x51\x56\x49\x73\x56\x55\x46\x42\x55\x79\x78\x4E\x51\x55\x46\x74\x51\x69\x78\x46\x51\x55\x46\x46\x4C\x45\x64\x42\x51\x56\x63\x37\x55\x55\x46\x44\x65\x45\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x56\x42\x51\x55\x55\x37\x57\x55\x46\x44\x5A\x43\x78\x50\x51\x55\x46\x4E\x4F\x31\x4E\x42\x51\x30\x34\x37\x55\x55\x46\x44\x52\x43\x78\x4A\x51\x55\x46\x4A\x4C\x45\x31\x42\x51\x55\x30\x73\x51\x30\x46\x42\x51\x79\x78\x56\x51\x55\x46\x56\x4C\x45\x56\x42\x51\x55\x55\x37\x57\x55\x46\x44\x64\x45\x49\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x74\x42\x51\x55\x73\x73\x51\x30\x46\x42\x51\x79\x78\x52\x51\x55\x46\x52\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x55\x46\x42\x54\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x56\x42\x51\x56\x55\x73\x52\x55\x46\x42\x52\x53\x78\x48\x51\x55\x46\x48\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x54\x51\x55\x4D\x7A\x51\x7A\x74\x68\x51\x55\x46\x4E\x4F\x31\x6C\x42\x51\x30\x34\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x74\x42\x51\x55\x73\x73\x51\x30\x46\x42\x51\x79\x78\x52\x51\x55\x46\x52\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x55\x46\x42\x54\x53\x78\x46\x51\x55\x46\x46\x4C\x45\x64\x42\x51\x55\x63\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x42\x4F\x31\x4E\x42\x51\x32\x68\x44\x4F\x31\x46\x42\x51\x30\x51\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x74\x42\x51\x55\x73\x73\x51\x30\x46\x42\x51\x79\x78\x52\x51\x55\x46\x52\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x44\x65\x6B\x49\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x64\x42\x51\x55\x63\x73\x51\x30\x46\x42\x51\x79\x78\x6C\x51\x55\x46\x6C\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x54\x74\x52\x51\x55\x4D\x78\x51\x69\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x30\x46\x42\x52\x79\x78\x44\x51\x55\x46\x44\x4C\x46\x46\x42\x51\x56\x45\x73\x51\x30\x46\x42\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x30\x46\x42\x53\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x53\x55\x46\x44\x4F\x55\x49\x73\x51\x30\x46\x42\x51\x7A\x74\x4A\x51\x55\x4E\x47\x4C\x47\x46\x42\x51\x55\x4D\x37\x51\x55\x46\x42\x52\x43\x78\x44\x51\x55\x46\x44\x4C\x45\x46\x42\x4E\x57\x5A\x45\x4C\x45\x6C\x42\x4E\x47\x5A\x44\x4F\x30\x46\x42\x4E\x57\x5A\x5A\x4C\x48\x64\x43\x51\x55\x46\x4E\x4F\x30\x46\x42\x4F\x47\x5A\x75\x51\x6A\x74\x4A\x51\x55\x31\x44\x4C\x47\x39\x43\x51\x55\x46\x74\x51\x69\x78\x44\x51\x55\x46\x54\x4C\x45\x56\x42\x51\x56\x4D\x73\x53\x55\x46\x42\x57\x53\x78\x46\x51\x55\x46\x46\x4C\x45\x56\x42\x51\x56\x55\x37\x55\x55\x46\x42\x4E\x30\x51\x73\x61\x55\x4A\x42\x4D\x6B\x4E\x44\x4F\x31\x46\x42\x4D\x30\x4E\x72\x51\x69\x78\x4E\x51\x55\x46\x44\x4C\x45\x64\x42\x51\x55\x51\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x52\x4F\x31\x46\x42\x51\x56\x4D\x73\x55\x30\x46\x42\x53\x53\x78\x48\x51\x55\x46\x4B\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x55\x54\x74\x52\x51\x55\x78\x36\x51\x79\x78\x5A\x51\x55\x46\x50\x4C\x45\x64\x42\x51\x56\x63\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x42\x4F\x31\x46\x42\x54\x54\x46\x43\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x50\x51\x55\x46\x50\x4C\x45\x64\x42\x51\x55\x63\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x42\x4F\x31\x46\x42\x51\x32\x68\x43\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x64\x42\x51\x55\x63\x73\x55\x55\x46\x42\x55\x53\x78\x44\x51\x55\x46\x44\x4C\x47\x46\x42\x51\x57\x45\x73\x51\x30\x46\x42\x51\x79\x78\x4C\x51\x55\x46\x4C\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x52\x51\x55\x4E\x32\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x4E\x42\x51\x56\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x4E\x42\x51\x55\x4D\x73\x61\x55\x4A\x42\x51\x57\x6C\x43\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x52\x51\x55\x56\x34\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x55\x46\x42\x55\x53\x78\x48\x51\x55\x46\x48\x4C\x46\x46\x42\x51\x56\x45\x73\x51\x30\x46\x42\x51\x79\x78\x68\x51\x55\x46\x68\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x55\x46\x42\x54\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x44\x4F\x55\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x46\x42\x51\x56\x45\x73\x51\x30\x46\x42\x51\x79\x78\x54\x51\x55\x46\x54\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x30\x46\x42\x52\x79\x78\x44\x51\x55\x46\x44\x4C\x47\x6C\x43\x51\x55\x46\x70\x51\x69\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x44\x4F\x55\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x46\x42\x51\x56\x45\x73\x51\x30\x46\x42\x51\x79\x78\x54\x51\x55\x46\x54\x4C\x45\x64\x42\x51\x55\x63\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x39\x42\x51\x55\x38\x73\x52\x30\x46\x42\x52\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x64\x42\x51\x55\x63\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x42\x4F\x31\x46\x42\x52\x53\x39\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x52\x51\x55\x46\x52\x4C\x45\x4E\x42\x51\x55\x4D\x73\x56\x30\x46\x42\x56\x79\x78\x48\x51\x55\x46\x48\x4C\x46\x56\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x59\x7A\x74\x5A\x51\x55\x4D\x78\x51\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x4D\x73\x61\x55\x4A\x42\x51\x57\x6C\x43\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x30\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x39\x42\x51\x55\x38\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x42\x4F\x31\x46\x42\x51\x32\x35\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x52\x51\x55\x4E\x45\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x52\x51\x55\x46\x52\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x30\x46\x42\x55\x79\x78\x48\x51\x55\x46\x48\x4C\x46\x56\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x59\x7A\x74\x5A\x51\x55\x4E\x34\x51\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x4D\x73\x5A\x55\x46\x42\x5A\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x74\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x50\x51\x55\x46\x50\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x52\x51\x55\x4E\x71\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x46\x52\x43\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x55\x46\x42\x54\x53\x78\x48\x51\x55\x46\x48\x4C\x46\x46\x42\x51\x56\x45\x73\x51\x30\x46\x42\x51\x79\x78\x68\x51\x55\x46\x68\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x55\x46\x42\x54\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x44\x4E\x55\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x31\x42\x51\x55\x30\x73\x51\x30\x46\x42\x51\x79\x78\x54\x51\x55\x46\x54\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x30\x46\x42\x52\x79\x78\x44\x51\x55\x46\x44\x4C\x47\x56\x42\x51\x57\x55\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x42\x4F\x31\x46\x42\x51\x7A\x46\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x4E\x51\x55\x46\x4E\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x30\x46\x42\x55\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x54\x74\x52\x51\x55\x4D\x31\x51\x69\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x55\x46\x42\x54\x53\x78\x44\x51\x55\x46\x44\x4C\x47\x56\x42\x51\x57\x55\x73\x52\x30\x46\x42\x52\x79\x78\x4E\x51\x55\x46\x4E\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x46\x63\x45\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x31\x42\x51\x55\x30\x73\x51\x30\x46\x42\x51\x79\x78\x50\x51\x55\x46\x50\x4C\x45\x64\x42\x51\x55\x63\x73\x56\x55\x46\x42\x51\x79\x78\x46\x51\x55\x46\x6A\x4F\x31\x6C\x42\x51\x33\x42\x44\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x79\x78\x58\x51\x55\x46\x58\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x30\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x31\x42\x51\x55\x30\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x42\x4F\x31\x46\x42\x51\x7A\x56\x43\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x52\x51\x55\x56\x45\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x4E\x51\x55\x46\x4E\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x30\x46\x42\x55\x79\x78\x48\x51\x55\x46\x48\x4C\x46\x56\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x61\x55\x49\x37\x57\x55\x46\x44\x65\x6B\x4D\x73\x54\x30\x46\x42\x54\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x30\x46\x42\x55\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x74\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x50\x51\x55\x46\x50\x4C\x45\x56\x42\x51\x55\x55\x73\x53\x30\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x31\x42\x51\x55\x30\x73\x52\x55\x46\x42\x52\x53\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x52\x51\x55\x4E\x75\x52\x43\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x44\x52\x43\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x55\x46\x42\x54\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x39\x42\x51\x55\x38\x73\x52\x30\x46\x42\x52\x79\x78\x56\x51\x55\x46\x44\x4C\x45\x56\x42\x51\x57\x6C\x43\x4F\x31\x6C\x42\x51\x33\x5A\x44\x4C\x45\x39\x42\x51\x55\x38\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x39\x42\x51\x55\x38\x73\x51\x30\x46\x42\x51\x79\x78\x4C\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x30\x46\x42\x54\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x74\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x4E\x51\x55\x46\x4E\x4C\x45\x56\x42\x51\x55\x55\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x44\x61\x6B\x51\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x42\x4F\x31\x46\x42\x52\x55\x51\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x31\x42\x51\x55\x30\x73\x51\x30\x46\x42\x51\x79\x78\x6E\x51\x6B\x46\x42\x5A\x30\x49\x73\x51\x30\x46\x42\x51\x79\x78\x50\x51\x55\x46\x50\x4C\x45\x56\x42\x51\x55\x55\x73\x56\x55\x46\x42\x51\x79\x78\x46\x51\x55\x46\x72\x51\x6A\x74\x5A\x51\x55\x4E\x34\x52\x43\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x44\x4C\x47\x46\x42\x51\x57\x45\x73\x52\x55\x46\x42\x52\x54\x74\x6E\x51\x6B\x46\x44\x64\x45\x49\x73\x54\x30\x46\x42\x54\x54\x74\x68\x51\x55\x4E\x4F\x4F\x31\x6C\x42\x51\x30\x51\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x44\x4C\x47\x4E\x42\x51\x57\x4D\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x42\x4F\x31\x6C\x42\x51\x32\x35\x43\x4C\x45\x6C\x42\x51\x55\x30\x73\x53\x55\x46\x42\x53\x53\x78\x48\x51\x55\x46\x48\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x79\x78\x68\x51\x55\x46\x68\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x30\x46\x42\x54\x79\x78\x44\x51\x55\x46\x44\x4C\x46\x6C\x42\x51\x56\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x42\x4F\x31\x6C\x42\x51\x32\x35\x45\x4C\x46\x46\x42\x51\x56\x45\x73\x51\x30\x46\x42\x51\x79\x78\x58\x51\x55\x46\x58\x4C\x45\x4E\x42\x51\x55\x4D\x73\x57\x55\x46\x42\x57\x53\x78\x46\x51\x55\x46\x46\x4C\x45\x74\x42\x51\x55\x73\x73\x52\x55\x46\x42\x52\x53\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x52\x51\x55\x4E\x6F\x52\x43\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x52\x51\x55\x56\x47\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x4D\x73\x56\x30\x46\x42\x56\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x52\x51\x55\x46\x52\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x52\x51\x55\x4E\x73\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x44\x4C\x46\x64\x42\x51\x56\x63\x73\x51\x30\x46\x42\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x55\x46\x42\x54\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x53\x55\x46\x44\x61\x6B\x4D\x73\x51\x30\x46\x42\x51\x7A\x74\x4A\x51\x55\x56\x45\x4C\x44\x68\x43\x51\x55\x46\x54\x4C\x45\x64\x42\x51\x56\x51\x73\x56\x55\x46\x42\x56\x53\x78\x44\x51\x55\x46\x54\x4F\x31\x46\x42\x51\x32\x78\x43\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x50\x51\x55\x46\x50\x4C\x45\x64\x42\x51\x55\x63\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x42\x4F\x31\x46\x42\x51\x32\x68\x43\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x52\x51\x55\x46\x52\x4C\x45\x4E\x42\x51\x55\x4D\x73\x55\x30\x46\x42\x55\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x30\x46\x42\x52\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x64\x42\x51\x55\x63\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x42\x4F\x30\x6C\x42\x51\x33\x4A\x44\x4C\x45\x4E\x42\x51\x55\x4D\x37\x53\x55\x46\x44\x52\x69\x78\x70\x51\x6B\x46\x42\x51\x7A\x74\x42\x51\x55\x46\x45\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x55\x46\x32\x52\x45\x51\x73\x53\x55\x46\x31\x52\x45\x4D\x37\x51\x55\x46\x46\x52\x43\x78\x46\x51\x55\x46\x46\x4F\x30\x46\x42\x51\x30\x59\x73\x64\x55\x4E\x42\x51\x58\x56\x44\x4F\x30\x46\x42\x51\x33\x5A\x44\x4C\x45\x56\x42\x51\x55\x55\x37\x51\x55\x46\x44\x52\x6A\x74\x4A\x51\x55\x6C\x44\x4F\x31\x46\x42\x53\x45\x45\x73\x55\x55\x46\x42\x52\x79\x78\x48\x51\x55\x46\x58\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x52\x51\x55\x4E\x6D\x4C\x46\x6C\x42\x51\x55\x38\x73\x52\x30\x46\x42\x59\x53\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x45\x37\x53\x55\x46\x46\x55\x43\x78\x44\x51\x55\x46\x44\x4F\x30\x6C\x42\x52\x57\x68\x43\x4C\x48\x6C\x43\x51\x55\x46\x4E\x4C\x45\x64\x42\x51\x55\x34\x73\x56\x55\x46\x42\x54\x79\x78\x52\x51\x55\x46\x6E\x51\x69\x78\x46\x51\x55\x46\x46\x4C\x46\x46\x42\x51\x57\x64\x43\x4C\x45\x56\x42\x51\x55\x55\x73\x55\x55\x46\x42\x5A\x30\x49\x37\x55\x55\x46\x44\x4D\x55\x51\x73\x53\x55\x46\x42\x53\x53\x78\x52\x51\x55\x46\x52\x4C\x45\x64\x42\x51\x55\x63\x73\x55\x55\x46\x42\x55\x53\x78\x48\x51\x55\x46\x48\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x52\x51\x55\x4D\x7A\x51\x69\x78\x4A\x51\x55\x46\x4A\x4C\x45\x31\x42\x51\x55\x30\x73\x52\x30\x46\x42\x56\x7A\x74\x5A\x51\x55\x4E\x77\x51\x69\x78\x4A\x51\x55\x46\x4A\x4C\x45\x56\x42\x51\x55\x55\x73\x54\x55\x46\x42\x54\x54\x74\x5A\x51\x55\x4E\x61\x4C\x45\x31\x42\x51\x55\x30\x73\x52\x55\x46\x42\x52\x54\x74\x6E\x51\x6B\x46\x44\x55\x43\x78\x52\x51\x55\x46\x52\x4C\x45\x56\x42\x51\x55\x55\x73\x55\x55\x46\x42\x55\x54\x74\x6E\x51\x6B\x46\x44\x62\x45\x49\x73\x55\x55\x46\x42\x55\x53\x78\x46\x51\x55\x46\x46\x4C\x46\x46\x42\x51\x56\x45\x37\x5A\x30\x4A\x42\x51\x32\x78\x43\x4C\x46\x46\x42\x51\x56\x45\x73\x52\x55\x46\x42\x52\x53\x78\x52\x51\x55\x46\x52\x4C\x45\x64\x42\x51\x55\x63\x73\x51\x30\x46\x42\x51\x7A\x74\x6E\x51\x6B\x46\x44\x64\x45\x49\x73\x55\x55\x46\x42\x55\x53\x78\x46\x51\x55\x46\x46\x4C\x46\x46\x42\x51\x56\x45\x37\x59\x55\x46\x44\x62\x45\x49\x37\x57\x55\x46\x44\x52\x43\x78\x4C\x51\x55\x46\x4C\x4C\x45\x56\x42\x51\x55\x55\x37\x5A\x30\x4A\x42\x51\x30\x34\x73\x55\x55\x46\x42\x55\x53\x78\x46\x51\x55\x46\x46\x4C\x46\x46\x42\x51\x56\x45\x37\x5A\x30\x4A\x42\x51\x32\x78\x43\x4C\x46\x46\x42\x51\x56\x45\x73\x52\x55\x46\x42\x52\x53\x78\x52\x51\x55\x46\x52\x4C\x45\x64\x42\x51\x55\x63\x73\x55\x55\x46\x42\x55\x54\x74\x6E\x51\x6B\x46\x44\x4E\x30\x49\x73\x55\x55\x46\x42\x55\x53\x78\x46\x51\x55\x46\x46\x4C\x46\x46\x42\x51\x56\x45\x73\x52\x30\x46\x42\x52\x79\x78\x44\x51\x55\x46\x44\x4F\x32\x64\x43\x51\x55\x4E\x30\x51\x69\x78\x52\x51\x55\x46\x52\x4C\x45\x56\x42\x51\x55\x55\x73\x52\x55\x46\x42\x52\x54\x74\x68\x51\x55\x4E\x61\x4F\x31\x4E\x42\x51\x30\x51\x73\x51\x30\x46\x42\x51\x54\x74\x52\x51\x55\x4E\x45\x4C\x45\x6C\x42\x51\x55\x6B\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x39\x42\x51\x55\x38\x73\x51\x30\x46\x42\x51\x79\x78\x4E\x51\x55\x46\x4E\x4C\x45\x64\x42\x51\x55\x63\x73\x51\x30\x46\x42\x51\x79\x78\x46\x51\x55\x46\x46\x4F\x31\x6C\x42\x51\x7A\x56\x43\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x50\x51\x55\x46\x50\x4C\x45\x64\x42\x51\x55\x63\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x39\x42\x51\x55\x38\x73\x51\x30\x46\x42\x51\x79\x78\x4C\x51\x55\x46\x4C\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x54\x51\x55\x4D\x35\x51\x7A\x74\x52\x51\x55\x4E\x45\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x50\x51\x55\x46\x50\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x31\x42\x51\x55\x30\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x42\x4F\x31\x46\x42\x51\x33\x70\x43\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x56\x42\x51\x55\x55\x73\x51\x30\x46\x42\x51\x54\x74\x4A\x51\x55\x4E\x59\x4C\x45\x4E\x42\x51\x55\x4D\x37\x53\x55\x46\x46\x52\x43\x77\x77\x51\x6B\x46\x42\x54\x79\x78\x48\x51\x55\x46\x51\x4C\x46\x56\x42\x51\x56\x45\x73\x55\x55\x46\x42\x5A\x30\x49\x73\x52\x55\x46\x42\x52\x53\x78\x52\x51\x55\x46\x6E\x51\x69\x78\x46\x51\x55\x46\x46\x4C\x46\x46\x42\x51\x57\x64\x43\x4F\x31\x46\x42\x51\x7A\x4E\x45\x4C\x45\x6C\x42\x51\x55\x6B\x73\x54\x55\x46\x42\x54\x53\x78\x48\x51\x55\x46\x48\x4F\x31\x6C\x42\x51\x31\x6F\x73\x53\x55\x46\x42\x53\x53\x78\x46\x51\x55\x46\x46\x4C\x45\x39\x42\x51\x55\x38\x37\x57\x55\x46\x44\x59\x69\x78\x4E\x51\x55\x46\x4E\x4C\x45\x56\x42\x51\x55\x55\x37\x5A\x30\x4A\x42\x51\x31\x41\x73\x55\x55\x46\x42\x55\x53\x78\x46\x51\x55\x46\x46\x4C\x46\x46\x42\x51\x56\x45\x37\x5A\x30\x4A\x42\x51\x32\x78\x43\x4C\x46\x46\x42\x51\x56\x45\x73\x52\x55\x46\x42\x52\x53\x78\x52\x51\x55\x46\x52\x4C\x45\x64\x42\x51\x55\x63\x73\x55\x55\x46\x42\x55\x54\x74\x6E\x51\x6B\x46\x44\x4E\x30\x49\x73\x55\x55\x46\x42\x55\x53\x78\x46\x51\x55\x46\x46\x4C\x46\x46\x42\x51\x56\x45\x73\x52\x30\x46\x42\x52\x79\x78\x44\x51\x55\x46\x44\x4F\x32\x64\x43\x51\x55\x4E\x30\x51\x69\x78\x52\x51\x55\x46\x52\x4C\x45\x56\x42\x51\x55\x55\x73\x52\x55\x46\x42\x52\x54\x74\x68\x51\x55\x4E\x61\x4F\x31\x6C\x42\x51\x30\x51\x73\x53\x30\x46\x42\x53\x79\x78\x46\x51\x55\x46\x46\x4F\x32\x64\x43\x51\x55\x4E\x4F\x4C\x46\x46\x42\x51\x56\x45\x73\x52\x55\x46\x42\x52\x53\x78\x52\x51\x55\x46\x52\x4F\x32\x64\x43\x51\x55\x4E\x73\x51\x69\x78\x52\x51\x55\x46\x52\x4C\x45\x56\x42\x51\x55\x55\x73\x55\x55\x46\x42\x55\x54\x74\x6E\x51\x6B\x46\x44\x62\x45\x49\x73\x55\x55\x46\x42\x55\x53\x78\x46\x51\x55\x46\x46\x4C\x46\x46\x42\x51\x56\x45\x73\x52\x30\x46\x42\x52\x79\x78\x44\x51\x55\x46\x44\x4F\x32\x64\x43\x51\x55\x4E\x30\x51\x69\x78\x52\x51\x55\x46\x52\x4C\x45\x56\x42\x51\x55\x55\x73\x55\x55\x46\x42\x55\x54\x74\x68\x51\x55\x4E\x73\x51\x6A\x74\x54\x51\x55\x4E\x45\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x44\x52\x43\x78\x4A\x51\x55\x46\x4A\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x50\x51\x55\x46\x50\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x55\x46\x42\x54\x53\x78\x48\x51\x55\x46\x48\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x52\x54\x74\x5A\x51\x55\x4D\x31\x51\x69\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x30\x46\x42\x54\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x50\x51\x55\x46\x50\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x30\x46\x42\x53\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x55\x46\x42\x52\x53\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x30\x46\x42\x52\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x30\x46\x44\x4F\x55\x4D\x37\x55\x55\x46\x44\x52\x43\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x30\x46\x42\x54\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x4E\x51\x55\x46\x4E\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x52\x51\x55\x4E\x36\x51\x69\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x30\x46\x42\x52\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x45\x37\x53\x55\x46\x44\x57\x43\x78\x44\x51\x55\x46\x44\x4F\x30\x6C\x42\x52\x55\x51\x73\x4D\x6B\x4A\x42\x51\x56\x45\x73\x52\x30\x46\x42\x55\x69\x78\x56\x51\x55\x46\x54\x4C\x45\x39\x42\x51\x57\x55\x73\x52\x55\x46\x42\x52\x53\x78\x56\x51\x55\x46\x72\x51\x69\x78\x46\x51\x55\x46\x46\x4C\x46\x4E\x42\x51\x57\x6C\x43\x4F\x31\x46\x42\x51\x7A\x6C\x45\x4C\x45\x6C\x42\x51\x55\x30\x73\x54\x55\x46\x42\x54\x53\x78\x48\x51\x55\x46\x58\x4F\x31\x6C\x42\x51\x33\x52\x43\x4C\x45\x6C\x42\x51\x55\x6B\x73\x52\x55\x46\x42\x52\x53\x78\x52\x51\x55\x46\x52\x4F\x31\x6C\x42\x51\x32\x51\x73\x54\x55\x46\x42\x54\x53\x78\x46\x51\x55\x46\x46\x4F\x32\x64\x43\x51\x55\x4E\x51\x4C\x46\x46\x42\x51\x56\x45\x73\x52\x55\x46\x42\x52\x53\x78\x50\x51\x55\x46\x50\x4F\x32\x64\x43\x51\x55\x4E\x71\x51\x69\x78\x52\x51\x55\x46\x52\x4C\x45\x56\x42\x51\x55\x55\x73\x56\x55\x46\x42\x56\x54\x74\x6E\x51\x6B\x46\x44\x63\x45\x49\x73\x55\x55\x46\x42\x55\x53\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x4D\x37\x5A\x30\x4A\x42\x51\x31\x67\x73\x55\x55\x46\x42\x55\x53\x78\x46\x51\x55\x46\x46\x4C\x45\x56\x42\x51\x55\x55\x37\x59\x55\x46\x44\x57\x6A\x74\x5A\x51\x55\x4E\x45\x4C\x45\x74\x42\x51\x55\x73\x73\x52\x55\x46\x42\x52\x54\x74\x6E\x51\x6B\x46\x44\x54\x69\x78\x52\x51\x55\x46\x52\x4C\x45\x56\x42\x51\x55\x55\x73\x54\x30\x46\x42\x54\x7A\x74\x6E\x51\x6B\x46\x44\x61\x6B\x49\x73\x55\x55\x46\x42\x55\x53\x78\x46\x51\x55\x46\x46\x4C\x46\x4E\x42\x51\x56\x4D\x37\x5A\x30\x4A\x42\x51\x32\x35\x43\x4C\x46\x46\x42\x51\x56\x45\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x44\x4F\x32\x64\x43\x51\x55\x4E\x59\x4C\x46\x46\x42\x51\x56\x45\x73\x52\x55\x46\x42\x52\x53\x78\x46\x51\x55\x46\x46\x4F\x32\x46\x42\x51\x31\x6F\x37\x55\x30\x46\x44\x52\x43\x78\x44\x51\x55\x46\x42\x4F\x31\x46\x42\x52\x55\x51\x73\x53\x55\x46\x42\x53\x53\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x30\x46\x42\x54\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x31\x42\x51\x55\x30\x73\x52\x30\x46\x42\x52\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x56\x42\x51\x55\x55\x37\x57\x55\x46\x44\x4E\x55\x49\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x39\x42\x51\x55\x38\x73\x52\x30\x46\x42\x52\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x30\x46\x42\x54\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x74\x42\x51\x55\x73\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x56\x42\x51\x55\x55\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x64\x42\x51\x55\x63\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x42\x4F\x31\x4E\x42\x51\x7A\x6C\x44\x4F\x31\x46\x42\x51\x30\x51\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x39\x42\x51\x55\x38\x73\x51\x30\x46\x42\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x55\x46\x42\x54\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x44\x65\x6B\x49\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x64\x42\x51\x55\x63\x73\x52\x55\x46\x42\x52\x53\x78\x44\x51\x55\x46\x42\x4F\x30\x6C\x42\x51\x31\x67\x73\x51\x30\x46\x42\x51\x7A\x74\x4A\x51\x55\x56\x45\x4C\x48\x56\x43\x51\x55\x46\x4A\x4C\x45\x64\x42\x51\x55\x6F\x37\x55\x55\x46\x44\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x46\x51\x55\x46\x46\x4F\x31\x6C\x42\x51\x32\x78\x43\x4C\x45\x39\x42\x51\x55\x38\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x42\x4F\x31\x4E\x42\x51\x31\x67\x37\x55\x55\x46\x44\x52\x43\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x30\x46\x42\x52\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x44\x56\x69\x78\x50\x51\x55\x46\x50\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x50\x51\x55\x46\x50\x4C\x45\x4E\x42\x51\x55\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x44\x4C\x45\x64\x42\x51\x55\x63\x73\x51\x30\x46\x42\x51\x79\x78\x44\x51\x55\x46\x42\x4F\x30\x6C\x42\x51\x7A\x6C\x43\x4C\x45\x4E\x42\x51\x55\x4D\x37\x53\x55\x46\x46\x52\x43\x78\x31\x51\x6B\x46\x42\x53\x53\x78\x48\x51\x55\x46\x4B\x4F\x31\x46\x42\x51\x30\x4D\x73\x53\x55\x46\x42\x53\x53\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x30\x46\x42\x52\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x50\x51\x55\x46\x50\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x55\x46\x42\x54\x53\x78\x46\x51\x55\x46\x46\x4F\x31\x6C\x42\x51\x33\x42\x44\x4C\x45\x39\x42\x51\x55\x38\x73\x53\x55\x46\x42\x53\x53\x78\x44\x51\x55\x46\x42\x4F\x31\x4E\x42\x51\x31\x67\x37\x55\x55\x46\x44\x52\x43\x78\x4A\x51\x55\x46\x4A\x4C\x45\x31\x42\x51\x55\x30\x73\x52\x30\x46\x42\x52\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x54\x30\x46\x42\x54\x79\x78\x44\x51\x55\x46\x44\x4C\x45\x6C\x42\x51\x55\x6B\x73\x51\x30\x46\x42\x51\x79\x78\x48\x51\x55\x46\x48\x4C\x45\x4E\x42\x51\x55\x4D\x73\x51\x30\x46\x42\x51\x54\x74\x52\x51\x55\x4E\x75\x51\x79\x78\x4A\x51\x55\x46\x4A\x4C\x45\x4E\x42\x51\x55\x4D\x73\x52\x30\x46\x42\x52\x79\x78\x46\x51\x55\x46\x46\x4C\x45\x4E\x42\x51\x55\x45\x37\x55\x55\x46\x44\x56\x69\x78\x50\x51\x55\x46\x50\x4C\x45\x31\x42\x51\x55\x30\x73\x51\x30\x46\x42\x51\x54\x74\x4A\x51\x55\x4E\x6B\x4C\x45\x4E\x42\x51\x55\x4D\x37\x53\x55\x46\x44\x52\x69\x78\x6C\x51\x55\x46\x44\x4F\x30\x46\x42\x51\x55\x51\x73\x51\x30\x46\x42\x51\x79\x78\x42\x51\x54\x64\x47\x52\x43\x78\x4A\x51\x54\x5A\x47\x51\x79\x4A\x39"),
	}
	node.SetMode(420)
	node.SetName("editor.js")
	node.SetSize(45882)
	node.AddChild(_memfsWww_getNode(memfsWww, "/main.js", generate__www_main_js))
	node.AddChild(_memfsWww_getNode(memfsWww, "/require.js", generate__www_require_js))
	return node
}



@@ 57,25 43,39 @@ func generate__www_index_html() *memfs.Node {
		Path:            "/index.html",
		ContentType:     "text/html; charset=utf-8",
		ContentEncoding: "",
		V:               []byte("\x3C\x21\x44\x4F\x43\x54\x59\x50\x45\x20\x68\x74\x6D\x6C\x3E\x0A\x3C\x68\x74\x6D\x6C\x3E\x0A\x09\x3C\x68\x65\x61\x64\x3E\x0A\x09\x09\x3C\x6D\x65\x74\x61\x20\x63\x68\x61\x72\x73\x65\x74\x3D\x22\x55\x54\x46\x2D\x38\x22\x20\x2F\x3E\x0A\x09\x09\x3C\x74\x69\x74\x6C\x65\x3E\x61\x77\x77\x61\x6E\x3C\x2F\x74\x69\x74\x6C\x65\x3E\x0A\x09\x09\x3C\x73\x74\x79\x6C\x65\x3E\x0A\x09\x09\x09\x2E\x61\x77\x77\x61\x6E\x20\x7B\x0A\x09\x09\x09\x09\x64\x69\x73\x70\x6C\x61\x79\x3A\x20\x66\x6C\x65\x78\x3B\x0A\x09\x09\x09\x7D\x0A\x09\x09\x09\x2E\x61\x77\x77\x61\x6E\x5F\x6E\x61\x76\x5F\x6C\x65\x66\x74\x20\x7B\x0A\x09\x09\x09\x09\x66\x6F\x6E\x74\x2D\x66\x61\x6D\x69\x6C\x79\x3A\x20\x6D\x6F\x6E\x6F\x73\x70\x61\x63\x65\x3B\x0A\x09\x09\x09\x09\x68\x65\x69\x67\x68\x74\x3A\x20\x39\x38\x76\x68\x3B\x0A\x09\x09\x09\x09\x6F\x76\x65\x72\x66\x6C\x6F\x77\x2D\x79\x3A\x20\x61\x75\x74\x6F\x3B\x0A\x09\x09\x09\x09\x77\x69\x64\x74\x68\x3A\x20\x33\x30\x30\x70\x78\x3B\x0A\x09\x09\x09\x7D\x0A\x09\x09\x09\x2E\x61\x77\x77\x61\x6E\x5F\x63\x6F\x6E\x74\x65\x6E\x74\x20\x7B\x0A\x09\x09\x09\x09\x6D\x61\x72\x67\x69\x6E\x3A\x20\x30\x20\x31\x30\x70\x78\x3B\x0A\x09\x09\x09\x09\x77\x69\x64\x74\x68\x3A\x20\x63\x61\x6C\x63\x28\x31\x30\x30\x25\x20\x2D\x20\x33\x33\x30\x70\x78\x29\x3B\x0A\x09\x09\x09\x7D\x0A\x09\x09\x09\x23\x76\x66\x73\x5F\x70\x61\x74\x68\x20\x7B\x0A\x09\x09\x09\x09\x6D\x61\x72\x67\x69\x6E\x2D\x72\x69\x67\x68\x74\x3A\x20\x31\x30\x70\x78\x3B\x0A\x09\x09\x09\x7D\x0A\x09\x09\x09\x23\x65\x64\x69\x74\x6F\x72\x20\x7B\x0A\x09\x09\x09\x09\x77\x69\x64\x74\x68\x3A\x20\x31\x30\x30\x25\x3B\x0A\x09\x09\x09\x09\x68\x65\x69\x67\x68\x74\x3A\x20\x36\x30\x30\x70\x78\x3B\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\x7D\x0A\x09\x09\x09\x2E\x65\x64\x69\x74\x6F\x72\x5F\x61\x63\x74\x69\x6F\x6E\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\x70\x61\x64\x64\x69\x6E\x67\x3A\x20\x31\x30\x70\x78\x3B\x0A\x09\x09\x09\x7D\x0A\x09\x09\x09\x2E\x65\x78\x65\x63\x75\x74\x65\x5F\x61\x63\x74\x69\x6F\x6E\x20\x7B\x0A\x09\x09\x09\x09\x6D\x61\x72\x67\x69\x6E\x3A\x20\x31\x30\x70\x78\x20\x30\x3B\x0A\x09\x09\x09\x7D\x0A\x09\x09\x09\x2E\x62\x6F\x78\x68\x65\x61\x64\x65\x72\x20\x7B\x0A\x09\x09\x09\x09\x70\x61\x64\x64\x69\x6E\x67\x3A\x20\x31\x30\x70\x78\x3B\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\x7D\x0A\x09\x09\x09\x23\x73\x74\x64\x6F\x75\x74\x2C\x0A\x09\x09\x09\x23\x73\x74\x64\x65\x72\x72\x20\x7B\x0A\x09\x09\x09\x09\x66\x6F\x6E\x74\x2D\x66\x61\x6D\x69\x6C\x79\x3A\x20\x6D\x6F\x6E\x6F\x73\x70\x61\x63\x65\x3B\x0A\x09\x09\x09\x09\x6D\x69\x6E\x2D\x68\x65\x69\x67\x68\x74\x3A\x20\x32\x30\x30\x70\x78\x3B\x0A\x09\x09\x09\x09\x6F\x76\x65\x72\x66\x6C\x6F\x77\x3A\x20\x61\x75\x74\x6F\x3B\x0A\x09\x09\x09\x09\x70\x61\x64\x64\x69\x6E\x67\x3A\x20\x31\x30\x70\x78\x3B\x0A\x09\x09\x09\x09\x77\x68\x69\x74\x65\x2D\x73\x70\x61\x63\x65\x3A\x20\x70\x72\x65\x3B\x0A\x09\x09\x09\x7D\x0A\x09\x09\x09\x23\x73\x74\x64\x6F\x75\x74\x20\x7B\x0A\x09\x09\x09\x09\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x2D\x63\x6F\x6C\x6F\x72\x3A\x20\x6C\x61\x76\x65\x6E\x64\x65\x72\x3B\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\x7D\x0A\x09\x09\x09\x23\x73\x74\x64\x65\x72\x72\x20\x7B\x0A\x09\x09\x09\x09\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x2D\x63\x6F\x6C\x6F\x72\x3A\x20\x6C\x61\x76\x65\x6E\x64\x65\x72\x62\x6C\x75\x73\x68\x3B\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\x7D\x0A\x09\x09\x09\x40\x6D\x65\x64\x69\x61\x20\x28\x6D\x61\x78\x2D\x77\x69\x64\x74\x68\x3A\x20\x39\x30\x30\x70\x78\x29\x20\x7B\x0A\x09\x09\x09\x09\x2E\x61\x77\x77\x61\x6E\x20\x7B\x0A\x09\x09\x09\x09\x09\x64\x69\x73\x70\x6C\x61\x79\x3A\x20\x62\x6C\x6F\x63\x6B\x3B\x0A\x09\x09\x09\x09\x7D\x0A\x09\x09\x09\x09\x2E\x61\x77\x77\x61\x6E\x5F\x6E\x61\x76\x5F\x6C\x65\x66\x74\x20\x7B\x0A\x09\x09\x09\x09\x09\x6D\x69\x6E\x2D\x68\x65\x69\x67\x68\x74\x3A\x20\x34\x30\x30\x70\x78\x3B\x0A\x09\x09\x09\x09\x09\x6D\x61\x78\x2D\x68\x65\x69\x67\x68\x74\x3A\x20\x34\x30\x30\x70\x78\x3B\x0A\x09\x09\x09\x09\x09\x77\x69\x64\x74\x68\x3A\x20\x63\x61\x6C\x63\x28\x31\x30\x30\x25\x20\x2D\x20\x31\x30\x70\x78\x29\x3B\x0A\x09\x09\x09\x09\x7D\x0A\x09\x09\x09\x09\x2E\x61\x77\x77\x61\x6E\x5F\x63\x6F\x6E\x74\x65\x6E\x74\x20\x7B\x0A\x09\x09\x09\x09\x09\x6D\x61\x72\x67\x69\x6E\x3A\x20\x30\x3B\x0A\x09\x09\x09\x09\x09\x77\x69\x64\x74\x68\x3A\x20\x63\x61\x6C\x63\x28\x31\x30\x30\x25\x20\x2D\x20\x31\x30\x70\x78\x29\x3B\x0A\x09\x09\x09\x09\x7D\x0A\x09\x09\x09\x09\x2E\x65\x64\x69\x74\x6F\x72\x5F\x61\x63\x74\x69\x6F\x6E\x20\x7B\x0A\x09\x09\x09\x09\x09\x6D\x61\x72\x67\x69\x6E\x3A\x20\x31\x30\x70\x78\x20\x30\x3B\x0A\x09\x09\x09\x09\x7D\x0A\x09\x09\x09\x09\x23\x65\x64\x69\x74\x6F\x72\x20\x7B\x0A\x09\x09\x09\x09\x09\x68\x65\x69\x67\x68\x74\x3A\x20\x34\x30\x30\x70\x78\x3B\x0A\x09\x09\x09\x09\x7D\x0A\x09\x09\x09\x7D\x0A\x09\x09\x3C\x2F\x73\x74\x79\x6C\x65\x3E\x0A\x09\x3C\x2F\x68\x65\x61\x64\x3E\x0A\x09\x3C\x62\x6F\x64\x79\x20\x6F\x6E\x6C\x6F\x61\x64\x3D\x22\x6D\x61\x69\x6E\x28\x29\x22\x3E\x0A\x09\x09\x3C\x64\x69\x76\x20\x63\x6C\x61\x73\x73\x3D\x22\x61\x77\x77\x61\x6E\x22\x3E\x0A\x09\x09\x09\x3C\x64\x69\x76\x20\x63\x6C\x61\x73\x73\x3D\x22\x61\x77\x77\x61\x6E\x5F\x6E\x61\x76\x5F\x6C\x65\x66\x74\x22\x3E\x0A\x09\x09\x09\x09\x3C\x64\x69\x76\x20\x69\x64\x3D\x22\x76\x66\x73\x22\x3E\x3C\x2F\x64\x69\x76\x3E\x0A\x09\x09\x09\x3C\x2F\x64\x69\x76\x3E\x0A\x09\x09\x09\x3C\x64\x69\x76\x20\x63\x6C\x61\x73\x73\x3D\x22\x61\x77\x77\x61\x6E\x5F\x63\x6F\x6E\x74\x65\x6E\x74\x22\x3E\x0A\x09\x09\x09\x09\x3C\x64\x69\x76\x20\x63\x6C\x61\x73\x73\x3D\x22\x65\x64\x69\x74\x6F\x72\x5F\x61\x63\x74\x69\x6F\x6E\x22\x3E\x0A\x09\x09\x09\x09\x09\x46\x69\x6C\x65\x3A\x20\x3C\x73\x70\x61\x6E\x20\x69\x64\x3D\x22\x76\x66\x73\x5F\x70\x61\x74\x68\x22\x3E\x2D\x3C\x2F\x73\x70\x61\x6E\x3E\x0A\x09\x09\x09\x09\x09\x3C\x62\x75\x74\x74\x6F\x6E\x20\x6F\x6E\x63\x6C\x69\x63\x6B\x3D\x22\x6F\x6E\x43\x6C\x69\x63\x6B\x53\x61\x76\x65\x28\x29\x22\x3E\x53\x61\x76\x65\x3C\x2F\x62\x75\x74\x74\x6F\x6E\x3E\x0A\x09\x09\x09\x09\x3C\x2F\x64\x69\x76\x3E\x0A\x09\x09\x09\x09\x3C\x64\x69\x76\x20\x69\x64\x3D\x22\x65\x64\x69\x74\x6F\x72\x22\x3E\x3C\x2F\x64\x69\x76\x3E\x0A\x09\x09\x09\x09\x3C\x64\x69\x76\x20\x63\x6C\x61\x73\x73\x3D\x22\x65\x78\x65\x63\x75\x74\x65\x5F\x61\x63\x74\x69\x6F\x6E\x22\x3E\x0A\x09\x09\x09\x09\x09\x45\x78\x65\x63\x75\x74\x65\x20\x73\x63\x72\x69\x70\x74\x20\x6F\x6E\x0A\x09\x09\x09\x09\x09\x3C\x62\x75\x74\x74\x6F\x6E\x20\x6F\x6E\x63\x6C\x69\x63\x6B\x3D\x22\x65\x78\x65\x63\x4C\x6F\x63\x61\x6C\x28\x29\x22\x3E\x4C\x6F\x63\x61\x6C\x3C\x2F\x62\x75\x74\x74\x6F\x6E\x3E\x0A\x09\x09\x09\x09\x09\x6F\x72\x0A\x09\x09\x09\x09\x09\x3C\x62\x75\x74\x74\x6F\x6E\x20\x6F\x6E\x63\x6C\x69\x63\x6B\x3D\x22\x65\x78\x65\x63\x52\x65\x6D\x6F\x74\x65\x28\x29\x22\x3E\x52\x65\x6D\x6F\x74\x65\x3C\x2F\x62\x75\x74\x74\x6F\x6E\x3E\x0A\x09\x09\x09\x09\x3C\x2F\x64\x69\x76\x3E\x0A\x09\x09\x09\x09\x3C\x70\x3E\x48\x69\x6E\x74\x73\x3A\x3C\x2F\x70\x3E\x0A\x09\x09\x09\x09\x3C\x75\x6C\x3E\x0A\x09\x09\x09\x09\x09\x3C\x6C\x69\x3E\x0A\x09\x09\x09\x09\x09\x09\x43\x6C\x69\x63\x6B\x20\x61\x6E\x64\x20\x64\x72\x61\x67\x20\x6F\x6E\x20\x74\x68\x65\x20\x6C\x69\x6E\x65\x20\x6E\x75\x6D\x62\x65\x72\x73\x20\x74\x6F\x20\x73\x65\x6C\x65\x63\x74\x20\x74\x68\x65\x20\x73\x70\x65\x63\x69\x66\x69\x63\x20\x6C\x69\x6E\x65\x20\x74\x6F\x20\x62\x65\x0A\x09\x09\x09\x09\x09\x09\x65\x78\x65\x63\x75\x74\x65\x64\x2E\x0A\x09\x09\x09\x09\x09\x3C\x2F\x6C\x69\x3E\x0A\x09\x09\x09\x09\x09\x3C\x6C\x69\x3E\x50\x72\x65\x73\x73\x20\x45\x53\x43\x20\x74\x6F\x20\x63\x6C\x65\x61\x72\x20\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x2E\x3C\x2F\x6C\x69\x3E\x0A\x09\x09\x09\x09\x3C\x2F\x75\x6C\x3E\x0A\x09\x09\x09\x09\x3C\x64\x69\x76\x20\x63\x6C\x61\x73\x73\x3D\x22\x62\x6F\x78\x68\x65\x61\x64\x65\x72\x22\x3E\x53\x74\x61\x6E\x64\x61\x72\x64\x20\x6F\x75\x74\x70\x75\x74\x3A\x3C\x2F\x64\x69\x76\x3E\x0A\x09\x09\x09\x09\x3C\x64\x69\x76\x20\x69\x64\x3D\x22\x73\x74\x64\x6F\x75\x74\x22\x3E\x3C\x2F\x64\x69\x76\x3E\x0A\x09\x09\x09\x09\x3C\x64\x69\x76\x20\x63\x6C\x61\x73\x73\x3D\x22\x62\x6F\x78\x68\x65\x61\x64\x65\x72\x22\x3E\x53\x74\x61\x6E\x64\x61\x72\x64\x20\x65\x72\x72\x6F\x72\x3A\x3C\x2F\x64\x69\x76\x3E\x0A\x09\x09\x09\x09\x3C\x64\x69\x76\x20\x69\x64\x3D\x22\x73\x74\x64\x65\x72\x72\x22\x3E\x3C\x2F\x64\x69\x76\x3E\x0A\x09\x09\x09\x3C\x2F\x64\x69\x76\x3E\x0A\x09\x09\x3C\x2F\x64\x69\x76\x3E\x0A\x09\x09\x3C\x73\x63\x72\x69\x70\x74\x3E\x0A\x09\x09\x09\x76\x61\x72\x20\x65\x78\x70\x6F\x72\x74\x73\x20\x3D\x20\x7B\x7D\x0A\x09\x09\x09\x76\x61\x72\x20\x63\x6F\x6D\x45\x64\x69\x74\x6F\x72\x0A\x09\x09\x09\x76\x61\x72\x20\x63\x6F\x6D\x46\x69\x6C\x65\x50\x61\x74\x68\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\x22\x76\x66\x73\x5F\x70\x61\x74\x68\x22\x29\x0A\x09\x09\x09\x76\x61\x72\x20\x63\x6F\x6D\x53\x74\x64\x6F\x75\x74\x0A\x09\x09\x09\x76\x61\x72\x20\x63\x6F\x6D\x53\x74\x64\x65\x72\x72\x0A\x09\x09\x09\x76\x61\x72\x20\x63\x6F\x6D\x56\x66\x73\x0A\x09\x09\x09\x76\x61\x72\x20\x72\x65\x71\x75\x65\x73\x74\x20\x3D\x20\x7B\x0A\x09\x09\x09\x09\x73\x63\x72\x69\x70\x74\x3A\x20\x22\x22\x2C\x0A\x09\x09\x09\x09\x63\x6F\x6E\x74\x65\x6E\x74\x3A\x20\x22\x22\x2C\x0A\x09\x09\x09\x09\x62\x65\x67\x69\x6E\x5F\x61\x74\x3A\x20\x30\x2C\x0A\x09\x09\x09\x09\x65\x6E\x64\x5F\x61\x74\x3A\x20\x30\x2C\x0A\x09\x09\x09\x7D\x0A\x09\x09\x3C\x2F\x73\x63\x72\x69\x70\x74\x3E\x0A\x09\x09\x3C\x73\x63\x72\x69\x70\x74\x20\x73\x72\x63\x3D\x22\x2F\x76\x66\x73\x2E\x6A\x73\x22\x3E\x3C\x2F\x73\x63\x72\x69\x70\x74\x3E\x0A\x09\x09\x3C\x73\x63\x72\x69\x70\x74\x20\x73\x72\x63\x3D\x22\x2F\x65\x64\x69\x74\x6F\x72\x2E\x6A\x73\x22\x3E\x3C\x2F\x73\x63\x72\x69\x70\x74\x3E\x0A\x09\x09\x3C\x73\x63\x72\x69\x70\x74\x3E\x0A\x09\x09\x09\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6D\x61\x69\x6E\x28\x29\x20\x7B\x0A\x09\x09\x09\x09\x6C\x65\x74\x20\x63\x6F\x6D\x56\x66\x73\x4F\x70\x74\x73\x20\x3D\x20\x7B\x0A\x09\x09\x09\x09\x09\x69\x64\x3A\x20\x22\x76\x66\x73\x22\x2C\x0A\x09\x09\x09\x09\x09\x4C\x69\x73\x74\x4E\x6F\x64\x65\x73\x3A\x20\x4C\x69\x73\x74\x4E\x6F\x64\x65\x73\x2C\x0A\x09\x09\x09\x09\x09\x4F\x6E\x43\x6C\x69\x63\x6B\x4E\x6F\x64\x65\x3A\x20\x4F\x6E\x43\x6C\x69\x63\x6B\x4E\x6F\x64\x65\x2C\x0A\x09\x09\x09\x09\x7D\x0A\x09\x09\x09\x09\x63\x6F\x6D\x56\x66\x73\x20\x3D\x20\x6E\x65\x77\x20\x56\x66\x73\x28\x63\x6F\x6D\x56\x66\x73\x4F\x70\x74\x73\x29\x0A\x09\x09\x09\x09\x63\x6F\x6D\x56\x66\x73\x2E\x69\x6E\x69\x74\x28\x29\x0A\x0A\x09\x09\x09\x09\x6C\x65\x74\x20\x65\x64\x69\x74\x6F\x72\x4F\x70\x74\x73\x20\x3D\x20\x7B\x0A\x09\x09\x09\x09\x09\x69\x64\x3A\x20\x22\x65\x64\x69\x74\x6F\x72\x22\x2C\x0A\x09\x09\x09\x09\x09\x69\x73\x5F\x65\x64\x69\x74\x61\x62\x6C\x65\x3A\x20\x74\x72\x75\x65\x2C\x0A\x09\x09\x09\x09\x09\x4F\x70\x65\x6E\x46\x69\x6C\x65\x3A\x20\x65\x64\x69\x74\x6F\x72\x4F\x70\x65\x6E\x46\x69\x6C\x65\x2C\x0A\x09\x09\x09\x09\x09\x4F\x6E\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x3A\x20\x65\x64\x69\x74\x6F\x72\x4F\x6E\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x2C\x0A\x09\x09\x09\x09\x09\x4F\x6E\x53\x61\x76\x65\x3A\x20\x65\x64\x69\x74\x6F\x72\x4F\x6E\x53\x61\x76\x65\x2C\x0A\x09\x09\x09\x09\x7D\x0A\x09\x09\x09\x09\x63\x6F\x6D\x45\x64\x69\x74\x6F\x72\x20\x3D\x20\x6E\x65\x77\x20\x45\x64\x69\x74\x6F\x72\x28\x65\x64\x69\x74\x6F\x72\x4F\x70\x74\x73\x29\x0A\x0A\x09\x09\x09\x09\x63\x6F\x6D\x53\x74\x64\x6F\x75\x74\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\x22\x73\x74\x64\x6F\x75\x74\x22\x29\x0A\x09\x09\x09\x09\x63\x6F\x6D\x53\x74\x64\x65\x72\x72\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\x22\x73\x74\x64\x65\x72\x72\x22\x29\x0A\x09\x09\x09\x7D\x0A\x0A\x09\x09\x09\x2F\x2F\x20\x4C\x69\x73\x74\x4E\x6F\x64\x65\x73\x20\x66\x65\x74\x63\x68\x20\x74\x68\x65\x20\x6C\x69\x73\x74\x20\x6F\x66\x20\x66\x69\x6C\x65\x73\x20\x66\x72\x6F\x6D\x20\x72\x65\x6D\x6F\x74\x65\x20\x73\x65\x72\x76\x65\x72\x2E\x0A\x09\x09\x09\x61\x73\x79\x6E\x63\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x4C\x69\x73\x74\x4E\x6F\x64\x65\x73\x28\x29\x20\x7B\x0A\x09\x09\x09\x09\x6C\x65\x74\x20\x68\x74\x74\x70\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x22\x2F\x61\x77\x77\x61\x6E\x2F\x61\x70\x69\x2F\x66\x73\x22\x29\x0A\x09\x09\x09\x09\x69\x66\x20\x28\x68\x74\x74\x70\x52\x65\x73\x2E\x73\x74\x61\x74\x75\x73\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x09\x09\x09\x09\x09\x63\x6F\x6E\x73\x6F\x6C\x65\x2E\x65\x72\x72\x6F\x72\x28\x22\x4C\x69\x73\x74\x4E\x6F\x64\x65\x73\x3A\x22\x2C\x20\x68\x74\x74\x70\x52\x65\x73\x29\x0A\x09\x09\x09\x09\x09\x72\x65\x74\x75\x72\x6E\x20\x6E\x69\x6C\x0A\x09\x09\x09\x09\x7D\x0A\x09\x09\x09\x09\x6C\x65\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\x0A\x09\x09\x09\x09\x69\x66\x20\x28\x72\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x09\x09\x09\x09\x09\x63\x6F\x6E\x73\x6F\x6C\x65\x2E\x65\x72\x72\x6F\x72\x28\x72\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x0A\x09\x09\x09\x09\x09\x72\x65\x74\x75\x72\x6E\x20\x6E\x69\x6C\x0A\x09\x09\x09\x09\x7D\x0A\x09\x09\x09\x09\x72\x65\x74\x75\x72\x6E\x20\x72\x65\x73\x2E\x64\x61\x74\x61\x0A\x09\x09\x09\x7D\x0A\x0A\x09\x09\x09\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x4F\x6E\x43\x6C\x69\x63\x6B\x4E\x6F\x64\x65\x28\x70\x61\x74\x68\x2C\x20\x69\x73\x5F\x64\x69\x72\x29\x20\x7B\x0A\x09\x09\x09\x09\x69\x66\x20\x28\x21\x69\x73\x5F\x64\x69\x72\x29\x20\x7B\x0A\x09\x09\x09\x09\x09\x63\x6F\x6D\x45\x64\x69\x74\x6F\x72\x2E\x4F\x70\x65\x6E\x46\x69\x6C\x65\x28\x70\x61\x74\x68\x29\x0A\x09\x09\x09\x09\x7D\x0A\x09\x09\x09\x09\x6C\x65\x74\x20\x68\x61\x73\x68\x20\x3D\x20\x22\x23\x22\x20\x2B\x20\x70\x61\x74\x68\x0A\x09\x09\x09\x09\x69\x66\x20\x28\x68\x69\x73\x74\x6F\x72\x79\x2E\x70\x75\x73\x68\x53\x74\x61\x74\x65\x29\x20\x7B\x0A\x09\x09\x09\x09\x09\x68\x69\x73\x74\x6F\x72\x79\x2E\x70\x75\x73\x68\x53\x74\x61\x74\x65\x28\x6E\x75\x6C\x6C\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x68\x61\x73\x68\x29\x0A\x09\x09\x09\x09\x7D\x20\x65\x6C\x73\x65\x20\x7B\x0A\x09\x09\x09\x09\x09\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\x0A\x09\x09\x09\x09\x7D\x0A\x09\x09\x09\x7D\x0A\x0A\x09\x09\x09\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x53\x61\x76\x65\x28\x29\x20\x7B\x0A\x09\x09\x09\x09\x69\x66\x20\x28\x72\x65\x71\x75\x65\x73\x74\x2E\x73\x63\x72\x69\x70\x74\x20\x3D\x3D\x20\x22\x22\x29\x20\x7B\x0A\x09\x09\x09\x09\x09\x72\x65\x74\x75\x72\x6E\x0A\x09\x09\x09\x09\x7D\x0A\x09\x09\x09\x09\x6C\x65\x74\x20\x63\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x63\x6F\x6D\x45\x64\x69\x74\x6F\x72\x2E\x47\x65\x74\x43\x6F\x6E\x74\x65\x6E\x74\x28\x29\x0A\x09\x09\x09\x09\x6C\x65\x74\x20\x6C\x20\x3D\x20\x63\x6F\x6E\x74\x65\x6E\x74\x2E\x6C\x65\x6E\x67\x74\x68\x0A\x09\x09\x09\x09\x69\x66\x20\x28\x6C\x20\x3E\x20\x30\x20\x26\x26\x20\x63\x6F\x6E\x74\x65\x6E\x74\x5B\x6C\x20\x2D\x20\x31\x5D\x20\x21\x3D\x20\x22\x5C\x6E\x22\x29\x20\x7B\x0A\x09\x09\x09\x09\x09\x63\x6F\x6E\x74\x65\x6E\x74\x20\x2B\x3D\x20\x22\x5C\x6E\x22\x0A\x09\x09\x09\x09\x7D\x0A\x09\x09\x09\x09\x72\x65\x71\x75\x65\x73\x74\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x63\x6F\x6E\x74\x65\x6E\x74\x0A\x09\x09\x09\x09\x64\x6F\x53\x61\x76\x65\x46\x69\x6C\x65\x28\x72\x65\x71\x75\x65\x73\x74\x2E\x73\x63\x72\x69\x70\x74\x2C\x20\x72\x65\x71\x75\x65\x73\x74\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x29\x0A\x09\x09\x09\x7D\x0A\x0A\x09\x09\x09\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x65\x64\x69\x74\x6F\x72\x4F\x6E\x53\x61\x76\x65\x28\x63\x6F\x6E\x74\x65\x6E\x74\x29\x20\x7B\x0A\x09\x09\x09\x09\x64\x6F\x53\x61\x76\x65\x46\x69\x6C\x65\x28\x72\x65\x71\x75\x65\x73\x74\x2E\x73\x63\x72\x69\x70\x74\x2C\x20\x63\x6F\x6E\x74\x65\x6E\x74\x29\x0A\x09\x09\x09\x7D\x0A\x0A\x09\x09\x09\x61\x73\x79\x6E\x63\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x65\x64\x69\x74\x6F\x72\x4F\x70\x65\x6E\x46\x69\x6C\x65\x28\x70\x61\x74\x68\x29\x20\x7B\x0A\x09\x09\x09\x09\x6C\x65\x74\x20\x68\x74\x74\x70\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x22\x2F\x61\x77\x77\x61\x6E\x2F\x61\x70\x69\x2F\x66\x73\x3F\x70\x61\x74\x68\x3D\x22\x20\x2B\x20\x70\x61\x74\x68\x29\x0A\x09\x09\x09\x09\x69\x66\x20\x28\x68\x74\x74\x70\x52\x65\x73\x2E\x73\x74\x61\x74\x75\x73\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x09\x09\x09\x09\x09\x63\x6F\x6E\x73\x6F\x6C\x65\x2E\x65\x72\x72\x6F\x72\x28\x22\x4F\x6E\x43\x6C\x69\x63\x6B\x4E\x6F\x64\x65\x3A\x22\x2C\x20\x68\x74\x74\x70\x52\x65\x73\x29\x0A\x09\x09\x09\x09\x09\x72\x65\x74\x75\x72\x6E\x20\x6E\x75\x6C\x6C\x0A\x09\x09\x09\x09\x7D\x0A\x09\x09\x09\x09\x6C\x65\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\x0A\x09\x09\x09\x09\x69\x66\x20\x28\x72\x65\x73\x2E\x63\x6F\x64\x65\x20\x3D\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x09\x09\x09\x09\x09\x63\x6F\x6D\x46\x69\x6C\x65\x50\x61\x74\x68\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x70\x61\x74\x68\x0A\x09\x09\x09\x09\x09\x72\x65\x71\x75\x65\x73\x74\x2E\x73\x63\x72\x69\x70\x74\x20\x3D\x20\x70\x61\x74\x68\x0A\x09\x09\x09\x09\x7D\x0A\x09\x09\x09\x09\x72\x65\x74\x75\x72\x6E\x20\x72\x65\x73\x0A\x09\x09\x09\x7D\x0A\x0A\x09\x09\x09\x61\x73\x79\x6E\x63\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x64\x6F\x53\x61\x76\x65\x46\x69\x6C\x65\x28\x70\x61\x74\x68\x2C\x20\x63\x6F\x6E\x74\x65\x6E\x74\x29\x20\x7B\x0A\x09\x09\x09\x09\x6C\x65\x74\x20\x72\x65\x71\x20\x3D\x20\x7B\x0A\x09\x09\x09\x09\x09\x70\x61\x74\x68\x3A\x20\x70\x61\x74\x68\x2C\x0A\x09\x09\x09\x09\x09\x63\x6F\x6E\x74\x65\x6E\x74\x3A\x20\x62\x74\x6F\x61\x28\x63\x6F\x6E\x74\x65\x6E\x74\x29\x2C\x0A\x09\x09\x09\x09\x7D\x0A\x09\x09\x09\x09\x6C\x65\x74\x20\x68\x74\x74\x70\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x22\x2F\x61\x77\x77\x61\x6E\x2F\x61\x70\x69\x2F\x66\x73\x22\x2C\x20\x7B\x0A\x09\x09\x09\x09\x09\x6D\x65\x74\x68\x6F\x64\x3A\x20\x22\x50\x55\x54\x22\x2C\x0A\x09\x09\x09\x09\x09\x68\x65\x61\x64\x65\x72\x73\x3A\x20\x7B\x0A\x09\x09\x09\x09\x09\x09\x41\x63\x63\x65\x70\x74\x3A\x20\x22\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E\x22\x2C\x0A\x09\x09\x09\x09\x09\x09\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\x09\x09\x09\x09\x09\x7D\x2C\x0A\x09\x09\x09\x09\x09\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\x09\x09\x09\x09\x7D\x29\x0A\x09\x09\x09\x09\x69\x66\x20\x28\x68\x74\x74\x70\x52\x65\x73\x2E\x73\x74\x61\x74\x75\x73\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x09\x09\x09\x09\x09\x63\x6F\x6E\x73\x6F\x6C\x65\x2E\x65\x72\x72\x6F\x72\x28\x22\x64\x6F\x53\x61\x76\x65\x46\x69\x6C\x65\x3A\x22\x2C\x20\x68\x74\x74\x70\x52\x65\x73\x29\x0A\x09\x09\x09\x09\x09\x72\x65\x74\x75\x72\x6E\x20\x6E\x75\x6C\x6C\x0A\x09\x09\x09\x09\x7D\x0A\x09\x09\x09\x09\x6C\x65\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\x0A\x09\x09\x09\x09\x69\x66\x20\x28\x72\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x09\x09\x09\x09\x09\x63\x6F\x6E\x73\x6F\x6C\x65\x2E\x65\x72\x72\x6F\x72\x28\x22\x64\x6F\x53\x61\x76\x65\x46\x69\x6C\x65\x3A\x22\x2C\x20\x68\x74\x74\x70\x52\x65\x73\x29\x0A\x09\x09\x09\x09\x09\x72\x65\x74\x75\x72\x6E\x20\x6E\x75\x6C\x6C\x0A\x09\x09\x09\x09\x7D\x0A\x09\x09\x09\x09\x72\x65\x74\x75\x72\x6E\x20\x72\x65\x73\x0A\x09\x09\x09\x7D\x0A\x0A\x09\x09\x09\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x65\x64\x69\x74\x6F\x72\x4F\x6E\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x28\x62\x65\x67\x69\x6E\x2C\x20\x65\x6E\x64\x29\x20\x7B\x0A\x09\x09\x09\x09\x6C\x65\x74\x20\x73\x74\x6D\x74\x73\x20\x3D\x20\x63\x6F\x6D\x45\x64\x69\x74\x6F\x72\x2E\x6C\x69\x6E\x65\x73\x2E\x73\x6C\x69\x63\x65\x28\x62\x65\x67\x69\x6E\x2C\x20\x65\x6E\x64\x20\x2B\x20\x31\x29\x0A\x09\x09\x09\x09\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x73\x74\x6D\x74\x20\x6F\x66\x20\x73\x74\x6D\x74\x73\x29\x20\x7B\x0A\x09\x09\x09\x09\x09\x63\x6F\x6E\x73\x6F\x6C\x65\x2E\x6C\x6F\x67\x28\x22\x73\x74\x6D\x74\x3A\x22\x2C\x20\x73\x74\x6D\x74\x2E\x78\x2C\x20\x73\x74\x6D\x74\x2E\x74\x65\x78\x74\x29\x0A\x09\x09\x09\x09\x7D\x0A\x09\x09\x09\x7D\x0A\x0A\x09\x09\x09\x2F\x2F\x20\x65\x78\x65\x63\x4C\x6F\x63\x61\x6C\x20\x72\x65\x71\x75\x65\x73\x74\x20\x74\x6F\x20\x65\x78\x65\x63\x75\x74\x65\x20\x74\x68\x65\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x20\x73\x63\x72\x69\x70\x74\x20\x6F\x6E\x20\x6C\x6F\x63\x61\x6C\x20\x73\x79\x73\x74\x65\x6D\x2E\x0A\x09\x09\x09\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x65\x78\x65\x63\x4C\x6F\x63\x61\x6C\x28\x29\x20\x7B\x0A\x09\x09\x09\x09\x69\x66\x20\x28\x72\x65\x71\x75\x65\x73\x74\x2E\x73\x63\x72\x69\x70\x74\x20\x3D\x3D\x20\x22\x22\x29\x20\x7B\x0A\x09\x09\x09\x09\x09\x63\x6F\x6E\x73\x6F\x6C\x65\x2E\x6C\x6F\x67\x28\x22\x6E\x6F\x20\x66\x69\x6C\x65\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x22\x29\x0A\x09\x09\x09\x09\x09\x72\x65\x74\x75\x72\x6E\x0A\x09\x09\x09\x09\x7D\x0A\x09\x09\x09\x09\x68\x74\x74\x70\x41\x70\x69\x45\x78\x65\x63\x75\x74\x65\x28\x22\x6C\x6F\x63\x61\x6C\x22\x29\x0A\x09\x09\x09\x7D\x0A\x0A\x09\x09\x09\x2F\x2F\x20\x65\x78\x65\x63\x52\x65\x6D\x6F\x74\x65\x20\x72\x65\x71\x75\x65\x73\x74\x20\x74\x6F\x20\x65\x78\x65\x63\x75\x74\x65\x20\x74\x68\x65\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x20\x73\x63\x72\x69\x70\x74\x20\x6F\x6E\x20\x72\x65\x6D\x6F\x74\x65\x20\x73\x79\x73\x74\x65\x6D\x2E\x0A\x09\x09\x09\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x65\x78\x65\x63\x52\x65\x6D\x6F\x74\x65\x28\x29\x20\x7B\x0A\x09\x09\x09\x09\x69\x66\x20\x28\x72\x65\x71\x75\x65\x73\x74\x2E\x73\x63\x72\x69\x70\x74\x20\x3D\x3D\x20\x22\x22\x29\x20\x7B\x0A\x09\x09\x09\x09\x09\x63\x6F\x6E\x73\x6F\x6C\x65\x2E\x6C\x6F\x67\x28\x22\x6E\x6F\x20\x66\x69\x6C\x65\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x22\x29\x0A\x09\x09\x09\x09\x09\x72\x65\x74\x75\x72\x6E\x0A\x09\x09\x09\x09\x7D\x0A\x09\x09\x09\x09\x68\x74\x74\x70\x41\x70\x69\x45\x78\x65\x63\x75\x74\x65\x28\x22\x72\x65\x6D\x6F\x74\x65\x22\x29\x0A\x09\x09\x09\x7D\x0A\x0A\x09\x09\x09\x61\x73\x79\x6E\x63\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x68\x74\x74\x70\x41\x70\x69\x45\x78\x65\x63\x75\x74\x65\x28\x6D\x6F\x64\x65\x29\x20\x7B\x0A\x09\x09\x09\x09\x6C\x65\x74\x20\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x52\x61\x6E\x67\x65\x20\x3D\x20\x63\x6F\x6D\x45\x64\x69\x74\x6F\x72\x2E\x47\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x52\x61\x6E\x67\x65\x28\x29\x0A\x09\x09\x09\x09\x69\x66\x20\x28\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x52\x61\x6E\x67\x65\x2E\x42\x65\x67\x69\x6E\x41\x74\x20\x3C\x20\x30\x29\x20\x7B\x0A\x09\x09\x09\x09\x09\x72\x65\x71\x75\x65\x73\x74\x2E\x62\x65\x67\x69\x6E\x5F\x61\x74\x20\x3D\x20\x30\x0A\x09\x09\x09\x09\x7D\x20\x65\x6C\x73\x65\x20\x7B\x0A\x09\x09\x09\x09\x09\x72\x65\x71\x75\x65\x73\x74\x2E\x62\x65\x67\x69\x6E\x5F\x61\x74\x20\x3D\x20\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x52\x61\x6E\x67\x65\x2E\x42\x65\x67\x69\x6E\x41\x74\x20\x2B\x20\x31\x0A\x09\x09\x09\x09\x7D\x0A\x09\x09\x09\x09\x69\x66\x20\x28\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x52\x61\x6E\x67\x65\x2E\x45\x6E\x64\x41\x74\x20\x3C\x20\x30\x29\x20\x7B\x0A\x09\x09\x09\x09\x09\x72\x65\x71\x75\x65\x73\x74\x2E\x65\x6E\x64\x5F\x61\x74\x20\x3D\x20\x30\x0A\x09\x09\x09\x09\x7D\x20\x65\x6C\x73\x65\x20\x7B\x0A\x09\x09\x09\x09\x09\x72\x65\x71\x75\x65\x73\x74\x2E\x65\x6E\x64\x5F\x61\x74\x20\x3D\x20\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x52\x61\x6E\x67\x65\x2E\x45\x6E\x64\x41\x74\x20\x2B\x20\x31\x0A\x09\x09\x09\x09\x7D\x0A\x0A\x09\x09\x09\x09\x72\x65\x71\x75\x65\x73\x74\x2E\x6D\x6F\x64\x65\x20\x3D\x20\x6D\x6F\x64\x65\x0A\x09\x09\x09\x09\x72\x65\x71\x75\x65\x73\x74\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x62\x74\x6F\x61\x28\x63\x6F\x6D\x45\x64\x69\x74\x6F\x72\x2E\x47\x65\x74\x43\x6F\x6E\x74\x65\x6E\x74\x28\x29\x29\x0A\x0A\x09\x09\x09\x09\x6C\x65\x74\x20\x68\x74\x74\x70\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x22\x2F\x61\x77\x77\x61\x6E\x2F\x61\x70\x69\x2F\x65\x78\x65\x63\x75\x74\x65\x22\x2C\x20\x7B\x0A\x09\x09\x09\x09\x09\x6D\x65\x74\x68\x6F\x64\x3A\x20\x22\x50\x4F\x53\x54\x22\x2C\x0A\x09\x09\x09\x09\x09\x68\x65\x61\x64\x65\x72\x73\x3A\x20\x7B\x0A\x09\x09\x09\x09\x09\x09\x41\x63\x63\x65\x70\x74\x3A\x20\x22\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E\x22\x2C\x0A\x09\x09\x09\x09\x09\x09\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\x09\x09\x09\x09\x09\x7D\x2C\x0A\x09\x09\x09\x09\x09\x62\x6F\x64\x79\x3A\x20\x4A\x53\x4F\x4E\x2E\x73\x74\x72\x69\x6E\x67\x69\x66\x79\x28\x72\x65\x71\x75\x65\x73\x74\x29\x2C\x0A\x09\x09\x09\x09\x7D\x29\x0A\x0A\x09\x09\x09\x09\x6C\x65\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\x0A\x09\x09\x09\x09\x69\x66\x20\x28\x72\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x09\x09\x09\x09\x09\x63\x6F\x6E\x73\x6F\x6C\x65\x2E\x65\x72\x72\x6F\x72\x28\x72\x65\x73\x29\x0A\x09\x09\x09\x09\x09\x72\x65\x74\x75\x72\x6E\x0A\x09\x09\x09\x09\x7D\x0A\x0A\x09\x09\x09\x09\x63\x6F\x6D\x53\x74\x64\x6F\x75\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x61\x74\x6F\x62\x28\x72\x65\x73\x2E\x64\x61\x74\x61\x2E\x73\x74\x64\x6F\x75\x74\x29\x0A\x09\x09\x09\x09\x69\x66\x20\x28\x72\x65\x73\x2E\x64\x61\x74\x61\x2E\x73\x74\x64\x65\x72\x72\x29\x20\x7B\x0A\x09\x09\x09\x09\x09\x63\x6F\x6D\x53\x74\x64\x65\x72\x72\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x61\x74\x6F\x62\x28\x72\x65\x73\x2E\x64\x61\x74\x61\x2E\x73\x74\x64\x65\x72\x72\x29\x0A\x09\x09\x09\x09\x7D\x0A\x09\x09\x09\x7D\x0A\x09\x09\x3C\x2F\x73\x63\x72\x69\x70\x74\x3E\x0A\x09\x3C\x2F\x62\x6F\x64\x79\x3E\x0A\x3C\x2F\x68\x74\x6D\x6C\x3E\x0A"),
		V:               []byte("\x3C\x21\x44\x4F\x43\x54\x59\x50\x45\x20\x68\x74\x6D\x6C\x3E\x0A\x3C\x68\x74\x6D\x6C\x3E\x0A\x09\x3C\x68\x65\x61\x64\x3E\x0A\x09\x09\x3C\x6D\x65\x74\x61\x20\x63\x68\x61\x72\x73\x65\x74\x3D\x22\x55\x54\x46\x2D\x38\x22\x20\x2F\x3E\x0A\x09\x09\x3C\x74\x69\x74\x6C\x65\x3E\x61\x77\x77\x61\x6E\x3C\x2F\x74\x69\x74\x6C\x65\x3E\x0A\x09\x09\x3C\x73\x74\x79\x6C\x65\x3E\x0A\x09\x09\x09\x2E\x61\x77\x77\x61\x6E\x20\x7B\x0A\x09\x09\x09\x09\x64\x69\x73\x70\x6C\x61\x79\x3A\x20\x66\x6C\x65\x78\x3B\x0A\x09\x09\x09\x7D\x0A\x09\x09\x09\x2E\x61\x77\x77\x61\x6E\x5F\x6E\x61\x76\x5F\x6C\x65\x66\x74\x20\x7B\x0A\x09\x09\x09\x09\x66\x6F\x6E\x74\x2D\x66\x61\x6D\x69\x6C\x79\x3A\x20\x6D\x6F\x6E\x6F\x73\x70\x61\x63\x65\x3B\x0A\x09\x09\x09\x09\x68\x65\x69\x67\x68\x74\x3A\x20\x39\x38\x76\x68\x3B\x0A\x09\x09\x09\x09\x6F\x76\x65\x72\x66\x6C\x6F\x77\x2D\x79\x3A\x20\x61\x75\x74\x6F\x3B\x0A\x09\x09\x09\x09\x77\x69\x64\x74\x68\x3A\x20\x33\x30\x30\x70\x78\x3B\x0A\x09\x09\x09\x7D\x0A\x09\x09\x09\x2E\x61\x77\x77\x61\x6E\x5F\x63\x6F\x6E\x74\x65\x6E\x74\x20\x7B\x0A\x09\x09\x09\x09\x6D\x61\x72\x67\x69\x6E\x3A\x20\x30\x20\x31\x30\x70\x78\x3B\x0A\x09\x09\x09\x09\x77\x69\x64\x74\x68\x3A\x20\x63\x61\x6C\x63\x28\x31\x30\x30\x25\x20\x2D\x20\x33\x33\x30\x70\x78\x29\x3B\x0A\x09\x09\x09\x7D\x0A\x09\x09\x09\x23\x76\x66\x73\x5F\x70\x61\x74\x68\x20\x7B\x0A\x09\x09\x09\x09\x6D\x61\x72\x67\x69\x6E\x2D\x72\x69\x67\x68\x74\x3A\x20\x31\x30\x70\x78\x3B\x0A\x09\x09\x09\x7D\x0A\x09\x09\x09\x23\x65\x64\x69\x74\x6F\x72\x20\x7B\x0A\x09\x09\x09\x09\x77\x69\x64\x74\x68\x3A\x20\x31\x30\x30\x25\x3B\x0A\x09\x09\x09\x09\x68\x65\x69\x67\x68\x74\x3A\x20\x36\x30\x30\x70\x78\x3B\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\x7D\x0A\x09\x09\x09\x2E\x65\x64\x69\x74\x6F\x72\x5F\x61\x63\x74\x69\x6F\x6E\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\x70\x61\x64\x64\x69\x6E\x67\x3A\x20\x31\x30\x70\x78\x3B\x0A\x09\x09\x09\x7D\x0A\x09\x09\x09\x2E\x65\x78\x65\x63\x75\x74\x65\x5F\x61\x63\x74\x69\x6F\x6E\x20\x7B\x0A\x09\x09\x09\x09\x6D\x61\x72\x67\x69\x6E\x3A\x20\x31\x30\x70\x78\x20\x30\x3B\x0A\x09\x09\x09\x7D\x0A\x09\x09\x09\x2E\x62\x6F\x78\x68\x65\x61\x64\x65\x72\x20\x7B\x0A\x09\x09\x09\x09\x70\x61\x64\x64\x69\x6E\x67\x3A\x20\x31\x30\x70\x78\x3B\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\x7D\x0A\x09\x09\x09\x23\x73\x74\x64\x6F\x75\x74\x2C\x0A\x09\x09\x09\x23\x73\x74\x64\x65\x72\x72\x20\x7B\x0A\x09\x09\x09\x09\x66\x6F\x6E\x74\x2D\x66\x61\x6D\x69\x6C\x79\x3A\x20\x6D\x6F\x6E\x6F\x73\x70\x61\x63\x65\x3B\x0A\x09\x09\x09\x09\x6D\x69\x6E\x2D\x68\x65\x69\x67\x68\x74\x3A\x20\x32\x30\x30\x70\x78\x3B\x0A\x09\x09\x09\x09\x6F\x76\x65\x72\x66\x6C\x6F\x77\x3A\x20\x61\x75\x74\x6F\x3B\x0A\x09\x09\x09\x09\x70\x61\x64\x64\x69\x6E\x67\x3A\x20\x31\x30\x70\x78\x3B\x0A\x09\x09\x09\x09\x77\x68\x69\x74\x65\x2D\x73\x70\x61\x63\x65\x3A\x20\x70\x72\x65\x3B\x0A\x09\x09\x09\x7D\x0A\x09\x09\x09\x23\x73\x74\x64\x6F\x75\x74\x20\x7B\x0A\x09\x09\x09\x09\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x2D\x63\x6F\x6C\x6F\x72\x3A\x20\x6C\x61\x76\x65\x6E\x64\x65\x72\x3B\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\x7D\x0A\x09\x09\x09\x23\x73\x74\x64\x65\x72\x72\x20\x7B\x0A\x09\x09\x09\x09\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x2D\x63\x6F\x6C\x6F\x72\x3A\x20\x6C\x61\x76\x65\x6E\x64\x65\x72\x62\x6C\x75\x73\x68\x3B\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\x7D\x0A\x09\x09\x09\x40\x6D\x65\x64\x69\x61\x20\x28\x6D\x61\x78\x2D\x77\x69\x64\x74\x68\x3A\x20\x39\x30\x30\x70\x78\x29\x20\x7B\x0A\x09\x09\x09\x09\x2E\x61\x77\x77\x61\x6E\x20\x7B\x0A\x09\x09\x09\x09\x09\x64\x69\x73\x70\x6C\x61\x79\x3A\x20\x62\x6C\x6F\x63\x6B\x3B\x0A\x09\x09\x09\x09\x7D\x0A\x09\x09\x09\x09\x2E\x61\x77\x77\x61\x6E\x5F\x6E\x61\x76\x5F\x6C\x65\x66\x74\x20\x7B\x0A\x09\x09\x09\x09\x09\x68\x65\x69\x67\x68\x74\x3A\x20\x34\x30\x30\x70\x78\x3B\x0A\x09\x09\x09\x09\x09\x77\x69\x64\x74\x68\x3A\x20\x63\x61\x6C\x63\x28\x31\x30\x30\x25\x20\x2D\x20\x31\x30\x70\x78\x29\x3B\x0A\x09\x09\x09\x09\x7D\x0A\x09\x09\x09\x09\x2E\x61\x77\x77\x61\x6E\x5F\x63\x6F\x6E\x74\x65\x6E\x74\x20\x7B\x0A\x09\x09\x09\x09\x09\x6D\x61\x72\x67\x69\x6E\x3A\x20\x30\x3B\x0A\x09\x09\x09\x09\x09\x77\x69\x64\x74\x68\x3A\x20\x63\x61\x6C\x63\x28\x31\x30\x30\x25\x20\x2D\x20\x31\x30\x70\x78\x29\x3B\x0A\x09\x09\x09\x09\x7D\x0A\x09\x09\x09\x09\x2E\x65\x64\x69\x74\x6F\x72\x5F\x61\x63\x74\x69\x6F\x6E\x20\x7B\x0A\x09\x09\x09\x09\x09\x6D\x61\x72\x67\x69\x6E\x3A\x20\x31\x30\x70\x78\x20\x30\x3B\x0A\x09\x09\x09\x09\x7D\x0A\x09\x09\x09\x09\x23\x65\x64\x69\x74\x6F\x72\x20\x7B\x0A\x09\x09\x09\x09\x09\x68\x65\x69\x67\x68\x74\x3A\x20\x34\x30\x30\x70\x78\x3B\x0A\x09\x09\x09\x09\x7D\x0A\x09\x09\x09\x7D\x0A\x09\x09\x3C\x2F\x73\x74\x79\x6C\x65\x3E\x0A\x09\x09\x3C\x73\x63\x72\x69\x70\x74\x20\x64\x61\x74\x61\x2D\x6D\x61\x69\x6E\x3D\x22\x6D\x61\x69\x6E\x22\x20\x73\x72\x63\x3D\x22\x2F\x72\x65\x71\x75\x69\x72\x65\x2E\x6A\x73\x22\x3E\x3C\x2F\x73\x63\x72\x69\x70\x74\x3E\x0A\x09\x3C\x2F\x68\x65\x61\x64\x3E\x0A\x09\x3C\x62\x6F\x64\x79\x3E\x0A\x09\x3C\x2F\x62\x6F\x64\x79\x3E\x0A\x3C\x2F\x68\x74\x6D\x6C\x3E\x0A"),
	}
	node.SetMode(420)
	node.SetName("index.html")
	node.SetSize(6460)
	node.SetSize(1357)
	return node
}

func generate__www_main_js() *memfs.Node {
	node := &memfs.Node{
		SysPath:         "_www/main.js",
		Path:            "/main.js",
		ContentType:     "text/javascript; charset=utf-8",
		ContentEncoding: "",
		V:               []byte("\x76\x61\x72\x20\x5F\x5F\x61\x77\x61\x69\x74\x65\x72\x20\x3D\x20\x28\x74\x68\x69\x73\x20\x26\x26\x20\x74\x68\x69\x73\x2E\x5F\x5F\x61\x77\x61\x69\x74\x65\x72\x29\x20\x7C\x7C\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x74\x68\x69\x73\x41\x72\x67\x2C\x20\x5F\x61\x72\x67\x75\x6D\x65\x6E\x74\x73\x2C\x20\x50\x2C\x20\x67\x65\x6E\x65\x72\x61\x74\x6F\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x61\x64\x6F\x70\x74\x28\x76\x61\x6C\x75\x65\x29\x20\x7B\x20\x72\x65\x74\x75\x72\x6E\x20\x76\x61\x6C\x75\x65\x20\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66\x20\x50\x20\x3F\x20\x76\x61\x6C\x75\x65\x20\x3A\x20\x6E\x65\x77\x20\x50\x28\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x72\x65\x73\x6F\x6C\x76\x65\x29\x20\x7B\x20\x72\x65\x73\x6F\x6C\x76\x65\x28\x76\x61\x6C\x75\x65\x29\x3B\x20\x7D\x29\x3B\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6E\x65\x77\x20\x28\x50\x20\x7C\x7C\x20\x28\x50\x20\x3D\x20\x50\x72\x6F\x6D\x69\x73\x65\x29\x29\x28\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x72\x65\x73\x6F\x6C\x76\x65\x2C\x20\x72\x65\x6A\x65\x63\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x66\x75\x6C\x66\x69\x6C\x6C\x65\x64\x28\x76\x61\x6C\x75\x65\x29\x20\x7B\x20\x74\x72\x79\x20\x7B\x20\x73\x74\x65\x70\x28\x67\x65\x6E\x65\x72\x61\x74\x6F\x72\x2E\x6E\x65\x78\x74\x28\x76\x61\x6C\x75\x65\x29\x29\x3B\x20\x7D\x20\x63\x61\x74\x63\x68\x20\x28\x65\x29\x20\x7B\x20\x72\x65\x6A\x65\x63\x74\x28\x65\x29\x3B\x20\x7D\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x72\x65\x6A\x65\x63\x74\x65\x64\x28\x76\x61\x6C\x75\x65\x29\x20\x7B\x20\x74\x72\x79\x20\x7B\x20\x73\x74\x65\x70\x28\x67\x65\x6E\x65\x72\x61\x74\x6F\x72\x5B\x22\x74\x68\x72\x6F\x77\x22\x5D\x28\x76\x61\x6C\x75\x65\x29\x29\x3B\x20\x7D\x20\x63\x61\x74\x63\x68\x20\x28\x65\x29\x20\x7B\x20\x72\x65\x6A\x65\x63\x74\x28\x65\x29\x3B\x20\x7D\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x74\x65\x70\x28\x72\x65\x73\x75\x6C\x74\x29\x20\x7B\x20\x72\x65\x73\x75\x6C\x74\x2E\x64\x6F\x6E\x65\x20\x3F\x20\x72\x65\x73\x6F\x6C\x76\x65\x28\x72\x65\x73\x75\x6C\x74\x2E\x76\x61\x6C\x75\x65\x29\x20\x3A\x20\x61\x64\x6F\x70\x74\x28\x72\x65\x73\x75\x6C\x74\x2E\x76\x61\x6C\x75\x65\x29\x2E\x74\x68\x65\x6E\x28\x66\x75\x6C\x66\x69\x6C\x6C\x65\x64\x2C\x20\x72\x65\x6A\x65\x63\x74\x65\x64\x29\x3B\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x65\x70\x28\x28\x67\x65\x6E\x65\x72\x61\x74\x6F\x72\x20\x3D\x20\x67\x65\x6E\x65\x72\x61\x74\x6F\x72\x2E\x61\x70\x70\x6C\x79\x28\x74\x68\x69\x73\x41\x72\x67\x2C\x20\x5F\x61\x72\x67\x75\x6D\x65\x6E\x74\x73\x20\x7C\x7C\x20\x5B\x5D\x29\x29\x2E\x6E\x65\x78\x74\x28\x29\x29\x3B\x0A\x20\x20\x20\x20\x7D\x29\x3B\x0A\x7D\x3B\x0A\x76\x61\x72\x20\x5F\x5F\x67\x65\x6E\x65\x72\x61\x74\x6F\x72\x20\x3D\x20\x28\x74\x68\x69\x73\x20\x26\x26\x20\x74\x68\x69\x73\x2E\x5F\x5F\x67\x65\x6E\x65\x72\x61\x74\x6F\x72\x29\x20\x7C\x7C\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x74\x68\x69\x73\x41\x72\x67\x2C\x20\x62\x6F\x64\x79\x29\x20\x7B\x0A\x20\x20\x20\x20\x76\x61\x72\x20\x5F\x20\x3D\x20\x7B\x20\x6C\x61\x62\x65\x6C\x3A\x20\x30\x2C\x20\x73\x65\x6E\x74\x3A\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x28\x29\x20\x7B\x20\x69\x66\x20\x28\x74\x5B\x30\x5D\x20\x26\x20\x31\x29\x20\x74\x68\x72\x6F\x77\x20\x74\x5B\x31\x5D\x3B\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x5B\x31\x5D\x3B\x20\x7D\x2C\x20\x74\x72\x79\x73\x3A\x20\x5B\x5D\x2C\x20\x6F\x70\x73\x3A\x20\x5B\x5D\x20\x7D\x2C\x20\x66\x2C\x20\x79\x2C\x20\x74\x2C\x20\x67\x3B\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x67\x20\x3D\x20\x7B\x20\x6E\x65\x78\x74\x3A\x20\x76\x65\x72\x62\x28\x30\x29\x2C\x20\x22\x74\x68\x72\x6F\x77\x22\x3A\x20\x76\x65\x72\x62\x28\x31\x29\x2C\x20\x22\x72\x65\x74\x75\x72\x6E\x22\x3A\x20\x76\x65\x72\x62\x28\x32\x29\x20\x7D\x2C\x20\x74\x79\x70\x65\x6F\x66\x20\x53\x79\x6D\x62\x6F\x6C\x20\x3D\x3D\x3D\x20\x22\x66\x75\x6E\x63\x74\x69\x6F\x6E\x22\x20\x26\x26\x20\x28\x67\x5B\x53\x79\x6D\x62\x6F\x6C\x2E\x69\x74\x65\x72\x61\x74\x6F\x72\x5D\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x28\x29\x20\x7B\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x68\x69\x73\x3B\x20\x7D\x29\x2C\x20\x67\x3B\x0A\x20\x20\x20\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x76\x65\x72\x62\x28\x6E\x29\x20\x7B\x20\x72\x65\x74\x75\x72\x6E\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x76\x29\x20\x7B\x20\x72\x65\x74\x75\x72\x6E\x20\x73\x74\x65\x70\x28\x5B\x6E\x2C\x20\x76\x5D\x29\x3B\x20\x7D\x3B\x20\x7D\x0A\x20\x20\x20\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x74\x65\x70\x28\x6F\x70\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x66\x29\x20\x74\x68\x72\x6F\x77\x20\x6E\x65\x77\x20\x54\x79\x70\x65\x45\x72\x72\x6F\x72\x28\x22\x47\x65\x6E\x65\x72\x61\x74\x6F\x72\x20\x69\x73\x20\x61\x6C\x72\x65\x61\x64\x79\x20\x65\x78\x65\x63\x75\x74\x69\x6E\x67\x2E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6C\x65\x20\x28\x5F\x29\x20\x74\x72\x79\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x66\x20\x3D\x20\x31\x2C\x20\x79\x20\x26\x26\x20\x28\x74\x20\x3D\x20\x6F\x70\x5B\x30\x5D\x20\x26\x20\x32\x20\x3F\x20\x79\x5B\x22\x72\x65\x74\x75\x72\x6E\x22\x5D\x20\x3A\x20\x6F\x70\x5B\x30\x5D\x20\x3F\x20\x79\x5B\x22\x74\x68\x72\x6F\x77\x22\x5D\x20\x7C\x7C\x20\x28\x28\x74\x20\x3D\x20\x79\x5B\x22\x72\x65\x74\x75\x72\x6E\x22\x5D\x29\x20\x26\x26\x20\x74\x2E\x63\x61\x6C\x6C\x28\x79\x29\x2C\x20\x30\x29\x20\x3A\x20\x79\x2E\x6E\x65\x78\x74\x29\x20\x26\x26\x20\x21\x28\x74\x20\x3D\x20\x74\x2E\x63\x61\x6C\x6C\x28\x79\x2C\x20\x6F\x70\x5B\x31\x5D\x29\x29\x2E\x64\x6F\x6E\x65\x29\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x79\x20\x3D\x20\x30\x2C\x20\x74\x29\x20\x6F\x70\x20\x3D\x20\x5B\x6F\x70\x5B\x30\x5D\x20\x26\x20\x32\x2C\x20\x74\x2E\x76\x61\x6C\x75\x65\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x6F\x70\x5B\x30\x5D\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x30\x3A\x20\x63\x61\x73\x65\x20\x31\x3A\x20\x74\x20\x3D\x20\x6F\x70\x3B\x20\x62\x72\x65\x61\x6B\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x34\x3A\x20\x5F\x2E\x6C\x61\x62\x65\x6C\x2B\x2B\x3B\x20\x72\x65\x74\x75\x72\x6E\x20\x7B\x20\x76\x61\x6C\x75\x65\x3A\x20\x6F\x70\x5B\x31\x5D\x2C\x20\x64\x6F\x6E\x65\x3A\x20\x66\x61\x6C\x73\x65\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x35\x3A\x20\x5F\x2E\x6C\x61\x62\x65\x6C\x2B\x2B\x3B\x20\x79\x20\x3D\x20\x6F\x70\x5B\x31\x5D\x3B\x20\x6F\x70\x20\x3D\x20\x5B\x30\x5D\x3B\x20\x63\x6F\x6E\x74\x69\x6E\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x37\x3A\x20\x6F\x70\x20\x3D\x20\x5F\x2E\x6F\x70\x73\x2E\x70\x6F\x70\x28\x29\x3B\x20\x5F\x2E\x74\x72\x79\x73\x2E\x70\x6F\x70\x28\x29\x3B\x20\x63\x6F\x6E\x74\x69\x6E\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\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\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x28\x74\x20\x3D\x20\x5F\x2E\x74\x72\x79\x73\x2C\x20\x74\x20\x3D\x20\x74\x2E\x6C\x65\x6E\x67\x74\x68\x20\x3E\x20\x30\x20\x26\x26\x20\x74\x5B\x74\x2E\x6C\x65\x6E\x67\x74\x68\x20\x2D\x20\x31\x5D\x29\x20\x26\x26\x20\x28\x6F\x70\x5B\x30\x5D\x20\x3D\x3D\x3D\x20\x36\x20\x7C\x7C\x20\x6F\x70\x5B\x30\x5D\x20\x3D\x3D\x3D\x20\x32\x29\x29\x20\x7B\x20\x5F\x20\x3D\x20\x30\x3B\x20\x63\x6F\x6E\x74\x69\x6E\x75\x65\x3B\x20\x7D\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\x6F\x70\x5B\x30\x5D\x20\x3D\x3D\x3D\x20\x33\x20\x26\x26\x20\x28\x21\x74\x20\x7C\x7C\x20\x28\x6F\x70\x5B\x31\x5D\x20\x3E\x20\x74\x5B\x30\x5D\x20\x26\x26\x20\x6F\x70\x5B\x31\x5D\x20\x3C\x20\x74\x5B\x33\x5D\x29\x29\x29\x20\x7B\x20\x5F\x2E\x6C\x61\x62\x65\x6C\x20\x3D\x20\x6F\x70\x5B\x31\x5D\x3B\x20\x62\x72\x65\x61\x6B\x3B\x20\x7D\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\x6F\x70\x5B\x30\x5D\x20\x3D\x3D\x3D\x20\x36\x20\x26\x26\x20\x5F\x2E\x6C\x61\x62\x65\x6C\x20\x3C\x20\x74\x5B\x31\x5D\x29\x20\x7B\x20\x5F\x2E\x6C\x61\x62\x65\x6C\x20\x3D\x20\x74\x5B\x31\x5D\x3B\x20\x74\x20\x3D\x20\x6F\x70\x3B\x20\x62\x72\x65\x61\x6B\x3B\x20\x7D\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\x20\x26\x26\x20\x5F\x2E\x6C\x61\x62\x65\x6C\x20\x3C\x20\x74\x5B\x32\x5D\x29\x20\x7B\x20\x5F\x2E\x6C\x61\x62\x65\x6C\x20\x3D\x20\x74\x5B\x32\x5D\x3B\x20\x5F\x2E\x6F\x70\x73\x2E\x70\x75\x73\x68\x28\x6F\x70\x29\x3B\x20\x62\x72\x65\x61\x6B\x3B\x20\x7D\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\x5B\x32\x5D\x29\x20\x5F\x2E\x6F\x70\x73\x2E\x70\x6F\x70\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x5F\x2E\x74\x72\x79\x73\x2E\x70\x6F\x70\x28\x29\x3B\x20\x63\x6F\x6E\x74\x69\x6E\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\x6F\x70\x20\x3D\x20\x62\x6F\x64\x79\x2E\x63\x61\x6C\x6C\x28\x74\x68\x69\x73\x41\x72\x67\x2C\x20\x5F\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x20\x63\x61\x74\x63\x68\x20\x28\x65\x29\x20\x7B\x20\x6F\x70\x20\x3D\x20\x5B\x36\x2C\x20\x65\x5D\x3B\x20\x79\x20\x3D\x20\x30\x3B\x20\x7D\x20\x66\x69\x6E\x61\x6C\x6C\x79\x20\x7B\x20\x66\x20\x3D\x20\x74\x20\x3D\x20\x30\x3B\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x70\x5B\x30\x5D\x20\x26\x20\x35\x29\x20\x74\x68\x72\x6F\x77\x20\x6F\x70\x5B\x31\x5D\x3B\x20\x72\x65\x74\x75\x72\x6E\x20\x7B\x20\x76\x61\x6C\x75\x65\x3A\x20\x6F\x70\x5B\x30\x5D\x20\x3F\x20\x6F\x70\x5B\x31\x5D\x20\x3A\x20\x76\x6F\x69\x64\x20\x30\x2C\x20\x64\x6F\x6E\x65\x3A\x20\x74\x72\x75\x65\x20\x7D\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x3B\x0A\x64\x65\x66\x69\x6E\x65\x28\x22\x77\x75\x69\x2F\x72\x65\x73\x70\x6F\x6E\x73\x65\x22\x2C\x20\x5B\x22\x72\x65\x71\x75\x69\x72\x65\x22\x2C\x20\x22\x65\x78\x70\x6F\x72\x74\x73\x22\x5D\x2C\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x72\x65\x71\x75\x69\x72\x65\x2C\x20\x65\x78\x70\x6F\x72\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x22\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74\x22\x3B\x0A\x20\x20\x20\x20\x4F\x62\x6A\x65\x63\x74\x2E\x64\x65\x66\x69\x6E\x65\x50\x72\x6F\x70\x65\x72\x74\x79\x28\x65\x78\x70\x6F\x72\x74\x73\x2C\x20\x22\x5F\x5F\x65\x73\x4D\x6F\x64\x75\x6C\x65\x22\x2C\x20\x7B\x20\x76\x61\x6C\x75\x65\x3A\x20\x74\x72\x75\x65\x20\x7D\x29\x3B\x0A\x7D\x29\x3B\x0A\x2F\x2F\x20\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x20\x32\x30\x32\x31\x2C\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\x2E\x20\x41\x6C\x6C\x20\x72\x69\x67\x68\x74\x73\x20\x72\x65\x73\x65\x72\x76\x65\x64\x2E\x0A\x2F\x2F\x20\x55\x73\x65\x20\x6F\x66\x20\x74\x68\x69\x73\x20\x73\x6F\x75\x72\x63\x65\x20\x63\x6F\x64\x65\x20\x69\x73\x20\x67\x6F\x76\x65\x72\x6E\x65\x64\x20\x62\x79\x20\x61\x20\x42\x53\x44\x2D\x73\x74\x79\x6C\x65\x20\x6C\x69\x63\x65\x6E\x73\x65\x20\x74\x68\x61\x74\x20\x63\x61\x6E\x20\x62\x65\x0A\x2F\x2F\x20\x66\x6F\x75\x6E\x64\x20\x69\x6E\x20\x74\x68\x65\x20\x4C\x49\x43\x45\x4E\x53\x45\x20\x66\x69\x6C\x65\x2E\x0A\x64\x65\x66\x69\x6E\x65\x28\x22\x77\x75\x69\x2F\x76\x66\x73\x2F\x76\x66\x73\x22\x2C\x20\x5B\x22\x72\x65\x71\x75\x69\x72\x65\x22\x2C\x20\x22\x65\x78\x70\x6F\x72\x74\x73\x22\x5D\x2C\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x72\x65\x71\x75\x69\x72\x65\x2C\x20\x65\x78\x70\x6F\x72\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x22\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74\x22\x3B\x0A\x20\x20\x20\x20\x4F\x62\x6A\x65\x63\x74\x2E\x64\x65\x66\x69\x6E\x65\x50\x72\x6F\x70\x65\x72\x74\x79\x28\x65\x78\x70\x6F\x72\x74\x73\x2C\x20\x22\x5F\x5F\x65\x73\x4D\x6F\x64\x75\x6C\x65\x22\x2C\x20\x7B\x20\x76\x61\x6C\x75\x65\x3A\x20\x74\x72\x75\x65\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x65\x78\x70\x6F\x72\x74\x73\x2E\x57\x75\x69\x56\x66\x73\x4E\x6F\x64\x65\x20\x3D\x20\x65\x78\x70\x6F\x72\x74\x73\x2E\x57\x75\x69\x56\x66\x73\x20\x3D\x20\x76\x6F\x69\x64\x20\x30\x3B\x0A\x20\x20\x20\x20\x76\x61\x72\x20\x57\x75\x69\x56\x66\x73\x20\x3D\x20\x2F\x2A\x2A\x20\x40\x63\x6C\x61\x73\x73\x20\x2A\x2F\x20\x28\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x57\x75\x69\x56\x66\x73\x28\x6F\x70\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x5F\x74\x68\x69\x73\x20\x3D\x20\x74\x68\x69\x73\x3B\x0A\x20\x20\x20\x20\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\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\x20\x20\x20\x20\x76\x61\x72\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\x6F\x70\x74\x73\x2E\x69\x64\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x6F\x6C\x65\x2E\x65\x72\x72\x6F\x72\x28\x22\x57\x75\x69\x56\x66\x73\x3A\x20\x65\x6C\x65\x6D\x65\x6E\x74\x20\x69\x64\x22\x2C\x20\x6F\x70\x74\x73\x2E\x69\x64\x2C\x20\x22\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64\x22\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\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x20\x3D\x20\x65\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x5F\x70\x61\x74\x68\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x56\x66\x73\x50\x61\x74\x68\x28\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x70\x61\x74\x68\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x5F\x74\x68\x69\x73\x2E\x4F\x70\x65\x6E\x44\x69\x72\x28\x70\x61\x74\x68\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\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\x63\x6F\x6D\x5F\x70\x61\x74\x68\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x5F\x6C\x69\x73\x74\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x56\x66\x73\x4C\x69\x73\x74\x28\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x6E\x6F\x64\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x5F\x74\x68\x69\x73\x2E\x4F\x70\x65\x6E\x4E\x6F\x64\x65\x28\x6E\x6F\x64\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\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\x63\x6F\x6D\x5F\x6C\x69\x73\x74\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x2F\x2F\x20\x4F\x70\x65\x6E\x4E\x6F\x64\x65\x20\x69\x73\x20\x61\x20\x68\x61\x6E\x64\x6C\x65\x72\x20\x74\x68\x61\x74\x20\x77\x69\x6C\x6C\x20\x62\x65\x20\x63\x61\x6C\x6C\x65\x64\x20\x77\x68\x65\x6E\x20\x61\x20\x6E\x6F\x64\x65\x20\x69\x73\x20\x63\x6C\x69\x63\x6B\x65\x64\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x2F\x2F\x20\x69\x6E\x73\x69\x64\x65\x20\x74\x68\x65\x20\x57\x75\x69\x56\x66\x73\x4C\x69\x73\x74\x2E\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x56\x66\x73\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x4F\x70\x65\x6E\x4E\x6F\x64\x65\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x6E\x6F\x64\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6E\x6F\x64\x65\x2E\x69\x73\x5F\x64\x69\x72\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\x4F\x70\x65\x6E\x44\x69\x72\x28\x6E\x6F\x64\x65\x2E\x70\x61\x74\x68\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\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\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4F\x70\x65\x6E\x4E\x6F\x64\x65\x28\x6E\x6F\x64\x65\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\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x2F\x2F\x20\x4F\x70\x65\x6E\x44\x69\x72\x20\x69\x73\x20\x61\x20\x68\x61\x6E\x64\x6C\x65\x72\x20\x74\x68\x61\x74\x20\x77\x69\x6C\x6C\x20\x62\x65\x20\x63\x61\x6C\x6C\x65\x64\x20\x77\x68\x65\x6E\x20\x61\x20\x70\x61\x74\x68\x20\x69\x73\x20\x63\x6C\x69\x63\x6B\x65\x64\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x2F\x2F\x20\x69\x6E\x73\x69\x64\x65\x20\x74\x68\x65\x20\x57\x75\x69\x56\x66\x73\x50\x61\x74\x68\x2E\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x56\x66\x73\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x4F\x70\x65\x6E\x44\x69\x72\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x70\x61\x74\x68\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x5F\x5F\x61\x77\x61\x69\x74\x65\x72\x28\x74\x68\x69\x73\x2C\x20\x76\x6F\x69\x64\x20\x30\x2C\x20\x76\x6F\x69\x64\x20\x30\x2C\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x65\x73\x2C\x20\x6E\x6F\x64\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x5F\x5F\x67\x65\x6E\x65\x72\x61\x74\x6F\x72\x28\x74\x68\x69\x73\x2C\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x5F\x61\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x5F\x61\x2E\x6C\x61\x62\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\x63\x61\x73\x65\x20\x30\x3A\x20\x72\x65\x74\x75\x72\x6E\x20\x5B\x34\x20\x2F\x2A\x79\x69\x65\x6C\x64\x2A\x2F\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4F\x70\x65\x6E\x28\x70\x61\x74\x68\x2C\x20\x74\x72\x75\x65\x29\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\x63\x61\x73\x65\x20\x31\x3A\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\x72\x65\x73\x20\x3D\x20\x5F\x61\x2E\x73\x65\x6E\x74\x28\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\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\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x5B\x32\x20\x2F\x2A\x72\x65\x74\x75\x72\x6E\x2A\x2F\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\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\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x6F\x64\x65\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x56\x66\x73\x4E\x6F\x64\x65\x28\x72\x65\x73\x2E\x64\x61\x74\x61\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\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x5F\x70\x61\x74\x68\x2E\x4F\x70\x65\x6E\x28\x6E\x6F\x64\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\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x5F\x6C\x69\x73\x74\x2E\x4F\x70\x65\x6E\x28\x6E\x6F\x64\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\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x5B\x32\x20\x2F\x2A\x72\x65\x74\x75\x72\x6E\x2A\x2F\x5D\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\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x57\x75\x69\x56\x66\x73\x3B\x0A\x20\x20\x20\x20\x7D\x28\x29\x29\x3B\x0A\x20\x20\x20\x20\x65\x78\x70\x6F\x72\x74\x73\x2E\x57\x75\x69\x56\x66\x73\x20\x3D\x20\x57\x75\x69\x56\x66\x73\x3B\x0A\x20\x20\x20\x20\x76\x61\x72\x20\x57\x75\x69\x56\x66\x73\x4E\x6F\x64\x65\x20\x3D\x20\x2F\x2A\x2A\x20\x40\x63\x6C\x61\x73\x73\x20\x2A\x2F\x20\x28\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x57\x75\x69\x56\x66\x73\x4E\x6F\x64\x65\x28\x6F\x70\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x70\x61\x74\x68\x20\x3D\x20\x6F\x70\x74\x73\x2E\x70\x61\x74\x68\x20\x7C\x7C\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6E\x61\x6D\x65\x20\x3D\x20\x6F\x70\x74\x73\x2E\x6E\x61\x6D\x65\x20\x7C\x7C\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x5F\x74\x79\x70\x65\x20\x3D\x20\x6F\x70\x74\x73\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x5F\x74\x79\x70\x65\x20\x7C\x7C\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6D\x6F\x64\x5F\x74\x69\x6D\x65\x20\x3D\x20\x6F\x70\x74\x73\x2E\x6D\x6F\x64\x5F\x74\x69\x6D\x65\x20\x7C\x7C\x20\x30\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x73\x69\x7A\x65\x20\x3D\x20\x6F\x70\x74\x73\x2E\x73\x69\x7A\x65\x20\x7C\x7C\x20\x30\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6D\x6F\x64\x65\x20\x3D\x20\x6F\x70\x74\x73\x2E\x6D\x6F\x64\x65\x20\x7C\x7C\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x69\x73\x5F\x64\x69\x72\x20\x3D\x20\x6F\x70\x74\x73\x2E\x69\x73\x5F\x64\x69\x72\x20\x7C\x7C\x20\x66\x61\x6C\x73\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x68\x69\x6C\x64\x73\x20\x3D\x20\x5B\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x70\x74\x73\x2E\x63\x68\x69\x6C\x64\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x76\x61\x72\x20\x5F\x69\x20\x3D\x20\x30\x2C\x20\x5F\x61\x20\x3D\x20\x6F\x70\x74\x73\x2E\x63\x68\x69\x6C\x64\x73\x3B\x20\x5F\x69\x20\x3C\x20\x5F\x61\x2E\x6C\x65\x6E\x67\x74\x68\x3B\x20\x5F\x69\x2B\x2B\x29\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\x72\x20\x63\x20\x3D\x20\x5F\x61\x5B\x5F\x69\x5D\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\x63\x68\x69\x6C\x64\x73\x2E\x70\x75\x73\x68\x28\x6E\x65\x77\x20\x57\x75\x69\x56\x66\x73\x4E\x6F\x64\x65\x28\x63\x29\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\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\x57\x75\x69\x56\x66\x73\x4E\x6F\x64\x65\x3B\x0A\x20\x20\x20\x20\x7D\x28\x29\x29\x3B\x0A\x20\x20\x20\x20\x65\x78\x70\x6F\x72\x74\x73\x2E\x57\x75\x69\x56\x66\x73\x4E\x6F\x64\x65\x20\x3D\x20\x57\x75\x69\x56\x66\x73\x4E\x6F\x64\x65\x3B\x0A\x20\x20\x20\x20\x76\x61\x72\x20\x57\x75\x69\x56\x66\x73\x4C\x69\x73\x74\x20\x3D\x20\x2F\x2A\x2A\x20\x40\x63\x6C\x61\x73\x73\x20\x2A\x2F\x20\x28\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x57\x75\x69\x56\x66\x73\x4C\x69\x73\x74\x28\x6F\x6E\x43\x6C\x69\x63\x6B\x29\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\x20\x3D\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x3B\x0A\x20\x20\x20\x20\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\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x73\x74\x79\x6C\x65\x2E\x62\x6F\x72\x64\x65\x72\x57\x69\x64\x74\x68\x20\x3D\x20\x22\x31\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x73\x74\x79\x6C\x65\x2E\x62\x6F\x72\x64\x65\x72\x53\x74\x79\x6C\x65\x20\x3D\x20\x22\x73\x6F\x6C\x69\x64\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x73\x74\x79\x6C\x65\x2E\x62\x6F\x72\x64\x65\x72\x43\x6F\x6C\x6F\x72\x20\x3D\x20\x22\x73\x69\x6C\x76\x65\x72\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x56\x66\x73\x4C\x69\x73\x74\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x4F\x70\x65\x6E\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x6E\x6F\x64\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x5F\x74\x68\x69\x73\x20\x3D\x20\x74\x68\x69\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\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\x76\x61\x72\x20\x5F\x6C\x6F\x6F\x70\x5F\x31\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x63\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\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\x20\x20\x20\x20\x65\x6C\x2E\x73\x74\x79\x6C\x65\x2E\x70\x61\x64\x64\x69\x6E\x67\x20\x3D\x20\x22\x31\x65\x6D\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\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\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x63\x2E\x6E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x2E\x69\x73\x5F\x64\x69\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\x65\x6C\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\x63\x6F\x72\x6E\x73\x69\x6C\x6B\x22\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\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x65\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\x5F\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x28\x63\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\x65\x6C\x2E\x6F\x6E\x6D\x6F\x75\x73\x65\x6F\x75\x74\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x65\x76\x65\x6E\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\x69\x66\x20\x28\x63\x2E\x69\x73\x5F\x64\x69\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\x20\x20\x20\x20\x65\x6C\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\x63\x6F\x72\x6E\x73\x69\x6C\x6B\x22\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\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\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\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\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\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x2E\x6F\x6E\x6D\x6F\x75\x73\x65\x6F\x76\x65\x72\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x65\x76\x65\x6E\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\x65\x6C\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\x61\x6C\x69\x63\x65\x62\x6C\x75\x65\x22\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\x5F\x31\x2E\x65\x6C\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\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x68\x69\x73\x5F\x31\x20\x3D\x20\x74\x68\x69\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x76\x61\x72\x20\x5F\x69\x20\x3D\x20\x30\x2C\x20\x5F\x61\x20\x3D\x20\x6E\x6F\x64\x65\x2E\x63\x68\x69\x6C\x64\x73\x3B\x20\x5F\x69\x20\x3C\x20\x5F\x61\x2E\x6C\x65\x6E\x67\x74\x68\x3B\x20\x5F\x69\x2B\x2B\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x20\x3D\x20\x5F\x61\x5B\x5F\x69\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x5F\x6C\x6F\x6F\x70\x5F\x31\x28\x63\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\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x57\x75\x69\x56\x66\x73\x4C\x69\x73\x74\x3B\x0A\x20\x20\x20\x20\x7D\x28\x29\x29\x3B\x0A\x20\x20\x20\x20\x76\x61\x72\x20\x57\x75\x69\x56\x66\x73\x50\x61\x74\x68\x20\x3D\x20\x2F\x2A\x2A\x20\x40\x63\x6C\x61\x73\x73\x20\x2A\x2F\x20\x28\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x57\x75\x69\x56\x66\x73\x50\x61\x74\x68\x28\x6F\x6E\x43\x6C\x69\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\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\x74\x68\x69\x73\x2E\x65\x6C\x2E\x73\x74\x79\x6C\x65\x2E\x62\x6F\x72\x64\x65\x72\x57\x69\x64\x74\x68\x20\x3D\x20\x22\x31\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x73\x74\x79\x6C\x65\x2E\x62\x6F\x72\x64\x65\x72\x53\x74\x79\x6C\x65\x20\x3D\x20\x22\x73\x6F\x6C\x69\x64\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x73\x74\x79\x6C\x65\x2E\x62\x6F\x72\x64\x65\x72\x43\x6F\x6C\x6F\x72\x20\x3D\x20\x22\x73\x69\x6C\x76\x65\x72\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x72\x75\x6D\x62\x73\x20\x3D\x20\x5B\x5D\x3B\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\x20\x3D\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x56\x66\x73\x50\x61\x74\x68\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x4F\x70\x65\x6E\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x6E\x6F\x64\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x5F\x74\x68\x69\x73\x20\x3D\x20\x74\x68\x69\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\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\x63\x72\x75\x6D\x62\x73\x20\x3D\x20\x5B\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x70\x61\x74\x68\x73\x20\x3D\x20\x5B\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6E\x6F\x64\x65\x2E\x70\x61\x74\x68\x20\x3D\x3D\x20\x22\x2F\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x74\x68\x73\x2E\x70\x75\x73\x68\x28\x6E\x6F\x64\x65\x2E\x70\x61\x74\x68\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\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\x70\x61\x74\x68\x73\x20\x3D\x20\x6E\x6F\x64\x65\x2E\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\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x5F\x6C\x6F\x6F\x70\x5F\x32\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x78\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x66\x75\x6C\x6C\x5F\x70\x61\x74\x68\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x70\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x78\x20\x3D\x3D\x20\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x20\x3D\x20\x22\x2F\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x75\x6C\x6C\x5F\x70\x61\x74\x68\x20\x3D\x20\x22\x2F\x22\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\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x20\x3D\x20\x70\x61\x74\x68\x73\x5B\x78\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x75\x6C\x6C\x5F\x70\x61\x74\x68\x20\x3D\x20\x70\x61\x74\x68\x73\x2E\x73\x6C\x69\x63\x65\x28\x30\x2C\x20\x78\x20\x2B\x20\x31\x29\x2E\x6A\x6F\x69\x6E\x28\x22\x2F\x22\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\x76\x61\x72\x20\x63\x72\x75\x6D\x62\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\x20\x20\x20\x20\x63\x72\x75\x6D\x62\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x69\x6E\x6C\x69\x6E\x65\x2D\x62\x6C\x6F\x63\x6B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x72\x75\x6D\x62\x2E\x73\x74\x79\x6C\x65\x2E\x70\x61\x64\x64\x69\x6E\x67\x20\x3D\x20\x22\x31\x65\x6D\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x72\x75\x6D\x62\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\x20\x20\x20\x20\x20\x20\x20\x20\x63\x72\x75\x6D\x62\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x70\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x72\x75\x6D\x62\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x65\x76\x65\x6E\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\x5F\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x28\x66\x75\x6C\x6C\x5F\x70\x61\x74\x68\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\x63\x72\x75\x6D\x62\x2E\x6F\x6E\x6D\x6F\x75\x73\x65\x6F\x75\x74\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x65\x76\x65\x6E\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\x63\x72\x75\x6D\x62\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\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\x63\x72\x75\x6D\x62\x2E\x6F\x6E\x6D\x6F\x75\x73\x65\x6F\x76\x65\x72\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x65\x76\x65\x6E\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\x63\x72\x75\x6D\x62\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\x61\x6C\x69\x63\x65\x62\x6C\x75\x65\x22\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\x5F\x32\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x63\x72\x75\x6D\x62\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\x76\x61\x72\x20\x74\x68\x69\x73\x5F\x32\x20\x3D\x20\x74\x68\x69\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x76\x61\x72\x20\x78\x20\x3D\x20\x30\x3B\x20\x78\x20\x3C\x20\x70\x61\x74\x68\x73\x2E\x6C\x65\x6E\x67\x74\x68\x3B\x20\x78\x2B\x2B\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x5F\x6C\x6F\x6F\x70\x5F\x32\x28\x78\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\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x57\x75\x69\x56\x66\x73\x50\x61\x74\x68\x3B\x0A\x20\x20\x20\x20\x7D\x28\x29\x29\x3B\x0A\x7D\x29\x3B\x0A\x2F\x2F\x20\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x20\x32\x30\x32\x31\x2C\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\x2E\x20\x41\x6C\x6C\x20\x72\x69\x67\x68\x74\x73\x20\x72\x65\x73\x65\x72\x76\x65\x64\x2E\x0A\x2F\x2F\x20\x55\x73\x65\x20\x6F\x66\x20\x74\x68\x69\x73\x20\x73\x6F\x75\x72\x63\x65\x20\x63\x6F\x64\x65\x20\x69\x73\x20\x67\x6F\x76\x65\x72\x6E\x65\x64\x20\x62\x79\x20\x61\x20\x42\x53\x44\x2D\x73\x74\x79\x6C\x65\x20\x6C\x69\x63\x65\x6E\x73\x65\x20\x74\x68\x61\x74\x20\x63\x61\x6E\x20\x62\x65\x0A\x2F\x2F\x20\x66\x6F\x75\x6E\x64\x20\x69\x6E\x20\x74\x68\x65\x20\x4C\x49\x43\x45\x4E\x53\x45\x20\x66\x69\x6C\x65\x2E\x0A\x64\x65\x66\x69\x6E\x65\x28\x22\x77\x75\x69\x2F\x65\x64\x69\x74\x6F\x72\x2F\x65\x64\x69\x74\x6F\x72\x22\x2C\x20\x5B\x22\x72\x65\x71\x75\x69\x72\x65\x22\x2C\x20\x22\x65\x78\x70\x6F\x72\x74\x73\x22\x5D\x2C\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x72\x65\x71\x75\x69\x72\x65\x2C\x20\x65\x78\x70\x6F\x72\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x22\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74\x22\x3B\x0A\x20\x20\x20\x20\x4F\x62\x6A\x65\x63\x74\x2E\x64\x65\x66\x69\x6E\x65\x50\x72\x6F\x70\x65\x72\x74\x79\x28\x65\x78\x70\x6F\x72\x74\x73\x2C\x20\x22\x5F\x5F\x65\x73\x4D\x6F\x64\x75\x6C\x65\x22\x2C\x20\x7B\x20\x76\x61\x6C\x75\x65\x3A\x20\x74\x72\x75\x65\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x65\x78\x70\x6F\x72\x74\x73\x2E\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x20\x3D\x20\x76\x6F\x69\x64\x20\x30\x3B\x0A\x20\x20\x20\x20\x76\x61\x72\x20\x57\x55\x49\x5F\x45\x44\x49\x54\x4F\x52\x5F\x43\x4C\x41\x53\x53\x20\x3D\x20\x22\x77\x75\x69\x5F\x65\x64\x69\x74\x6F\x72\x22\x3B\x0A\x20\x20\x20\x20\x76\x61\x72\x20\x57\x55\x49\x5F\x45\x44\x49\x54\x4F\x52\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x49\x4E\x45\x20\x3D\x20\x22\x77\x75\x69\x5F\x65\x64\x69\x74\x6F\x72\x5F\x6C\x69\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x76\x61\x72\x20\x57\x55\x49\x5F\x45\x44\x49\x54\x4F\x52\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x49\x4E\x45\x5F\x4E\x55\x4D\x42\x45\x52\x20\x3D\x20\x22\x77\x75\x69\x5F\x65\x64\x69\x74\x6F\x72\x5F\x6C\x69\x6E\x65\x5F\x6E\x75\x6D\x62\x65\x72\x22\x3B\x0A\x20\x20\x20\x20\x76\x61\x72\x20\x57\x55\x49\x5F\x45\x44\x49\x54\x4F\x52\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x49\x4E\x45\x5F\x54\x45\x58\x54\x20\x3D\x20\x22\x77\x75\x69\x5F\x65\x64\x69\x74\x6F\x72\x5F\x6C\x69\x6E\x65\x5F\x74\x65\x78\x74\x22\x3B\x0A\x20\x20\x20\x20\x76\x61\x72\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x20\x3D\x20\x2F\x2A\x2A\x20\x40\x63\x6C\x61\x73\x73\x20\x2A\x2F\x20\x28\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x28\x6F\x70\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x5F\x74\x68\x69\x73\x20\x3D\x20\x74\x68\x69\x73\x3B\x0A\x20\x20\x20\x20\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\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x20\x3D\x20\x5B\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x76\x65\x5F\x66\x69\x6C\x65\x20\x3D\x20\x6E\x75\x6C\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x76\x65\x5F\x74\x65\x78\x74\x20\x3D\x20\x6E\x75\x6C\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x5F\x62\x65\x67\x69\x6E\x20\x3D\x20\x2D\x31\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x5F\x65\x6E\x64\x20\x3D\x20\x2D\x31\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x61\x77\x5F\x6C\x69\x6E\x65\x73\x20\x3D\x20\x5B\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x69\x73\x5F\x6B\x65\x79\x5F\x63\x6F\x6E\x74\x72\x6F\x6C\x20\x3D\x20\x66\x61\x6C\x73\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x75\x6E\x72\x65\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x55\x6E\x64\x6F\x52\x65\x64\x6F\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x69\x64\x20\x3D\x20\x6F\x70\x74\x73\x2E\x69\x64\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x69\x73\x5F\x65\x64\x69\x74\x61\x62\x6C\x65\x20\x3D\x20\x6F\x70\x74\x73\x2E\x69\x73\x5F\x65\x64\x69\x74\x61\x62\x6C\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\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\x6F\x70\x74\x73\x2E\x69\x64\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x6F\x6C\x65\x2E\x65\x72\x72\x6F\x72\x28\x22\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x3A\x20\x65\x6C\x65\x6D\x65\x6E\x74\x20\x49\x44\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64\x3A\x22\x2C\x20\x6F\x70\x74\x73\x2E\x69\x64\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\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x20\x3D\x20\x65\x6C\x3B\x0A\x20\x20\x20\x20\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\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\x45\x44\x49\x54\x4F\x52\x5F\x43\x4C\x41\x53\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x65\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x73\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x6F\x6C\x65\x2E\x65\x72\x72\x6F\x72\x28\x22\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x3A\x20\x63\x61\x6E\x6E\x6F\x74\x20\x67\x65\x74\x20\x77\x69\x6E\x64\x6F\x77\x20\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x22\x2C\x20\x6F\x70\x74\x73\x2E\x69\x64\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\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x73\x65\x6C\x20\x3D\x20\x73\x65\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x52\x61\x6E\x67\x65\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x6F\x6E\x6B\x65\x79\x75\x70\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x65\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x5F\x74\x68\x69\x73\x2E\x6F\x6E\x4B\x65\x79\x75\x70\x44\x6F\x63\x75\x6D\x65\x6E\x74\x28\x5F\x74\x68\x69\x73\x2C\x20\x65\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\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x2F\x2F\x20\x47\x65\x74\x43\x6F\x6E\x74\x65\x6E\x74\x20\x72\x65\x74\x75\x72\x6E\x20\x63\x6F\x6E\x74\x65\x6E\x74\x20\x6F\x66\x20\x66\x69\x6C\x65\x2E\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x47\x65\x74\x43\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x76\x61\x72\x20\x78\x20\x3D\x20\x30\x3B\x20\x78\x20\x3C\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x2E\x6C\x65\x6E\x67\x74\x68\x3B\x20\x78\x2B\x2B\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x78\x20\x3E\x20\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x74\x65\x6E\x74\x20\x2B\x3D\x20\x22\x5C\x6E\x22\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\x63\x6F\x6E\x74\x65\x6E\x74\x20\x2B\x3D\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x5B\x78\x5D\x2E\x65\x6C\x5F\x74\x65\x78\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\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\x72\x65\x74\x75\x72\x6E\x20\x63\x6F\x6E\x74\x65\x6E\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x47\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x52\x61\x6E\x67\x65\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x65\x67\x69\x6E\x5F\x61\x74\x3A\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x5F\x62\x65\x67\x69\x6E\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6E\x64\x5F\x61\x74\x3A\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x5F\x65\x6E\x64\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\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x4F\x6E\x43\x6C\x69\x63\x6B\x54\x65\x78\x74\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x74\x65\x78\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x65\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x65\x6C\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\x73\x65\x6C\x20\x3D\x20\x73\x65\x6C\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\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x4F\x6E\x4B\x65\x79\x75\x70\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x78\x2C\x20\x74\x65\x78\x74\x2C\x20\x65\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x65\x78\x74\x5F\x62\x65\x66\x6F\x72\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x65\x78\x74\x5F\x61\x66\x74\x65\x72\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6F\x66\x66\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x65\x76\x2E\x6B\x65\x79\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x41\x6C\x74\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x41\x72\x72\x6F\x77\x44\x6F\x77\x6E\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x41\x72\x72\x6F\x77\x4C\x65\x66\x74\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x41\x72\x72\x6F\x77\x52\x69\x67\x68\x74\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x41\x72\x72\x6F\x77\x55\x70\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x43\x61\x70\x73\x4C\x6F\x63\x6B\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x43\x6F\x6E\x74\x65\x78\x74\x4D\x65\x6E\x75\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x44\x65\x6C\x65\x74\x65\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x45\x6E\x64\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x48\x6F\x6D\x65\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x49\x6E\x73\x65\x72\x74\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x4F\x53\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x50\x61\x67\x65\x44\x6F\x77\x6E\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x50\x61\x67\x65\x55\x70\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x50\x61\x75\x73\x65\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x50\x72\x69\x6E\x74\x53\x63\x72\x65\x65\x6E\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x53\x63\x72\x6F\x6C\x6C\x4C\x6F\x63\x6B\x22\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x53\x68\x69\x66\x74\x22\x3A\x0A\x20\x20\x20\x20\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\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x42\x61\x63\x6B\x73\x70\x61\x63\x65\x22\x3A\x0A\x20\x20\x20\x20\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\x20\x20\x20\x20\x74\x65\x78\x74\x5F\x62\x65\x66\x6F\x72\x65\x20\x3D\x20\x74\x68\x69\x73\x2E\x72\x61\x77\x5F\x6C\x69\x6E\x65\x73\x5B\x78\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x6C\x5F\x74\x65\x78\x74\x5F\x63\x75\x72\x72\x20\x3D\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x5B\x78\x5D\x2E\x65\x6C\x5F\x74\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x65\x78\x74\x5F\x61\x66\x74\x65\x72\x20\x3D\x20\x65\x6C\x5F\x74\x65\x78\x74\x5F\x63\x75\x72\x72\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x66\x66\x20\x3D\x20\x74\x68\x69\x73\x2E\x73\x65\x6C\x2E\x66\x6F\x63\x75\x73\x4F\x66\x66\x73\x65\x74\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\x6F\x66\x66\x20\x3E\x20\x30\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\x75\x6E\x72\x65\x2E\x44\x6F\x55\x70\x64\x61\x74\x65\x28\x78\x2C\x20\x74\x65\x78\x74\x5F\x62\x65\x66\x6F\x72\x65\x2C\x20\x74\x65\x78\x74\x5F\x61\x66\x74\x65\x72\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\x72\x61\x77\x5F\x6C\x69\x6E\x65\x73\x5B\x78\x5D\x20\x3D\x20\x74\x65\x78\x74\x5F\x61\x66\x74\x65\x72\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\x73\x65\x74\x43\x61\x72\x65\x74\x28\x65\x6C\x5F\x74\x65\x78\x74\x5F\x63\x75\x72\x72\x2C\x20\x6F\x66\x66\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\x72\x65\x74\x75\x72\x6E\x20\x66\x61\x6C\x73\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\x20\x20\x20\x20\x2F\x2F\x20\x4A\x6F\x69\x6E\x20\x63\x75\x72\x72\x65\x6E\x74\x20\x6C\x69\x6E\x65\x20\x77\x69\x74\x68\x20\x70\x72\x65\x76\x69\x6F\x75\x73\x2E\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x6C\x5F\x74\x65\x78\x74\x5F\x70\x72\x65\x76\x20\x3D\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x5B\x78\x20\x2D\x20\x31\x5D\x2E\x65\x6C\x5F\x74\x65\x78\x74\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\x75\x6E\x72\x65\x2E\x44\x6F\x4A\x6F\x69\x6E\x28\x78\x20\x2D\x20\x31\x2C\x20\x65\x6C\x5F\x74\x65\x78\x74\x5F\x70\x72\x65\x76\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x2C\x20\x65\x6C\x5F\x74\x65\x78\x74\x5F\x63\x75\x72\x72\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x66\x66\x20\x3D\x20\x65\x6C\x5F\x74\x65\x78\x74\x5F\x70\x72\x65\x76\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x2E\x6C\x65\x6E\x67\x74\x68\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x5F\x74\x65\x78\x74\x5F\x70\x72\x65\x76\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x65\x6C\x5F\x74\x65\x78\x74\x5F\x70\x72\x65\x76\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x2B\x20\x65\x6C\x5F\x74\x65\x78\x74\x5F\x63\x75\x72\x72\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\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\x72\x61\x77\x5F\x6C\x69\x6E\x65\x73\x5B\x78\x20\x2D\x20\x31\x5D\x20\x3D\x20\x65\x6C\x5F\x74\x65\x78\x74\x5F\x70\x72\x65\x76\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x2F\x2F\x20\x52\x65\x6D\x6F\x76\x65\x20\x74\x68\x65\x20\x63\x75\x72\x72\x65\x6E\x74\x20\x6C\x69\x6E\x65\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\x64\x65\x6C\x65\x74\x65\x4C\x69\x6E\x65\x28\x78\x29\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\x73\x65\x74\x43\x61\x72\x65\x74\x28\x65\x6C\x5F\x74\x65\x78\x74\x5F\x70\x72\x65\x76\x2C\x20\x6F\x66\x66\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\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\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x43\x6F\x6E\x74\x72\x6F\x6C\x22\x3A\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\x69\x73\x5F\x6B\x65\x79\x5F\x63\x6F\x6E\x74\x72\x6F\x6C\x20\x3D\x20\x66\x61\x6C\x73\x65\x3B\x0A\x20\x20\x20\x20\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\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x45\x6E\x74\x65\x72\x22\x3A\x0A\x20\x20\x20\x20\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\x20\x20\x20\x20\x62\x72\x65\x61\x6B\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x72\x22\x3A\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\x69\x73\x5F\x6B\x65\x79\x5F\x63\x6F\x6E\x74\x72\x6F\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\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\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\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\x62\x72\x65\x61\x6B\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x7A\x22\x3A\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\x69\x73\x5F\x6B\x65\x79\x5F\x63\x6F\x6E\x74\x72\x6F\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\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\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\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\x62\x72\x65\x61\x6B\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\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\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x69\x73\x5F\x6B\x65\x79\x5F\x63\x6F\x6E\x74\x72\x6F\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\x62\x72\x65\x61\x6B\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\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x75\x6E\x72\x65\x2E\x44\x6F\x55\x70\x64\x61\x74\x65\x28\x78\x2C\x20\x74\x68\x69\x73\x2E\x72\x61\x77\x5F\x6C\x69\x6E\x65\x73\x5B\x78\x5D\x2C\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x5B\x78\x5D\x2E\x65\x6C\x5F\x74\x65\x78\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x29\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\x72\x61\x77\x5F\x6C\x69\x6E\x65\x73\x5B\x78\x5D\x20\x3D\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x5B\x78\x5D\x2E\x65\x6C\x5F\x74\x65\x78\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\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\x72\x65\x74\x75\x72\x6E\x20\x74\x72\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x4F\x6E\x4B\x65\x79\x64\x6F\x77\x6E\x4F\x6E\x4C\x69\x6E\x65\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x78\x2C\x20\x65\x6C\x5F\x74\x65\x78\x74\x2C\x20\x65\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x65\x78\x74\x5F\x62\x65\x66\x6F\x72\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x65\x78\x74\x5F\x61\x66\x74\x65\x72\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6F\x66\x66\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x65\x76\x2E\x6B\x65\x79\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x41\x72\x72\x6F\x77\x55\x70\x22\x3A\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\x78\x20\x3D\x3D\x20\x30\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\x72\x65\x74\x75\x72\x6E\x20\x66\x61\x6C\x73\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\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\x20\x20\x20\x20\x76\x61\x72\x20\x65\x6C\x5F\x74\x65\x78\x74\x5F\x31\x20\x3D\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x5B\x78\x20\x2D\x20\x31\x5D\x2E\x65\x6C\x5F\x74\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6F\x66\x66\x5F\x31\x20\x3D\x20\x74\x68\x69\x73\x2E\x73\x65\x6C\x2E\x66\x6F\x63\x75\x73\x4F\x66\x66\x73\x65\x74\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\x6F\x66\x66\x5F\x31\x20\x3E\x20\x65\x6C\x5F\x74\x65\x78\x74\x5F\x31\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x2E\x6C\x65\x6E\x67\x74\x68\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\x6F\x66\x66\x5F\x31\x20\x3D\x20\x65\x6C\x5F\x74\x65\x78\x74\x5F\x31\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x2E\x6C\x65\x6E\x67\x74\x68\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\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x73\x65\x74\x43\x61\x72\x65\x74\x28\x65\x6C\x5F\x74\x65\x78\x74\x5F\x31\x2C\x20\x6F\x66\x66\x5F\x31\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\x78\x20\x3D\x3D\x20\x31\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\x65\x6C\x2E\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70\x20\x3D\x20\x30\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\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x69\x66\x20\x28\x78\x20\x2A\x20\x32\x33\x20\x3C\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70\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\x65\x6C\x2E\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70\x20\x2D\x3D\x20\x32\x35\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\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\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x41\x72\x72\x6F\x77\x44\x6F\x77\x6E\x22\x3A\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\x78\x20\x3D\x3D\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x2E\x6C\x65\x6E\x67\x74\x68\x20\x2D\x20\x31\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\x72\x65\x74\x75\x72\x6E\x20\x66\x61\x6C\x73\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\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\x20\x20\x20\x20\x65\x6C\x5F\x74\x65\x78\x74\x5F\x31\x20\x3D\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x5B\x78\x20\x2B\x20\x31\x5D\x2E\x65\x6C\x5F\x74\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x66\x66\x5F\x31\x20\x3D\x20\x74\x68\x69\x73\x2E\x73\x65\x6C\x2E\x66\x6F\x63\x75\x73\x4F\x66\x66\x73\x65\x74\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\x6F\x66\x66\x5F\x31\x20\x3E\x20\x65\x6C\x5F\x74\x65\x78\x74\x5F\x31\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x2E\x6C\x65\x6E\x67\x74\x68\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\x6F\x66\x66\x5F\x31\x20\x3D\x20\x65\x6C\x5F\x74\x65\x78\x74\x5F\x31\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x2E\x6C\x65\x6E\x67\x74\x68\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\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x73\x65\x74\x43\x61\x72\x65\x74\x28\x65\x6C\x5F\x74\x65\x78\x74\x5F\x31\x2C\x20\x6F\x66\x66\x5F\x31\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x78\x20\x2B\x3D\x20\x32\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\x78\x20\x2A\x20\x32\x35\x20\x3E\x3D\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x63\x6C\x69\x65\x6E\x74\x48\x65\x69\x67\x68\x74\x20\x2B\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70\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\x65\x6C\x2E\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70\x20\x2B\x3D\x20\x32\x35\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\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\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x43\x6F\x6E\x74\x72\x6F\x6C\x22\x3A\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\x69\x73\x5F\x6B\x65\x79\x5F\x63\x6F\x6E\x74\x72\x6F\x6C\x20\x3D\x20\x74\x72\x75\x65\x3B\x0A\x20\x20\x20\x20\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\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x45\x6E\x74\x65\x72\x22\x3A\x0A\x20\x20\x20\x20\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\x20\x20\x20\x20\x6F\x66\x66\x5F\x31\x20\x3D\x20\x74\x68\x69\x73\x2E\x73\x65\x6C\x2E\x66\x6F\x63\x75\x73\x4F\x66\x66\x73\x65\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x65\x78\x74\x20\x3D\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x5B\x78\x5D\x2E\x65\x6C\x5F\x74\x65\x78\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x65\x78\x74\x5F\x62\x65\x66\x6F\x72\x65\x20\x3D\x20\x74\x65\x78\x74\x2E\x73\x6C\x69\x63\x65\x28\x30\x2C\x20\x6F\x66\x66\x5F\x31\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x65\x78\x74\x5F\x61\x66\x74\x65\x72\x20\x3D\x20\x74\x65\x78\x74\x2E\x73\x6C\x69\x63\x65\x28\x6F\x66\x66\x5F\x31\x2C\x20\x74\x65\x78\x74\x2E\x6C\x65\x6E\x67\x74\x68\x29\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\x75\x6E\x72\x65\x2E\x44\x6F\x53\x70\x6C\x69\x74\x28\x78\x2C\x20\x74\x65\x78\x74\x5F\x62\x65\x66\x6F\x72\x65\x2C\x20\x74\x65\x78\x74\x5F\x61\x66\x74\x65\x72\x29\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\x6C\x69\x6E\x65\x73\x5B\x78\x5D\x2E\x65\x6C\x5F\x74\x65\x78\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x74\x65\x78\x74\x5F\x62\x65\x66\x6F\x72\x65\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\x72\x61\x77\x5F\x6C\x69\x6E\x65\x73\x5B\x78\x5D\x20\x3D\x20\x74\x65\x78\x74\x5F\x62\x65\x66\x6F\x72\x65\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\x69\x6E\x73\x65\x72\x74\x4E\x65\x77\x6C\x69\x6E\x65\x28\x78\x20\x2B\x20\x31\x2C\x20\x74\x65\x78\x74\x5F\x61\x66\x74\x65\x72\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\x78\x20\x2B\x20\x33\x20\x3E\x3D\x20\x74\x68\x69\x73\x2E\x72\x61\x77\x5F\x6C\x69\x6E\x65\x73\x2E\x6C\x65\x6E\x67\x74\x68\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\x65\x6C\x2E\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70\x20\x3D\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x73\x63\x72\x6F\x6C\x6C\x48\x65\x69\x67\x68\x74\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\x20\x20\x20\x20\x62\x72\x65\x61\x6B\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x54\x61\x62\x22\x3A\x0A\x20\x20\x20\x20\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\x20\x20\x20\x20\x65\x6C\x5F\x74\x65\x78\x74\x5F\x31\x20\x3D\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x5B\x78\x5D\x2E\x65\x6C\x5F\x74\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x66\x66\x5F\x31\x20\x3D\x20\x74\x68\x69\x73\x2E\x73\x65\x6C\x2E\x66\x6F\x63\x75\x73\x4F\x66\x66\x73\x65\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x65\x78\x74\x5F\x62\x65\x66\x6F\x72\x65\x20\x3D\x20\x65\x6C\x5F\x74\x65\x78\x74\x5F\x31\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x65\x78\x74\x5F\x61\x66\x74\x65\x72\x20\x3D\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\x65\x78\x74\x5F\x62\x65\x66\x6F\x72\x65\x2E\x73\x6C\x69\x63\x65\x28\x30\x2C\x20\x6F\x66\x66\x5F\x31\x29\x20\x2B\x20\x22\x5C\x74\x22\x20\x2B\x20\x74\x65\x78\x74\x5F\x62\x65\x66\x6F\x72\x65\x2E\x73\x6C\x69\x63\x65\x28\x6F\x66\x66\x5F\x31\x2C\x20\x74\x65\x78\x74\x5F\x62\x65\x66\x6F\x72\x65\x2E\x6C\x65\x6E\x67\x74\x68\x29\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\x75\x6E\x72\x65\x2E\x44\x6F\x55\x70\x64\x61\x74\x65\x28\x78\x2C\x20\x74\x65\x78\x74\x5F\x62\x65\x66\x6F\x72\x65\x2C\x20\x74\x65\x78\x74\x5F\x61\x66\x74\x65\x72\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\x5F\x74\x65\x78\x74\x5F\x31\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x74\x65\x78\x74\x5F\x61\x66\x74\x65\x72\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\x72\x61\x77\x5F\x6C\x69\x6E\x65\x73\x5B\x78\x5D\x20\x3D\x20\x74\x65\x78\x74\x5F\x61\x66\x74\x65\x72\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\x73\x65\x74\x43\x61\x72\x65\x74\x28\x65\x6C\x5F\x74\x65\x78\x74\x5F\x31\x2C\x20\x6F\x66\x66\x5F\x31\x20\x2B\x20\x31\x29\x3B\x0A\x20\x20\x20\x20\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\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x72\x22\x3A\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\x69\x73\x5F\x6B\x65\x79\x5F\x63\x6F\x6E\x74\x72\x6F\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\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\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x64\x6F\x52\x65\x64\x6F\x28\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\x72\x65\x74\x75\x72\x6E\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\x20\x20\x20\x20\x62\x72\x65\x61\x6B\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x22\x3A\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\x69\x73\x5F\x6B\x65\x79\x5F\x63\x6F\x6E\x74\x72\x6F\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\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\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\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4F\x6E\x53\x61\x76\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\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4F\x6E\x53\x61\x76\x65\x28\x74\x68\x69\x73\x2E\x47\x65\x74\x43\x6F\x6E\x74\x65\x6E\x74\x28\x29\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\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\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\x62\x72\x65\x61\x6B\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x7A\x22\x3A\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\x69\x73\x5F\x6B\x65\x79\x5F\x63\x6F\x6E\x74\x72\x6F\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\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\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x64\x6F\x55\x6E\x64\x6F\x28\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\x72\x65\x74\x75\x72\x6E\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\x20\x20\x20\x20\x62\x72\x65\x61\x6B\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\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x4F\x6E\x4D\x6F\x75\x73\x65\x44\x6F\x77\x6E\x41\x74\x4C\x69\x6E\x65\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x78\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x5F\x62\x65\x67\x69\x6E\x20\x3D\x20\x78\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x4F\x6E\x4D\x6F\x75\x73\x65\x55\x70\x41\x74\x4C\x69\x6E\x65\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x78\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x5F\x65\x6E\x64\x20\x3D\x20\x78\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x5F\x65\x6E\x64\x20\x3C\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x5F\x62\x65\x67\x69\x6E\x29\x20\x7B\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\x20\x20\x20\x20\x76\x61\x72\x20\x79\x20\x3D\x20\x30\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x3B\x20\x79\x20\x3C\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x5F\x62\x65\x67\x69\x6E\x3B\x20\x79\x2B\x2B\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\x65\x6C\x2E\x63\x68\x69\x6C\x64\x72\x65\x6E\x5B\x79\x5D\x2E\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x73\x74\x79\x6C\x65\x22\x2C\x20\x22\x22\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\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x3B\x20\x79\x20\x3C\x3D\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x5F\x65\x6E\x64\x3B\x20\x79\x2B\x2B\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\x65\x6C\x2E\x63\x68\x69\x6C\x64\x72\x65\x6E\x5B\x79\x5D\x2E\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x73\x74\x79\x6C\x65\x22\x2C\x20\x22\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x2D\x63\x6F\x6C\x6F\x72\x3A\x6C\x69\x67\x68\x74\x73\x61\x6C\x6D\x6F\x6E\x22\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\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x3B\x20\x79\x20\x3C\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x63\x68\x69\x6C\x64\x72\x65\x6E\x2E\x6C\x65\x6E\x67\x74\x68\x3B\x20\x79\x2B\x2B\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\x65\x6C\x2E\x63\x68\x69\x6C\x64\x72\x65\x6E\x5B\x79\x5D\x2E\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x73\x74\x79\x6C\x65\x22\x2C\x20\x22\x22\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\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4F\x6E\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\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\x4F\x6E\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x28\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x5F\x62\x65\x67\x69\x6E\x2C\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x5F\x65\x6E\x64\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\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x2F\x2F\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x2F\x2F\x20\x53\x65\x74\x45\x64\x69\x74\x4F\x66\x66\x20\x6D\x61\x6B\x65\x20\x74\x68\x65\x20\x63\x6F\x6E\x74\x65\x6E\x74\x20\x6E\x6F\x74\x20\x65\x64\x69\x74\x61\x62\x6C\x65\x2E\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x2F\x2F\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x53\x65\x74\x45\x64\x69\x74\x4F\x66\x66\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x76\x61\x72\x20\x78\x20\x3D\x20\x30\x3B\x20\x78\x20\x3C\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x2E\x6C\x65\x6E\x67\x74\x68\x3B\x20\x78\x2B\x2B\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\x6C\x69\x6E\x65\x73\x5B\x78\x5D\x2E\x53\x65\x74\x45\x64\x69\x74\x4F\x66\x66\x28\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\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x2F\x2F\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x2F\x2F\x20\x53\x65\x74\x45\x64\x69\x74\x4F\x6E\x20\x6D\x61\x6B\x65\x20\x74\x68\x65\x20\x63\x6F\x6E\x74\x65\x6E\x74\x20\x74\x6F\x20\x62\x65\x20\x65\x64\x69\x74\x61\x62\x6C\x65\x2E\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x2F\x2F\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x53\x65\x74\x45\x64\x69\x74\x4F\x6E\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x76\x61\x72\x20\x78\x20\x3D\x20\x30\x3B\x20\x78\x20\x3C\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x2E\x6C\x65\x6E\x67\x74\x68\x3B\x20\x78\x2B\x2B\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\x6C\x69\x6E\x65\x73\x5B\x78\x5D\x2E\x53\x65\x74\x45\x64\x69\x74\x4F\x6E\x28\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\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x2F\x2F\x20\x4F\x70\x65\x6E\x20\x74\x68\x65\x20\x6E\x6F\x64\x65\x20\x66\x6F\x72\x20\x65\x64\x69\x74\x69\x6E\x67\x2E\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x2F\x2F\x20\x54\x68\x65\x20\x63\x6F\x6E\x74\x65\x6E\x74\x20\x4D\x55\x53\x54\x20\x62\x65\x20\x65\x6E\x63\x6F\x64\x65\x64\x20\x69\x6E\x20\x62\x61\x73\x65\x36\x34\x2E\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x4F\x70\x65\x6E\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x6E\x6F\x64\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x76\x65\x5F\x66\x69\x6C\x65\x20\x3D\x20\x6E\x6F\x64\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x61\x74\x6F\x62\x28\x6E\x6F\x64\x65\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x20\x7C\x7C\x20\x22\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x63\x6F\x6E\x74\x65\x6E\x74\x2E\x72\x65\x70\x6C\x61\x63\x65\x28\x22\x5C\x72\x5C\x6E\x22\x2C\x20\x22\x5C\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x61\x77\x5F\x6C\x69\x6E\x65\x73\x20\x3D\x20\x63\x6F\x6E\x74\x65\x6E\x74\x2E\x73\x70\x6C\x69\x74\x28\x22\x5C\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x20\x3D\x20\x5B\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x76\x61\x72\x20\x78\x20\x3D\x20\x30\x3B\x20\x78\x20\x3C\x20\x74\x68\x69\x73\x2E\x72\x61\x77\x5F\x6C\x69\x6E\x65\x73\x2E\x6C\x65\x6E\x67\x74\x68\x3B\x20\x78\x2B\x2B\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6C\x69\x6E\x65\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x4C\x69\x6E\x65\x28\x78\x2C\x20\x74\x68\x69\x73\x2E\x72\x61\x77\x5F\x6C\x69\x6E\x65\x73\x5B\x78\x5D\x2C\x20\x74\x68\x69\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x2E\x70\x75\x73\x68\x28\x6C\x69\x6E\x65\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\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x65\x6E\x64\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\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x63\x6C\x65\x61\x72\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x5F\x62\x65\x67\x69\x6E\x20\x3C\x20\x30\x20\x7C\x7C\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x5F\x65\x6E\x64\x20\x3D\x3D\x20\x30\x29\x20\x7B\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\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x76\x61\x72\x20\x78\x20\x3D\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x5F\x62\x65\x67\x69\x6E\x3B\x20\x78\x20\x3C\x3D\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x5F\x65\x6E\x64\x3B\x20\x78\x2B\x2B\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\x65\x6C\x2E\x63\x68\x69\x6C\x64\x72\x65\x6E\x5B\x78\x5D\x2E\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x73\x74\x79\x6C\x65\x22\x2C\x20\x22\x22\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\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x5F\x62\x65\x67\x69\x6E\x20\x3D\x20\x2D\x31\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x5F\x65\x6E\x64\x20\x3D\x20\x2D\x31\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x69\x6E\x69\x74\x53\x74\x79\x6C\x65\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\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\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\x20\x20\x20\x20\x73\x74\x79\x6C\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5B\x63\x6F\x6E\x74\x65\x6E\x74\x65\x64\x69\x74\x61\x62\x6C\x65\x5D\x20\x7B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x6F\x75\x74\x6C\x69\x6E\x65\x3A\x20\x30\x70\x78\x20\x73\x6F\x6C\x69\x64\x20\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x7D\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x2E\x22\x20\x2B\x20\x57\x55\x49\x5F\x45\x44\x49\x54\x4F\x52\x5F\x43\x4C\x41\x53\x53\x20\x2B\x20\x22\x20\x7B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x2D\x63\x6F\x6C\x6F\x72\x3A\x20\x63\x6F\x72\x6E\x73\x69\x6C\x6B\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x66\x6F\x6E\x74\x2D\x66\x61\x6D\x69\x6C\x79\x3A\x20\x6D\x6F\x6E\x6F\x73\x70\x61\x63\x65\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x6F\x76\x65\x72\x66\x6C\x6F\x77\x2D\x79\x3A\x20\x61\x75\x74\x6F\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x77\x69\x64\x74\x68\x3A\x20\x31\x30\x30\x25\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x7D\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x2E\x22\x20\x2B\x20\x57\x55\x49\x5F\x45\x44\x49\x54\x4F\x52\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x49\x4E\x45\x20\x2B\x20\x22\x20\x7B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x64\x69\x73\x70\x6C\x61\x79\x3A\x20\x62\x6C\x6F\x63\x6B\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x77\x69\x64\x74\x68\x3A\x20\x31\x30\x30\x25\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x7D\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x2E\x22\x20\x2B\x20\x57\x55\x49\x5F\x45\x44\x49\x54\x4F\x52\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x49\x4E\x45\x5F\x4E\x55\x4D\x42\x45\x52\x20\x2B\x20\x22\x20\x7B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x63\x6F\x6C\x6F\x72\x3A\x20\x64\x69\x6D\x67\x72\x65\x79\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x63\x75\x72\x73\x6F\x72\x3A\x20\x70\x6F\x69\x6E\x74\x65\x72\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x64\x69\x73\x70\x6C\x61\x79\x3A\x20\x69\x6E\x6C\x69\x6E\x65\x2D\x62\x6C\x6F\x63\x6B\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x70\x61\x64\x64\x69\x6E\x67\x3A\x20\x34\x70\x78\x20\x31\x30\x70\x78\x20\x34\x70\x78\x20\x34\x70\x78\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x74\x65\x78\x74\x2D\x61\x6C\x69\x67\x6E\x3A\x20\x72\x69\x67\x68\x74\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x75\x73\x65\x72\x2D\x73\x65\x6C\x65\x63\x74\x3A\x20\x6E\x6F\x6E\x65\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x76\x65\x72\x74\x69\x63\x61\x6C\x2D\x61\x6C\x69\x67\x6E\x3A\x20\x74\x6F\x70\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x77\x69\x64\x74\x68\x3A\x20\x33\x30\x70\x78\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x7D\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x2E\x22\x20\x2B\x20\x57\x55\x49\x5F\x45\x44\x49\x54\x4F\x52\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x49\x4E\x45\x5F\x4E\x55\x4D\x42\x45\x52\x20\x2B\x20\x22\x3A\x68\x6F\x76\x65\x72\x20\x7B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\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\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x7D\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x2E\x22\x20\x2B\x20\x57\x55\x49\x5F\x45\x44\x49\x54\x4F\x52\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x49\x4E\x45\x5F\x54\x45\x58\x54\x20\x2B\x20\x22\x20\x7B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x64\x69\x73\x70\x6C\x61\x79\x3A\x20\x69\x6E\x6C\x69\x6E\x65\x2D\x62\x6C\x6F\x63\x6B\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x70\x61\x64\x64\x69\x6E\x67\x3A\x20\x34\x70\x78\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x62\x6F\x72\x64\x65\x72\x2D\x63\x6F\x6C\x6F\x72\x3A\x20\x6C\x69\x67\x68\x74\x62\x6C\x75\x65\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x62\x6F\x72\x64\x65\x72\x2D\x77\x69\x64\x74\x68\x3A\x20\x30\x70\x78\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x62\x6F\x72\x64\x65\x72\x2D\x73\x74\x79\x6C\x65\x3A\x20\x73\x6F\x6C\x69\x64\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x77\x68\x69\x74\x65\x2D\x73\x70\x61\x63\x65\x3A\x20\x70\x72\x65\x2D\x77\x72\x61\x70\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x77\x69\x64\x74\x68\x3A\x20\x63\x61\x6C\x63\x28\x31\x30\x30\x25\x20\x2D\x20\x36\x30\x70\x78\x29\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x7D\x5C\x6E\x5C\x74\x5C\x74\x22\x3B\x0A\x20\x20\x20\x20\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\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x64\x6F\x4A\x6F\x69\x6E\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x63\x68\x61\x6E\x67\x65\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x5B\x63\x68\x61\x6E\x67\x65\x73\x2E\x63\x75\x72\x72\x5F\x6C\x69\x6E\x65\x5D\x2E\x65\x6C\x5F\x74\x65\x78\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x63\x68\x61\x6E\x67\x65\x73\x2E\x63\x75\x72\x72\x5F\x74\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x64\x65\x6C\x65\x74\x65\x4C\x69\x6E\x65\x28\x63\x68\x61\x6E\x67\x65\x73\x2E\x6E\x65\x78\x74\x5F\x6C\x69\x6E\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x73\x65\x74\x43\x61\x72\x65\x74\x28\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x5B\x63\x68\x61\x6E\x67\x65\x73\x2E\x63\x75\x72\x72\x5F\x6C\x69\x6E\x65\x5D\x2E\x65\x6C\x5F\x74\x65\x78\x74\x2C\x20\x30\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x64\x6F\x53\x70\x6C\x69\x74\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x63\x68\x61\x6E\x67\x65\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x5B\x63\x68\x61\x6E\x67\x65\x73\x2E\x63\x75\x72\x72\x5F\x6C\x69\x6E\x65\x5D\x2E\x65\x6C\x5F\x74\x65\x78\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x63\x68\x61\x6E\x67\x65\x73\x2E\x63\x75\x72\x72\x5F\x74\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x69\x6E\x73\x65\x72\x74\x4E\x65\x77\x6C\x69\x6E\x65\x28\x63\x68\x61\x6E\x67\x65\x73\x2E\x6E\x65\x78\x74\x5F\x6C\x69\x6E\x65\x2C\x20\x63\x68\x61\x6E\x67\x65\x73\x2E\x6E\x65\x78\x74\x5F\x74\x65\x78\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x64\x6F\x55\x70\x64\x61\x74\x65\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x63\x68\x61\x6E\x67\x65\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x5B\x63\x68\x61\x6E\x67\x65\x73\x2E\x63\x75\x72\x72\x5F\x6C\x69\x6E\x65\x5D\x2E\x65\x6C\x5F\x74\x65\x78\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x63\x68\x61\x6E\x67\x65\x73\x2E\x63\x75\x72\x72\x5F\x74\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x73\x65\x74\x43\x61\x72\x65\x74\x28\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x5B\x63\x68\x61\x6E\x67\x65\x73\x2E\x63\x75\x72\x72\x5F\x6C\x69\x6E\x65\x5D\x2E\x65\x6C\x5F\x74\x65\x78\x74\x2C\x20\x30\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x64\x6F\x52\x65\x64\x6F\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x63\x74\x20\x3D\x20\x74\x68\x69\x73\x2E\x75\x6E\x72\x65\x2E\x52\x65\x64\x6F\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x61\x63\x74\x29\x20\x7B\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\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x61\x63\x74\x2E\x6B\x69\x6E\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6A\x6F\x69\x6E\x22\x3A\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\x64\x6F\x4A\x6F\x69\x6E\x28\x61\x63\x74\x2E\x61\x66\x74\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\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\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x70\x6C\x69\x74\x22\x3A\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\x64\x6F\x53\x70\x6C\x69\x74\x28\x61\x63\x74\x2E\x61\x66\x74\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\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\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x75\x70\x64\x61\x74\x65\x22\x3A\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\x64\x6F\x55\x70\x64\x61\x74\x65\x28\x61\x63\x74\x2E\x61\x66\x74\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\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\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x64\x6F\x55\x6E\x64\x6F\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x63\x74\x20\x3D\x20\x74\x68\x69\x73\x2E\x75\x6E\x72\x65\x2E\x55\x6E\x64\x6F\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x61\x63\x74\x29\x20\x7B\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\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x61\x63\x74\x2E\x6B\x69\x6E\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6A\x6F\x69\x6E\x22\x3A\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\x64\x6F\x53\x70\x6C\x69\x74\x28\x61\x63\x74\x2E\x62\x65\x66\x6F\x72\x65\x29\x3B\x0A\x20\x20\x20\x20\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\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x70\x6C\x69\x74\x22\x3A\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\x64\x6F\x4A\x6F\x69\x6E\x28\x61\x63\x74\x2E\x62\x65\x66\x6F\x72\x65\x29\x3B\x0A\x20\x20\x20\x20\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\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x75\x70\x64\x61\x74\x65\x22\x3A\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\x64\x6F\x55\x70\x64\x61\x74\x65\x28\x61\x63\x74\x2E\x62\x65\x66\x6F\x72\x65\x29\x3B\x0A\x20\x20\x20\x20\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\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x64\x65\x6C\x65\x74\x65\x4C\x69\x6E\x65\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x78\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\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\x74\x68\x69\x73\x2E\x72\x61\x77\x5F\x6C\x69\x6E\x65\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\x2F\x2F\x20\x52\x65\x73\x65\x74\x20\x74\x68\x65\x20\x6C\x69\x6E\x65\x20\x6E\x75\x6D\x62\x65\x72\x73\x2E\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x3B\x20\x78\x20\x3C\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x2E\x6C\x65\x6E\x67\x74\x68\x3B\x20\x78\x2B\x2B\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\x6C\x69\x6E\x65\x73\x5B\x78\x5D\x2E\x53\x65\x74\x4E\x75\x6D\x62\x65\x72\x28\x78\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\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x65\x6E\x64\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\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x69\x6E\x73\x65\x72\x74\x4E\x65\x77\x6C\x69\x6E\x65\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x78\x2C\x20\x74\x65\x78\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6E\x65\x77\x6C\x69\x6E\x65\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x4C\x69\x6E\x65\x28\x78\x2C\x20\x74\x65\x78\x74\x2C\x20\x74\x68\x69\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x76\x61\x72\x20\x79\x20\x3D\x20\x78\x3B\x20\x79\x20\x3C\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x2E\x6C\x65\x6E\x67\x74\x68\x3B\x20\x79\x2B\x2B\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\x6C\x69\x6E\x65\x73\x5B\x79\x5D\x2E\x53\x65\x74\x4E\x75\x6D\x62\x65\x72\x28\x79\x20\x2B\x20\x31\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\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x2E\x73\x70\x6C\x69\x63\x65\x28\x78\x2C\x20\x30\x2C\x20\x6E\x65\x77\x6C\x69\x6E\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x61\x77\x5F\x6C\x69\x6E\x65\x73\x2E\x73\x70\x6C\x69\x63\x65\x28\x78\x2C\x20\x30\x2C\x20\x74\x65\x78\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x65\x6E\x64\x65\x72\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x73\x65\x74\x43\x61\x72\x65\x74\x28\x6E\x65\x77\x6C\x69\x6E\x65\x2E\x65\x6C\x5F\x74\x65\x78\x74\x2C\x20\x30\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x6F\x6E\x4B\x65\x79\x75\x70\x44\x6F\x63\x75\x6D\x65\x6E\x74\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x65\x64\x2C\x20\x65\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x65\x76\x2E\x6B\x65\x79\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x45\x73\x63\x61\x70\x65\x22\x3A\x0A\x20\x20\x20\x20\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\x20\x20\x20\x20\x65\x64\x2E\x63\x6C\x65\x61\x72\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\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\x7D\x0A\x20\x20\x20\x20\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\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x72\x65\x6E\x64\x65\x72\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\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\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\x66\x6F\x72\x20\x28\x76\x61\x72\x20\x5F\x69\x20\x3D\x20\x30\x2C\x20\x5F\x61\x20\x3D\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x73\x3B\x20\x5F\x69\x20\x3C\x20\x5F\x61\x2E\x6C\x65\x6E\x67\x74\x68\x3B\x20\x5F\x69\x2B\x2B\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6C\x69\x6E\x65\x20\x3D\x20\x5F\x61\x5B\x5F\x69\x5D\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\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x6C\x69\x6E\x65\x2E\x65\x6C\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\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x73\x65\x74\x43\x61\x72\x65\x74\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x65\x6C\x5F\x74\x65\x78\x74\x2C\x20\x6F\x66\x66\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x6C\x5F\x74\x65\x78\x74\x2E\x66\x69\x72\x73\x74\x43\x68\x69\x6C\x64\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\x72\x61\x6E\x67\x65\x2E\x73\x65\x74\x53\x74\x61\x72\x74\x28\x65\x6C\x5F\x74\x65\x78\x74\x2E\x66\x69\x72\x73\x74\x43\x68\x69\x6C\x64\x2C\x20\x6F\x66\x66\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\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\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x2E\x73\x65\x74\x53\x74\x61\x72\x74\x28\x65\x6C\x5F\x74\x65\x78\x74\x2C\x20\x6F\x66\x66\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\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x2E\x63\x6F\x6C\x6C\x61\x70\x73\x65\x28\x74\x72\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x73\x65\x6C\x2E\x72\x65\x6D\x6F\x76\x65\x41\x6C\x6C\x52\x61\x6E\x67\x65\x73\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x73\x65\x6C\x2E\x61\x64\x64\x52\x61\x6E\x67\x65\x28\x74\x68\x69\x73\x2E\x72\x61\x6E\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x3B\x0A\x20\x20\x20\x20\x7D\x28\x29\x29\x3B\x0A\x20\x20\x20\x20\x65\x78\x70\x6F\x72\x74\x73\x2E\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x20\x3D\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x3B\x0A\x20\x20\x20\x20\x76\x61\x72\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x4C\x69\x6E\x65\x20\x3D\x20\x2F\x2A\x2A\x20\x40\x63\x6C\x61\x73\x73\x20\x2A\x2F\x20\x28\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x4C\x69\x6E\x65\x28\x78\x2C\x20\x74\x65\x78\x74\x2C\x20\x65\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x5F\x74\x68\x69\x73\x20\x3D\x20\x74\x68\x69\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x78\x20\x3D\x20\x78\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x65\x78\x74\x20\x3D\x20\x74\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x5F\x6E\x75\x6D\x20\x3D\x20\x30\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x5F\x6E\x75\x6D\x20\x3D\x20\x78\x3B\x0A\x20\x20\x20\x20\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\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\x45\x44\x49\x54\x4F\x52\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x49\x4E\x45\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6E\x75\x6D\x62\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\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6E\x75\x6D\x62\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x45\x44\x49\x54\x4F\x52\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x49\x4E\x45\x5F\x4E\x55\x4D\x42\x45\x52\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6E\x75\x6D\x62\x65\x72\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x5F\x6E\x75\x6D\x20\x2B\x20\x31\x20\x2B\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6E\x75\x6D\x62\x65\x72\x2E\x6F\x6E\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x65\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x64\x2E\x4F\x6E\x4D\x6F\x75\x73\x65\x44\x6F\x77\x6E\x41\x74\x4C\x69\x6E\x65\x28\x5F\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x5F\x6E\x75\x6D\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\x5F\x6E\x75\x6D\x62\x65\x72\x2E\x6F\x6E\x6D\x6F\x75\x73\x65\x75\x70\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x65\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x64\x2E\x4F\x6E\x4D\x6F\x75\x73\x65\x55\x70\x41\x74\x4C\x69\x6E\x65\x28\x5F\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x5F\x6E\x75\x6D\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\x5F\x74\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\x73\x70\x61\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x74\x65\x78\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x45\x44\x49\x54\x4F\x52\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x49\x4E\x45\x5F\x54\x45\x58\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x74\x65\x78\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x74\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x74\x65\x78\x74\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x45\x64\x69\x74\x61\x62\x6C\x65\x20\x3D\x20\x22\x74\x72\x75\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x74\x65\x78\x74\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x65\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x64\x2E\x4F\x6E\x43\x6C\x69\x63\x6B\x54\x65\x78\x74\x28\x5F\x74\x68\x69\x73\x2E\x65\x6C\x5F\x74\x65\x78\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\x74\x68\x69\x73\x2E\x65\x6C\x5F\x74\x65\x78\x74\x2E\x6F\x6E\x6B\x65\x79\x64\x6F\x77\x6E\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x65\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x65\x64\x2E\x4F\x6E\x4B\x65\x79\x64\x6F\x77\x6E\x4F\x6E\x4C\x69\x6E\x65\x28\x5F\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x5F\x6E\x75\x6D\x2C\x20\x5F\x74\x68\x69\x73\x2E\x65\x6C\x5F\x74\x65\x78\x74\x2C\x20\x65\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\x5F\x74\x65\x78\x74\x2E\x6F\x6E\x6B\x65\x79\x75\x70\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x65\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x65\x64\x2E\x4F\x6E\x4B\x65\x79\x75\x70\x28\x5F\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x5F\x6E\x75\x6D\x2C\x20\x5F\x74\x68\x69\x73\x2E\x65\x6C\x5F\x74\x65\x78\x74\x2C\x20\x65\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\x5F\x74\x65\x78\x74\x2E\x61\x64\x64\x45\x76\x65\x6E\x74\x4C\x69\x73\x74\x65\x6E\x65\x72\x28\x22\x70\x61\x73\x74\x65\x22\x2C\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x65\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x65\x76\x2E\x63\x6C\x69\x70\x62\x6F\x61\x72\x64\x44\x61\x74\x61\x29\x20\x7B\x0A\x20\x20\x20\x20\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\x20\x20\x20\x20\x7D\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\x76\x61\x72\x20\x74\x65\x78\x74\x20\x3D\x20\x65\x76\x2E\x63\x6C\x69\x70\x62\x6F\x61\x72\x64\x44\x61\x74\x61\x2E\x67\x65\x74\x44\x61\x74\x61\x28\x22\x74\x65\x78\x74\x2F\x70\x6C\x61\x69\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x65\x78\x65\x63\x43\x6F\x6D\x6D\x61\x6E\x64\x28\x22\x69\x6E\x73\x65\x72\x74\x48\x54\x4D\x4C\x22\x2C\x20\x66\x61\x6C\x73\x65\x2C\x20\x74\x65\x78\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\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\x6E\x75\x6D\x62\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\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\x74\x65\x78\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x4C\x69\x6E\x65\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x53\x65\x74\x4E\x75\x6D\x62\x65\x72\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x78\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6C\x69\x6E\x65\x5F\x6E\x75\x6D\x20\x3D\x20\x78\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6E\x75\x6D\x62\x65\x72\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x78\x20\x2B\x20\x31\x20\x2B\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x4C\x69\x6E\x65\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x53\x65\x74\x45\x64\x69\x74\x4F\x6E\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x74\x65\x78\x74\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x45\x64\x69\x74\x61\x62\x6C\x65\x20\x3D\x20\x22\x74\x72\x75\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x4C\x69\x6E\x65\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x53\x65\x74\x45\x64\x69\x74\x4F\x66\x66\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x74\x65\x78\x74\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x45\x64\x69\x74\x61\x62\x6C\x65\x20\x3D\x20\x22\x66\x61\x6C\x73\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x4C\x69\x6E\x65\x3B\x0A\x20\x20\x20\x20\x7D\x28\x29\x29\x3B\x0A\x20\x20\x20\x20\x2F\x2F\x0A\x20\x20\x20\x20\x2F\x2F\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x55\x6E\x64\x6F\x52\x65\x64\x6F\x20\x73\x74\x6F\x72\x65\x20\x74\x68\x65\x20\x73\x74\x61\x74\x65\x20\x6F\x66\x20\x61\x63\x74\x69\x6F\x6E\x73\x2E\x0A\x20\x20\x20\x20\x2F\x2F\x0A\x20\x20\x20\x20\x76\x61\x72\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x55\x6E\x64\x6F\x52\x65\x64\x6F\x20\x3D\x20\x2F\x2A\x2A\x20\x40\x63\x6C\x61\x73\x73\x20\x2A\x2F\x20\x28\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x55\x6E\x64\x6F\x52\x65\x64\x6F\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x69\x64\x78\x20\x3D\x20\x30\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x6F\x6E\x73\x20\x3D\x20\x5B\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x55\x6E\x64\x6F\x52\x65\x64\x6F\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x44\x6F\x4A\x6F\x69\x6E\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x70\x72\x65\x76\x4C\x69\x6E\x65\x2C\x20\x70\x72\x65\x76\x54\x65\x78\x74\x2C\x20\x63\x75\x72\x72\x5F\x74\x65\x78\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x75\x72\x72\x5F\x6C\x69\x6E\x65\x20\x3D\x20\x70\x72\x65\x76\x4C\x69\x6E\x65\x20\x2B\x20\x31\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x63\x74\x69\x6F\x6E\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6B\x69\x6E\x64\x3A\x20\x22\x6A\x6F\x69\x6E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x65\x66\x6F\x72\x65\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x72\x5F\x6C\x69\x6E\x65\x3A\x20\x70\x72\x65\x76\x4C\x69\x6E\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x72\x5F\x74\x65\x78\x74\x3A\x20\x70\x72\x65\x76\x54\x65\x78\x74\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x65\x78\x74\x5F\x6C\x69\x6E\x65\x3A\x20\x70\x72\x65\x76\x4C\x69\x6E\x65\x20\x2B\x20\x31\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x65\x78\x74\x5F\x74\x65\x78\x74\x3A\x20\x63\x75\x72\x72\x5F\x74\x65\x78\x74\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\x61\x66\x74\x65\x72\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x72\x5F\x6C\x69\x6E\x65\x3A\x20\x70\x72\x65\x76\x4C\x69\x6E\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x72\x5F\x74\x65\x78\x74\x3A\x20\x70\x72\x65\x76\x54\x65\x78\x74\x20\x2B\x20\x63\x75\x72\x72\x5F\x74\x65\x78\x74\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x65\x78\x74\x5F\x6C\x69\x6E\x65\x3A\x20\x70\x72\x65\x76\x4C\x69\x6E\x65\x20\x2B\x20\x31\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x65\x78\x74\x5F\x74\x65\x78\x74\x3A\x20\x22\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\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x6F\x6E\x73\x2E\x6C\x65\x6E\x67\x74\x68\x20\x3E\x20\x30\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\x61\x63\x74\x69\x6F\x6E\x73\x20\x3D\x20\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x6F\x6E\x73\x2E\x73\x6C\x69\x63\x65\x28\x30\x2C\x20\x74\x68\x69\x73\x2E\x69\x64\x78\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\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x6F\x6E\x73\x2E\x70\x75\x73\x68\x28\x61\x63\x74\x69\x6F\x6E\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x69\x64\x78\x2B\x2B\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x55\x6E\x64\x6F\x52\x65\x64\x6F\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x44\x6F\x53\x70\x6C\x69\x74\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x63\x75\x72\x72\x5F\x6C\x69\x6E\x65\x2C\x20\x63\x75\x72\x72\x5F\x74\x65\x78\x74\x2C\x20\x6E\x65\x78\x74\x5F\x74\x65\x78\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x63\x74\x69\x6F\x6E\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6B\x69\x6E\x64\x3A\x20\x22\x73\x70\x6C\x69\x74\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x65\x66\x6F\x72\x65\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x72\x5F\x6C\x69\x6E\x65\x3A\x20\x63\x75\x72\x72\x5F\x6C\x69\x6E\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x72\x5F\x74\x65\x78\x74\x3A\x20\x63\x75\x72\x72\x5F\x74\x65\x78\x74\x20\x2B\x20\x6E\x65\x78\x74\x5F\x74\x65\x78\x74\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x65\x78\x74\x5F\x6C\x69\x6E\x65\x3A\x20\x63\x75\x72\x72\x5F\x6C\x69\x6E\x65\x20\x2B\x20\x31\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x65\x78\x74\x5F\x74\x65\x78\x74\x3A\x20\x22\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\x61\x66\x74\x65\x72\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x72\x5F\x6C\x69\x6E\x65\x3A\x20\x63\x75\x72\x72\x5F\x6C\x69\x6E\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x72\x5F\x74\x65\x78\x74\x3A\x20\x63\x75\x72\x72\x5F\x74\x65\x78\x74\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x65\x78\x74\x5F\x6C\x69\x6E\x65\x3A\x20\x63\x75\x72\x72\x5F\x6C\x69\x6E\x65\x20\x2B\x20\x31\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x65\x78\x74\x5F\x74\x65\x78\x74\x3A\x20\x6E\x65\x78\x74\x5F\x74\x65\x78\x74\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\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x6F\x6E\x73\x2E\x6C\x65\x6E\x67\x74\x68\x20\x3E\x20\x30\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\x61\x63\x74\x69\x6F\x6E\x73\x20\x3D\x20\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x6F\x6E\x73\x2E\x73\x6C\x69\x63\x65\x28\x30\x2C\x20\x74\x68\x69\x73\x2E\x69\x64\x78\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\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x6F\x6E\x73\x2E\x70\x75\x73\x68\x28\x61\x63\x74\x69\x6F\x6E\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x69\x64\x78\x2B\x2B\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x55\x6E\x64\x6F\x52\x65\x64\x6F\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x44\x6F\x55\x70\x64\x61\x74\x65\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x6C\x69\x6E\x65\x5F\x6E\x75\x6D\x2C\x20\x74\x65\x78\x74\x5F\x62\x65\x66\x6F\x72\x65\x2C\x20\x74\x65\x78\x74\x5F\x61\x66\x74\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x63\x74\x69\x6F\x6E\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6B\x69\x6E\x64\x3A\x20\x22\x75\x70\x64\x61\x74\x65\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x65\x66\x6F\x72\x65\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x72\x5F\x6C\x69\x6E\x65\x3A\x20\x6C\x69\x6E\x65\x5F\x6E\x75\x6D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x72\x5F\x74\x65\x78\x74\x3A\x20\x74\x65\x78\x74\x5F\x62\x65\x66\x6F\x72\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x65\x78\x74\x5F\x6C\x69\x6E\x65\x3A\x20\x30\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x65\x78\x74\x5F\x74\x65\x78\x74\x3A\x20\x22\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\x61\x66\x74\x65\x72\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x72\x5F\x6C\x69\x6E\x65\x3A\x20\x6C\x69\x6E\x65\x5F\x6E\x75\x6D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x72\x5F\x74\x65\x78\x74\x3A\x20\x74\x65\x78\x74\x5F\x61\x66\x74\x65\x72\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x65\x78\x74\x5F\x6C\x69\x6E\x65\x3A\x20\x30\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x65\x78\x74\x5F\x74\x65\x78\x74\x3A\x20\x22\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\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x6F\x6E\x73\x2E\x6C\x65\x6E\x67\x74\x68\x20\x3E\x20\x30\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\x61\x63\x74\x69\x6F\x6E\x73\x20\x3D\x20\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x6F\x6E\x73\x2E\x73\x6C\x69\x63\x65\x28\x30\x2C\x20\x74\x68\x69\x73\x2E\x69\x64\x78\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\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x6F\x6E\x73\x2E\x70\x75\x73\x68\x28\x61\x63\x74\x69\x6F\x6E\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x69\x64\x78\x2B\x2B\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x55\x6E\x64\x6F\x52\x65\x64\x6F\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x55\x6E\x64\x6F\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x69\x64\x78\x20\x3D\x3D\x20\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\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\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x69\x64\x78\x2D\x2D\x3B\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\x61\x63\x74\x69\x6F\x6E\x73\x5B\x74\x68\x69\x73\x2E\x69\x64\x78\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x55\x6E\x64\x6F\x52\x65\x64\x6F\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x52\x65\x64\x6F\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x69\x64\x78\x20\x3D\x3D\x20\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x6F\x6E\x73\x2E\x6C\x65\x6E\x67\x74\x68\x29\x20\x7B\x0A\x20\x20\x20\x20\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\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x63\x74\x69\x6F\x6E\x20\x3D\x20\x74\x68\x69\x73\x2E\x61\x63\x74\x69\x6F\x6E\x73\x5B\x74\x68\x69\x73\x2E\x69\x64\x78\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x69\x64\x78\x2B\x2B\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x61\x63\x74\x69\x6F\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x55\x6E\x64\x6F\x52\x65\x64\x6F\x3B\x0A\x20\x20\x20\x20\x7D\x28\x29\x29\x3B\x0A\x7D\x29\x3B\x0A\x2F\x2F\x20\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x20\x32\x30\x32\x31\x2C\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\x2E\x20\x41\x6C\x6C\x20\x72\x69\x67\x68\x74\x73\x20\x72\x65\x73\x65\x72\x76\x65\x64\x2E\x0A\x2F\x2F\x20\x55\x73\x65\x20\x6F\x66\x20\x74\x68\x69\x73\x20\x73\x6F\x75\x72\x63\x65\x20\x63\x6F\x64\x65\x20\x69\x73\x20\x67\x6F\x76\x65\x72\x6E\x65\x64\x20\x62\x79\x20\x61\x20\x42\x53\x44\x2D\x73\x74\x79\x6C\x65\x20\x6C\x69\x63\x65\x6E\x73\x65\x20\x74\x68\x61\x74\x20\x63\x61\x6E\x20\x62\x65\x0A\x2F\x2F\x20\x66\x6F\x75\x6E\x64\x20\x69\x6E\x20\x74\x68\x65\x20\x4C\x49\x43\x45\x4E\x53\x45\x20\x66\x69\x6C\x65\x2E\x0A\x64\x65\x66\x69\x6E\x65\x28\x22\x77\x75\x69\x2F\x6E\x6F\x74\x69\x66\x2F\x6E\x6F\x74\x69\x66\x22\x2C\x20\x5B\x22\x72\x65\x71\x75\x69\x72\x65\x22\x2C\x20\x22\x65\x78\x70\x6F\x72\x74\x73\x22\x5D\x2C\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x72\x65\x71\x75\x69\x72\x65\x2C\x20\x65\x78\x70\x6F\x72\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x22\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74\x22\x3B\x0A\x20\x20\x20\x20\x4F\x62\x6A\x65\x63\x74\x2E\x64\x65\x66\x69\x6E\x65\x50\x72\x6F\x70\x65\x72\x74\x79\x28\x65\x78\x70\x6F\x72\x74\x73\x2C\x20\x22\x5F\x5F\x65\x73\x4D\x6F\x64\x75\x6C\x65\x22\x2C\x20\x7B\x20\x76\x61\x6C\x75\x65\x3A\x20\x74\x72\x75\x65\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x65\x78\x70\x6F\x72\x74\x73\x2E\x57\x75\x69\x4E\x6F\x74\x69\x66\x20\x3D\x20\x76\x6F\x69\x64\x20\x30\x3B\x0A\x20\x20\x20\x20\x76\x61\x72\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\x20\x20\x20\x20\x76\x61\x72\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\x20\x20\x20\x20\x76\x61\x72\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\x20\x20\x20\x20\x2F\x2F\x0A\x20\x20\x20\x20\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\x20\x20\x20\x20\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\x49\x6E\x66\x6F\x28\x29\x20\x6F\x72\x20\x45\x72\x72\x6F\x72\x28\x29\x2E\x0A\x20\x20\x20\x20\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\x20\x20\x20\x20\x2F\x2F\x20\x61\x75\x74\x6F\x6D\x61\x74\x69\x63\x61\x6C\x6C\x79\x2E\x0A\x20\x20\x20\x20\x2F\x2F\x0A\x20\x20\x20\x20\x76\x61\x72\x20\x57\x75\x69\x4E\x6F\x74\x69\x66\x20\x3D\x20\x2F\x2A\x2A\x20\x40\x63\x6C\x61\x73\x73\x20\x2A\x2F\x20\x28\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x57\x75\x69\x4E\x6F\x74\x69\x66\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\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\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\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\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\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\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x2F\x2F\x20\x49\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\x20\x20\x20\x20\x57\x75\x69\x4E\x6F\x74\x69\x66\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x49\x6E\x66\x6F\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x6D\x73\x67\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x5F\x74\x68\x69\x73\x20\x3D\x20\x74\x68\x69\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\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\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\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\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\x20\x20\x20\x20\x73\x65\x74\x54\x69\x6D\x65\x6F\x75\x74\x28\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x5F\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\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\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x2F\x2F\x20\x49\x6E\x66\x6F\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\x20\x20\x20\x20\x57\x75\x69\x4E\x6F\x74\x69\x66\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x45\x72\x72\x6F\x72\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x6D\x73\x67\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x5F\x74\x68\x69\x73\x20\x3D\x20\x74\x68\x69\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\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\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\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\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\x20\x20\x20\x20\x73\x65\x74\x54\x69\x6D\x65\x6F\x75\x74\x28\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x5F\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\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\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x57\x75\x69\x4E\x6F\x74\x69\x66\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x69\x6E\x69\x74\x53\x74\x79\x6C\x65\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\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\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\x20\x20\x20\x20\x73\x74\x79\x6C\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x23\x22\x20\x2B\x20\x57\x55\x49\x5F\x4E\x4F\x54\x49\x46\x5F\x49\x44\x20\x2B\x20\x22\x20\x7B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x6C\x65\x66\x74\x3A\x20\x31\x30\x25\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x70\x6F\x73\x69\x74\x69\x6F\x6E\x3A\x20\x66\x69\x78\x65\x64\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x74\x6F\x70\x3A\x20\x31\x65\x6D\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x77\x69\x64\x74\x68\x3A\x20\x38\x30\x25\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x7D\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x2E\x22\x20\x2B\x20\x57\x55\x49\x5F\x4E\x4F\x54\x49\x46\x5F\x43\x4C\x41\x53\x53\x5F\x49\x4E\x46\x4F\x20\x2B\x20\x22\x20\x7B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\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\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\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\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x6D\x61\x72\x67\x69\x6E\x2D\x62\x6F\x74\x74\x6F\x6D\x3A\x20\x31\x65\x6D\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x70\x61\x64\x64\x69\x6E\x67\x3A\x20\x31\x65\x6D\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x7D\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x2E\x22\x20\x2B\x20\x57\x55\x49\x5F\x4E\x4F\x54\x49\x46\x5F\x43\x4C\x41\x53\x53\x5F\x45\x52\x52\x4F\x52\x20\x2B\x20\x22\x20\x7B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\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\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\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\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x6D\x61\x72\x67\x69\x6E\x2D\x62\x6F\x74\x74\x6F\x6D\x3A\x20\x31\x65\x6D\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x70\x61\x64\x64\x69\x6E\x67\x3A\x20\x31\x65\x6D\x3B\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x7D\x5C\x6E\x5C\x74\x5C\x74\x22\x3B\x0A\x20\x20\x20\x20\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\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x57\x75\x69\x4E\x6F\x74\x69\x66\x3B\x0A\x20\x20\x20\x20\x7D\x28\x29\x29\x3B\x0A\x20\x20\x20\x20\x65\x78\x70\x6F\x72\x74\x73\x2E\x57\x75\x69\x4E\x6F\x74\x69\x66\x20\x3D\x20\x57\x75\x69\x4E\x6F\x74\x69\x66\x3B\x0A\x7D\x29\x3B\x0A\x64\x65\x66\x69\x6E\x65\x28\x22\x61\x77\x77\x61\x6E\x22\x2C\x20\x5B\x22\x72\x65\x71\x75\x69\x72\x65\x22\x2C\x20\x22\x65\x78\x70\x6F\x72\x74\x73\x22\x2C\x20\x22\x77\x75\x69\x2F\x65\x64\x69\x74\x6F\x72\x2F\x65\x64\x69\x74\x6F\x72\x22\x2C\x20\x22\x77\x75\x69\x2F\x6E\x6F\x74\x69\x66\x2F\x6E\x6F\x74\x69\x66\x22\x2C\x20\x22\x77\x75\x69\x2F\x76\x66\x73\x2F\x76\x66\x73\x22\x5D\x2C\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x72\x65\x71\x75\x69\x72\x65\x2C\x20\x65\x78\x70\x6F\x72\x74\x73\x2C\x20\x65\x64\x69\x74\x6F\x72\x5F\x31\x2C\x20\x6E\x6F\x74\x69\x66\x5F\x31\x2C\x20\x76\x66\x73\x5F\x31\x29\x20\x7B\x0A\x20\x20\x20\x20\x22\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74\x22\x3B\x0A\x20\x20\x20\x20\x4F\x62\x6A\x65\x63\x74\x2E\x64\x65\x66\x69\x6E\x65\x50\x72\x6F\x70\x65\x72\x74\x79\x28\x65\x78\x70\x6F\x72\x74\x73\x2C\x20\x22\x5F\x5F\x65\x73\x4D\x6F\x64\x75\x6C\x65\x22\x2C\x20\x7B\x20\x76\x61\x6C\x75\x65\x3A\x20\x74\x72\x75\x65\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x65\x78\x70\x6F\x72\x74\x73\x2E\x41\x77\x77\x61\x6E\x20\x3D\x20\x65\x78\x70\x6F\x72\x74\x73\x2E\x72\x65\x6E\x64\x65\x72\x48\x74\x6D\x6C\x20\x3D\x20\x76\x6F\x69\x64\x20\x30\x3B\x0A\x20\x20\x20\x20\x76\x61\x72\x20\x49\x44\x5F\x42\x54\x4E\x5F\x4C\x4F\x43\x41\x4C\x20\x3D\x20\x22\x63\x6F\x6D\x5F\x62\x74\x6E\x5F\x6C\x6F\x63\x61\x6C\x22\x3B\x0A\x20\x20\x20\x20\x76\x61\x72\x20\x49\x44\x5F\x42\x54\x4E\x5F\x52\x45\x4D\x4F\x54\x45\x20\x3D\x20\x22\x63\x6F\x6D\x5F\x62\x74\x6E\x5F\x72\x65\x6D\x6F\x74\x65\x22\x3B\x0A\x20\x20\x20\x20\x76\x61\x72\x20\x49\x44\x5F\x42\x54\x4E\x5F\x53\x41\x56\x45\x20\x3D\x20\x22\x63\x6F\x6D\x5F\x62\x74\x6E\x5F\x73\x61\x76\x65\x22\x3B\x0A\x20\x20\x20\x20\x76\x61\x72\x20\x49\x44\x5F\x56\x46\x53\x5F\x50\x41\x54\x48\x20\x3D\x20\x22\x76\x66\x73\x5F\x70\x61\x74\x68\x22\x3B\x0A\x20\x20\x20\x20\x76\x61\x72\x20\x49\x44\x5F\x53\x54\x44\x4F\x55\x54\x20\x3D\x20\x22\x73\x74\x64\x6F\x75\x74\x22\x3B\x0A\x20\x20\x20\x20\x76\x61\x72\x20\x49\x44\x5F\x53\x54\x44\x45\x52\x52\x20\x3D\x20\x22\x73\x74\x64\x65\x72\x72\x22\x3B\x0A\x20\x20\x20\x20\x76\x61\x72\x20\x4D\x41\x58\x5F\x46\x49\x4C\x45\x5F\x53\x49\x5A\x45\x20\x3D\x20\x33\x30\x30\x30\x30\x30\x30\x3B\x0A\x20\x20\x20\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x72\x65\x6E\x64\x65\x72\x48\x74\x6D\x6C\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\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\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x22\x61\x77\x77\x61\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x3C\x64\x69\x76\x20\x63\x6C\x61\x73\x73\x3D\x5C\x22\x61\x77\x77\x61\x6E\x5F\x6E\x61\x76\x5F\x6C\x65\x66\x74\x5C\x22\x3E\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x3C\x64\x69\x76\x20\x69\x64\x3D\x5C\x22\x76\x66\x73\x5C\x22\x3E\x3C\x2F\x64\x69\x76\x3E\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x3C\x2F\x64\x69\x76\x3E\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x3C\x64\x69\x76\x20\x63\x6C\x61\x73\x73\x3D\x5C\x22\x61\x77\x77\x61\x6E\x5F\x63\x6F\x6E\x74\x65\x6E\x74\x5C\x22\x3E\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x3C\x64\x69\x76\x20\x63\x6C\x61\x73\x73\x3D\x5C\x22\x65\x64\x69\x74\x6F\x72\x5F\x61\x63\x74\x69\x6F\x6E\x5C\x22\x3E\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x46\x69\x6C\x65\x3A\x20\x3C\x73\x70\x61\x6E\x20\x69\x64\x3D\x5C\x22\x22\x20\x2B\x20\x49\x44\x5F\x56\x46\x53\x5F\x50\x41\x54\x48\x20\x2B\x20\x22\x5C\x22\x3E\x2D\x3C\x2F\x73\x70\x61\x6E\x3E\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x3C\x62\x75\x74\x74\x6F\x6E\x20\x69\x64\x3D\x5C\x22\x22\x20\x2B\x20\x49\x44\x5F\x42\x54\x4E\x5F\x53\x41\x56\x45\x20\x2B\x20\x22\x5C\x22\x3E\x53\x61\x76\x65\x3C\x2F\x62\x75\x74\x74\x6F\x6E\x3E\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x3C\x2F\x64\x69\x76\x3E\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x3C\x64\x69\x76\x20\x69\x64\x3D\x5C\x22\x65\x64\x69\x74\x6F\x72\x5C\x22\x3E\x3C\x2F\x64\x69\x76\x3E\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x3C\x64\x69\x76\x20\x63\x6C\x61\x73\x73\x3D\x5C\x22\x65\x78\x65\x63\x75\x74\x65\x5F\x61\x63\x74\x69\x6F\x6E\x5C\x22\x3E\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x45\x78\x65\x63\x75\x74\x65\x20\x73\x63\x72\x69\x70\x74\x20\x6F\x6E\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x3C\x62\x75\x74\x74\x6F\x6E\x20\x69\x64\x3D\x5C\x22\x22\x20\x2B\x20\x49\x44\x5F\x42\x54\x4E\x5F\x4C\x4F\x43\x41\x4C\x20\x2B\x20\x22\x5C\x22\x3E\x4C\x6F\x63\x61\x6C\x3C\x2F\x62\x75\x74\x74\x6F\x6E\x3E\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x6F\x72\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x3C\x62\x75\x74\x74\x6F\x6E\x20\x69\x64\x3D\x5C\x22\x22\x20\x2B\x20\x49\x44\x5F\x42\x54\x4E\x5F\x52\x45\x4D\x4F\x54\x45\x20\x2B\x20\x22\x5C\x22\x3E\x52\x65\x6D\x6F\x74\x65\x3C\x2F\x62\x75\x74\x74\x6F\x6E\x3E\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x3C\x2F\x64\x69\x76\x3E\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x3C\x70\x3E\x48\x69\x6E\x74\x73\x3A\x3C\x2F\x70\x3E\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x3C\x75\x6C\x3E\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x3C\x6C\x69\x3E\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x43\x6C\x69\x63\x6B\x20\x61\x6E\x64\x20\x64\x72\x61\x67\x20\x6F\x6E\x20\x74\x68\x65\x20\x6C\x69\x6E\x65\x20\x6E\x75\x6D\x62\x65\x72\x73\x20\x74\x6F\x20\x73\x65\x6C\x65\x63\x74\x20\x74\x68\x65\x20\x73\x70\x65\x63\x69\x66\x69\x63\x20\x6C\x69\x6E\x65\x20\x74\x6F\x20\x62\x65\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x65\x78\x65\x63\x75\x74\x65\x64\x2E\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x3C\x2F\x6C\x69\x3E\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x3C\x6C\x69\x3E\x50\x72\x65\x73\x73\x20\x45\x53\x43\x20\x74\x6F\x20\x63\x6C\x65\x61\x72\x20\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x2E\x3C\x2F\x6C\x69\x3E\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x3C\x2F\x75\x6C\x3E\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x3C\x64\x69\x76\x20\x63\x6C\x61\x73\x73\x3D\x5C\x22\x62\x6F\x78\x68\x65\x61\x64\x65\x72\x5C\x22\x3E\x53\x74\x61\x6E\x64\x61\x72\x64\x20\x6F\x75\x74\x70\x75\x74\x3A\x3C\x2F\x64\x69\x76\x3E\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x3C\x64\x69\x76\x20\x69\x64\x3D\x5C\x22\x22\x20\x2B\x20\x49\x44\x5F\x53\x54\x44\x4F\x55\x54\x20\x2B\x20\x22\x5C\x22\x3E\x3C\x2F\x64\x69\x76\x3E\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x3C\x64\x69\x76\x20\x63\x6C\x61\x73\x73\x3D\x5C\x22\x62\x6F\x78\x68\x65\x61\x64\x65\x72\x5C\x22\x3E\x53\x74\x61\x6E\x64\x61\x72\x64\x20\x65\x72\x72\x6F\x72\x3A\x3C\x2F\x64\x69\x76\x3E\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x5C\x74\x3C\x64\x69\x76\x20\x69\x64\x3D\x5C\x22\x22\x20\x2B\x20\x49\x44\x5F\x53\x54\x44\x45\x52\x52\x20\x2B\x20\x22\x5C\x22\x3E\x3C\x2F\x64\x69\x76\x3E\x5C\x6E\x5C\x74\x5C\x74\x5C\x74\x3C\x2F\x64\x69\x76\x3E\x5C\x6E\x5C\x74\x5C\x74\x22\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\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x65\x78\x70\x6F\x72\x74\x73\x2E\x72\x65\x6E\x64\x65\x72\x48\x74\x6D\x6C\x20\x3D\x20\x72\x65\x6E\x64\x65\x72\x48\x74\x6D\x6C\x3B\x0A\x20\x20\x20\x20\x76\x61\x72\x20\x41\x77\x77\x61\x6E\x20\x3D\x20\x2F\x2A\x2A\x20\x40\x63\x6C\x61\x73\x73\x20\x2A\x2F\x20\x28\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x41\x77\x77\x61\x6E\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x5F\x74\x68\x69\x73\x20\x3D\x20\x74\x68\x69\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x65\x71\x75\x65\x73\x74\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x6F\x64\x65\x3A\x20\x22\x6C\x6F\x63\x61\x6C\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x63\x72\x69\x70\x74\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x74\x65\x6E\x74\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x65\x67\x69\x6E\x5F\x61\x74\x3A\x20\x30\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6E\x64\x5F\x61\x74\x3A\x20\x30\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\x76\x61\x72\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\x49\x44\x5F\x42\x54\x4E\x5F\x4C\x4F\x43\x41\x4C\x29\x3B\x0A\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\x74\x68\x69\x73\x2E\x63\x6F\x6D\x5F\x62\x74\x6E\x5F\x6C\x6F\x63\x61\x6C\x20\x3D\x20\x65\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x5F\x62\x74\x6E\x5F\x6C\x6F\x63\x61\x6C\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x20\x5F\x74\x68\x69\x73\x2E\x65\x78\x65\x63\x4C\x6F\x63\x61\x6C\x28\x29\x3B\x20\x7D\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\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\x49\x44\x5F\x42\x54\x4E\x5F\x52\x45\x4D\x4F\x54\x45\x29\x3B\x0A\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\x74\x68\x69\x73\x2E\x63\x6F\x6D\x5F\x62\x74\x6E\x5F\x72\x65\x6D\x6F\x74\x65\x20\x3D\x20\x65\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x5F\x62\x74\x6E\x5F\x72\x65\x6D\x6F\x74\x65\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x20\x5F\x74\x68\x69\x73\x2E\x65\x78\x65\x63\x52\x65\x6D\x6F\x74\x65\x28\x29\x3B\x20\x7D\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\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\x49\x44\x5F\x42\x54\x4E\x5F\x53\x41\x56\x45\x29\x3B\x0A\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\x74\x68\x69\x73\x2E\x63\x6F\x6D\x5F\x62\x74\x6E\x5F\x73\x61\x76\x65\x20\x3D\x20\x65\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x5F\x62\x74\x6E\x5F\x73\x61\x76\x65\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x20\x5F\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x53\x61\x76\x65\x28\x29\x3B\x20\x7D\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\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\x49\x44\x5F\x56\x46\x53\x5F\x50\x41\x54\x48\x29\x3B\x0A\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\x74\x68\x69\x73\x2E\x63\x6F\x6D\x5F\x66\x69\x6C\x65\x5F\x70\x61\x74\x68\x20\x3D\x20\x65\x6C\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\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\x49\x44\x5F\x53\x54\x44\x4F\x55\x54\x29\x3B\x0A\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\x74\x68\x69\x73\x2E\x63\x6F\x6D\x5F\x73\x74\x64\x6F\x75\x74\x20\x3D\x20\x65\x6C\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\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\x49\x44\x5F\x53\x54\x44\x45\x52\x52\x29\x3B\x0A\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\x74\x68\x69\x73\x2E\x63\x6F\x6D\x5F\x73\x74\x64\x65\x72\x72\x20\x3D\x20\x65\x6C\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\x76\x61\x72\x20\x65\x64\x69\x74\x6F\x72\x5F\x6F\x70\x74\x73\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3A\x20\x22\x65\x64\x69\x74\x6F\x72\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x65\x64\x69\x74\x61\x62\x6C\x65\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4F\x6E\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x3A\x20\x74\x68\x69\x73\x2E\x65\x64\x69\x74\x6F\x72\x4F\x6E\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4F\x6E\x53\x61\x76\x65\x3A\x20\x74\x68\x69\x73\x2E\x65\x64\x69\x74\x6F\x72\x4F\x6E\x53\x61\x76\x65\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\x77\x75\x69\x5F\x65\x64\x69\x74\x6F\x72\x20\x3D\x20\x6E\x65\x77\x20\x65\x64\x69\x74\x6F\x72\x5F\x31\x2E\x57\x75\x69\x45\x64\x69\x74\x6F\x72\x28\x65\x64\x69\x74\x6F\x72\x5F\x6F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x77\x75\x69\x5F\x6E\x6F\x74\x69\x66\x20\x3D\x20\x6E\x65\x77\x20\x6E\x6F\x74\x69\x66\x5F\x31\x2E\x57\x75\x69\x4E\x6F\x74\x69\x66\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x77\x75\x69\x5F\x76\x66\x73\x5F\x6F\x70\x74\x73\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3A\x20\x22\x76\x66\x73\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4F\x70\x65\x6E\x3A\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x70\x61\x74\x68\x2C\x20\x69\x73\x5F\x64\x69\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\x72\x65\x74\x75\x72\x6E\x20\x5F\x74\x68\x69\x73\x2E\x4F\x70\x65\x6E\x28\x70\x61\x74\x68\x2C\x20\x69\x73\x5F\x64\x69\x72\x29\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\x20\x20\x20\x20\x4F\x70\x65\x6E\x4E\x6F\x64\x65\x3A\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x6E\x6F\x64\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\x72\x65\x74\x75\x72\x6E\x20\x5F\x74\x68\x69\x73\x2E\x4F\x70\x65\x6E\x4E\x6F\x64\x65\x28\x6E\x6F\x64\x65\x29\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\x74\x68\x69\x73\x2E\x77\x75\x69\x5F\x76\x66\x73\x20\x3D\x20\x6E\x65\x77\x20\x76\x66\x73\x5F\x31\x2E\x57\x75\x69\x56\x66\x73\x28\x77\x75\x69\x5F\x76\x66\x73\x5F\x6F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\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\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x65\x76\x29\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\x76\x61\x72\x20\x68\x61\x73\x68\x63\x68\x61\x6E\x67\x65\x20\x3D\x20\x65\x76\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x75\x72\x6C\x20\x3D\x20\x6E\x65\x77\x20\x55\x52\x4C\x28\x68\x61\x73\x68\x63\x68\x61\x6E\x67\x65\x2E\x6E\x65\x77\x55\x52\x4C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x5F\x74\x68\x69\x73\x2E\x6F\x6E\x48\x61\x73\x68\x43\x68\x61\x6E\x67\x65\x28\x75\x72\x6C\x2E\x68\x61\x73\x68\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\x2F\x2F\x20\x4F\x70\x65\x6E\x20\x70\x61\x74\x68\x20\x62\x61\x73\x65\x64\x20\x6F\x6E\x20\x68\x61\x73\x68\x2E\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x48\x61\x73\x68\x43\x68\x61\x6E\x67\x65\x28\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x74\x69\x6F\x6E\x2E\x68\x61\x73\x68\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x41\x77\x77\x61\x6E\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x6F\x6E\x48\x61\x73\x68\x43\x68\x61\x6E\x67\x65\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x68\x61\x73\x68\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x68\x61\x73\x68\x20\x3D\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\x61\x73\x68\x20\x3D\x20\x22\x23\x2F\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\x61\x73\x68\x20\x3D\x20\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\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x77\x75\x69\x5F\x76\x66\x73\x2E\x4F\x70\x65\x6E\x44\x69\x72\x28\x68\x61\x73\x68\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x2F\x2F\x20\x4F\x70\x65\x6E\x20\x66\x65\x74\x63\x68\x20\x74\x68\x65\x20\x6E\x6F\x64\x65\x20\x63\x6F\x6E\x74\x65\x6E\x74\x20\x66\x72\x6F\x6D\x20\x72\x65\x6D\x6F\x74\x65\x20\x73\x65\x72\x76\x65\x72\x2E\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x41\x77\x77\x61\x6E\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x4F\x70\x65\x6E\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x70\x61\x74\x68\x2C\x20\x69\x73\x5F\x64\x69\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x5F\x5F\x61\x77\x61\x69\x74\x65\x72\x28\x74\x68\x69\x73\x2C\x20\x76\x6F\x69\x64\x20\x30\x2C\x20\x76\x6F\x69\x64\x20\x30\x2C\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x74\x74\x70\x5F\x72\x65\x73\x2C\x20\x72\x65\x73\x2C\x20\x72\x65\x73\x41\x6C\x6C\x6F\x77\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x5F\x5F\x67\x65\x6E\x65\x72\x61\x74\x6F\x72\x28\x74\x68\x69\x73\x2C\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x5F\x61\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x5F\x61\x2E\x6C\x61\x62\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\x63\x61\x73\x65\x20\x30\x3A\x20\x72\x65\x74\x75\x72\x6E\x20\x5B\x34\x20\x2F\x2A\x79\x69\x65\x6C\x64\x2A\x2F\x2C\x20\x66\x65\x74\x63\x68\x28\x22\x2F\x61\x77\x77\x61\x6E\x2F\x61\x70\x69\x2F\x66\x73\x3F\x70\x61\x74\x68\x3D\x22\x20\x2B\x20\x70\x61\x74\x68\x29\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\x63\x61\x73\x65\x20\x31\x3A\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\x68\x74\x74\x70\x5F\x72\x65\x73\x20\x3D\x20\x5F\x61\x2E\x73\x65\x6E\x74\x28\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\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x5B\x34\x20\x2F\x2A\x79\x69\x65\x6C\x64\x2A\x2F\x2C\x20\x68\x74\x74\x70\x5F\x72\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\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\x63\x61\x73\x65\x20\x32\x3A\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\x72\x65\x73\x20\x3D\x20\x5F\x61\x2E\x73\x65\x6E\x74\x28\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\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\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\x77\x75\x69\x5F\x6E\x6F\x74\x69\x66\x2E\x45\x72\x72\x6F\x72\x28\x22\x46\x61\x69\x6C\x65\x64\x20\x74\x6F\x20\x6F\x70\x65\x6E\x20\x22\x20\x2B\x20\x70\x61\x74\x68\x20\x2B\x20\x22\x3A\x20\x22\x20\x2B\x20\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\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x5B\x32\x20\x2F\x2A\x72\x65\x74\x75\x72\x6E\x2A\x2F\x2C\x20\x72\x65\x73\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\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\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x5F\x64\x69\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\x20\x20\x20\x20\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\x22\x20\x2B\x20\x70\x61\x74\x68\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\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x5B\x32\x20\x2F\x2A\x72\x65\x74\x75\x72\x6E\x2A\x2F\x2C\x20\x72\x65\x73\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\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\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x41\x6C\x6C\x6F\x77\x20\x3D\x20\x74\x68\x69\x73\x2E\x69\x73\x45\x64\x69\x74\x41\x6C\x6C\x6F\x77\x65\x64\x28\x72\x65\x73\x2E\x64\x61\x74\x61\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\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x41\x6C\x6C\x6F\x77\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\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\x77\x75\x69\x5F\x6E\x6F\x74\x69\x66\x2E\x45\x72\x72\x6F\x72\x28\x72\x65\x73\x41\x6C\x6C\x6F\x77\x2E\x6D\x65\x73\x73\x61\x67\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\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x5B\x32\x20\x2F\x2A\x72\x65\x74\x75\x72\x6E\x2A\x2F\x2C\x20\x72\x65\x73\x41\x6C\x6C\x6F\x77\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\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\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x5F\x66\x69\x6C\x65\x5F\x70\x61\x74\x68\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x70\x61\x74\x68\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\x72\x65\x71\x75\x65\x73\x74\x2E\x73\x63\x72\x69\x70\x74\x20\x3D\x20\x70\x61\x74\x68\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\x77\x75\x69\x5F\x65\x64\x69\x74\x6F\x72\x2E\x4F\x70\x65\x6E\x28\x72\x65\x73\x2E\x64\x61\x74\x61\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\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x5B\x32\x20\x2F\x2A\x72\x65\x74\x75\x72\x6E\x2A\x2F\x2C\x20\x72\x65\x73\x5D\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\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x2F\x2F\x20\x4F\x70\x65\x6E\x4E\x6F\x64\x65\x20\x69\x73\x20\x61\x6E\x20\x68\x61\x6E\x64\x6C\x65\x72\x20\x74\x68\x61\x74\x20\x77\x69\x6C\x6C\x20\x63\x61\x6C\x6C\x65\x64\x20\x77\x68\x65\x6E\x20\x75\x73\x65\x72\x20\x63\x6C\x69\x63\x6B\x20\x6F\x6E\x20\x6F\x66\x20\x74\x68\x65\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x2F\x2F\x20\x69\x74\x65\x6D\x20\x69\x6E\x20\x74\x68\x65\x20\x6C\x69\x73\x74\x2E\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x41\x77\x77\x61\x6E\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x4F\x70\x65\x6E\x4E\x6F\x64\x65\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x6E\x6F\x64\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x5F\x5F\x61\x77\x61\x69\x74\x65\x72\x28\x74\x68\x69\x73\x2C\x20\x76\x6F\x69\x64\x20\x30\x2C\x20\x76\x6F\x69\x64\x20\x30\x2C\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x65\x73\x41\x6C\x6C\x6F\x77\x2C\x20\x72\x65\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x5F\x5F\x67\x65\x6E\x65\x72\x61\x74\x6F\x72\x28\x74\x68\x69\x73\x2C\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x5F\x61\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x5F\x61\x2E\x6C\x61\x62\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\x63\x61\x73\x65\x20\x30\x3A\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\x72\x65\x73\x41\x6C\x6C\x6F\x77\x20\x3D\x20\x74\x68\x69\x73\x2E\x69\x73\x45\x64\x69\x74\x41\x6C\x6C\x6F\x77\x65\x64\x28\x6E\x6F\x64\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\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x41\x6C\x6C\x6F\x77\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\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\x77\x75\x69\x5F\x6E\x6F\x74\x69\x66\x2E\x45\x72\x72\x6F\x72\x28\x72\x65\x73\x41\x6C\x6C\x6F\x77\x2E\x6D\x65\x73\x73\x61\x67\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\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x5B\x32\x20\x2F\x2A\x72\x65\x74\x75\x72\x6E\x2A\x2F\x2C\x20\x72\x65\x73\x41\x6C\x6C\x6F\x77\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\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\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x5B\x34\x20\x2F\x2A\x79\x69\x65\x6C\x64\x2A\x2F\x2C\x20\x74\x68\x69\x73\x2E\x4F\x70\x65\x6E\x28\x6E\x6F\x64\x65\x2E\x70\x61\x74\x68\x2C\x20\x6E\x6F\x64\x65\x2E\x69\x73\x5F\x64\x69\x72\x29\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\x63\x61\x73\x65\x20\x31\x3A\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\x72\x65\x73\x20\x3D\x20\x5F\x61\x2E\x73\x65\x6E\x74\x28\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\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x5B\x32\x20\x2F\x2A\x72\x65\x74\x75\x72\x6E\x2A\x2F\x2C\x20\x72\x65\x73\x5D\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\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x41\x77\x77\x61\x6E\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x69\x73\x45\x64\x69\x74\x41\x6C\x6C\x6F\x77\x65\x64\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x6E\x6F\x64\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x65\x73\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x64\x65\x3A\x20\x34\x31\x32\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x65\x73\x73\x61\x67\x65\x3A\x20\x22\x22\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\x76\x61\x72\x20\x69\x73\x5F\x74\x79\x70\x65\x5F\x61\x6C\x6C\x6F\x77\x65\x64\x20\x3D\x20\x66\x61\x6C\x73\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6E\x6F\x64\x65\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x5F\x74\x79\x70\x65\x2E\x69\x6E\x64\x65\x78\x4F\x66\x28\x22\x6A\x73\x6F\x6E\x22\x29\x20\x3E\x3D\x20\x30\x20\x7C\x7C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x6F\x64\x65\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x5F\x74\x79\x70\x65\x2E\x69\x6E\x64\x65\x78\x4F\x66\x28\x22\x6D\x65\x73\x73\x61\x67\x65\x22\x29\x20\x3E\x3D\x20\x30\x20\x7C\x7C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x6F\x64\x65\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x5F\x74\x79\x70\x65\x2E\x69\x6E\x64\x65\x78\x4F\x66\x28\x22\x73\x63\x72\x69\x70\x74\x22\x29\x20\x3E\x3D\x20\x30\x20\x7C\x7C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x6F\x64\x65\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x5F\x74\x79\x70\x65\x2E\x69\x6E\x64\x65\x78\x4F\x66\x28\x22\x74\x65\x78\x74\x22\x29\x20\x3E\x3D\x20\x30\x20\x7C\x7C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x6F\x64\x65\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x5F\x74\x79\x70\x65\x2E\x69\x6E\x64\x65\x78\x4F\x66\x28\x22\x78\x6D\x6C\x22\x29\x20\x3E\x3D\x20\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x74\x79\x70\x65\x5F\x61\x6C\x6C\x6F\x77\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\x69\x66\x20\x28\x21\x69\x73\x5F\x74\x79\x70\x65\x5F\x61\x6C\x6C\x6F\x77\x65\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x20\x3D\x20\x22\x54\x68\x65\x20\x66\x69\x6C\x65\x20\x5C\x22\x22\x20\x2B\x20\x6E\x6F\x64\x65\x2E\x6E\x61\x6D\x65\x20\x2B\x20\x22\x5C\x22\x20\x77\x69\x74\x68\x20\x63\x6F\x6E\x74\x65\x6E\x74\x20\x74\x79\x70\x65\x20\x5C\x22\x22\x20\x2B\x20\x6E\x6F\x64\x65\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x5F\x74\x79\x70\x65\x20\x2B\x20\x22\x5C\x22\x20\x69\x73\x20\x6E\x6F\x74\x20\x61\x6C\x6C\x6F\x77\x65\x64\x20\x74\x6F\x20\x62\x65\x20\x6F\x70\x65\x6E\x65\x64\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x72\x65\x73\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\x6E\x6F\x64\x65\x2E\x73\x69\x7A\x65\x20\x3E\x20\x4D\x41\x58\x5F\x46\x49\x4C\x45\x5F\x53\x49\x5A\x45\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x20\x3D\x20\x22\x54\x68\x65\x20\x66\x69\x6C\x65\x20\x5C\x22\x22\x20\x2B\x20\x6E\x6F\x64\x65\x2E\x6E\x61\x6D\x65\x20\x2B\x20\x22\x5C\x22\x20\x77\x69\x74\x68\x20\x73\x69\x7A\x65\x20\x22\x20\x2B\x20\x6E\x6F\x64\x65\x2E\x73\x69\x7A\x65\x20\x2F\x20\x31\x30\x30\x30\x30\x30\x30\x20\x2B\x20\x22\x4D\x42\x20\x69\x73\x20\x67\x72\x65\x61\x74\x65\x72\x20\x74\x68\x61\x6E\x20\x6D\x61\x78\x69\x6D\x75\x6D\x20\x22\x20\x2B\x20\x4D\x41\x58\x5F\x46\x49\x4C\x45\x5F\x53\x49\x5A\x45\x20\x2F\x20\x31\x30\x30\x30\x30\x30\x30\x20\x2B\x20\x22\x4D\x42\x2E\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x72\x65\x73\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\x72\x65\x73\x2E\x63\x6F\x64\x65\x20\x3D\x20\x32\x30\x30\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x72\x65\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x41\x77\x77\x61\x6E\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x53\x61\x76\x65\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x72\x65\x71\x75\x65\x73\x74\x2E\x73\x63\x72\x69\x70\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\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\x20\x20\x20\x20\x76\x61\x72\x20\x63\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x74\x68\x69\x73\x2E\x77\x75\x69\x5F\x65\x64\x69\x74\x6F\x72\x2E\x47\x65\x74\x43\x6F\x6E\x74\x65\x6E\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6C\x20\x3D\x20\x63\x6F\x6E\x74\x65\x6E\x74\x2E\x6C\x65\x6E\x67\x74\x68\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6C\x20\x3E\x20\x30\x20\x26\x26\x20\x63\x6F\x6E\x74\x65\x6E\x74\x5B\x6C\x20\x2D\x20\x31\x5D\x20\x21\x3D\x20\x22\x5C\x6E\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x74\x65\x6E\x74\x20\x2B\x3D\x20\x22\x5C\x6E\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\x74\x68\x69\x73\x2E\x72\x65\x71\x75\x65\x73\x74\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x63\x6F\x6E\x74\x65\x6E\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x64\x6F\x53\x61\x76\x65\x46\x69\x6C\x65\x28\x74\x68\x69\x73\x2E\x72\x65\x71\x75\x65\x73\x74\x2E\x73\x63\x72\x69\x70\x74\x2C\x20\x74\x68\x69\x73\x2E\x72\x65\x71\x75\x65\x73\x74\x2E\x63\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\x41\x77\x77\x61\x6E\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x65\x64\x69\x74\x6F\x72\x4F\x6E\x53\x61\x76\x65\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x63\x6F\x6E\x74\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x64\x6F\x53\x61\x76\x65\x46\x69\x6C\x65\x28\x74\x68\x69\x73\x2E\x72\x65\x71\x75\x65\x73\x74\x2E\x73\x63\x72\x69\x70\x74\x2C\x20\x63\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\x41\x77\x77\x61\x6E\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x64\x6F\x53\x61\x76\x65\x46\x69\x6C\x65\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x70\x61\x74\x68\x2C\x20\x63\x6F\x6E\x74\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x5F\x5F\x61\x77\x61\x69\x74\x65\x72\x28\x74\x68\x69\x73\x2C\x20\x76\x6F\x69\x64\x20\x30\x2C\x20\x76\x6F\x69\x64\x20\x30\x2C\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x65\x71\x2C\x20\x68\x74\x74\x70\x5F\x72\x65\x73\x2C\x20\x72\x65\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x5F\x5F\x67\x65\x6E\x65\x72\x61\x74\x6F\x72\x28\x74\x68\x69\x73\x2C\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x5F\x61\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x5F\x61\x2E\x6C\x61\x62\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\x63\x61\x73\x65\x20\x30\x3A\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\x72\x65\x71\x20\x3D\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\x20\x20\x20\x20\x70\x61\x74\x68\x3A\x20\x70\x61\x74\x68\x2C\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\x20\x20\x20\x20\x63\x6F\x6E\x74\x65\x6E\x74\x3A\x20\x62\x74\x6F\x61\x28\x63\x6F\x6E\x74\x65\x6E\x74\x29\x2C\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\x7D\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\x72\x65\x74\x75\x72\x6E\x20\x5B\x34\x20\x2F\x2A\x79\x69\x65\x6C\x64\x2A\x2F\x2C\x20\x66\x65\x74\x63\x68\x28\x22\x2F\x61\x77\x77\x61\x6E\x2F\x61\x70\x69\x2F\x66\x73\x22\x2C\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\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x65\x74\x68\x6F\x64\x3A\x20\x22\x50\x55\x54\x22\x2C\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\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\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x41\x63\x63\x65\x70\x74\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\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\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\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\x2C\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\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\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\x29\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\x63\x61\x73\x65\x20\x31\x3A\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\x68\x74\x74\x70\x5F\x72\x65\x73\x20\x3D\x20\x5F\x61\x2E\x73\x65\x6E\x74\x28\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\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x5B\x34\x20\x2F\x2A\x79\x69\x65\x6C\x64\x2A\x2F\x2C\x20\x68\x74\x74\x70\x5F\x72\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\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\x63\x61\x73\x65\x20\x32\x3A\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\x72\x65\x73\x20\x3D\x20\x5F\x61\x2E\x73\x65\x6E\x74\x28\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\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\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\x77\x75\x69\x5F\x6E\x6F\x74\x69\x66\x2E\x45\x72\x72\x6F\x72\x28\x22\x46\x61\x69\x6C\x65\x64\x20\x74\x6F\x20\x73\x61\x76\x65\x20\x66\x69\x6C\x65\x20\x22\x20\x2B\x20\x70\x61\x74\x68\x20\x2B\x20\x22\x3A\x20\x22\x20\x2B\x20\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\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x5B\x32\x20\x2F\x2A\x72\x65\x74\x75\x72\x6E\x2A\x2F\x2C\x20\x6E\x75\x6C\x6C\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\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\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x77\x75\x69\x5F\x6E\x6F\x74\x69\x66\x2E\x49\x6E\x66\x6F\x28\x22\x46\x69\x6C\x65\x20\x22\x20\x2B\x20\x70\x61\x74\x68\x20\x2B\x20\x22\x20\x68\x61\x73\x20\x62\x65\x65\x6E\x20\x73\x61\x76\x65\x64\x2E\x22\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\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x5B\x32\x20\x2F\x2A\x72\x65\x74\x75\x72\x6E\x2A\x2F\x2C\x20\x72\x65\x73\x5D\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\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x41\x77\x77\x61\x6E\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x65\x64\x69\x74\x6F\x72\x4F\x6E\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x62\x65\x67\x69\x6E\x2C\x20\x65\x6E\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x74\x6D\x74\x73\x20\x3D\x20\x74\x68\x69\x73\x2E\x77\x75\x69\x5F\x65\x64\x69\x74\x6F\x72\x2E\x6C\x69\x6E\x65\x73\x2E\x73\x6C\x69\x63\x65\x28\x62\x65\x67\x69\x6E\x2C\x20\x65\x6E\x64\x20\x2B\x20\x31\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x76\x61\x72\x20\x5F\x69\x20\x3D\x20\x30\x2C\x20\x73\x74\x6D\x74\x73\x5F\x31\x20\x3D\x20\x73\x74\x6D\x74\x73\x3B\x20\x5F\x69\x20\x3C\x20\x73\x74\x6D\x74\x73\x5F\x31\x2E\x6C\x65\x6E\x67\x74\x68\x3B\x20\x5F\x69\x2B\x2B\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x74\x6D\x74\x20\x3D\x20\x73\x74\x6D\x74\x73\x5F\x31\x5B\x5F\x69\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x6F\x6C\x65\x2E\x6C\x6F\x67\x28\x22\x73\x74\x6D\x74\x3A\x22\x2C\x20\x73\x74\x6D\x74\x2E\x78\x2C\x20\x73\x74\x6D\x74\x2E\x74\x65\x78\x74\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\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x2F\x2F\x20\x65\x78\x65\x63\x4C\x6F\x63\x61\x6C\x20\x72\x65\x71\x75\x65\x73\x74\x20\x74\x6F\x20\x65\x78\x65\x63\x75\x74\x65\x20\x74\x68\x65\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x20\x73\x63\x72\x69\x70\x74\x20\x6F\x6E\x20\x6C\x6F\x63\x61\x6C\x20\x73\x79\x73\x74\x65\x6D\x2E\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x41\x77\x77\x61\x6E\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x65\x78\x65\x63\x4C\x6F\x63\x61\x6C\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x72\x65\x71\x75\x65\x73\x74\x2E\x73\x63\x72\x69\x70\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\x74\x68\x69\x73\x2E\x77\x75\x69\x5F\x6E\x6F\x74\x69\x66\x2E\x45\x72\x72\x6F\x72\x28\x22\x45\x78\x65\x63\x75\x74\x65\x20\x6F\x6E\x20\x6C\x6F\x63\x61\x6C\x3A\x20\x6E\x6F\x20\x66\x69\x6C\x65\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x22\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\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x68\x74\x74\x70\x41\x70\x69\x45\x78\x65\x63\x75\x74\x65\x28\x22\x6C\x6F\x63\x61\x6C\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x2F\x2F\x20\x65\x78\x65\x63\x52\x65\x6D\x6F\x74\x65\x20\x72\x65\x71\x75\x65\x73\x74\x20\x74\x6F\x20\x65\x78\x65\x63\x75\x74\x65\x20\x74\x68\x65\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x20\x73\x63\x72\x69\x70\x74\x20\x6F\x6E\x20\x72\x65\x6D\x6F\x74\x65\x20\x73\x79\x73\x74\x65\x6D\x2E\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x41\x77\x77\x61\x6E\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x65\x78\x65\x63\x52\x65\x6D\x6F\x74\x65\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x72\x65\x71\x75\x65\x73\x74\x2E\x73\x63\x72\x69\x70\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\x74\x68\x69\x73\x2E\x77\x75\x69\x5F\x6E\x6F\x74\x69\x66\x2E\x45\x72\x72\x6F\x72\x28\x22\x45\x78\x65\x63\x75\x74\x65\x20\x6F\x6E\x20\x72\x65\x6D\x6F\x74\x65\x3A\x20\x6E\x6F\x20\x66\x69\x6C\x65\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x22\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\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x68\x74\x74\x70\x41\x70\x69\x45\x78\x65\x63\x75\x74\x65\x28\x22\x72\x65\x6D\x6F\x74\x65\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x41\x77\x77\x61\x6E\x2E\x70\x72\x6F\x74\x6F\x74\x79\x70\x65\x2E\x68\x74\x74\x70\x41\x70\x69\x45\x78\x65\x63\x75\x74\x65\x20\x3D\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x6D\x6F\x64\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x5F\x5F\x61\x77\x61\x69\x74\x65\x72\x28\x74\x68\x69\x73\x2C\x20\x76\x6F\x69\x64\x20\x30\x2C\x20\x76\x6F\x69\x64\x20\x30\x2C\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x5F\x72\x61\x6E\x67\x65\x2C\x20\x68\x74\x74\x70\x5F\x72\x65\x73\x2C\x20\x72\x65\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x5F\x5F\x67\x65\x6E\x65\x72\x61\x74\x6F\x72\x28\x74\x68\x69\x73\x2C\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x28\x5F\x61\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x5F\x61\x2E\x6C\x61\x62\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\x63\x61\x73\x65\x20\x30\x3A\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\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x5F\x72\x61\x6E\x67\x65\x20\x3D\x20\x74\x68\x69\x73\x2E\x77\x75\x69\x5F\x65\x64\x69\x74\x6F\x72\x2E\x47\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x52\x61\x6E\x67\x65\x28\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\x20\x20\x20\x20\x69\x66\x20\x28\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x5F\x72\x61\x6E\x67\x65\x2E\x62\x65\x67\x69\x6E\x5F\x61\x74\x20\x3C\x20\x30\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\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x65\x71\x75\x65\x73\x74\x2E\x62\x65\x67\x69\x6E\x5F\x61\x74\x20\x3D\x20\x30\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\x7D\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\x65\x6C\x73\x65\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\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x65\x71\x75\x65\x73\x74\x2E\x62\x65\x67\x69\x6E\x5F\x61\x74\x20\x3D\x20\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x5F\x72\x61\x6E\x67\x65\x2E\x62\x65\x67\x69\x6E\x5F\x61\x74\x20\x2B\x20\x31\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\x7D\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\x69\x66\x20\x28\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x5F\x72\x61\x6E\x67\x65\x2E\x65\x6E\x64\x5F\x61\x74\x20\x3C\x20\x30\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\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x65\x71\x75\x65\x73\x74\x2E\x65\x6E\x64\x5F\x61\x74\x20\x3D\x20\x30\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\x7D\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\x65\x6C\x73\x65\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\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x72\x65\x71\x75\x65\x73\x74\x2E\x65\x6E\x64\x5F\x61\x74\x20\x3D\x20\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x5F\x72\x61\x6E\x67\x65\x2E\x65\x6E\x64\x5F\x61\x74\x20\x2B\x20\x31\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\x7D\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\x72\x65\x71\x75\x65\x73\x74\x2E\x6D\x6F\x64\x65\x20\x3D\x20\x6D\x6F\x64\x65\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\x72\x65\x71\x75\x65\x73\x74\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x62\x74\x6F\x61\x28\x74\x68\x69\x73\x2E\x77\x75\x69\x5F\x65\x64\x69\x74\x6F\x72\x2E\x47\x65\x74\x43\x6F\x6E\x74\x65\x6E\x74\x28\x29\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\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x5B\x34\x20\x2F\x2A\x79\x69\x65\x6C\x64\x2A\x2F\x2C\x20\x66\x65\x74\x63\x68\x28\x22\x2F\x61\x77\x77\x61\x6E\x2F\x61\x70\x69\x2F\x65\x78\x65\x63\x75\x74\x65\x22\x2C\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\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\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\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\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x41\x63\x63\x65\x70\x74\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\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\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\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\x2C\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\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\x74\x68\x69\x73\x2E\x72\x65\x71\x75\x65\x73\x74\x29\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20